Published on

Review PPW - Perancangan & Pemrograman Web

12 min read
Authors
  • avatar
    Name
    Asfiolitha Wilmarani
    Trakteer
review mata kuliah perancangan pemrograman web ppw
Photo by Hal Gatewood on Unsplash

It is time for the dreaded matkul review. This time we're gonna be reviewing PPW, Perancangan dan Pemrograman Web (bisa jadi kebalik).

Bear in mind review ini datang dari gue, yang punya background blogging dan dulu rajin banget ngutak-atik html di blogspot blogger. Jadi soal yang basic-basic gue udah paham. Tapi jelas masih banyak banget hal baru yang gue pelajari di matkul ini.

Belajar Apa

Di PPW ini, tl;dr nya gue belajar web development. A very basic web development. Matkul prasyaratnya hanya DDP1, dan sisanya bisa dipelajari selama kuliah berjalan tanpa ada prepping terlebih dahulu. Gue diperkenalkan lebih jauh dengan django sekaligus trinitas webdev yang tersohor; html, css, dan javascript.

Django memperkenalkan gue ke dunia backend yang menjelimet, berhubungan dengan database dan business logic. Bahasanya python, jadi ilmu-ilmu dasar dari DDP1 beneran kepake. Sejujurnya gue ngga terlalu enjoy ngerjain backend, karena dalam beberapa kesempatan gue menyadari bahwa rupanya otak gue rada lambat untuk memproses logika-logika yang harus dipake di balik layar. Gue lebih seneng nguli css daripada harus berurusan dengan models.

Oiya, di sini juga dipelajari gimana sebenernya web app bekerja. Ternyata ada layer-layernya. I won't do a good job explaining, so you'll have to learn it yourself when the time comes :D Secara garis besar ada frontend, ada backend. Frontend ini layer yang di atas-atas, tampilan web app yang bisa dilihat sama client. Sementara itu, backend yang di bawah-bawah, yang ngga bisa dilihat dan ngga ada hubungannya sama tampilan.

