Rabu, 27 Juli 2011

Hard(ware)way or Soft(ware)way

Beberapa orang mengkaitkan hardway dengan pelajaran yang dipetik melalui pengalaman yang menyakitkan ataupun softway yang biasanya identik dengan belajar dengan cara yang lebih "mudah". Tetapi kali ini saya akan mengkaitkannya dengan hardware dan software. Hampir semua orang tentunya tahu apa itu hardware dan software, semua yang berhubungan dengan barang, device atau apapun yang dapat dipegang dapat dikatakan sebagai hardware sedangkan software biasanya dikaitkan dengan program atau aplikasi pada komputer atau device elektronik lain seperti smartphone. saya tidak akan membahas perbedaan antara keduanya atau fungsi dari salah satunya namun saya akan membahas "pelajaran" yang dapat dipetik dari keduanya. So if you talk about learning in hardway or softway now we will learn it from hardware way and software way.

Sebagai mahasiswa teknik fisika tentunya sudah biasa berhubungan dengan hardware dan software. Bahkan pada tugas akhir ada yang benar-benar berhubungan dengan hardware even build a hardware from a scratch and then do the experiment or just do the experiment with existing hardware. Sedangkan software bisa berupa "hanya" menjalankan simulasi berbekal data yang ada atau bahkan ada yang menulis kode (I called it as a "hardcore" programming) dan membuat aplikasi bahkan interfacenya. Saya sendiri merasa beruntung sempat merasakan keduanya, dari pengalaman berhubungan dengan hardware dan software saya mendapatkan pelajaran yang unik.

Soft(ware)way
Beberapa kali saya berhadapan dengan software sebelum masuk ITB dan jujur hanya sebagai user. Ketika masuk ITB langsung sebagai mahasiswa teknik fisika kami disuguhi satu mata kuliah "dasar pemrograman" yang berbasiskan Java dan disimulasikan diatas aplikasi yang disebut jturtle. Intinya kita bisa menulis kode yang diinginkan pada jendela kiri dan kode tersebut dapat dieksekusi pada jendela kanan dengan kura-kura hijau kecil berjalan untuk menggambar atau menulis teks yang diinginkan. Ini pengalaman pertama saya menulis kode yang benar-benar dari awal untungnya ada sesi tutorial untuk belajar dan mempraktekkannya. Salah satu yang paling berbekas pada kuliah ini adalah pada saat dosennya berkata "Java bisa dibilang high level language dan mungkin agak susah bagi sebagian orang terutama yang baru bersentuhan dengan programming karena sebagian lainnya mungkin lebih familiar dengan bahasa C, kenapa di teknik fisika kita pakai java? Karena GRATIS" (jelasnya sambil tertawa terkekeh-kekeh). Jgeerr!! Gratis, alasan yang sangat (atau terlalu) simpel. Tapi mata kuliah inilah yang berhasil membuat saya tidak bisa tidur karena bermimpi kura-kura yang macet di tengah halaman karena logical error atau bahkan mengeksekusi program yang salah (saya bangun dalam keadaan keringat dingin!!). Bahkan pengalaman bagaimana tidak enaknya menulis kode dengan bermodal kertas dan pensil tanpa bisa mencoba "menjalankan" program yang telah dibuat.
Tampilan Jturtle, jendela kanan untuk menulis program dan jendela kiri untuk eksekusi program oleh si kura-kura.
Pengalaman terus berlanjut, semester berikutnya ada pemrograman berorientasi objek atau istilah kerennya "object oriented programming" bedanya komponen pada pemrograman ini diperlakukan sebagai objek dan "agak" lebih menyenangkan karena kita bisa mendesain user interface yang ingin ditampilkan. Dasar program yang digunakan adalah Netbeans yang memakai Java dan sekali lagi, GRATIS. Setelah itu saya kira tidak akan bertemu dengan hal semacam itu lagi tapi ternyata saya berulang kali bertemu dengan "soft(ware)way" dalam bentuk yang berbeda seperti matlab, scilab, arduino, PLC programming, dan LabView (yang dengan sotoynya menjadi orang pertama yang mengambil topik real-time control simulator saat Kerja Praktek dan dengan suksesnya nyaris tidak tidur selama 3 hari) bahkan saat tugas akhir sempat "terpaksa" baca C++ sedikit-sedikit. 

