Thursday, December 12, 2013

Kesan dan Pesan Selama Tugas Akhir :)

Tulisan ini adalah sedikit penjelasan dan curahan saya sebagai mahasiswa tahun akhir dahulunya. Karena sekarang saya telah mendapatkan gelar Sarjana Teknik (S.T). Tak perlu takut, karena tulisan ini saya lampirkan di tugas akhir karena Bapak Pembimbing yang memintanya.

Kesan
            Tugas akhir ini awalnya adalah sesuatu yang tidak akan dapat saya selesaikan. Diawali dengan pengambilan judul yang ditawarkan pembimbing. Awalnya, saya tidak begitu tertarik dengan bidang implementasi dari komputer vision, dan hanya tertarik dengan image processing. Saya juga tidak tahu kalau image processing merupakan bagian dari komputer vision. Setelah saya menerima judul yang ditawarkan pembimbing, saya terkejut karena banyak hal-hal yang tidak saya ketahui, dan ini menakjubkan serta menimbulkan ketakutan kalau-kalau saya tidak bisa menyelesaikan tugas akhir ini. Terlebih lagi, judul ini diikutsertakan dalam Program Kreativitas Mahasiswa (PKM).
            Hal pertama yang saya lakukan dalam memulai tugas akhir ini adalah mempelajari tentang image processing, speech processing, dan mikrokontroler tingkat lanjut. Ternyata bukan hal itu saja, hubungan komputer dengan kamera juga dipelajari. Dari hal tersebut, barulah saya menyadari betapa minimnya pengetahuan saya tentang alat yang akan saya buat agar bisa menyelesaikan studi di Teknik Elektro UNAND ini. Awal pengerjaan, saya merasa susah untuk menampilkan kembali hasil tracking kamera sangat sulit dan membutuhkan membutuhkan memori yang besar. Awalnya saya ingin mengolah hasil rekaman, tapi ternyata tidak efektif untuk pengimplementasian dispenser otomatis ini. Saya berusaha agar bisa mengolah video secara online. Ternyata saya juga tidak bisa melakukannnya. Saya mulai hilang akal untuk pengolahan video secara online (langsung) atau realtime ini. Akhirnya, saya berpikir agar bagaimana kamera bisa mengambil frame dari videonya saja, dan menyimpannya ke dalam file bitmap agar bisa diolah oleh program penghitung ukuran gelas. Alhamdulillah, cara ini akhirnya berhasil.
            Berhasil mengambil frame gambar dari video, langkah selanjutnya yang dilakukan adalah  membuat program agar bisa menghitung ukuran gelas. Program awal yang telah dibuat adalah program segmentasi gambar dan penghitung volume gelas dengan menggunakan bahasa pemograman MATLAB. Ternyata hasil yang diperoleh tidak bagus. Ukuran gelas yang didapat secara segmentasi, jauh berbeda dengan ukuran sebenarnya. Kemungkinan hal ini terjadi karena background objek yang digunakan adalah warna putih. Kemudian, warna background objek diganti menjadi hitam. Hanya sedikit perubahan yang terjadi. Sementara saya melihat matrik-matrik yang dihasilkan dari hasil semgentasi gambar sudah cukup bagus mewakili setiap objek dan background-nya. Tetapi kenapa hasil yang didapatkan jauh dari yang sebenarnya? Saya mencari tahu di mana kesalahan itu berawal. Ketika saya menanyakan tentang MATLAB di laboratorium komputer, mereka tidak terlalu paham dengan pemograman MATLAB tingkat lanjut. Awalnya saya mengira ini bukan pemograman tingkat lanjut. Tapi ternyata, bagian image processing dalam MATLAB adalah pemograman tingkat lanjut. Saya mulai pusing lagi, karena pemograman MATLAB yang saya kuasai cuma dasar-dasar yang diperoleh dari kuliah Dasar Sistem Kontrol saja. Bertanya pun ke laboratorium pemograman, mereka lebih memahami Visual C++  dibanding  MATLAB.
            Melihat matriks-matriks yang dihasilkan sewaktu proses segmentasi cukup bagus, saya berpikir untuk menggabungkan dua buah pemograman dalam menghitung ukuran gelas ini. Pertama, program segementasi gambar mengguakan MATLAB, dan program menghitung volume menggunakan Visual C++. Itulah alasan kenapa saya menggabungkan dua bahasa pemograman sekaligus, bukan untuk mempersulit pekerjaan, tapi hanya ini yang bisa saya lakukan di tengah keterbatasan yang saya miliki. Apakah alasan itu diterima penguji saya? Tentu saja tidak. Tapi, saya tetap mengakui kekurangan saya.
