//
archives

Bahasa Indonesia

This category contains 72 posts

Menulis Adalah Awal dari Sebuah Peradaban

Itu pesan yang disampaikan almarhum abang siswa Sigit Firmansyah (TN9) yang selalu teringat hingga sekarang. Mudah diucapkan dan sulit untuk dilakukan. Terlebih bagi yang jarang menulis dan lebih banyak coding seperti saya. Dan saat ini mulai menulis bab kedua thesis, Fundamentals and Related Works, di mana banyak isinya berhubungan dengan paper lain. Selama 3 minggu dihabiskan untuk membaca banyak paper, menggarisbawahi/men-stabilo paragraf-paragraf penting, dan memberi catatan kecil di bagian kosong paper agar paragraf-paragraf yang sulit dipahami menjadi lebih jelas. Tidak semua paper diprint, sebagian dibaca langsung dari Adobe Reader. Saat menulis akan dimulai, mencoba membaca kembali semua yang sudah ditandai dan dicatat, bertebaran entah di paper yang mana. Sulit untuk ditelusuri kembali. Semua yang diingat, hilang seketika. Sungguh 3 minggu yang sia-sia rasanya.

Jangan pernah percaya dengan ingatan. Ingatan itu senang berbohong dan berteman dengan keragu-raguan. Entah sudah keberapa kalinya banyak hal menarik yang lupa dan kadang muncul kembali, termasuk ide-ide untuk tulisan di blog atau bahkan di-coding. Dan sering kali pikiran berpindah-pindah dari satu topik ke topik lain tidak menentu, terpecah ketika iseng membaca berita-berita menarik di IEEE Spectrum atau MIT TechnologyReview.com dan muncul ide-ide baru.

Satu solusi yang menarik datang dari Hardi Sukrisman, teman Wirtschaftinformatik di kampus, dengan menggunakan software sejenis MindMapping bernama Sciplore versi beta (dan sudah keluar versi rilis, Docear). Teknik Mind Mapping mungkin sering terdengar atau setidaknya tahu, tapi sama sekali tidak pernah dicoba. Ternyata dikombinasikan dengan Foxit Reader, benar-benar berguna. Foxit Reader memungkinkan pengguna untuk meng-highlight (stabilo), memberi catatan kecil, dan menandai dengan bookmark. Fitur terakhir yang paling penting karena Sciplore akan mengimpor bookmark tersebut ke dalam worksheet Sciplore.

Bahkan karena Foxit Reader versi Linux tidak sebagus versi Windows, saya bela-belain untuk meng-compile Foxit Reader 5.x versi Windows menggunakan Wine 1.4-rc3 selama sejam. 90% bekerja baik. Dokumen PDF yang dibuat dengan LaTeX dapat dibuka, sedangkan yang bukan dengan LaTeX, beberapa tidak bisa. Belum diketahui PDF dari PDF Generator mana yang tidak bisa dibuka. Untuk yang menggunakan Windows, semuanya berjalan sempurna.

Ini sebenarnya hanya teknik lama yang sudah diajarkan oleh guru-guru SD atau SMP ketika murid diajari cara menulis yang baik, yang kemudian dipoles dengan visualisasi dan user experience yang intuitif.

Secara keseluruhan, saya sangat puas dan menganjurkan. Banyak materi penting dari paper-paper yang dikumpulkan jadi satu lebih mudah untuk dianalisis hingga mempercepat penulisan. Software ini juga cocok untuk menuliskan ide-ide liar yang berkeliaran tidak tentu atau kliping fakta berupa angka-angka yang ada di internet, seperti hasil market research Nielsen atau laporan kemajuan pembangunan di daerah-daerah.

Selain itu, lebih hemat kertas yang artinya menghemat uang dan Mind Mapping dalam software memungkinkan untuk digunakan lagi jika ada tulisan atau ide-ide lain.

Semoga software ini menambah minat menulis orang Indonesia, terlebih dalam bahasa Indonesia dan lebih khusus lagi dalam bahasa daerah. Menulis dalam bahasa Inggris juga tidak masalah agar lebih dikenal global, hanya saja sekarang referensi-referensi yang bermanfaat dalam bahasa Indonesia atau daerah sangat sedikit. Menulis dalam bahasa Indonesia bertujuan mencerdaskan bangsa kita sendiri. Orang Jerman banyak menerjemahkan buku-buku berbahasa Inggris, khususnya akademik, ke dalam bahasa mereka sendiri, dan seperti itulah mereka bisa membangun peradaban mereka sendiri, bersaing di level internasional. Mudah bagi mereka untuk menemukan literatur dalam bahasa Jerman. Bukannya membangun peradaban dengan merusak dan membakar bangunan seperti yang marak terjadi di negeri kita tercinta. Itu konyol namanya.

Mari sebarkan ilmu dengan menulis, baik itu bidang elektronik, penerbangan, sipil, lingkungan, sosial hingga sekedar bagaimana memasak coto makasar yang enak. Dalam jangka pendek efeknya mungkin tidak terlihat, tapi dalam jangka panjang, 10 tahun lagi, efeknya akan terasa bermanfaat. Jangan kuatir jika tulisan awalnya tidak berkualitas karena semakin sering menulis gaya tulisan pun akan berubah, seperti tulisan pertama di blog ini tahun 2006.

Danke, Hardi! Ich wünsche du hat mir diese Software seit letze 3 Woche gesagt. Sehr günstig!

NB: Tulisan kali ini tidak seperti 4 tulisan sebelumnya yang lebih banyak referensi karena adanya deadline progress report 3 hari lagi.

NBB: Dan pastinya ini bukan promosi software karena semua yang disebutkan gratis. Jika ada software Mind Mapping atau ada solusi cara menulis yang lebih baik, silakan di-share 

Sistem Rekomendasi dan SpotDokter

Ada update status teman di Facebook yang lucu. Like. Ada Fan Pages Katy Perry di Facebook. Like. Ada berita menarik di Kompas.com. Like. +1. Ada video menghasut SARA di Youtube. Dislike. Ada sepatu warna-warni lucu di Amazon. 4 bintang dari 5. Melihat resensi Batman: The Dark Knight di IMDb. 9 bintang dari 10.

