Pemrograman Berorientasi Objek, Perkuliahan Berorientasi Proyek

Malam ini saya ingin membahas tentang perkuliahan di elektro, khususnya di ITB, tempatku bernaung selama hampir 4 tahun ini (hampir lulus dong-aamiin)

Alkisah saya diskusi kecil dengan beberapa teman angkatan 2011 seputar perkuliahan. Mereka sedang mengerjakan tugas akhir salah satu mata kuliah breadth teknik elektro yaitu Sistem Mikroprosesor. Hingga sekarang, mata kuliah inilah yang membuat saya paling merasa menjadi anak elektro, sekaligus mata kuliah paling menarik. Pada minggu-minggu terakhir perkuliahan, para peserta kuliah diberi tugas akhir berkelompok yang biasa kita sebut proyek sismik. Menarik, teman saya ini membuat sebuah robot beroda yang dapat berjalan otomatis menyusuri sekeliling ruangan untuk membersihkan debu/kotoran pada lantai. Selain berjalan otomatis, robot ini mereka rancang agar dapat dikendalikan melalui sebuah perangkat android.

Dengan ilmu perkuliahan yang saya yakin tidak dapat mengcover, membuat robot ini tentu tidak mudah bahkan untuk mahasiswa semester 6 seperti mereka sekarang. Oleh karena itu pula, ribet kalau saya membahas robotnya. Alangkah baiknya kalau yang dibahas adalah metode kuliahnya yang berbasis proyek. Menurut saya, kuliah yang project based seperti ini lebih bermanfaat dan lebih ‘kena’ untuk mahasiswa. Sayangnya kuliah-kuliah project based baru lazim ditemui oleh anak elektro setelah tingkat 3. ‘Meluangkan’ waktu 1 tahun pertama mempelajari asam basa di kimia dasar, quark dan entropi di KPIP, tata surya di SAS, serta tanda baca di TTKI, anak elektro ITB telat mengenal dioda, transistor, decoder, bahkan komputer. Jadi saya rasa wajar mata kuliah berbasis proyek baru didapat setelah setengah baya mahasiswa. Wong di tingkat 2 kita baru dikenalkan mengapa 1+1 bisa tetap 1. Untung lah kurikulum sekarang sudah ada beberapa perbaikan.

Object vs Project

Lanjut pada kuliah berbasis proyek. Dalam kbbi,

pro·yek /proyék/ n rencana pekerjaan dng sasaran khusus (pengairan, pembangkit tenaga listrik, dsb) dan dng saat penyelesaian yg tegas

berarti pada kuliah berbasis proyek, ada rencana yang dirancang agar peserta mencapai suatu target, serta ada parameter waktunya (bahkan disana contohnya pembangkit tenaga listrik, pantes banyak dosen dapet proyek. hehe). Bandingkan dengan perkuliahan biasa yang teori, teori, kuis, lalu ujian. Peserta kuliah seperti ini dipersiapkan untuk dapat melewati suatu rintangan di akhir. Sedangkan kuliah berbasis proyek mengajarkan peserta untuk melewati berbagai rintangan di tengah, dan menghasilkan sesuatu di akhir.

Setelah saya pikir-pikir, kuliah project based ini banyak kesamaan dengan OOP, Object Oriented Programming. Seperti namanya, pemrograman ini berorientasi kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam objek. Seperti ilmu-ilmu diajari di kelas yang mengarah pada proyek.

Dimulai dari tujuan. Salah satu konsep OOP adalah kelas. Menurut wikipedia, kelas adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Seperti para peserta kelas yang harus mempunyai tujuan yang sama supaya proyek bisa selesai.

Mengerjakan proyek tidak mungkin sendiri, seperti objek pada OOP yang useless kalau berdiri sendiri. Pasti terjadi interaksi antar anggota kelompok selama pengerjaan proyek. Setiap objek pun dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.

Lalu coba kita lihat prosesnya. Metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu dimana pesan tersebut dikirim (polimorfisme kata wikipedia). Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Jika di-analogi-paksa-kan yah seperti pembagian tugas sesuai dengan keahlian masing-masing, yang penting task masing-masing selesai. Beda sama ujian yang meminta kita menyelesaikan soal tertentu dengan rumus tertentu, sesuai dengan yang sudah diajarkan.

Terakhir mari tinjau hasilnya. Dalam pemrograman terstruktur, pendekatan pembuatan program adalah dengan menganut konsep “top-down” dimana program dimulai dengan gambaran global, yang dinyatakan dengan nama-prosedur. Selanjutnya prosedur sendiri bisa dipecah-pecah lagi menjadi prosedur yang lain. Pada perkuliahan biasa pun kelas dimulai dengan gambaran global yang menyatakan teori-teori dan rumus. Setelah semua rumus dikuasai, maka akan dites di ujian akhir, lalu memberikan nilai/indeks. Yah seperti pemrograman prosedural yang mengeksekusi semua fungsi yang telah dibuat pada fungsi utama int main, lalu  jika fungsi utama dieksekusi, di akhir int main akan memberikan return value kalo ga 0 ya 1. Kalau ga bagus ya jelek. Hahaha. Padahal kalau kuliah berorientasi proyek, saat proyek sudah selesai dan menghasilkan sesuatu, tidak bisa anda menilai begitu saja hasilnya 0 atau 1. Tiap produk punya manfaat masing-masing.

Maksa ya? maksa sih jelas, yang penting bisa nyambung. Kesimpulannya adalah : belakangan ini saya jadi lebih aware dengan yang namanya project. Saya merasa jika apa yang saya lakukan berbasis proyek, sebagaimana proyek dalam kbbi, maka akan ada hasil yang real dan ilmu yang lebih long-lasting. Pengalaman pribadi ketika saya tingkat 1 belajar dengan sistem kuliah-PR-ujian, ga salah kok, IP saya lumayan. Setelah masuk jurusan, saya merasa mengerti kuliah tapi tidak mengerti elektro karena saya ga mengubah cara belajar. Baru lah di semester-semester akhir bisa menyadari bagaimana seharusnya bertahan hidup di jurusan ini. Dan semoga ga usah lama-lama lagi bertahan hidup disini.

Niatnya ingin membuat tulisan pendek #2, eh jadinya panjang. Sekian saja deh, maaf kalau ada kesalahan dalam pemahaman saya mengenai OOP, maklum belom ngambil kuliahnya.

Adhitya Reza – lagi mabok Java #TA

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s