Alhamdulillah cara menggabungkan dua bahasa pemograman berhasil. Hasil segmentasi yang dihasilkan cukup bagus, dan program penghitung ukuran, volume gelas, sekaligus pengenalan perintah berjalan dengan baik dengan error yang tidak begitu besar.
Selesai cara menghitung volume, timbul lagi permasalahan baru, yaitu bagaimana mengirim data secara realtime ke mikrokontroler. Dengan kata lain, saya harus membuat pemograman yang adaptif terhadap data yang dikirmkan, kapanpun waktunya. Jadi, dibutuhkan pemograman yang general, tapi sesuai dengan konteks pengiriman data realtime. Di sinilah kelebihan tugas akhir saya.
Berbeda dengan tugas akhir senior-senior saya. Di mana, ketika pertama saya mendengarkan jabaran tentang rancangan tugas akhir ini dari pembimbing saya, hal pertama yang saya pikirkan itu adalah tugas akhir ini cuma butuh sedikit pengerjaan lagi. Sama dengan pemikiran salah satu penguji saya, karena yang berbeda adalah implementasi alatnya saja, sedangkan sistemnya sama (pengolahan gambar dan pengolahan suara). Jadi, penguji saya menambahkan supaya membuat rancangan pengolahan suara sendiri. Awalnya saya pikir itu mungkin saja, karena saya tidak ingin ketika lulus nanti seseorang mengatakan saya lulus karena sedikit pekerjaan lagi dari merampungkan tugas akhir senior saya. Ternyata pemikiran saya dan penguji saya itu langsung dipatahkan oleh kenyataan. Kenyataan bahwa tugas akhir saya ini menggunakan pemograman sebelumnya (pengolahan gambar dan pengolahan suara serta mikrokontroler). Pertama, program image acquition yang digunakan senior-senior saya beroperasi dengan windows XP, sedangkan saya menggunakan windows 7. Ketika saya install ulang pun sistem operasi komputer saya, program image acquition tidak berjalan sesuai dengan yang diharapkan. Otomatis, image acquition yang telah dirancang tidak bisa diterapkan dalam sistem alat saya. Kedua, teknik pengolahan video berbeda dan pengolahan suara yang saya gunakan adalah secara online. Ketiga, teknik penghitung ukuran gambar tentu saja jauh berbeda dengan teknik penentuan warna yang dipakai pada tugas akhir sebelumnya.  Keempat, sistem komunikasi yang digunakan sebelumnya adalah komunikasi paralel, sedangkan tugas akhir ini menggunakan sistem komunikasi serial.
Nah, kembali ke bahasan mengenai pengiriman data secara realtime menggunakan komunikasi serial. Ketika mulai pengerjaan pemograman tahap ini, saya terkendala. Saya cuma bisa mengirim data menggunakan hyperteminal, sedangkan untuk implementasi alat ini, penggunaan hyperterminal sangat tidak efektif. Pembimbing saya menginginkan ketika program di run, data terkirim tanpa harus menggunakan hyperterminal. Saya konsultasi dengan salah satu asisten di Laboratorium Elektronika Industri. Ternyata mereka juga kurang paham dengan mengirim data secara realtime.
Terkendala dipengiriman data secara realtime menyebabkan penyelesaian tugas akhir ini tertunda dua bulan. Tidak ingin tertunda lagi, saya skip cara pengiriman data. Saya merancang pemograman di mikrokontroler terlebih dahulu. Selesai merancang pemograman menggunakan BascomAVR, untuk pengiriman data secara serial dan realtime ternyata saya dibantu oleh mahasiswa S2 Teknik Elektro Unand, Mas Roy.
Pengiriman data dan pemograman mikrokontroler telah selesai, yang dilakukan adalah memprogram chip mikrokontroler tersebut. Proses memprogram chip ini juga terjadi masalah. Saya salah memasang fuse bit mikrokontroler tersebut. Dampak kesalahan tersebut adalah mikrokontroler saya kena lock. Tidak rusak, tetapi tidak bisa dipakai. Ketika saya menayakan masalah ini ke asisten Laboratorium Elektronika Industri (LEI), mereka tida bisa membuka mikrokontroler yang telah terkunci. Saya bingung lagi, tidak mungkin membeli lagi mikrokontroler tersebut, bukan masalah harga, tetapi menunggu mikrokontroler itu sampai satu minggu lebih. Akhirnya, saya meminjam mikrokontroler LEI dan merancang ulang pemograman kembali, karena mereka meminjamkan mikrokontroler Arduino. Tetu saja berbeda dengan ATMEGA yang menggunakan bahasa pemograman BascomAVR, Arduino menggunakan pemograman C. Saya rasa, dari hal-hal berat yang saya lalui selama pengerjaan tugas akhir ini, bagian mikrokontroler dengan hal-hal yang terjadilah yang paling berat, meliputi mengirim data serial secara realtime, dan membuat ulang pemograman mikrokontroler dengan bahasa  pemograman lain. Setelah pengambilan data selesai, hal yang saya lakukan selanjutnya adalah membuat video dan seminar tugas akhir serta sidang tugas akhir.
Seminar tugas akhir telah dipersiapkan secara sempurna menurut saya. Tetapi, masih banyak kekurangan yang saya miliki, baik dari segi penguasaan materi maupun penulisan. Saya berterimakasih kepada penguji kareana memberitahu saya kesalahan itu, sehingga saya melakukan perbaikan untuk sidang tugas akhir.
Saya mempersiapkan segala sesuatunya untuk sidang tugas akhir ini. Mulai dari belajar secara teori tentang pengolahan sinyal digital, pengolahan citra digital, dan mikrokontroler tingkat lanjut. Menurut pemikiran saya, kalau mengenai teori-teori tersebut, saya bisa menjelaskannya.Akan tetapi, jauh diluar dugaan saya. Hal yang ditanyakan penguji di bidang pengolahan suara bukanlah masalah pengolahan sinyal digital yang merupakan dasar-dasar pengolahan suara digital, tetapi tentang model-model suara secara detail. Saya tidak menyangka hal itu akan ditanyakan, karena ketika saya konsultasi dengan senior-senior dengan tugas akhir pengolahan suara dan pengolahan gambar, hal-hal itu tidak ditanyakan dan tidak disinggung sama sekali. Saya merasa gugup waktu itu, karena memang tidak terpikirkan sebelumnya. Jika bahasan mengenai pengolahan gambar dan mikrokontroler, alhamdulillah saya bisa menjawab walaupun terkadang jawab yang saya berikan kurang memuaskan. Alhamdulillah saya bisa lulus.
Pesan untuk Tugas Akhir
            Kesan-kesan yang saya lalui, membuat saya ingin member pesan-pesan untuk pembimbing dan mahasiswa yang akan melanjutan tugas akhir ini :