Selain berkutat dengan django, PPW juga memperkenalkan gue dengan Test Driven Development (TDD) yang rupanya baru dikencengin lagi penerapannya semester ini. Selain itu diajarin juga mengenai asynchronous javascript (dan ajax, meski gue baru denger kalau ternyata ajax dan javascript ternyata technically berbeda. so maybe look it up on your own), dan jquery, framework javascript yang bikin javascript JAUH lebih mudah dicerna oleh seorang noob. (Mind you, sebelum PPW, gue ngga tau apa-apa tentang javascript. I know what it is, but I don't know how to use it.)

Nyodok & Bentrok

Jadi PPW sebenarnya bukan matkul yang seharusnya diambil di semester dua. Normalnya, both ilkom dan SI ngambil matkul PPW di semester tiga bareng-bareng. Tapi karena gue sudah sangat excited untuk matkul ini dan kebeneran gue dapet kesempatan untuk nyodok, gue ngga ada alasan untuk ngga ngambil PPW secepat yang gue bisa.

Waktu itu belum semua jadwal kelas muncul di siak, jadi meski udah punya garis besar plan untuk siak war, gue masih belum yakin apakah ini plannya sudah fixed atau belum.

Lalu jeng jeng jeng jeng, ternyata tiba-tiba ada lab PSD di hari dan jam yang sama dengan jadwal kelas PPW. Lucunya semua kelas jadwal labnya bareng-bareng. PSD ini matkul yang memang normal diambil di semester dua, jadi gue sudah sangat feeling defeated 'yah, jadi ngga bisa nyodok PPW deh karena bentrok'.

Namun, dengan keajaiban melobi kemahasiswaan, entah bagaimana ketua angkatan gue beserta bekingan-bekingannya, berhasil mengubah jadwal salah satu lab PSD supaya jadi dua jam setelahnya. Akhirnya, mengabaikan rasa defeated yang tadi, gue jadi kesenengan karena bisa ngambil PPW pada akhirnya. Tapi karena hal ini juga, semua temen-temen angkatan gue yang ngambil PPW semester ini jadi sekelas juga di kelas PSD. Kami ngga punya pilihan dosen, karena jadwal kelas lain labnya bentrok.

Siakwar

Sebelum masa-masa siak war, ketua angkatan gue sempet ngedata siapa aja temen-temen yang berencana nyodok semester ini. Waktu itu pilihannya ada Aljabar Linear (alin) dan PPW. Gue ngga kepengen dihantam tiga matkul matematika sekaligus dalam satu semester, jadi alin ngga pernah ada dalam pertimbangan gue.

Saat itu, ngedatanya pake gsheets. Row yang disediakan hanya 50, dan dalam sehari udah penuh. Gue belom sempet ngisi. Jujur saat itu gue kecewa, tapi setelah diingat lagi, buat apa juga gue kecewa yah? Semua kan ditentukan saat war nanti. Kalo ujung-ujungnya yang udah ngisi spreadsheet itu ngga kebagian kursi kan sama aja boong. It was my big picture plan after all muehehehe

Akhirnya tibalah saat yang ditunggu-tunggu. Saat war, gue memprioritaskan seat di kelas PPW. Jadi itu yang awal-awal gue klik dulu. Alhasil gue berhasil mengamankan kursi kesekian belas dari sekitar lima puluhan kursi :D

Beberapa hari setelah war berakhir, kelas PPW ternyata masih overloaded sampe 80-an mahasiswa. Gue yakin itu bukan kating yang ngulang, melainkan memang angkatan gue segitu semangatnya untuk ngambil PPW. Karena gue di seat kesekian belas, gue bisa dibilang aman :D Lucunya saat itu orang-orang di seat yang bawah bawah pada nawarin kursi mereka ke yang ngantre di urutan 50-an. Yang dikit lagi dapet tapi 'so close yet so far'. Jadi grup angkatan sempet dipenuhi calo kursi PPW.

Sejarah internet

Hal yang ngga gue duga tentang PPW adalah materi yang dibahas di pertemuannya. Sebelumnya gue udah mendengar tentang tugas-tugas yang diberikan tiap minggunya, tapi ngga banyak tentang teori yang disampaikan dosen saat tatap muka.

Gue dikejutkan oleh dosen yang menjelaskan tentang sejarah internet di pertemuan pertama. ^^;

Saat itu gue masuk kelasnya rada-rada telat, jadi gue kebagian kursi di belakang. Temen-temen gue sudah terposisikan di depan, menyisakan kating-kating yang ngulang di belakang juga. Tapi serunya karena di belakang, gue jadi bisa ngobrol sama asdos-asdos yang ikutan sit in.

Gue punya pengakuan, gue sama sekali ngga memperhatikan dosen menjelaskan tentang sejarah internet :D Malah keasikan nonton asdos yang duduk di sebelah gue ngerjain yang gue kira sebagai project website dia, sambil ngobrol bareng asdos-asdos yang lain.

Mungkin rada ajaib ya mendengar gue (oh gosh) ngobrol dengan orang lain sampe ngga memperhatikan dosen. Fun factnya, sebelum pertemuan pertama PPW itu, gue udah kenal dengan tiga dari empat asdos yang ada. Jadi gue lancar mau nanya ini-itu. Apapun tentang matkul, yang penting bukan soal cuaca.

Tatap muka

Gue ini salah satu dari segelintir mahasiswa rajin yang hampir ngga pernah bolos tatap muka PPW. Di pertemuan pertama itu kelasnya sampe penuh banget, tapi makin ke sini makin sepi ternyata kayak masjid waktu orang taraweh.

Gue paham kenapa banyak yang memilih untuk skip kelas tatap muka. Kebanyakan yang dijelaskan di kelas nantinya akan dipelajari juga saat ngerjain tugas, dan gue juga berpikir memang jauh lebih efektif mempelajari hal-hal ini sendiri daripada menonton orang lain menjelaskan.

Beberapa temen gue yang tetep dateng ke kelas juga sebenarnya jarang benar-benar mendengarkan, mereka buka laptop dan sepertinya sebagian besar entah main game, atau mengerjakan tugas matkul lain.

Dosennya sebenarnya bukan dosen yang ngga oke, malah beberapa temen gue testi beliau dosen yang sangat bagus di matkul lain. Tapi gue rasa memang PPW ini agak membosankan kalau harus dijadikan format belajar-mengajar seperti di sekolahan. We want hands-on exercises! Ngoding!

Pada beberapa kesempatan, dosennya sempat pause penjelasan dulu dan menantang anak-anak yang hadir untuk ngoding. Tapi berhubung gue ngga pernah bisa buka laptop di kelas, gue jadi ngga penah bisa ikutan.

Jadi kesimpulannya, kelas-kelas PPW ngga seru-seru amat.

Story

Nah ini, the bane of my friends's existence. Ini bagian favorit gue tho.

PPW punya tugas mingguan yang disebutnya story. Hanya saja jangan tertipu, tugasnya bukan fiksi.

Disebut story karena setiap tugas dikasih latar belakang kisah yang melibatkan seorang Kak Pewe (maskot PPW, seperti Dek Depe untuk DDP dan Pak Es De untuk PSD) yang pengen bikin website, tapi beliau ga guna, jadi selalu minta tolong ke lo, seorang web developer in-training, untuk membuat websitenya.

Story ini pada dasarnya ajang untuk lo mempraktikkan teori-teori yang sudah dipelajari pekan sebelumnya. Ada beberapa story yang nggak melibatkan ngoding, tapi hanya di awal-awal. Sebagian besarnya ngoding, dan setiap storynya bisa built on-top of the previous one.

Hasil akhirnya, gue punya dua website story, yang pertama berisi story 1-6 dan yang kedua 7-10. Websitenya terpisah jadi dua karena waktu itu asdosnya nyuruh untuk bikin project baru, jadi begitulah. Tapi gue berencana untuk ngejadiin satu aja, biar bisa masuk portfolio webdev journey dan ngga susah-susah untuk liatnya. (nanti gue link kalo udah rapi wkwkwk)

Untuk pengerjaan story, asdos nyiapin satu gdocs yang isinya requirements website yang akan harus lo buat untuk pekan itu. Deadlinenya rata-rata seminggu. Setelah baca story pekan itu, lo bisa langsung ngoding (atau ngerjain tugas apapun yang disuruh dalam requirements). Setelah selesai, code lo di-push ke gitlab (projectnya di-set public supaya asdos lo bisa periksa), dan site nya di-deploy (kalo pekan itu disuruh deploy). Selama PPW, semua deployment dilakukan dengan heroku. Terakhir, setelah semua kelar, hal yang ngga boleh lo lupakan adalah ngisi spreadsheet.

Spreadsheet ini isinya kayak laporan mingguan lo dalam pengerjaan story. Aksesnya hanya ada di asdos dan lo sendiri, jadi gabisa nyontek punya teman :) Isi spreadsheetnya adalah beberapa pertanyaan yang memastikan kalau lo udah memahami materi pekan ini, dan beberapa pertanyaan lain yang menyuruh lo untuk menceritakan (ha, story) apa yang lo kerjakan dan bagaimana lo mengerjakannya. Terakhir, di row paling bawah, lo cantumkan link ke website yang sudah di-deploy beserta link ke repository di gitlab (atau link apapun yang diminta pekan itu).

Nantinya, asdos lo akan memberikan feedback dan nilai pada setiap pertanyaan yang lo jawab. Penilaian ini ada kriterianya juga, dan tata bahasa serta pemilihan kata juga sangat diperhitungkan. Jadi kalau lo sebenernya paham tapi penjelasan lo di spreadsheet begitu menjelimet, bisa aja asdos lo ngurangin nilainya.

Story ini menyumbang lumayan besar untuk nilai akhir, especially if you do it right. Jadi tips dari gue, bertemanlah dengan asdos lo :D

Challenge

Challenge ini diadakan setiap lab. Isinya semacam mini-story yang melanjutkan story pekan ini. Fitur yang diminta ngga akan sebanyak dan sekompleks story yang aslinya, tapi seperti judulnya, kadang pengerjaannya lumayan menantang.

Misalnya waktu belajar jquery, story nya minta gue untuk bikin accordion boxes from scratch. Sementara di challenge nya, gue diminta untuk bikin color-scheme toggle (untuk ganti light/dark mode). Jadi kalo story itu main course untuk pekan ini, challenge ini dessertnya.

Waktu pengerjaannya adalah dua jam di lab dan deadlinenya sama dengan deadline story pekan itu. Di masa gue, deadline story adalah jam 20.00 di hari lab (Jumat) dan story pekan selanjutnya release di hari berikutnya (Sabtu). Lab gue diadakan jam 14.00, jadi untuk ngerjain challenge, diberi waktu sekitaran enam jam, dengan asumsi story lo sudah selesai.

Kebanyakan challenge ngga bisa diselesaikan kalau storynya belum selesai, karena dia built on top of the main story.

TK

Kisah lengkap versi gue sudah ada di Beli Semua di Shopepew :D Tapi kali ini gue akan mencoba menjelaskan ulang tentang teknisnya.