What's behind the soft(ware)way?
Apa yang saya "pelajari" dari pengalaman-pengalaman itu? Hal pertama dan yang paling jelas adalah ketelitian. Bahkan sebuah titik kecil atau tanda titik koma (;) bisa menghancurkan mood dan membuat hidup lebih suram selama 3 hari atau bahkan satu minggu kedepan dan kalau cukup beruntung, plus mimpi buruk. Hal kedua adalah kesabaran, ya kesabaran untuk memeriksa apa yang telah dibuat agar ketika software atau simulasi dijalankan hasilnya tidak terlalu berbeda dengan apa yang diharapkan. Ketelitian dan kesabaran sering berjalan beriringan, hal ini untuk memperkecil kemungkinan kesalahan terjadi. Tentu beberapa orang memilih cara "tulis seadanya dan jalankan dulu" tapi itu tentunya akan menghabiskan lebih banyak waktu. Lagipula yang kita inginkan adalah "trial and success" kan? Bukan sekedar "trial and error" yang berulang-ulang.

Kita akan belajar mengenai perbedaan. Ya benar, perbedaan. Sebagian besar orang akan berpendapat lebih sulit memahami kode yang dibuat oleh orang lain dan menemukan error yang ada dibandingkan menulis kode dari awal sendiri dengan logika kita. Yep, everybody is unique and we need to look every problem with different perspective to understand each others. The next thing is curiosity, banyak cara untuk mencapai tujuan, begitu pula dengan software. Meskipun apa yang kita buat sudah dapat mencapai apa yang diinginkan, kadang selalu ada dorongan atau rasa penasaran untuk mencoba dengan cara yang lebih efektif dan efisien. Mulai dari merubah algoritma sampai menuliskan kode yang lebih rumit agar hasil yang didapat menjadi lebih cepat atau "memakan" memori yang lebih sedikit.

The last but not at least, logic and communication. With "soft(ware)way" we learn to build our logic and have a simulation in our mind. After that, we need to translate what we want into computer language. This is one of the biggest advantage of software problem, once you can translate what you want into different "things" language, you could easily talk to people. Saat berdiskusi mungkin saja kita sudah memiliki tujuan dan dasar pemikiran yang sama dengan orang lain, tapi cara kita menyampaikannya atau bahasa yang kita gunakan "berbeda" sehingga membuat kita bicara berputar-putar dan tidak mencapai titik temu.

Hard(ware)way
Pertama kali saya berhubungan dengan hardware dan "real" membangun dari awal adalah saat galelobot. Bagi yang belum tahu, Galelobot adalah lomba robot line follower dengan tim 3 orang yang diadakan HMFT. Jujur saja,kami ikut pun dengan modal dengkul (mungkin tidak dengan dua teman saya, Yuniar dan Beni, tapi YA, modal saya cuma dengkul dan beruntung saya boleh masuk dalam tim). Pada saat itu pekerjaan dibagi jadi pemrograman oleh Yuniar, elektronik oleh Beni dan saya bagian mekanik (ngga, ngga ada yg megang kabel atau jaga sandal). Bagian mekanik mungkin tidak terlihat keren tapi disini yang menentukan desain penempatan komponen, titik pusat massa dan membuat base yang diperlukan untuk mempermudah gerakan robot (semoga saya berhasil membuat ini terlihat keren). Meski akhirnya tidak berjalan seperti yang diinginkan tapi banyak pengalaman yang kami dapat waktu itu.

Tim galelobot kami, dari kiri ke kanan, Yuniar, Beni dan saya.