Ketika kita sibuk mengaktualisasi diri, di balik data center Facebook, Amazon, Google, dan IMDb, Recommendation Engine bekerja memproses input-input yang kita berikan melalui tombol Like, Dislike, +1, dan Likert Scale (bintang-bintang) dengan algoritma kompleks– yang bisa ditelusuri di paper-paper berkaitan dengan Recommender Systems (Sistem Rekomendasi), dan memberikan berbagai macam rekomendasi untuk dilihat atau dibeli.

Contoh di Facebook dapat dilihat di sisi kanan laman: People You May Know, People To Subscribe ToDiscover New Games, dan Recommended Pages. Untuk Amazon (dan online shopping lainnya): ada baris dengan judul Customers Who Viewed This Item Also Viewed yang menampilkan barang-barang lainnya (yang mungkin saja menarik untuk dibeli). Dan IMDb di sisi kanan laman, ada Related Lists menampilkan film-film lain dengan genre sama.

Dan sistem ini menjadi terkenal ketika Amazon mengimplementasikannya untuk menjual barang kepada calon pembeli. 20-30% barang-barang yang terjual dihasilkan dari rekomendasi (cara lain untuk meningkatkan pembeliannya adalah melalui pencarian dengan kata kunci– Search dan mengisi karakteristik barang di sisi kiri laman Amazon– Knowledge-based Recommender System). Facebook pun juga menggunakannya untuk Sponsored Ad yang dapat dilihat di sisi kanan news feed.

Singkatnya Sistem Rekomendasi bertujuan memberikan rekomendasi item (barang-barang) baru kepada user (pengguna/calon pembeli) yang akan digunakan [1]. Item di sini bermacam-macam, dari barang jualan, musik, film, restoran, makanan, tempat wisata, hingga teman baru (baca: jodoh).

Pembahasan berikutnya akan menjadi lebih teknis. Stop di sini jika tidak tertarik dan lanjutkan menekan tombol like untuk update status lucu teman-teman di Facebook dan dislike video-video yang memancing kemarahan di Youtube agar dunia ini menjadi damai.

Yang masih membaca baris ini, maka termasuk dalam tipe Aktif Mencari Tahu. Alhamdulillah kalau begitu.

Jadi ada banyak teknik kompleks yang dapat digunakan dalam Sistem Rekomendasi, tapi secara mendasar ada 3 macam: Content-based, Collaborative Filtering, dan Hybrid Recommender [2] [3] [4] [5].

Agar lebih mudah menjelaskan 3 macam algoritma ini, saya akan menggunakan contoh, yaitu app Android yang baru di-launch oleh Project Eden: SpotDokter [6]. Aplikasi direktori mobile untuk memberikan informasi tentang dokter, rumah sakit, apotek, dan laboratorium yang cukup lengkap [7]. Selain itu, app ini memiliki fitur location-aware, meski belum sepenuhnya kelebihan location digunakan.

Permasalahan yang muncul adalah bagaimana kita bisa menemukan dokter yang cocok dengan keinginan kita (preference). Ada orang yang cocoknya dengan dokter A, tapi mungkin tidak terlalu cocok dengan dokter B. Mencari satu per satu melalui direktori jelas bukan pekerjaan mudah. Melakukan pencarian dengan kata kunci, tentu jika kita sudah tahu dokter mana yang ingin dituju. Menggunakan fitur location, ini untuk mencari dokter yang lokasinya paling dekat, bukan mencari dokter yang cocok.

Permasalahan seperti inilah yang coba dijawab Sistem Rekomendasi dengan memberikan rekomendasi dari pengalaman pribadi sebelumnya atau dengan pengalaman pasien-pasien lainnya (Word of Mouth) yang sudah menggunakan jasa dokter tertentu. Saya pribadi (to the best of my knowledge) tidak melihat ada fitur ini pada app SpotDokter dan tertarik untuk memberikan sumbang saran dari sisi akademik. Tentunya masalah privasi menjadi sangat krusial karena ini berhubungan dengan nama baik dokter dan medical record pasien.

Algoritma pertama yang dapat kita gunakan adalah Content-based. Teknik ini akan merekomendasikan dokter dengan menggunakan pengalaman pribadi sebelumnya. Sama sekali tidak bergantung dari pengalaman pasien-pasien lain. Caranya dengan mencocokkan user profile, yaitu dokter-dokter yang sudah di-rating sebelumnya (Like atau 5-star Likert Scale), dengan item profile, semua informasi yang berhubungan dengan dokter-dokter baru yang belum pernah dituju untuk direkomendasikan.

Detailnya, teknik ini dapat diimplementasi dengan menggunakan information retrieval (TF-IDF/Term Frequency – Inverse Document Frequency) untuk memberikan nilai TF-IDF tiap kata pada deskripsi sekumpulan dokter-dokter potensial untuk direkomendasikan dan nilai TF-IDF pada user profile, deskripsi dokter-dokter yang pernah dituju [2] [3]. Kemudian cari dokter yang paling sesuai dengan preference dari user profile menggunakan similarity measure, seperti cosine similarity measure dengan TF-IDF sebagai vektor, sehingga didapatkan sejumlah rekomendasi dokter disorting berdasarkan kemiripan (similary).

Ada 3 masalah yang dimiliki algoritma Content-based. Pertama, tidak semua domain dapat menggunakan teknik ini karena memanfaatkan text processing. Selain itu, kita (atau tim SpotDokter) harus melengkapi semua deskripsi item yang tentunya tidak otomatis dan melelahkan. Kedua, semakin lama rekomendasi (dokter) yang diberikan akan semakin spesifik (overspecialization) sehingga tidak memunculkan rekomendasi yang baru. Dan yang terakhir, adalah new user problem. Penggunaan awal tidak akan memunculkan rekomendasi yang berkualitas karena memang tidak ada sama sekali dokter yang di-rating atau terlalu sedikit data untuk diproses.

Algoritma kedua dan yang cukup populer digunakan adalah Collaborative Filtering. Teknik ini akan merekomendasikan dokter-dokter menggunakan pengalaman pasien-pasien lainnya. Dan pengalaman pasien-pasien lain yang kita gunakan adalah pasien-pasien yang memiliki kemiripan saat merating dokter-dokter yang telah dituju. Dengan demikian, teknik ini sama sekali tidak membutuhkan deskripsi dari item (dokter-dokter) seperti yang disebutkan pada problem pertama Content-based.

Ada beberapa macam implementasi yang akan digunakan, seperti user-based dan item-based [8]. Yang akan dijelaskan di sini adalah user-based sebagai algoritma yang pertama kali muncul dan lebih intuitif. Teknik ini mencoba untuk “memprediksi” rating dari dokter yang belum pernah dituju.

Rating setiap dokter oleh setiap pasien menjadi penting dan khususnya rating 5-star Likert Scale agar menghasilkan rekomendasi yang lebih berkualitas. Dan dari kumpulan rating-rating ini, kita sudah memiliki sebuah matrix user-item (pasien-dokter) yang berisi nilai rating yang berbeda-beda untuk setiap pasangan pasien dan dokter.

Untuk memprediksi rating dokter yang belum pernah dituju (belum dirating) didapat dari hasil aggregasi/penjumlahan dari “kemiripan rating pengguna dengan rating semua pasien-pasien lainnya terhadap dokter-dokter yang sama” menggunakan Pearson similarity (seperti cosine similarity measure) yang diberi bobot weighted sum. Bobot total (weighted sum) di sini bertujuan untuk memberikan bobot lebih pada pasien-pasien lain yang memiliki kemiripan pemberian rating sehingga rekomendasi dokter-dokter akan cenderung cocok dengan pilihan pengguna.

Ada 2 masalah yang dimiliki algorithma Collaborative Filtering. Pertama, new user problem yang sama dengan masalah ketiga dari Content-based. Kedua, new item problem di mana sulit untuk memberikan rekomendasi ketika item (dokter) lainnya belum dirating oleh pengguna (pasien) lainnya. Dua masalah ini jika dijadikan satu maka akan terlihat sparsity atau jumlah rating yang ada terlalu sedikit dibandingkan total rating seluruhnya (user x item) sehingga jika tidak ada irisan di antara rating pengguna dan pasien-pasien lainnya terhadap dokter-dokter yang sama sulit untuk merekomendasikan dokter-dokter baru.

Oleh karena adanya masalah-masalah yang dimiliki oleh Content-based and Collaborative Filtering, maka muncul algoritma ketiga yaitu Hybrid Recommender. Mencoba menggabungkan kelebihan dari tiap algoritma untuk menutupi kekurangan algoritma lainnya. Contohnya seperti yang digunakan oleh [5] menggabungkan Content-based (CB) dan Collaborative Filtering (CF). CB digunakan pada tahap awal penggunaan app untuk menghasilkan pseudo rating sehingga didapatkan matriks yang penuh (full matrix). Kemudian setelah banyak rating aktual dimasukkan barulah digunakan CF untuk merekomendasikan dokter-dokter. Penelitian membuktikan bahwa secara empirik Hybrid Recommender menghasilkan rekomendasi lebih berkualitas ketimbang pure CB ataupun pure CF.

Banyak teknik lainnya yang bisa dieksplor untuk memberikan rekomendasi yang berkualitas kepada para pengguna, seperti memanfaatkan location, di mana ini sudah masuk dalam topik Context-Aware Recommender Systems. Kapan-kapan akan saya bahas.

Sekian, penjelasan pengantar tentang Sistem Rekomendasi dengan contoh app SpotDokter yang baru saja di-launching. Artikel ini hanya bertujuan untuk memberikan gagasan agar kualitas software (dan app) di Indonesia semakin bagus. Selain itu, software (dan app) menjadi raja di negaranya sendiri.

Referensi

[1] F. Ricci, L. Rokach, B. Shapira. Chapter 1: Introduction to Recommender Systems Handbook. Recommender Systems Handbook. Springer. 2011.

[2] G. Adomavicius, A. Tuzhilin. Toward the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions. IEEE Transactions on Knowledge and Data Engineering. pp734-749. 2005

[3] M. Balabanovic, Y. Shoham. Fab: Content-based, Collaborative Recommendation. Comm. ACM, vol. 40, no. 3, pp. 66-72. 1997.

[4] J.S. Breese, D. Heckerman, and C. Kadie. Empirical Analysis of Predictive Algorithms for Collaborative Filtering. Proc. 14th Conf. Uncertainty in Artificial Intelligence. July 1998.

[5] P. Melville, R.J. Mooney, and R. Nagarajan. Content-Boosted Collaborative Filtering for Improved Recommendations. Proc. 18th Nat’l Conf. Artificial Intelligence. 2002.

[6] Dailysocial.net. Aplikasi Direktori Fasilitas Kesehatan SpotDokter Diluncurkan Hari Ini.

[7] Tempo.com. Sakit? Tanya ke Spotdokter.com.

[8] G. Linden, B. Smith, J. York. Amazon.com Recommendations: Item-to-Item Collaborative Filtering. IEEE Internet Computing. Jan/Feb 2003.

Bukan Sekedar Programmer

Jeff Atwood, CTO Stack Exchange, mengklasifikasikan level programmer dalam 8 tingkatan. Dead Programmer, Successful Programmer, Famous Programmer, Working Programmer, Average Programmer, Amateur Programmer, Unknown Programmer, dan Bad Programmer. Oh tentunya ini bukan standar internasional, hanya berdasarkan dari pengalamannya saja. Mengacu dengan klasifikasi Jeff Atwood, sekarang pertanyaannya di level manakah kita sekarang? Lima atau sepuluh tahun lagi akan berada di level yang mana? Pada akhirnya kita mau di level yang mana?

Sedikit mungkin yang ingin menjadi Dead Programmer. Dead di sini bukan dalam arti sebenarnya, melainkan programmer yang kontribusinya kepada dunia besar sekali. Temuan, buku, dan papernya selalu dipelajari dan dikembangkan, bahkan setelah si empunya sudah tiada.

Dan rasanya tidak sopan jika tidak menyebutkan Donald Knuth sebagai salah satu contohnya. Orang komputer wajib hukumnya untuk tahu siapa Knuth. The Art of Computer Programming, buah karya sang Profesor mengenai analisis algoritma  yang dipaparkan dengan sangat detil sudah seperti kitab suci di dunia komputer. Tanpa algoritma yang tepat, sulit rasanya membayangkan komputer akan sekencang saat ini atau chatting di Instant Messenger tanpa delay.

Tapi saya yakin, rasanya banyak di antara kita pasti memilih ingin jadi Successful Programmer. Punya insting bisnis bagus, dikenal di kalangan programmer,  dan code yang ditulis berubah menjadi bisnis sukses, seperti Bill Gates dan Mark Zuckerberg. Atau mungkin contoh lokalnya seperti Andrew Darwis, CEO Kaskus, dan Kris Antoni, CEO Toge Production, bidang game.

Dan sebagian lainnya ingin menjadi Famous Programmer, yang sekarang lebih dikenal dengan sebutan hacker, ninja programmer, atau rockstar programmer. Kemampuan yang dimiliki sudah berada di antara level 2 dan level 3 menurut Programmer Competency Matrix. 20% pekerja yang memberikan 80% kontribusi ke perusahaan. Jenis programmer yang paling banyak dicari. Saat ini, ketika umur masih di bawah 30 tahun, jujur tipe ini yang sedang saya tuju dan yang ingin dibahas di sini.

Ketika kita ingin menjadi Famous Programmer, programmer yang memang benar-benar mengerti tentang programming, apa yang kita lakukan sekarang sudah mencerminkan apa yang dicita-citakan? Berapa jam waktu yang dihabiskan untuk coding dan membaca buku computer science? Apa yang kita coding sekarang sesuatu yang penting atau yang biasa-biasa saja?

Pada tahun 2008, Malcolm Gladwell, dengan bukunya yang berjudul Outliers, berpendapat untuk menjadi ahli di satu bidang, kita harus berlatih minimal 10000 jam. Dibutuhkan sekitar 4 atau 5 tahun (seperti lamanya kuliah sarjana) jika sungguh-sungguh. Contohnya Beatles yang mengasah musikalitas mereka dengan sering manggung di Hamburg atau Bill Gates yang menghabiskan banyak waktunya ketika SMP dan SMA mengakses komputer di George Washington University.

Namun di sisi lain, Dr Hamming, peraih Turing Award dan penemu Hamming Code–satu generasi dengan Shannon, dalam pidatonya You and Your Research di Bellcore pada tahun 1986, bercerita bahwa banyak teman baiknya di Bell Labs bekerja keras bahkan lebih keras dari dia sendiri, namun, tidak banyak temuan yang bisa ditunjukkan. Menurutnya, berjibaku mencoba menyelesaikan first-class problem jauh lebih bermanfaat ketimbang menyelesaikan masalah yang biasa-biasa saja. Proses dalam pengerjaan first-class problem itu lebih penting ketimbang hasil akhirnya.

Dia juga menyadari perbedaan antara orang yang bekerja dengan pintu tertutup dan pintu terbuka. Bekerja dengan pintu tertutup akan lebih cepat menyelesaikan pekerjaan hari ini dan esok harinya. Lebih produktif dari orang kebanyakan. Akan tetapi, 10 tahun kemudian sebenarnya orang tersebut tidak tahu masalah apa sebenarnya yang layak untuk dipilih dan dikerjakan. Sebaliknya, orang yang bekerja dengan pintu terbuka akan sering mendapatkan banyak interupsi dari teman kerjanya. Namun demikan, terkadang dia akan lebih tahu masalah penting apa saja yang ada di dunia ini.

Selain itu, Hamming berpendapat bahwa “great scientist tolerate ambiguity very well”. Ambigu yang dimaksud adalah untuk tidak sepenuhnya percaya dengan apa yang dikerjakan sehingga cukup bisa menyadari adanya kekurangan untuk menjadikan hasil kerjanya menjadi lebih baik.

Dari dua pendapat di atas, terlihat jelas perbedaan bagaimana menjadi seorang ahli. Galdwell menekankan pada kuantitas. Untuk menjadi programmer jago maka dibutuhkan jam terbang yang tinggi. Namun, Hamming berpendapat kuantitas saja tidak cukup. Kualitas dari apa yang diprogram itu sama pentingnya. Dan jangan cepat berpuas diri.

Kuantitas dan kualitas mesti seimbang. Berkutatlah dengan programming hingga minimal 10.000 jam tapi lakukanlah pada hal-hal yang memang penting.

Misalkan, keinginan menjadi ahli di bidang machine learning. Mengerti kelebihan dan kekurangan dari setiap clustering dan classification algorithm. Akan tetapi, dalam prosesnya malah menghabiskan banyak waktu mempelajari computer network, menulis shell scripting untuk mengatur susunan mp3 di harddisk. Tidak salah memang, tapi tidak tepat dengan apa yang dituju.

Awalnya ketika masih menjadi mahasiswa sarjana, jelas sangat perlu untuk belajar segala hal. Mencoba bahasa pemrograman dengan paradigma yang berbeda– prosedural, berorientasi objek, functional, logic, dan lain-lainnya. Mencoba database SQL ataupun NoSQL. Memahami berbagai macam algoritma dan struktur data dasar. Mencoba meraba-raba sebenarnya mau ke mana melangkah, tapi setelah itu, baik sebagai mahasiswa pascasarjana atau bekerja di perusahaan, sudah saatnya mulai mengerjakan first-class problem.

Berat memang. Perlu determinasi dan konsistensi. Contohnya salah seorang teman yang memulai kuliah master. Profesor meminta para mahasiswa S2-nya untuk memilih satu topik yang berhubungan dengan projek-projek yang ada di Apache Project sebagai penelitian. Ada banyak projek menarik dan menggoda untuk dipilih, tapi akan lebih menarik untuk memilih projek yang memang bermanfaat dan dapat diterapkan di Indonesia.

Setelah didiskusikan (atau dijerumuskan?), jatuhlah pilihan pada Apache Mahout. Scalable Machine Learning. Mengapa Mahout? Sebenarnya bukan Mahout-nya yang menarik tapi kumpulan algoritma di dalamnya termasuk recommender system dan machine learning yang jadi alasan utama.

Di Indonesia, memang siapa yang butuh? Jawaban paling mudahnya adalah para pemilik online shopping. Lihat Amazon. Ketika membuka salah satu produk baju olahraga laki-laki, maka akan ditampilkan pilihan-pilihan baju olahraga laki-laki lainnya dengan melihat selera pembeli lainnya yang sama. Lainnya, berguna juga menampilkan barang-barang seperti apa yang sebaiknya ditawarkan ke pembeli dengan mengenali pola-pola pembelian di masa lalu.

Itu baru sebagian kecil aplikasi nyatanya karena penggunaan machine learning cukup luas, dari biometric, image recognition hingga AI robot. Apa yang ingin disampaikan di sini adalah apa yang dipilih mencoba untuk menjawab permasalahan secara tepat sasaran di Indonesia. Saya pribadi akan memasukkan topik ini ke dalam first-class problem. Dan betul, ini bukan topik yang mudah, semudah membalikkan telapak tangan, tapi butuh determinasi dan konsistensi untuk mempelajarinya. “Semangat, mang!”

Semoga makin banyak programmer di Indonesia yang masuk level Famous Programmer. Bukan cuma sekedar coding atau malah membuat spagheti code (atau versi lokal: indomie-code by adegawa) yang membuat pusing programmer lainnya. Saya pribadi, setelah melihat begitu banyak teman di kampus yang ahli di bidang masing-masing, merasa masih menjadi Average Programmer yang butuh jam terbang lebih banyak.

Aktif Mencari Tahu

Terima kasih! Itu yang harus saya ucapkan pada Tim Berners-Lee, seorang computer scientist yang dulu bekerja di CERN. Implementasi komunikasi antara client dan server melalui protokol HTTP yang berhasil dilakukannya menjadi awal mula internet.

Mencari tahu informasi apapun menjadi lebih cepat, mudah dan komprehensif. Dari bagaimana memproses Big Data dengan Apache Hadoop sampai cara memasak ayam goreng kalasan di Youtube. Dan buat saya pribadi, mencari tahu sepak terjang para electrical engineer dan computer scientist semasa hidupnya. Di umur berapa mereka mengenal elektronika/programming, latar belakang pendidikannya, paper-paper apa saja yang pernah dipublikasi, dan teknologi yang digunakan hingga punya produk yang awesome.

Sehat Sutardja salah satunya [1] [2]. Idola baru mahasiswa elektronika di Indonesia sekarang. Chip besutan perusahaan miliknya, Marvell Technology, ada di banyak smartphone di belahan bumi manapun. Kontribusinya ke dunia benar-benar luar biasa. Tapi semua itu tentu dimulai dengan ketertarikannya pada elektronik sejak kelas 6 SD saat berumur 12 tahun. Bersama dengan Pantas Sutardja, adiknya yang masih duduk di kelas 5 SD di Singapura, mencoba membuat generator Van de Graaff. Dan berhasil!

Rasa ingin tahu yang besar berlanjut dengan membuat transistor sendiri untuk memperbaiki radio ayahnya yang rusak. Butuh satu setengah tahun untuk Sehat mengerti bagaimana cara kerja transistor di radio. Determinasi yang tinggi dengan terus membaca majalah elektronika terbitan Inggris membawa Sehat hingga sampai pada tahap “ahaaa!”. Dan pada umur 34 tahun, sejarah Marvell dimulai.

Contoh lainnya yang menarik jelas Il Fenomeno di dunia komputer, Steve Jobs [3]. Tempat tinggal semasa kecilnya berada di daerah industri militer yang saat itu gencar dikembangkan [4] [5]. Sebut saja NASA Ames Research Center, The Lockheed Missiles and Space Division, Westinghouse, Fairchild Semiconductor–yang akhirnya pecah dan memunculkan Intel. Jobs belajar banyak dari Larry Lang tentang elektronika sejak kecil. Tetangga yang juga sekaligus Hewlet Packard engineer, “a hard-core electronics guy“, tempat di mana Jobs sering menghabiskan malam-malamnya mengoprek elektronika.

Menyadap pembicaraan orang tuanya, mengoprek Heathkit, bergabung dengan HP Explorers Club dan mengerjakan frequency counter–alat untuk menghitung jumlah pulse sinyal elektronik per detiknya, dan masih banyak oprekan lainnya yang rasanya tidak cukup ditulis di sini. Akan tetapi, satu oprekan yang perlu dicatat adalah ketika Jobs berumur 20 tahun, berkolaborasi dengan Steve Wozniack, 24 tahun, dan menciptakan Blue Box, yang juga digunakan untuk mengerjai Paus di Vatikan dari California. Alat tersebut terinspirasi oleh John Draper, hacker yang menemukan cara menelepon tanpa biaya dengan menggunakan mainan peluit  dari sereal makanan yang menghasilkan frekuensi 2600 Hz yang sama digunakan oleh AT&T.

Sejak saat itulah, terbentuk kerja sama antara dua orang ini yang akhirnya melahirkan Apple. Satu pernyataan yang menarik tentang Wozniack oleh Jobs adalah “Woz was the first person I’d met who knew electronics than I did“. Ya siapa pun tahu Wozniack adalah si hardware genious, tapi Jobs menjadi CEO bukan cuma karena kemampuannya mempengaruhi orang, melainkan juga karena keahlian elektronikanya. Tanpa itu, sangat kecil kemungkinan Jobs akan bertemu dengan Wozniack. Begitu pula dengan Sehat. Jika saja dia tidak tertarik dengan elektronika, sangat kecil kemungkinan dia akan berkolaborasi dengan adiknya yang sama-sama menyukai elektronika.

Persamaan kedua orang ini adalah aktif mencari tahu, yang pada akhirnya berubah menjadi passion. Jika ada yang mengatakan Jobs beruntung tinggal di daerah Silicon Valley sehingga bisa sukses, maka lihat Sehat yang hidup selama rentang waktu 1961-1980 di Jakarta. Apa ekosistem saat itu mendukung? Jika ada yang mengatakan Sehat beruntung karena cerdas, maka lihat orang tua angkat Jobs yang bukan dari golongan berkecukupan, serta kehidupan Jobs yang hippies hingga berkelana ke India. Yang membedakan hanya masalah kemauan.

Terkurung dalam keterbatasan apakah menjadikan sebuah alasan untuk malas mencari tahu? Jangan katakan itu karena kita akan malu dengan Iran [6]. Projek Bushehr, pembangunan reaktor nuklir yang bekerja sama dengan US pada awalnya, harus terhenti ketika Revolusi Islam meletus pada tahun 1979 di mana Ayatollah Khomeini menggulingkan Mohammad Reza Pahlavi yang pro barat.

Selama 33 tahun lamanya, masalah selalu datang menghadang. Perang 8 tahun dengan Irak menghancurkan sebagian reaktor nuklir. Setelah itu, pemimpin baru Iran yang anti barat menyebabkan kelanjutan pembangunan reaktor selalu dicegah oleh US dan Israel dengan alasan pengayaan uranium bukan digunakan untuk masalah energi listrik melainkan bom nuklir. Yang tentunya jelas akan mengganggu hegemoni US di Timur Tengah jika saja Iran menjadi negara kuat [7]. Pada akhirnya, engineer nuklir Iran berhasil menyelesaikan reaktor tersebut bekerja sama dengan bantuan Rusia.

Berhasilnya US drone diturunkan “secara paksa” oleh militer Iran tanpa cacat pun, menjadi semakin bukti nyata betapa cerdasnya para engineer Iran [8]. Mengamati penggunaan drone untuk memerangi Al-Qaida di Afganistan dan beberapa US drone yang jatuh ditembak sebelumnya, cukup memberi pengetahuan bagaimana menaklukkan “The Beast of Kandahar” yang naas itu. Oh tentu, “mainan” baru ini akan di-reverse engineering untuk transfer teknologi militer Iran. Saya percaya di balik para tentara yang berperang dengan gagah berani di garis depan, sekelompok engineer di pusat penelitian akan terus mendukung dari belakang untuk memperbesar kemungkinan memenangkan peperangan.

Reverse engineering juga hal yang menarik. Membaca paper dan blog engineering di perusahaan-perusahaan internet akan memberi kita kemampuan analisis untuk mendesain sistem jika ingin mendirikan startup yang lebih research-based. Mencari tahu bagaimana cara kerja search engine Google [9]. Mengapa algorithma PageRank bisa memberikan hasil pencarian yang lebih relevan ketimbang search engine lainnya [10]. Mengapa Facebook mengganti database NoSQL Cassandra dengan Apache HBase untuk layanan Facebook Message [11]. Atau bagaimana Twitter merancang backend-nya sehingga mampu menangani tweet yang jumlahnya luar biasa banyaknya [12].

Mencari tahu tidak harus melulu tentang teknologi. Membaca berita di media-media Indonesia pun juga. Jangan menangkap berita sepotong-sepotong. Cross check dengan pemberitaan dari media lain, baik cetak maupun elektronik, karena sekarang media sudah menjadi alat politik untuk menggiring opini masyarakat. Mungkin yang paling menyedihkan adalah bagi masyarakat yang jarang atau sulit mengakses informasi karena mudah untuk diprovokasi. Contohnya adalah kasus demo buruh di Bekasi hingga mengakibatkan macet total di jalan tol Jakarta-Bandung hingga lebih dari 5 jam baru-baru ini [13].

Sudah seberapa besar rasa ingin tahu kita (tentunya yang positif)? Bisa dimulai dengan yang sederhana seperti seberapa banyak kita tahu tentang orang-orang di lingkungan kerja, baik partner kerja, bawahan, dan atasan. Mengetahui nama panggilannya dan berasal dari daerah mana pun sudah cukup. Jangan berpikir, “memang dia penting?”. Orang akan menghargai kita jika mengingat nama mereka. Kita tidak akan pernah tahu di masa yang akan datang, mungkin mereka akan jadi penolong di saat kesusahan.

Satu hal yang pasti. Semakin banyak tahu, semakin besar keberuntungan akan datang. Jangan sia-siakan penggunaan internet. Sekarang internet so.. dekaaat!

Update

Hanya untuk Computer geek. Wajib hukumnya untuk membaca paper Google sekali dalam seumur hidup. Referensi [9].

Referensi

[1] http://indonesiasetara.org/sehat-sutardja-tak-kenal-menyerah/

[2] http://spectrum.ieee.org/semiconductors/design/sehat-sutardja-an-engineering-marvell/1

[3] W. Isaacson. “Steve Jobs”. Little, Brown. 2011

[4] http://steveblank.com/2009/08/03/the-secret-history-of-silicon-valley-part-vii-we-fought-a-war-you-never-heard-of/

[5] http://steveblank.com/2010/01/07/the-secret-history-of-silicon-valley-part-13-lockheed-the-startup-with-nuclear-missiles/

[6] http://www.payvand.com/news/03/oct/1015.html

[7] http://www.globalresearch.ca/articlePictures/new_us_bases.png

[8] http://www.csmonitor.com/World/Middle-East/2011/1209/Downed-US-drone-How-Iran-caught-the-beast/(page)/2

[9] S. Brin, L. Page. “The Anatomy of a Large-Scale Hypertextual Web Search Engine”. Proceedings of the 7th int’l conf. on World Wide Web. 1998.

[10] L. Page, S. Brin, R. Motwani, T. Winograd. “The PageRank: Bringing Order to the Web”. 1999.

[11] http://www.facebook.com/notes/facebook-engineering/the-underlying-technology-of-messages/454991608919

[12] http://engineering.twitter.com/2011/08/storm-is-coming-more-details-and-plans.html

[13] http://www.tempo.co/read/news/2012/01/27/058380059/Penumpang-Travel-Bandung-Jakarta-Terjebak-5-Jam

Menemukan Gagasan di Balik Tumpukan Artikel dan Paper Iimiah

Seminggu penuh membaca banyak artikel, paper, dan jurnal ilmiah yang diterbitkan IEEE dan ACM, sekitar 20-an paper, ternyata menyenangkan juga. Seperti lupa dunia dan tenggelam dalam pencarian pengetahuan sebanyak-banyaknya. Serasa mahasiswa S3 yang dikejar deadline untuk mempublikasikan paper di sebuah konferensi.

Menelusuri referensi yang ada di halaman belakang, melihat seberapa banyak dikutip paper lainnya di Google Scholar untuk mengetahui seberapa berkualitasnya paper, dan tentu di-print dalam bentuk hardcopy.

Biarlah tinta asli printer Lexmark Z600 Series, yang harganya 22 Euro di Jerman sebanding dengan harga printer itu sendiri di Indonesia, digunakan. Asalkan banyak pengetahuan bisa diserap.

Beruntung universitas memiliki akses IEEE, ACM, dan beberapa website lainnya untuk men-download artikel, paper, dan jurnal ilmiah. Kesempatan yang tidak boleh disia-siakan selama menjadi mahasiswa di sini.

Dan setelah membaca tumpukan paper-paper yang berserakan memenuhi meja dan kasur selama seminggu ini muncul beberapa gagasan menarik dan sederhana. Meskipun, cukup banyak juga paper-paper yang sulit dipahami. Entah apa yang ada di pikiran para peneliti ini hingga mampu menemukan solusi dengan cara-cara yang rumit.

Salah satu gagasan sederhana yang menarik untuk dicermati adalah bagaimana mendesain mobile application yang dapat memprediksi waktu yang diperlukan untuk berjalan dari titik A ke titik B [1]. Ketimbang menggunakan algoritma kompleks dengan memperhitungkan banyak faktor yang mempengaruhi waktu tempuh pengguna, sistem dapat memprediksi perkiraan waktu dengan menggunakan log perjalanan orang-orang lain yang memiliki rute sama sebelumnya. Fokus dari gagasan ini adalah bagaimana teknologi komputasi diterapkan pada orang-orang dalam jumlah banyak, di mana mereka adalah bagian dari social structure. Istilah social yang sekarang menjadi trend di dunia akademik ilmu komputer.

Contoh gagasan menarik lainnya adalah memanfaatkan context, seperti lokasi, waktu, infrastruktur dan lainnya [2], untuk mengoptimalkan penggunaan energi di sektor transportasi, di mana dalam paper ini membahas khusus tentang taksi [3]. Dengan memanfaatkan GPS (Global Positioning System) di smartphone, sistem dapat memberikan rekomendasi di mana taksi-taksi harus berhenti menunggu penumpang sedemikian hingga penggunaan bensin dapat dihemat sebisa mungkin. Gagasan sederhana yang mampu meningkatkan peluang sukses bisnis sebuah perusahaan.

Dua contoh di atas hanya sebagian kecil dari gagasan lainnya yang jumlahnya tak terhingga banyaknya di balik website-website ilmiah itu. Gagasan-gagasan terus berkembang dari tahun ke tahun dan saling melengkapi. Gagasan-gagasan baru terus bermunculan. Menjadi fondasi dasar untuk gagasan-gagasan baru lainnya.

Di antara gagasan itu ada juga yang pada mulanya gagal diterima hingga beberapa tahun kemudian dilanjutkan kembali oleh peneliti lain. Dengan situasi yang berbeda dan teknologi pendukung yang ikut berkembang, gagasan gagal itu sekarang malah diterima banyak orang.

Contohnya layanan berbasis lokasi atau dikenal dengan Location-Based Services (LBS) [4]. Aplikasi LBS pertama di dunia adalah E911 (Enhanced 911) untuk keperluan darurat, di mana pemerintah Amerika pada tahun 1996 mengesahkan UU untuk memfasilitasi penggunaan LBS. Adanya layanan E911 akan memudahkan tim penolong 911 untuk mencari posisi orang dalam keadaan darurat. Sayangnya teknologi GPS saat itu kurang akurat sehingga operator-operator telekomunikasi menghentikan layanan tersebut.

Sekarang teknologi LBS digunakan oleh berjuta-juta penduduk dunia. Sebut saja Foursquare, Gowalla, SCVNGR yang berpusat di US dan Bouncity, Koprol yang ada di Indonesia. Didukung kemajuan penelitian GPS dan mewabahnya social network, layanan berbasis lokasi ini sudah berubah dari gagasan di atas kertas menjadi bisnis.

Terkadang dengan penelurusan referensi, bisa ditemukan paper yang dipublikasi oleh peneliti Indonesia di universitas-universitas luar negeri. Salah satunya adalah paper milik Prof. Juliana Sutanto, associate professor di Department of Management Information System ETH Zurich [5]. Yang sering menonton Kick Andy mestinya tahu beliau, dalam seri Berjaya di Negeri Orang.

Oleh karena itu, alangkah sayangnya bagi mahasiswa-mahasiswa Indonesia yang kurang tertarik untuk membaca paper, baik mahasiswa S1 dan S2. Kalau mahasiswa S3,  tidak perlu diberitahu karena mereka sendiri yang perlu mencari paper untuk publikasi.

Ada begitu banyak gagasan di sana yang menarik untuk dicermati. Yang seringkali bersinggungan langsung atau tidak langsung dengan kehidupan kita. Gagasan-gagasan yang semestinya mampu menjawab permasalahan yang ada di Indonesia.

Tidak harus pada akhirnya menjadi peneliti untuk terus menerus membaca paper. Menjadi pegawai BUMN yang hobi membaca paper juga tidak masalah toh. Syukur-syukur bisa memberi solusi jika atasan sedang ada masalah teknis.

Ibu-ibu muda yang lagi hamil pun juga tidak dilarang membaca paper. Ketimbang berpindah-pindah saluran TV yang melulu sinetron di mana si protagonis selalu dianiaya oleh ibu tiri dan seperti tiada habis-habisnya atau media Indonesia yang kerap memberitakan kejahatan dan korupsi, diperparah pula sudah menjadi corong politik tiap partai, bukankah waktu menonton itu bisa diganti dengan membaca paper. Kualitas ibu-ibu Indonesia meningkat dan si “calon jagoan kecil” ikut cerdas.

Membaca paper akan mengubah pola pikir menjadi terstruktur dan rasional. Mengungkapkan pendapat berdasarkan fakta-fakta yang ada. Tidak yang asal “katanya si anu…”.

Teringat almarhum ayah saya. Beliau akan sangat marah besar kepada anak-anaknya jika tidak yakin dengan apa yang diucapkan dan hanya berdasar “katanya si X dan katanya si Y, boleh-boleh saja”. Memakan waktu satu jam lebih untuk mendisiplinkan anak-anak beliau untuk memahami hal ini dan tentu juga berulang-ulang.

Sekarang jika sudah membaca sampai di sini dan jarang membaca paper, mulailah dengan membuka Google Scholar dan cari artikel/paper yang menarik sesuai minat masing-masing. Membaca satu artikel/paper dalam waktu seminggu sudah cukup bagus.

Semakin banyak yang membaca paper, akan semakin banyak gagasan menarik bermunculan yang mampu menjawab permasalahan di sekitar kita. Meski tidak berbuat nyata, tapi gagasan akan menyebar dan terus diperbarui hingga akan ada seseorang yang mengimplementasikan di lapangan.

Referensi

[1] A. Schmidt. “Ubiquitous Computing: Are We There Yet?”. IEEE Computer, vol. 43, no. 2, pp. 95-97. 2010.

[2] Albrect Schmidt, Michael Beigl, Hans-W. Gellersen. “There is more to context than location”. Computers and Graphics 23 (1999) 893-901.

[3] Y. Ge, H. Xiong, A. Tuzhilin, K. Xiao, M. Gruteser, M. J. Pazzani. “An Energy-Efficient Mobile Recommender System”. KDD 10. 2010.

[4] P. Bellavista, A. Kuepper, S. Helal. “Location-Based Services: Back to the Future”. IEEE Computer Society, pp. 85-89. April-June 2008.

[5] Magagna, F., Jaccomuthu, M., Sutanto, J., “CA2P: An approach for privacy-safe context-aware services for mobile phones”, 4th IEEE International Conference on Ubiquitous-media computing (Umedia 2011), Sao Paulo, Brazil, July 2011

Tak Terasa 2 Tahun Sudah…

Besok 20 Juli sebenarnya saya ada final exam di TU Muenchen. Dan untuk membunuh rasa bosan 3 hari mengurung diri belajar, maka menyempatkan diri untuk membuka foto-foto lama dan sampailah ke sebuah foto wisudaan saya saat berkuliah di ITB.

Namanya bahagia ya mesti dibagi-bagi, jadi dikirimlah foto ini ke salah satu pelaku yang juga lagi bahagia di foto tersebut. Kita sebut aja namanya Tomy. Dari sinilah awal percakapan menarik terjadi:

Mau tahu? Percakapan dan foto yang diperbincangkan

RPM

Jika RPM disahkan dan saya punya uang, saya berencana untuk mendirikan perusahaan teknologi di LUAR Indonesia.

ngobrolin (Pak) Budi Yuwono

Sabtu yang indah ini, ketika banyak orang jalan-jalan di Marienplatz, saya, pemuda tanggung gak ada kerjaan, malah menghabiskan waktu mencari referensi-referensi untuk menulis term paper terkait Cluster Computing. Term paper hanya paper biasa untuk tugas kuliah saja kok, bukan untuk dipublish di sebuah konferensi besar. Dan selama ber-googling-ria, informasi yang saya dapat adalah googlebotweb crawler milik Google, pun menggunakan prinsip Parallel Computing. Paralel Computing adalah superset, sedangkan Distributed Computing, Cluster Computing, dan Grid Computing adalah subset. Mari difokuskan pencarian topik di belantara internet dengan keyword parallel web crawler dan akhirnya menemukan sebuah paper menarik oleh Junghoo Cho, berjudul Parallel Crawlers di posisi paling atas halaman pencarian Google.

Continue reading

ngobrolin WinnuAyi.com

Tiga hari yang lalu email peringatan dari penyedia layanan web hosting masuk ke dalam inbox. Isinya memberitahu saya bahwa masa aktif hosting WinnuAyi.com segera habis dan meminta saya untuk memperpanjangnya. Dan hari ini resmi website resmi saya tidak dapat diakses aka di-suspend oleh penyedia layanan.

Sayangnya saya tidak bisa mentransfer uang melalui ATM lagi untuk memperpanjang masa aktif hosting karena sudah tidak di Indonesia. Jadi, untuk sementara waktu biarlah WinnuAyi.com diistirahatkan dulu.

Segera dalam waktu dekat hostingnya akan dipindah ke tempat lain dan kandidat utama hingga saat ini adalah Google App Engine. Kenapa saya memilih Google App Engine? Alasan utamanya adalah gratis dan mendukung Python! Yup, I do love Python!

ngobrolin VLSI FC : Juara Liga BHTV III

pialaliga

Setelah melalu kompetisi liga yang cukup ketat selama kurang lebih 6 bulan, akhirnya VLSI FC, sebuah klub bola berisikan peneliti-peneliti muda dari kampus ganesha, berhasil menjuarai liga BHTV musim ketiga. Penyerahan piala diberikan oleh Presiden FIFA [:D], Budi Rahardjo dari INDOCISC kepada manager VLSI FC, M Iqbal Arsyad di Hiroz Futsal, Jl Brigjen Katamso, Bandung (dekat taman makam pahlawan).

Terima kasih kepada tim-tim lain yang telah ikut berkompetisi. Semoga di musim ke-4 kita bertemu lagi.