·       Inti utama tugas akhir ini menurut saya adalah algoritma dan pemograman, jadi sebisa mungkin ada pembimbing yang paham dengan pemograman, sehingga tidak perlu terjadi penggunaan beberapa bahasa pemograman yang menurut saya kurang efektif.
·       Jika ingin mengembangkan alat ini, tidak bisa diselesaikan satu orang dalam waktu yang cepat. Setidaknya, alat ini menurut saya bisa dikerjakan tiga orang dengan waktu yang proporsional. Satu orang untuk pengolahan suara dengan menggunakan metode tertentu (metode berbeda dengan tugas akhir ini), satu orang untuk pengolahan citra dengan menggunakan metode tertentu (metode berbeda dengan tugas akhir ini), satu orang untuk perancangan mikrokontroler yang sesuai dengan sistem. Jika ingin digabungkan menjadi satu sistem secara utuh, juga membutuhkan satu orang lagi. Dengan kata lain, mewujudkan sistem ini secara keseluruhan membutuhkan empat orang mahasiswa. Menggabungkan sistem-sistem ini merupakan pekerjan yang berat walaupun sebelumnya telah dikerjakan pemograman-pemograman untuk tiga bidang tersebut. Ini dikarenakan algoritma setiap orang berbeda-beda.
·       Berhati-hati dalam meprogram chip mokrokontroler.

·       Mempelajari chip pengganti komputer sangat penting dilakukan agar sistem ini bisa dioperasikan tanpa harus menggunakan komputer. 

Social Icons