Tulisan ini dibuat pada tanggal 14 November 2007
Indonesia sebenarnya memiliki sumberdaya manusia di bidang teknologi informasi yang mumpuni. Sekedar bukti nyata, mahasiswa Indonesia belum lama ini menjadi salah satu jawara dalam TopCoder Collegiate Challenge 2007. Tahun sebelumnya, di Google Code Jam, mahasiswa asal Indonesia menjuarai Google Code Jam India 2006.
Lomba antar mahasiswa merupakan ajang menarik untuk unjuk diri, apalagi jika lomba tersebut menyediakan hadiah yang menggiurkan. Di tingkat nasional, Direktorat Jenderal Pendidikan Tinggi (Ditjen Dikti) setidaknya menyelenggarakan dua macam lomba, yakni Kontes Robot Indonesia (KRI) dan Kontes Robot Cerdas Indonesia (KRCI). Para peserta lomba diberi tujuan yang harus dicapai oleh robot ciptaan mereka. Pemenang KRI/KRCI akan mewakili Indonesia dalam kancah Robocon Asia Pasifik.
Secara umum, lomba atau pertandingan bisa dibedakan menjadi dua macam:
- Peserta berusaha mencapai hasil terbaik; mulai dari balap lari, menembak, hingga lari karung dan makan krupuk di acara tujuhbelasan :-) Siapa bisa mencatat hasil atau waktu terbaik itulah pemenangnya.
- Peserta berhadapan satu sama lain untuk saling mengalahkan; mulai dari sepakbola, basket, catur, hingga main kartu remi. Jika pengin jadi pemenang, kalahkan lawanmu!
Ajang seperti TopCoder Collegiate Challenge dan Google Code Jam termasuk macam lomba yang pertama. Peserta diberi beberapa soal dan waktu untuk menyelesaikan soal tersebut dengan benar dan cepat. Kebenaran jawaban dan kecepatan menjawab menentukan berapa nilai yang diperoleh peserta. KRI/KRCI juga termasuk lomba macam ini.
Menurutku, lomba seperti itu kalah menarik dibandingkan dengan macam lomba yang kedua. Dasar aku penggemar sepakbola, aku sangat senang saat berkesempatan nonton FIRA European Championship Robosoccer 2005. Robot-robot kecil bermain sepakbola di lapangan kecil untuk mengalahkan lawan. Ada yang bermain ala kampung, satu bola dikeroyok banyak robot; ada yang mengandalkan kerjasama antar robot, satu mengumpan satu menyundul. Menarik sekali :-)
Sebagai pengajar di bidang informatika, aku mencari-cari: adakah lomba yang khusus ditujukan bagi mahasiswa informatika atau ilmu komputer? Bukan semacam TopCoder Collegiate Challenge atau Google Code Jam, tetapi lomba yang menghadapkan dua atau lebih program untuk saling mengalahkan.
Robosoccer, seperti yang aku tonton, adalah ajang unjuk diri yang lebih ditujukan buat mahasiswa informatika. Robosoccer tak menilai aspek elektro-mekanika, karena yang penting robot bisa bergerak sesuai program untuk memenangkan pertandingan. Robot tak perlu dibikin sendiri, boleh beli di pasaran asalkan spesifikasinya mematuhi aturan pertandingan. Robosoccer mengutamakan pada kecerdasan buatan: bagaimana robot-robot saling bekerjasama mencetak gol atau menghadang serangan lawan.
Sayang, Ditjen Dikti belum membuka kesempatan bagi mahasiswa informatika untuk ikut bersaing di ajang internasional seperti itu. Robosoccer (atau lomba lain semacam itu) tidak masuk agenda tahunan nasional :-( Maukah Asosiasi Perguruan Tinggi Informatika dan Komputer (APTIKOM) mengusulkannya ke Ditjen Dikti? Ataukah, ada yang punya informasi atau gagasan lomba yang lain?
Aku punya gagasan: bagaimana jika diadakan suatu pertandingan program cerdas yang tak perlu mainan fisik (robosoccer perlu robot-robot kecil). Ketiadaan mainan fisik bertujuan memperlebar pintu akses bagi banyak mahasiswa. Asal punya komputer dan bisa memprogram, seorang mahasiswa bisa turut bertanding. Mulailah dari permainan yang sederhana, main kartu, misalnya. Banyak macam permainan dan tingkat kesulitan. Ambillah yang mudah dulu.
Umpama suatu permainan menghadapkan dua program peserta: A dan B, seperti pada gambar di bawah. Kedua program tersebut saling berhadapan melalui suatu program lain yang bertindak sebagai ajang pertandingan. Interaksi antara program peserta dan program ajang permainan dilakukan dengan mematuhi suatu protokol pertandingan. Protokol ini merupakan suatu protokol aplikasi yang dirancang sesuai dengan aturan permainan.

Pertandingan program cerdas
Supaya bisa ditonton oleh banyak orang, program ajang pertandingan menampilkan status dan pergerakan peserta melalui suatu layar monitor. Adalah tugas si program ajang pertandingan untuk mengatur kecepatan pergerakan peserta agar pergerakan bisa diikuti oleh mata manusia. Pertandingan yang selesai dalam waktu setengah detik tentulah tak asyik ditonton. Para penonton bisa menjadi saksi bila salah satu peserta bermain curang.
Setelah permainan yang sederhana, lalu naik ke permainan yang lebih rumit, misal: catur. Siapa tahu bisa lahir program catur bikinan anak negri yang bisa mengalahkan manusia, seperti halnya Deep Blue vs. Gary Kasparov. Kembali ke alinea pembuka di atas, sepertinya hal ini bukanlah hal yang mustahil.
Pertandingan program cerdas bisa menjadikan matakuliah kecerdasan buatan semakin berkembang dan semakin menarik. Bagaimana representasi pengetahuan tentang keadaan pertandingan? Bagaimana menerapkan algoritma cerdas untuk mencari strategi jitu mengalahkan lawan? Bagaimana cara membaca permainan lawan? Dan sebagainya.
Dalam mencari hasil optimal, komputasi program cerdas dikekang oleh ketersediaan waktu. Jelas tak menarik bila suatu program perlu waktu sehari semalam untuk menggeser satu bidak catur. Untuk menyiasati keterbatasan waktu, program mungkin perlu dijalankan di komputer paralel. Hmm… tantangan bagi mahasiswa yang suka komputasi paralel, nih :-)
Dibandingkan penyelenggara KRI/KRCI, misalnya, penyelenggara pertandingan seperti itu mempunyai tambahan pekerjaan, yakni menyiapkan protokol dan program monitor yang menjadi ajang pertandingan. Tapi demi kemajuan bersama, tentu hal tersebut semestinya bukan halangan. Aku yakin selalu ada mahasiswa yang bisa dan berminat merancang dan mengembangkan protokol aplikasi. Jika belum ada, kebutuhan akan protokol semacam itu bisa memotivasi mahasiswa untuk mengambil matakuliah sistem tersebar, rekayasa protokol dan sejenisnya.
Aku sudah urun gagasan. Siapa yang bersedia (bersama) mewujudkannya?