TK, alias tugas kelompok, adalah Big Boss version dari story mingguan. Kita diminta untuk bikin satu website dengan fitur empat sampai lima kali lebih banyak dari story biasanya. Anggota kelompoknya berkisar dari empat sampai lima orang, dan semuanya berada di bawah asdos yang sama. Jadi kalau lo penasaran siapa aja kira-kira temen sekelompok lo, coba tanya asdos lo, dia ngasdosin siapa aja (hitung berapa kata asdos dalam paragraf ini).

Pemilihannya acak, dan setelah dipilih, lo ngga bisa gonta-ganti anggota kelompok. You gotta work with the team you got. Plus anggota team nya akan tetap sama untuk dua TK dalam satu semester.

Setiap kelompok disuruh milih dari dua studi kasus yang disediakan. Semua requirementsnya udah langsung bisa dilihat, dan anggota-anggotanya tinggal milih mau ngerjain studi kasus yang mana. Requirements kedua studi kasusnya sebenarnya ngga beda jauh, hanya beberapa variasi aja. Yang membedakan ya kisah latar belakangnya. Di masa gue, studi kasus pertama adalah Pewe Online Shop (lagi-lagi Kak Pewe yang mau bikin online shop tapi gatau apa-apa) dan Alex's Car Rental (bikin website platform peminjaman mobil).

Deadline pengerjaan ini sekitar dua minggu. Fitur yang diminta, yang wajib ada empat (untuk kelompok yang anggotanya empat orang) dan ada satu lagi fitur kelima yang opsional. Fitur opsional ini jadi wajib kalo anggota kelompoknya ada lima, jadi intinya satu orang harus mengurus satu fitur.

Pembagian tugasnya juga nggak ada frontend-backend. Setiap anggota harus ngurusin frontend DAN backend fitur bagiannya. Pengerjaan ini udah mulai sulit kalau fitur lo overlap dengan fitur anggota lain. Akan ada beberapa baris code yang harus di-rewrite dan sebagainya.

Di akhir minggu pertama, asdos akan minta progress report pengerjaannya sampe mana. Sementara di akhir minggu kedua, saat deadline, website itu harus sudah ter-implement semua fungsinya dan sudah bisa dipakai secara keseluruhan.

Terakhir ada demo. Setiap anggota diminta menjelaskan fitur bagiannya, apa yang ingin dicapai, bagaimana cara kerjanya, dan walkthrough beberapa line dalam code nya. Selain itu ada uji coba fungsional juga, asdosnya akan mencet sana-sini untuk mencari bug. Kalau ngga ada, aman :D

UTS

UTS nya ada pilihan ganda dan essay. Diadakan di scele karena udah PJJ. Materinya seputar hal-hal yang sudah dipraktikkan selama pengerjaan story, dan ada banyak teori yang asalnya dari slide. (spoiler: sepertinya sejarah internet sempet keluar beberapa soal)

Sebelum UTS, sempet ada quiz juga waktu belum PJJ. Yang ini karena sifatnya bukan open book, gue jadi cengo ngerjainnya wkwkwk. Lebih karena beberapa command ngga pernah gue hafalin dan lebih banyak googling dan baca docs.

UAS

No comment.

Conclusion

All in all, PPW ini matkul yang menyenangkan. Meski kadang bikin stres, tapi menyenangkan. Terutama that sense of accomplishment saat website lo akhirnya jadi dan siap untuk dipamerin. Akan ada produk jadi yang lo hasilkan setelah mengikuti matkul ini.

Meski yang dibahas di kelas dan tugas-tugas hanyalah pengetahuan dasar dari web development, lo bisa dengan mudah mengembangkan itu semua dengan ngikutin bejibun tutorial di youtube. Gue yakin sekarang semua akan jadi lebih mudah dipahami karena lo sudah punya basicnya.

Hanya saja jangan puas sampai di sini. Dunia webdev tidak terbatas sampai django, html, css, dan javascript. Oh no no no.

Masih BANYAK framework lain di luar sana, yang menunggu untuk dieksplorasi. Django ini dipakai karena bahasa yang digunakan adalah python (yang pasti sudah lo ketahui karena prasyaratnya adalah DDP1), tapi gimana kalau lo maunya ngoding pake java? Ada spring dan spring boot. Kalo pake php? Ada laravel. Belum lagi bahasa, framework, dan software lain yang namanya nggak kalah ajaib, ruby, jekyll, angular, vue, express (dan banyak lainnya yang belom pernah gue denger). It's a big world out there. Go and explore.

See you on the next one~