Waktu berlalu dan pengalaman baru pun berdatangan. Bantu-bantu tim FT di lomba roket (yang ini berujung menjadi "jalan bersama" di Yogya), nyari motor 3 phase buat lab yang susahnya minta ampun dan terakhir adalah pembuatan elektrokardiograf untuk mencit (tikus kecil, dan yang ini saya anggap berhasil). Semua permasalahan hardware yang pernah saya hadapi selalu memberikan pelajaran-pelajaran baru yang unik. Salah satu yang memiliki sejarah panjang adalah yang terakhir. Bagaimana tidak, itu adalah tugas akhir saya (dan teman saya, Puput, tapi berbeda topik) yang dimulai sejak juni 2010 yakni pencarian dana hingga juni 2011 yaitu pendaftaran sidang kelulusan. Satu tahun, a very busy year yet fun.

Why we need to do in hard(ware)way?
Apa yang bisa kita dapatkan? Hard(ware)way akan memberikan pelajaran hidup yang berbeda dengan apa yang ditemui di software problem. First of all, hardware problems will teach you about hardwork, literally HARDwork. Ngebor, ngikir, ngebaut, nyolder dan lain-lain. It will remind you that as a engineer, sometimes you need to do "the hardwork". 

Hal lain yang juga penting adalah kemampuan visualisasi, atau kreativitas dalam membayangkan hardware yang akan dibuat. Ini lebih krusial daripada membayangkan simulasi software di kepala, bagaimana tidak, sekali hasil hardware jadi dan bila tidak sesuai yang diharapkan maka kita harus membuat lagi dari awal. Tentunya pengulangan itu menambah waktu, kebutuhan komponen, uang dan mungkin, keringat. Versi agak lebaynya, saya pernah bayangin bentuk kotak atau kontainer rangkaian sambil mandi, pas nunggu pesenan makanan dateng kebayang posisi peletakan sensor, di angkot bayangin bentuk papan eksperimen buat naro mencit (tikus kecil) sampe kelewatan tempat turun. Tapi disitulah seninya hardware, kita mencoba menciptakan apa yang kita bayangkan. Setelah itu bila butuh modifikasi kita harus bisa berusaha memodifikasinya secepat mungkin meskipun hanya berpegang pada sense of engineering (terutama bila kepepet deadline apalagi deadline Tugas Akhir, -HOI MATA BOR MANA!!! GW MAU LULUS JULI!!!-).

Move your ass and interact with others. Salah satu fase pada pembuatan hardware adalah mencari komponen penyusun hardware yang ingin dibuat. Kegiatan ini bisa dilakukan dari sekedar googling atau bahkan diperlukan untuk jalan dan keliling kota untuk mencari bahan yang diperlukan. Karena pernah berhubungan dengan hardware saya sampai hapal daerah cikapundung, banceuy, jalan ABC dan Suniaraja, bukan hanya sekedar jalan tapi memasuki toko satu persatu (Jual motor 3 phase Pak? Jual arcylic dan bisa didesain Mas? Di sini jual lampu proyektor? dan lain-lain). Berkat ini pula saya sampai harus bertukar email dengan supplier dari Belanda, Jerman dan Amerika untuk membeli komponen dalam rangka tugas akhir (khusus Amerika sampai harus email-emailan tengah malem biar cepet dibales!! Maklum saat kita malam, di sana justru siang). Bergantung pada asal komponennya tapi cara-cara pengiriman uang seperi transfer antar negara, via mastercard atau via western union bahkan mengurus bea masuk juga dapat jadi pengalaman berharga. So, we REALLY need to become proactive and move our ass to search the component to build our hardware.

