- Published on
Review Basdat - Basis Data
- Authors
- Name
- Asfiolitha Wilmarani
- Trakteer
Gue baru aja research tentang mata kuliah untuk semester depan, and I realized how reviews like the ones I'm writing are so valuable. Blog-walking dari blog satu kating ke kating lainnya itu jadi sumber informasi berharga, dan dari membaca review-review mereka, gue jadi tau informasi apa yang pengen gue ketahui dan informasi mana yang beneran berguna.
So here goes, review basdat~
Perlu diketahui, otak gue sebenernya not wired for query logics dan sebagainya. Ini terbukti di materi-materi akhir gue mulai kewalahan dan hampir gabisa ngikutin kelas sync lagi. Tapi, kalo lo udah ngambil PPW (atau PBP) dan lo menyukai bagian yang berkaitan dengan backend dan database nya, you'll have a good time in this course.
Belajar Apa
Semuanya tentang database. Di pekan awal-awal akan dibahas tentang apa sebenarnya database itu, konsepnya, kegunaannya, arsitekturnya, dan basically overview tentang apa yang akan dipelajari selama satu semester ke depan secara ringkas.
Barulah setelah itu masuk ke pemodelan database nya. Gue diperkenalkan dengan Entity Relationship Diagram (ERD) yang intinya adalah cara memodelkan data secara konseptual pake diagram. Jadi mulai sejak materi ini, siap-siap familiarize dengan draw.io. Karena akan ada beberapa latihan sampe Tugas Individu yang mengharuskan lo untuk bikin diagram ini itu.
Perlu diingat juga tentang konsep relationship yang udah pernah dipelajari di PPW, one-to-one, one-to-many, dan many-to-many. Di sini akan sangat sering dibahas lagi.
Setelah ERD, kita mempelajari kakaknya, EER Diagram. Ekstra huruf E itu untuk Enhanced Entity Relationship. Di sini muncul konsep superclass-subclass, category, union, dan istilah-istilah baru lainnya yang sebenernya udah pernah lo dengar di DDP, hanya saja diterapkan di konteks yang berbeda.
Dari situ masuk ke Relational Model, ini udah mendekati bagian implementasi meski jatuhnya masih perencanaan. Di Relational Model ini lo belajar bagaimana menggambarkan database just as how it's going to be implemented. Jadi udah melibatkan konsep foreign key dan lain-lain.
Selesai tentang perancangan database, masuklah ke materi manipulasi database. Harus gue akui, materi awal tentang SQL dan DDL ini lumayan seru, terutama karena ada hands-on yang mendorong gue untuk nyoba sendiri. Ini akan dibahas lebih lanjut di section Tutorial dan Tugas Individu.
Untuk beberapa pekan selanjutnya, materi masih berkecimpung seputar SQL. Basic SQL query, advanced SQL, dan banyak latihan. Setelahnya baru masuk materi yang rada berat. Ada tentang indexing, trigger dan stored procedure, functional dependency, closure, normalisasi, dan terakhir relational algebra.
Trigger dan stored procedure itu singkatnya menulis sebuah function yang akan dijalankan sebagaimana kita ngejalanin function di Python atau Java, tapi pake SQL.
Functional dependency dan closure itu basically matdis untuk database. Konsepnya cukup mudah ditangkap asal basis lo di matdis cukup kuat.
Normalisasi ini materi yang lumayan sulit ditangkap menurut gue, tentang cara mengoptimalkan database design untuk mencegah anomali dalam penyimpanan dan manipulasi datanya. Ada beberapa tingkatan: 1NF, 2NF, 3NF, dan BCNF (ini yang dipelajari di course ini, tapi sebenernya ada lebih banyak), dan syarat-syaratnya kadang gue suka ketukar.
Terakhir, relational algebra adalah materi paling abstrak yang harus dipelajari wkwkwk. Ini pada dasarnya mentranslasikan bahasa query ke bahasa matematis yang melibatkan simbol-simbol greek letters meliuk-liuk.
Ini course scele untuk semester lalu, mungkin bisa dilihat BRP dan download slides nya untuk mendapat lebih banyak preknowledge.
Attendance
Seperti yang mungkin sudah sering gue sebutkan sebelumnya, gue tipe yang lebih efektif kalo belajar sendiri. Sementara kelas sync itu kadang pace nya jauh lebih cepat dari yang bisa gue ikuti (kalo belom grinding). Terutama karena kelas yang dibuka semester lalu itu hanya kelas pagi, gue sering bangun kesiangan dan end up ngga ikut kelas sync.
Di pertengahan semester, gue iseng buka BRP lagi dan ternyata attendance (kehadiran) itu masuk ke 5% penilaian π. Akhirnya, barulah setelah itu gue memaksakan diri untuk bangun dan hadir di meet nya meski ngga sepenuhnya mengikuti lecture.
Jadi saran gue, perhatikan bener-bener BRP yang dipublish di awal semester. Kalo attendance itu termasuk ke komponen penilaian, usahakan tetep join meeting sync nya supaya dapat nilai tambahan. Tapi kalo ternyata ngga jadi komponen penilaian, well, feel free to do whatever you like with your time π I'm not your mom.
Quiz
Quiz ini diadakan dua kali. Quiz pertama via google form dan ada dua sesi: pilihan ganda dan essay. Pilihan gandanya menanyakan teori, sementara essay nya disuruh bikin ERD dan EER. Gue ngga ingat apakah relational model udah keluar juga, tapi sepertinya termasuk. Karena seingat gue di essay juga ada pertanyaan yang nyuruh nulis SQL query.
Quiz keduanya full praktek. Jadi ada skema DDL yang dirilis via scele, dan kita diminta untuk nginput DDL tersebut di terminal yang dipilih. Boleh di kawung atau di local psql terminal. Soal quiznya disuruh buat query, trigger, dan stored procedure. Yang dikumpulin adalah query nya, beserta screenshot query tersebut in-action di terminal beserta outputnya. Katanya jawaban yang tidak menyertakan screenshot tidak akan dinilai.
That's about it tentang Quiz.
Tutorial
Tutorial ini bagian yang lumayan asik menurut gue, meskipun rada nguli. Ini mungkin jadi equivalent nya story kalo di PPW, bedanya ngga dilaksanakan setiap pekan.
Jadi akan ada dokumen Tutorial yang dirilis di scele, isinya, well, tutorial. Dokumen ini memuat materi yang dibahas di pekan-pekan sebelumnya, dan ngasih tau lebih banyak tentang syntax yang dipake di SQL queries karena materi di kelas lebih banyak tentang teori.
Yang harus dilakukan adalah menjalankan semua contoh query SQL yang ada di dokumen soal, dan seperti tadi, screenshot semua query nya in-action beserta outputnya. Ini dikumpulkan dalam bentuk dokumen laporan. Ada juga beberapa soal latihan yang mengharuskan kita mikir sendiri, jadi ngga benar-benar disuapin materi aja.
Soal-soalnya juga kumulatif, jadi melanjutkan dari skema tutorial sebelumnya. Setiap tutorial baru, gue cukup kembali ke skema yang udah ada di kawung untuk mengerjakan lagi.
Akses Kawung
Dari tadi gue beberapa kali nyebut tentang kawung. Sebenarnya apa sih?
Kawung yang gue maksud di sini adalah kawung.cs.ui.ac.id. Tapi kalo lo coba akses dengan browser, sepertinya ngga bisa wkwkwk. Ini karena aksesnya harus dikasih dulu dari ITF. Jadi di awal perkuliahan basdat, dosennya akan mendaftarkan akun SSO lo ke kawung melalui ITF pacil supaya lo bisa dapat akses.
Yang harus dilakukan berikutnya adalah set-up SSH key, supaya loginnya ngga via SSO lagi. Gue ngga berani menjelaskan apa bedanya akses dengan SSO dan SSH key karena memang gue ngga begitu paham, jadi mungkin bisa diresearch sendiri mengenai hal ini.
Untuk akses servernya, udah ada tutorialnya di dokumen Tutorial 1. But, in case lo mau cobain sendiri dulu sebelum perkuliahan mulai, gue coba recite di sini, ya.
-
Kalo pake linux, bisa skip ke step ketiga.
-
Download Putty. Buka putty, dan masukkin kawung.cs.ui.ac.id sebagai host name. Klik open.
-
Masukkin username dan password SSO untuk login. Kalo pake linux, buka terminal dan enter command:
ssh [username.sso]@kawung.cs.ui.ac.id
Terus enter password untuk bisa connect. -
Untuk akses psql terminalnya, masukkin command di bawah:
psql -U [username.sso] -h db.cs.ui.ac.id
Terus enter password lagi.
And you're now connected! Kalo semua langkah di atas berjalan tanpa kendala, sekarang harusnya lo udah bisa coba-coba main dengan SQL queries dan ngacak-acak server kawung fasilkom π. LMAO I'm kidding.
Kalo untuk mengganti access method nya dengan SSH key, udah ada juga tutorialnya di scele course yang gue link di atas. Tapi, akses untuk melakukan ini harus diberikan dulu sama ITF. Kalo ngga, lo ngga akan bisa login juga. Jadi tunggu saja nanti instruksinya dari dosen.
Install Postgres Local
Lain cerita kalo lo mau eksperimen di local environment. Ini bisa lo lakukan dengan cara install postgres sendiri. Dengan begitu, lo ngga perlu mengandalkan akses ke kawung yang kadang suka putus-nyambung.
Tutorialnya juga udah ada di scele course yang gue link di atas, tapi let's just recite it here karena gue yakin akan berguna.
- Download postgres sesuai dengan operating system lo. https://www.postgresql.org/download/
- Ikuti tahap instalasinya sampe selesai. Pilih password yang mudah diingat aja biar ngga ribet.
- Udah sih sebenarnya itu aja yang harus dilakukan._.
- Tapi untuk keperluan Tutorial dan Tugas Individu, nanti lo akan diharuskan untuk pake database yang namanya sama dengan username SSO. Untuk melakukannya, buka psql terminal dan jalankan code berikut.
create database "[username.sso]";
Tanda petik dua dan semicolon nya ngga boleh ditinggalkan, karena username SSO kan seringnya ada titik di tengah, jadi nanti bisa ngga kebaca. Tapi kalo username lo ngga ada titiknya, feel free to leave out the quote marks. - Untuk pindah ke database yang baru dibuat tadi, jalankan ini.
\c "[username.sso]"
And you're good to go! Sekarang sudah bisa eksperimen dengan SQL deh.
TI - Tugas Individu
Semester lalu, Tugas Individunya ada tiga kali. Semuanya kumulatif, mirip seperti Tutorial, tapi ada studi kasusnya sendiri. Pembagiannya random. Ada dua studi kasus waktu itu, ada Silau dan Event+.
Studi kasus Silau itu singkatan dari Si Laundry. As the name suggests, kita diminta untuk membuat sistem informasi sebuah usaha penatu (that's Indonesian for laundry π the more you know) dan membuat pemodelan data sampe nanti implementasi aplikasinya.
Event+ itu sistem informasi untuk semacam event organizer. Premisnya adalah membuat sistem informasi untuk si pengusaha ini, yang bikin dia bisa keep track of all the events and participants.
Gue kebagian studi kasus Silau. Again, bukan dipilih, melainkan random. Pembagian studi kasus ini juga sekaligus dengan pembagian kelompok untuk Tugas Kelompok nanti. Jadi kalo temen lo udah beda studi kasus, kalian pasti ngga akan sekelompok.
TI 1 adalah memperkenalkan premis studi kasusnya. Jadi dokumen soalnya adalah sebuah cerita, literally cerita pendek, yang memaparkan semua requirements yang akan harus kita implementasikan eventually. Tapi untuk TI 1 ini hanya disuruh untuk membuat EER yang bisa merepresentasikan requirements yang diminta secara konseptual. Yang dikumpulkan hanya EER diagramnya itu aja.
TI 2 meminta kita untuk mengubah EER yang tadi udah dibuat ke relational model. Karena EER yang dibuat mahasiswa bisa beda-beda, di sini dosennya mengeluarkan versi EER yang harus diikuti untuk pengerjaan TI ini.
TI 3 yang agak melelahkan. Karena pada tahap ini kita udah memasukki materi relational algebra, premis soalnya masih sama dengan studi kasus sebelumnya, tapi sekarang yang diminta adalah membuat versi relational algebra dari sebuah query. Pengerjaannya ngga boleh tulis tangan, harus pake document processor.
Gue ngerjain semua soal relational algebra pake notion, karena udah ada built-in katex. Docs nya bisa dilihat di https://katex.org/docs/supported.html, siapa tau lo mau mulai membiasakan dengan ini.
It's gonna help a lot kalo lo familiar dengan syntax math ini, karena akan kepake juga di Aljabar Linear, terutama untuk ngetik di forum. Oh, di StatProb juga mungkin, kalo lo berniat mengerjakan PR nya digitally.
TK - Tugas Kelompok π€‘
Tugas Kelompok ini, sejauh ini, selalu jadi the bane of my existence wkwkwk.
Seperti yang gue ceritain di atas, anggotanya dibagikan secara random. Mahasiswa yang sekelompk adalah yang dapat studi kasus yang sama dan dibawahi sama asdos yang sama. Satu kelompoknya ada empat orang.
Gue kebagian sekelompok sama dua orang kating dan satu orang angkatan gue.
TK nya ada 3 kali kalo semester lalu. Mungkin karena waktunya memang mepet. Soalnya setau gue biasanya TK bisa sampe 4. Makanya, rasanya kemarin itu rushed banget Tugas Kelompoknya.
TK 1 nguli. Intinya kita disuruh buat DDL untuk mengimplementasikan database yang udah dirancang selama pengerjaan TI. Pengumpulannya adalah dalam bentuk laporan, isinya script DDL yang dijalankan beserta screenshot outputnya. Terus diminta juga mengisi database yang baru dibuat itu dengan data dummy yang jumlahnya ditentukan untuk setiap relation.
Data dummy ini pada dasarnya data ngasal yang dipake untuk mempopulasi suatu database. Nama-nama orang seperti John Doe dan kawan-kawan itu biasanya digunakan. Waktu itu gue pake mockaroo.com untuk generate data dummy nya.
Kalo untuk DDL, berhubung ada lumayan banyak relation yang harus dibuat tablenya dan diinsert datanya, gue pake CSV to SQL converter. It saved me SO MUCH TIME. Jadi untuk memastikan data dummy nya relevan dan ngga melanggar foreign key, kelompok gue masukkin semua datanya dalam satu google spreadsheet dulu. Ini contoh sheet data kelompok gue, generated from mockaroo. Barulah setelah itu gue copas table nya, langsung dari google sheet ke converter tadi. Separatornya jadi tab, bukan lagi comma. But it works either way. Terus tinggal copas lagi ke terminalnya deh. Easy peasy.
Di TK 1 ini, kesalahan gue adalah waktu pembagian tugas. Saat itu gue ngga terlalu memperhatikan tentang dependency antar relation, melainkan berdasarkan banyaknya data dummy yang harus dikumpulkan. Bodohnya adalah, gue milih bagian yang semuanya dependent terhadap kerjaan seorang kating.
Malam deadline, gue stres sendiri menunggu kating ini mengerjakan tugasnya. I almost felt like a horseman holding a whip to make the horse run faster π. Untunglah, pada akhirnya setelah kating ini gue terror sepanjang hari, dari siang sampe menit-menit menuju deadline, beliau akhirnya berhasil menyelesaikan bagiannya. Meski ada bagian akhir yang sebenernya bagian paling banyak: masukkin sekian ratus data dummy untuk satu relation yang jadi dependency bagian gue, itu diserahkan ke gue.
Waktu itu, karena udah panik dan capek menebar kepanikan di multichat, akhirnya gue iyain dengan syarat gue minta 5% kontribusinya beliau. Wkwkwk yang bikin gue rada seneng, bukannya langsung iya, beliau malah ngasih gue 6% instead.
Jadi di laporan pengerjaan TK itu ada tabel kontribusi. Kita diminta untuk nulis nama, NPM, dan apa aja yang dikerjakan sebagai kontribusi untuk pengerjaan TK ini, beserta persentase kontribusi masing-masing anggota. Normalnya, untuk kelompok 4 orang, masing-masing dapat 25% dong. Yaa, bisa kebayang lah gimana nantinya pembagian persentase ini dalam kelompok. Hati-hati terjadi clash, tapi ingat juga harus sadar diri.
Anyway, all is good sampe keluarlah TK 2.
Di TK 2 ini si kating yang gue sebut tadi sama sekali no-show. Display: none. Beliau ngga pernah muncul di multichat lagi sama sekali. Jadi di laporan sejak TK 2, kami sepakat untuk nulis kontribusinya 0%. Sebab di TK 3 juga beliau ngga muncul lagi.
TK 2 ini entah kenapa tingkat kesulitannya tiba-tiba melonjak. Sangat nguli. Kita diminta untuk bikin aplikasi interface untuk sistem informasi ini, dengan menggunakan Django. Jadi web-based app, tapi ngga boleh pake Django Models. Backend nya harus pake postgres. Aplikasi ini lalu nanti dideploy.
Bentuk yang dikumpulkan adalah laporan lagi. Tapi kali ini dokumen soalnya aja panjang banget, seingat gue sampe hampir 30 halaman. Jadi kami diminta memilih satu trigger dari 6 pilihan kalo ngga salah. Setiap trigger ini dikaitkan dengan satu fitur dalam aplikasi. Jadi karena pembagian tugasnya udah disusun sama tim pengajar, kami cukup memilih aja. Bobotnya udah disamakan soalnya.
Yang harus dilakukan adalah implementasi trigger tersebut di database yang sudah dibuat sebelumnya, dan implementasikan fiturnya dalam bentuk aplikasi. Trigger dikumpulkan dalam bentuk file .sql
. Sementara aplikasinya dikumpulkan dalam bentuk link menuju herokuapp nya beserta repository project nya. Asdos akan harus diinvite untuk jadi maintainer supaya bisa ngoreksi. Nanti fitur yang udah diimplementasi akan diminta untuk discreenshot untuk masuk ke laporan. Laporan inilah yang pada akhirnya dikumpulkan.
Di TK 2 belom diminta supaya fitur-fiturnya udah fungsional. Jadi istilahnya, semua masih hardcoded. Di TK 3, barulah mereka minta untuk aplikasinya fungsional. Ada beberapa fitur wajib yang harus diimplementasikan, sementara fitur lainnya opsional. Opsional lainnya adalah semua fiturnya berhasil diimplementasikan sampe fungsional. But, dengan kelompok isi empat orang yang kini tinggal tiga, kami berpikir realistis dan memutuskan untuk mengerjakan fitur wajib aja.
Gue bilang tinggal tiga, tapi more like, dua setengah. Kating yang satu lagi rupanya juga lagi mengejar deadline untuk tugas kelompok di matkul lain, jadi beliau menyerahkan sebagian kecil bagiannya ke kami berdua. Jadi tersisalah gue dan teman maung yang satunya untuk ngejar deadline.
Mana pengumpulan yang ini telat satu menit pula. Ini semua karena kita merayakan kemenangan sebelum submit beneran wkwkwk. Oh iya, udah kelar? Oke. LOH BELOM DISUBMIT?
Integrasi Heroku dengan Postgres
Selama pengerjaan TK ini, gue banyak terbantu dengan kating yang rajin membantu di atas. Beliau beberapa kali ngedrop tutorial dan catatan yang ditulis oleh temen seangkatannya untuk kelas basdat semester sebelumnya.
Salah satunya melibatkan cara integrasi heroku dengan postgres. Ini sangat membantu untuk pengerjaan TK 3 yang berhubungan dengan implementasi aplikasi yang harus menyentuh database. Daripada gue recite di sini, lebih baik gue kasih link nya aja karena gue isinya udah lengkap dan very helpful π. http://bit.ly/basdatGoldMine
Di luar itu, ada juga kating yang berbaik hati membuat repository project TK nya jadi public. Aslinya dokumen soal meminta repository dijadiin private, makanya asdos harus diinvite biar bisa mengoreksi. Tapi gue rasa itu tujuannya biar ngga ada yang bisa copas saat kebetulan studi kasusnya sama. Berhubung ini adalah repository dengan studi kasus beberapa tahun lalu, repo ini jadi tambang emas lain untuk mempelajari bagaimana cara mengimplementasikan aplikasi yang diminta.
I'll just drop the link here again, I'm sure you'll find it helpful. Ada di gitlab. Terima kasih banyak untuk kaka-kaka yang sangat murah hati π Semoga berkah.
UTS
UTS nya, sejujurnya gue agak lupa. Tapi kalo ngga salah mirip dengan Quiz 1 dan Quiz 2 digabung deh. Jadi bagian pertama ada pilihan ganda, sementara di bagian kedua dikasih script DDL untuk nanti kita buat query-query yang diminta.
Gue ngga ingat apakah diminta bikin diagram atau ngga. Eh, apa itu skema UAS ya? Di scele nya UTS dihide, jadi gue ngga bisa merefresh ingatan. Tapi soal-soal yang ditanyakan ngga akan beda jauh dengan Quiz kok.
Grinding
Gue udah bilang di atas, materi setelah UTS agak sulit gue ikuti melalui kelas sync. Jadi, seperti biasa, yang gue lakukan adalah grinding π. Khususnya materi untuk UAS. Grinding yang gue lakukan adalah skim through slide yang ada di scele sambil buat catatan.
Berhubung grinding gue yang tipe begini ada hasilnya, I thought it'd be helpful to share my notes. Tapi hanya ada untuk materi pekan 13 dan 14, karena mulai dari materi ini yang banyak teorinya. Pekan-pekan sebelumnya masih ada prakteknya.
Self-Study Basdat Week 13 β Materi week 13: Functional Dependency & Closure
Self-Study Basdat Week 14 β Materi week 14: Relational Algebra
UAS
UAS ini teknisnya kurang lebih seperti yang gue jelaskan di section UTS, karena sepertinya gue salah mengingat wkwkwk. Ada dua sesi, sesi pertama pilihan ganda, via fitur quiz scele. Sesi keduanya bikin SQL query. Disediakan script DDL yang tinggal dijalankan, terus bikin query dan screenshot hasilnya untuk dijadikan laporan.
Untuk pengerjaan UAS maupun Quiz yang pake sesi SQL begini, gue ngga berani mengandalkan koneksi ke kawung. Jadi pada tahap ini gue udah install postgres di local. Gue rasa ini meminimalisasi kendala teknis yang mungkin terjadi, karena takutnya ada sesuatu yang bermasalah dengan koneksi ke kawung, nanti gue yang akan stres sendiri. I didn't wanna take that chance, jadi gue ngga aneh-aneh dan pake terminal psql local.
Oiya, untuk semua soal yang dikeluarkan di kelas basdat semester lalu, baik Quiz, UTS, dan UAS, dosennya menyediakan dua versi. Ada Bahasa Indonesia dan Bahasa Inggris. Mahasiswa dibebaskan milih versi mana untuk dikerjain, yang lebih mudah dimengerti dan lebih nyaman aja.
Normalnya gue akan memilih versi Bahasa Inggris, tapi berhubung materi yang disampaikan di slide (sumber belajar gue) itu Bahasa Indonesia, gue khawatir nanti terminology nya malah bikin gue bingung lagi. Plus, kalo soalnya Bahasa Inggris, gue jadi terdorong untuk ngejawab dengan Bahasa Inggris juga. Dan, again, itu bisa memakan lebih banyak waktu karena ada terminology yang takutnya berbeda. Kan ga lucu kalo gue awal-awal pake Bahasa Inggris terus nyerah di tengah-tengah karena gatau versi inggris dari sebuah terminology. Jadi gue selalu ngerjain soal Bahasa Indonesia.
Conclusion
Basdat was, in fact, not as dull as I thought it would be. Sejak PPW, gue udah terlalu seneng sama front-end, jadi segala yang berhubungan dengan back-end dan database sebisa mungkin gue hindari. Tapi somehow waktu berkecimpung dengan aplikasi di TK 3, I found it to be fun. Wkwkwkwk.
Kalo resource di luar scele yang bisa gue recommend, paling dari youtube. Untuk materi-materi yang berat di teori, kayak materi di awal dan materi di paling akhir, gue recommend channelnya Caleb Curry.
Ini ada beberapa link untuk jadi bookmark tambahan:
- Database Design
- MySQL Stored Procedures and Functions
- SQL Server Complete Series β untuk materi normalisasi dan lainnya (plus beberapa materi syntax)
- MySQL 2017 β berhubung basdat kemarin pake PostgreSQL, bagian syntax nya ngga gue tonton. Tapi penjelasan bagian normalisasinya membantu banget.
- Kalo untuk relational algebra, ini ada penjelasan yang ngasih mnemonic, cara untuk mengingat syntax penulisan RA nya. CMU Database Systems - 02 Relational Algebra (Fall 2017)
I think that's all the resources I can share for now. Gue bisa berusaha supaya review-review ke depannya akan lebih resourceful seperti sekarang, ngga hanya menceritakan pengalaman gue aja wkwkwk. Karena setelah blog-walking, gue menemukan bahwa ternyata gue lebih peduli dengan informasi yang bisa gue dapatkan tentang matkul tersebut dibanding gimana kesan dosennya maupun pengalaman dengan anggota sekelompok yang menyebalkannya. But I figured I can still have both in one article~ π
Oke, segitu dulu. More reviews coming soon. Kalo ada matkul yang pengen didulukan, feel free to ask for it~ wkwkwk.
See you on the next one~