Hal yang tidak kalah penting adalah pencarian dana. Mungkin untuk low level hardware tidak terlalu concern dengan hal ini. Tapi begitu sudah harus bangun hardware di atas 2 juta (oke, mungkin bagi sebagian masih gampang ngeluarin segitu, tapi saya males ngeluarinnya). Di sini "seni" pencarian dana dimulai. Cara yang paling gampang adalah kalau background orang yang kita mintain dana sama "technical"nya atau tinggal minta uang jurusan, itu pasti lancar dan ngejelasinnya ngga terlalu susah. Repotnya,ngga semuanya bisa seperti itu. Kadang kita menyiasatinya dengan mencari sumber dana lain dengan background yang berbeda. Contohnya kewirausahaan, peluangnya sih jujur bukan saya yang lihat, "calon" pembimbing TA saya (Kenapa calon?? Jujur, kalau ngga dapet dana mending saya TA simulasi yang ngga terlalu habis duit daripada hardware yang jelas berdarah-darah), Pak Suprijanto yang tercinta ngasih lihat peluang dana kewirausahaan dan hubungannya sama topik TA yang "mungkin" akan diambil. Udah, sampai di situ. Sampai di situ. Analisa pasar, SWOT produk, 4P (Price, Product, Place and Promotion) analysis, timeline, rencana pemasaran, proyeksi keuntungan dan rencana pengembangan di proposal harus dibuat sendiri.

Mungkin ada yang beranggapan "Ah,kan cuma proposal". Tapi proposal itulah yang dipakai buat milih 40 proposal yang didanai dan menyingkirkan lebih dari 300 proposal lainnya, itu yang membuat bisa didanai sampai 2 digit dan itu juga yang membuat saya lulus. Jadi meskipun hanya proposal, kita harus mendekatinya ke segi bisnis sedekat mungkin. Jadi kita harus dapat menjelaskannya agar orang lain mengerti manfaatnya. Kita ngga hidup sendirian, kita membuat suatu produk untuk dipakai orang lain atau bahkan untuk dijual. Kita harus bisa menjelaskan aspek-aspek teknik dari segi keuntungan bisnis (bukan maksudnya materialistis, tapi hey, R&D juga perlu modal Bung!!). Kita harus membuat sesuatu yang mudah digunakan atau istilahnya "user friendly" dan bahkan mendesainnya agar tidak terkesan "menyeramkan" bagi orang awam.

Technology is about transforming science with engineering into physical form then wrap it with art so people will want to use or even buy it. Just one advice, add a little "economic thought" and get rich with technology.(Narendra Prataksita)

Build hardware from scratch and test it is like a small project management. If you want to be a project manager someday, you should try it. Mulai dari desain, nyari komponen lalu bisa estimasi kebutuhan dana dan pencarian dana. Begitu ada dana, masuk ke sesi pembelian komponen atau pemesanan dan harus menunggu kedatangan komponen. Sambil menunggu kedatangan, mulai desain prototype dan ngerjain apa yang bisa dikerjain. Komponen datang langsung test spesifikasi dan kalibrasi. Perakitan. Lalu eksperimen, ngga berhasil, modifikasi atau bahkan desain dari awal. Belum lagi kalau melibatkan pembelajaran software dan analisa data. Setelah semua selesai, buat laporan atau bahkan manual penggunaan. Timeline harus tersusun rapi dan harus menyesuaikan dengan cepat. Masalah selalu ada, dan kita harus siap dengan apapun Murphy's law ("Anything that can go wrong, will") yang muncul. Komponen yang telat, salah desain, ngga sesuai spesifikasi, data yang ngga bisa diambil dan lain-lain. Tapi masalah-masalah itulah yang akan mendewasakan kita.

SO??
Hard(ware)way or Soft(ware)way, pilihan apa yang diambil akan sangat bergantung pada passion atau keinginan kita. Mungkin saja akan ada pengalaman atau pelajaran baru yang dapat dipelajari dari yang sudah diungkapkan. Tapi saya berani mengatakan kalau kita ngga akan dapet "complete set of experiences" kalau ngga mencoba keduanya.Jadi, bagi yang masih punya waktu cobalah semuanya. Carilah pengalaman sebanyak-banyaknya. Do more, learn more and experienced more

University is not about learn as fast as possible, but it is about learn as much as possible and understand as depth as possible. You need to learn just until you have a confident and better look in your eyes. Until your knowledge and experiences can become the confident behind your smile.

This story dedicated for my friend, Yuniar Gitta Pratama, programmer with beautiful mind and creative hardware designer.

Tidak ada komentar: