Senin, 22 Oktober 2007

RFID di Paspor Biometrik

Paspor Biometrik

Sebagian besar dari kita mungkin pernah mendengar istiah "Biometrik". Jargon tersebut santer ketika Kantor Imigrasi meluncurkan paspor baru yang katanya berteknologi tinggi. Apa sebenarnya paspor biometrik itu ?

Paspor Biometrik adalah dokumen perjalanan (paspor) yang dapat dibaca oleh mesin pembaca atau disebut Machine Readable Travel Document (MRTD). Standar MRTD diatur oleh ICAO .

Sesuai dengan namanya, informasi yang disimpan di dalam paspor adalah informasi biometrik yang meliputi: sidik jari, pengenal wajah dan pindaian iris mata [1]. Di samping informasi tadi mungkin sekali informasi penting lain seperti nama kecil, tanggal lahir, alamat, dll ikut disimpan di sana.

Paspor yang menggunakan teknologi ini, biasanya akan memuat logo biometrik seperti berikut


Coba perhatikan, jika anda pemegang paspor Indonesia, mungkin tidak menemukannya di paspor anda.

Di dalam paspor informasi disimpan di dalam chip RFID (Radio Frequency ID). Chip yang disebut sebagai RFID tag tadi berukuran kecil bahkan bisa dimasukkan ke dalam lapisan kertas. Mungkin inilah yang digunakan untuk Paspor Biometrik. RFID tag dapat dibaca dari jarak tertentu oleh RFID reader.

Isu Keamanan & Privasi

Di balik sesumbar teknologi canggih tadi, rasanya pemegang paspor biometrik harus lebih berhati-hati karena bisa saja informasi pribadinya dimanfaatkan oleh orang lain untuk kejahatan.

Sudah ada cerita mengenai paspor Inggris yang di-clone, lantas penjahat tersebut membeli tiket menggunakan nomor frequent flyer yang berhasil dicurinya dari RFID paspor. Tidak sampai di situ, penjahat terus bepergian menggunakan paspor duplikasi menggunakan identitas pemilik paspor yang informasinya dicuri. Banyak cerita lain mengenai pembobolan informasi di paspor biometrik [2].

Tips Pengamanan Sederhana

Pengaman harus dilakukan sendiri oleh pemilik barang yang di dalamnya terdapat RFID tag. Bisa saja menggunakan RFID-Zapper . Yang termudah adalah melapisi paspor anda dengan aluminium foil untuk menghalangi sinyal radio pemindai RFID menghubungi chip di paspor. Oleh karena itu, mulai sekarang bungkuslah paspor anda dengan aluminium sehingga informasi pribadi anda tetap aman.

Tingkat Keamanan Makin Ketat dengan Teknologi yang Tepat 3

Tingkat keamanan yang tinggi tidak selalu ditandai oleh jumlah petugas kemanan yang semakin banyak. Justru terletak dari teknologi yang digunakan. Bila petugas keamanan bertambah banyak, tapi penjahat semakin pintar menyamarkan diri dan barang bawaannya, tetap saja dapat terjadi kejahatan.


Penjahat dari hari ke hari sudah semakin pintar. Banyak kejahatan yang dilakukan menggunakan teknologi canggih. Bahkan tidak jarang berlomba dengan teknologi kemanan itu sendiri. Misalnya saja sebuah virus yang menyerang komputer Anda. Semakin hari semakin buas. Dan program antivirus pun semakin hari juga semakin canggih berusaha untuk selalu menandingi. Begitu pula dengan virus yang semakin hari juga terus dikembangkan untuk menggagalkan satu antivirus dengan antivirus yang lain.

Begitu pula penjahat semakin canggih alat kemanan, cara kerja mereka pun semakin canggih dan lihai. Sayangnya, di Indonesia tingkat kemanan yang sangat ketat jarang sekali ditemukan kecuali pada tempat-tempat tertentu saja. Misalnya, bandara, kantor konsulat, atau gedung-gedung khusus. Kebanyakan pihak kemanan sebuah gedung hanya menerapkan pemeriksaan alakadarnya atau sekadar formalitas dengan alat metal detector. Yang terkadang aktif terkadang mati. Bahkan yang terkadang sangat mengganggu kenyamanan adalah seseorang diminta untuk memperlihatkan isi tasnya pada petugas keamanan. Padahal hal ini sebenarnya dapat dihindari. Dengan teknologi yang tepat, tidak hanya tingkat kemanan yang meningkat, melainkan pengunjung juga akan merasa lebih nyaman.

Perangkat apa saja sebenarnya yang dapat digunakan untuk meningkatkan kemanan? Banyak sekali dengan menggunakan kamera CCTV atau mungkin dengan menggunakan sinar X. Sedangkan untuk keamanan tempat-tempat tertentu, dapat saja menggunakan teknologi biometrics yang kini sudah mulai marak digunakan. Sebagian dari teknologi tersebut memang masih tergolong cukup mahal. Tapi untuk melindungi sesuatu yang snagat berharga, rasanya nilai teknologi tersebut tidak akan terlalu berarti.

CCTV
CCTV adalah teknologi yang cukup konvensional yang sudah lebih dulu hadir. Dengan kamera CCTV yang sangat mungil, seorang petugas kemanan dapat memantau keadaan. Dan bila ada kejahatan terjadi, rekaman pada CCTV cukup dapat dijadikan barang bukti. Oleh sebab itu, keberadaan CCTV banyak digunakan pada tempat-tempat yang rawan akan kejahatan pencurian seperti supermarket, dan mesin ATM.

Bentuk kamera yang semakin hari semakin kecil membuatnya sangat fleksibel untuk diletakkan di mana saja. Belum lagi instalasi CCTV tidak terlalu sulit. Bahkan, jika diinginkan kini juga sudah tersedia CCTV yang tidak menggunakan kabel.

Keberadaan CCTV sebagai alat keamanan kadang menyulitkan kadang tidak. Untuk kemanan yang butuh pantauan ketat, tentu akan membutuhkan kehadiran SDM sebagai operator atau petugas pemantau. Sedangkan bila CCTV hanya digunakan sebagai alat dokumentasi atau bukti di kemudian hari. Petugas operator hanya perlu merekamnya.

Biometrics
Teknologi biometrics adalah teknologi kemanan yang menggunakan bagian tubuh sebagai identitas. Dunia medis mengatakan bahwa ada berapa bagian tubuh kita yang sangat unik. Artinya, tidak dimiliki oleh lebih dari satu individu. Contohnya saja sidik jari atau retina mata. Meskipun bentuk atau warna mata bisa saja sama, namun retina mata belum tentu sama. Begitu juga dengan suara dan struktur wajah. Bagian-bagian unik inilah yang kemudian dikembangkan sebagai atribut keamanan.

Sebagai bagian dari teknologi keamanan, biometrics memiliki dua fungsi sekaligus yang dapat dijalankan terpisah maupun secara bersamaan. Yang pertama sebagai pencatat ID atau sebagai alat verifikasi (password).

Teknologi biometrics hampir dapat diterapkan di mana saja. Mulai untuk melindungi sebuah barang tertentu dari akses yang tidak diinginkan, seperti komputer. Sampai untuk melindungi sebuah ruangan yang ramai dari orang-orang tertentu. Misalnya, untuk mengetahui keberadaan teroris atau penjahat lain di bandara.

Cara kerja teknologi keamanan yang satu ini hampir sama dengan teknologi keamanan lain yang sangat bergantung kepada sensor. Sendor yang digunakan pada teknologi biometrics cenderung mahal dan semakin akurat ketajamannya maka akan semakin mahal.

Selain sensor, bagian yang tidak kalah penting dari biometrics adalah data. Bagaimana Anda menyimpan data pada sebuah sistem sangat penting. Sebab biometrics adalah teknologi yang bergantung kepada data. Bila data yang disimpan tidak aman atau lengkap, kemungkinan adanya penyusup ke system ini akan lebih besar.

Menurut sistemnya biometrics sendiri terbagi atas tiga macam, yaitu:

1. Sistem yang menyimpan data langsung pada alat.
Dengan sistem ini, data akan disimpan pada media penyimpanan yang berada dalam alat detektor. Jika sewaktu-waktu mesin harus di-reset atau dikembalikan ke posisi awal, maka data yang ada dapat saja ikut terhapus. Sehingga petugas harus meng-input ulang. Jika data yang dimasukkan sangat banyak tentu akan sangat merepotkan, lain halnya bila data tidak terlalu banyak. Biometrics dengan sistem ini sangat cocok untuk diterapkan pada sebuah alat tertentu yang tidak digunakan oleh banyak orang atau untuk untuk melindungi sebuah ruang khusus, yang juga tidak diakses oleh banyak pengunjungnya.

2. Sistem yang menyimpan data pada jaringan.
Sistem yang kedua memanfaatkan jaringan untuk menyimpan datanya. Sistem yang kedua sangat efektif bagi aplikasi yang memang dipergunakan untuk banyak user. Misalnya saja untuk data absen karyawan atau siswa. Bentuk fisik yang ditampilkan oleh alat juga tidak perlu terlalu besar. Karena data tidak akan diproses langsung pada alat. Melainkan dikirim dahulu ke sebuah jaringan baru kemudian diproses dan disimpan. Sistem ini memang membutuhkan waktu lama.

Tetapi cukup efektif untuk data yang besar. Karena tidak akan terkena risiko data hilang pada saat proses reset pada alat harus dilakukan.

3. Sistem yang menyimpan data pada sebuah chip.
Sistem yang terakhir ini menggunakan media tambahan berupa chip untuk menyimpan data si pemilik ID. Sehingga untuk menggunakannya seseorang harus membawanya. Untuk sistem yang terakhir ini, akan sangat efektif diterapkan untuk yang memiliki pengguna sangat banyak atau bila alatnya hendak diletakkan di tempat umum. Misalnya saja untuk keamanan di mesin ATM atau hanya sekadar sebagai ID masuk dalam sebuah gedung.

Sedangkan bagian tubuh yang saat ini sudah mulai digunakan sebagai ID atau password adalah:

- Sidik Jari
Ini adalah bagian tubuh yang penggunaannya sangat populer baik sebagai ID maupun sebagai password. Sensor yang digunakan untuk men-scan sidik jari sangat bervariasi. Ada sensor yang hanya dapat memeriksa satu sidik jari saja ada yang dapat memeriksa lebih dari satu sidik jari.

Luka pada sidik jari dapat mengakibatkan sidik jari sulit dideteksi. Namun, bukan berarti tidak bisa. Selama luka tersebut tidak terlalu dalam ada beberapa sensor yang masih dapat
mengenalinya. Tentu saja sensor-sensor dengan ketajaman seperti ini akan lebih mahal harganya ketimbang sensor sidik jari dengan ketajaman biasa.

Penerapan sidik jari sebagai bagian dari sistem keamanan kini sudah se makin luas. Bahkan saat ini sudah ada mouse yang penggunaannya membutuhkan sidik jari penggunanya.

- Geometris Tangan
Lain sidik jari lain pula yang dimaksud dengan geometris tangan atau yang dikenal juga dengan bentuk tangan. Nilai-nilai yang menjadi bagian dari datanya adalah, ukuran tangan, bentuk telapak tangan, sampai bentuk dan ukuran masing-masing jari. Sensor yang digunakan untuk mendeteksi geometris tangan berbeda dengan sensor yang digunakan untuk mendeteksi sidik jari. Cara pengambilan sampel juga lebih rumit, karena harus dilakukan dari berbagai perspektif. Oleh sebab itu, biometrics ini dianggap lebih akurat dan lebih sulit untuk dipalsukan datanya. Namun, proses pengaksesan juga akan berjalan lebih lama. Oleh sebab itu, sebaiknya jangan menggunakan sistem ini untuk ruangan yang terbuka atau untuk aplikasi yang dimanfaatkan oleh banyak orang (seperti absensi).

- Mata
Mata manusia sangat unik. Meskipun secara kasat mata, setiap bola mata manusia hampir sama. Ada dua bagian yang kerap menjadi bagian dari biometrics mata, yaitu retina dan iris mata. Iris mata lebih mudah penggunaannya dibandingkan dengan retina mata. Untuk menganalisis retina mata, seorang pengguna harus menatap pada fokus yang telah ditentukan dan proses analisis juga tidak akan dapat dilakukan bila user menggunakan kaca mata.

Lain halnya dengan iris mata. Teknologi dengan iris mata tidak sesulit retina mata. User tidak perlu menatap lurus ke fokus. Dan pengguna kaca mata masih dapat dikenali.

- Bentuk Wajah
Teknologi biometrics yang menganalisis bentuk wajah sudah juga digunakan di beberapa tempat. Salah satunya bandara. Perangkat yang difungsikan sebagai sensor untuk teknologi ini umumnya adalah kamera CCTV biasa. Dan sistem yang digunakan adalah sistem yang datanya disimpan dalam sebuah jaringan. Sedangkan proses kerjanya adalah sebagai berikut. Gambar yang diperoleh oleh kamera CCTV secara otomatis akan diolah oleh komputer yang terhubung langsung dengan data kepolisian. Setiap wajah yang lewat akan dilihat kecocokannya dengan data yang ada pada jaringan. Jika ada kemiripan, maka nyala alarm akan berbunyi dan memberi tahu kepada petugas.

Untuk menggunakan bentuk wajah sebagai bagian dari sistem keamanan, sampel yang diambil harus lengkap, artinya pengambilan sampel harus dilakukan dari berbagai arah. Sama halnya seperti pada penggunaan geometris tangan.

- Suara
Gelombang suara juga dapat dijadikan identitas yang unik. Namun sayangnya, untuk yang satu ini keadaan sekitar sangat mempengaruhi. Sehingga untuk menerapkannya harus benar-benar di ruangan atau lingkungan yang tidak ramai. Dan semakin tinggi toleransi yang dimiliki oleh sebuah sensor akan membuat harga sensor akan semakin tinggi.

Metal Detector
Ini adalah alat yang paling sering ditemui masyarakat belakangan ini sejak merebaknya isu terror bom di Indonesia. Di mana-mana petugas keamanan baik gedung kantor sampai tempat hiburan dan belanja sibuk menenteng-nenteng alat berwarna hitam. Alat ini biasa ditempelkan pada barang bawaan pengunjung. Untuk mengetahui apakah pengunjung membawa barang berbahaya atau tidak. Selain dengan alat semacam pentungan berwarna hitam, kadang pengunjung juga harus melewati sebuah alat yang menyerupai gawang kecil. Bila pengunjung mengantongi perangkat berbahan logam atau metal seperti ponsel, maka alat itu akan berbunyi nyaring sekali. Begitu juga dengan alat berwarna hitam yang
menyerupai pentungan tersebut.

Alat ini dikenal juga dengan sebutan metal detector. Fungsinya adalah untuk mengetahui keberadaan komponen logam atau metal yang berada pada targetnya. Pada tempat-tempat tertentu, keberadaan metal detector memang membantu kemanan gedung. Namun, apa yang diamankan oleh metal detector? Tidak lain adalah semua komponen yang mengandung logam. Mulai dari benda tajam seperti pisau, gunting, penggaris sampai pena, dan ponsel. Semuanya akan memancing bunyi sebuah metal detector.

Jika untuk melindungi sebuah tempat dari pengunjung yang membawa sebuah bom. Alat keamanan ini dapat dikatakan kurang efektif, karena bahan kimia tidak akan dapat terdeteksi oleh alat ini. Dan pada umumnya, bom terbuat dari campuran bahan kimia.

Dalam melakukan proses deteksi, metal detector menggunakan kawat tembaga sebagai pengumpan sinyal. Bila sinyal tersebut bertabrakan dengan logam, maka akan terjadi medan magnet yang menyebabkan echo (gema) yang panjang.

Namun, keberadaan metal detector sendiri kini tidak lagi dapat dijadikan satu-satunya komponen keamanan. Karena sangat sering apa yang dibawa oleh pengujung digeledah. Hal ini tentu saja mengganggu hak privasi seseorang. Oleh sebab itu, bila sebuah institusi ingin menjaga keamanan tempatnya tanpa harus melanggar hak privasi pengunjungnya, maka ia harus menyediakan sebuah alat deteksi lain yang lebih sopan. Salah satu contohnya X-Ray.

X-Ray
Barang apa yang sedang dibawa? Sekali lagi, membuka tas seseorang bukanlah tindakan yang sopan. Karena ada beberapa bawaan yang sifatnya sangat pribadi. Dan tindakan menggeledah tas bukanlah hal yang tepat dilakukan. Meskipun atas nama keamanan. Jika memang ingin meningkatkan kemanan sebuah gedung, maka pihak pengelola gedung harus rela mengeluarkan kocek lebih mahal. Misalnya dengan menggunakan teknologi X-Ray. Dengan teknologi X-Ray, seseorang tidak perlu lagi merasa sungkan. Karena untuk
bawaan tertentu tidak akan terdeteksi. Misalnya saja pembalut atau kondom.

X-Ray bukanlah teknologi baru. Kehadirannya sudah lama digunakan oleh masyarakat, khususnya bagi mereka yang pernah melakukan pemeriksaan menyeluruh di rumah sakit. Kemampuannya dalam melihat jauh lebih ke dalam dimanfaatkan dunia kedokteraan untuk menelaah lebih jauh tentang apa yang terjadi pada bagian dalam tubuh manusia.

Namun ternyata, sinar X ini tidak hanya mampu menelaah komponen dalam tubuh manusia, melainkan juga mampu menelaah isi sebuah tas. Baik tas kecil sampai tas besar sekalipun.

Kemampuannya inilah yang kemudian dilirik oleh pelaku sistem keamanan untuk kemudian digunakan sebagai bagian dari komponen penjaga keamanan. Seperti halnya dengan sinar X dalam duania kedokteran. Sinar X yang digunakan untuk sistem keamanan juga memiliki radiasi. Hanya saja, radiasinya bukan membahayakan si pemilik barang, melainkan barang yang sedang diperiksa. Salah satu yang sangat rentan terhadap radiasi sinar X adalah film. Lembaran film kamera manual sering rusak bila terkena radiasi sinar X.

Namun, lain dengan sekarang. Radiasi yang digunakan sinar X untuk pemeriksaan tidak lagi setinggi dulu. Kini sinar X yang biasa digunakan di bandara contohnya sudah aman untuk digunakana pada film.

Namun bukan berarti boleh diletakkan dalam bagasi pesawat sebab sinar X yang memeriksa bagasi umumnya menggunakan radiasi yang lebih tinggi. Mengingat tumpukan barang yang diperiksa jauh lebih banyak.

Dengan sinar X, setiap jenis barang memiliki warna berbeda. Misalnya bahan organik dengan bahan bukan organik akan tampil dengan warna berbeda. Begitu pula halnya dengan barang yang mengandung metal. Bukan berarti barang organik luput dari perhatian. Umumnya, petugas operator X-Ray sudah mendapatkan pendidikan untuk membedakan bahan organik yang dapat berfungsi sebagai bom atau bukan.

CT Scan
Selain sinar X yang diarahkan searah saja, ada alat keamanan lain yang tidak kalah canggihnya, yaitu CT Scan (computer tomography scanner). Teknologi ini menggunakan beberapa sinar X sekaligus untuk memeriksa seluruh dimensi setiap barang. Dengan CT Scan Anda tidak hanya memeproleh gambaran mengenai isi tas saja, melainkan lengkap dengan ukuran dan berat masing-masing perangkat yang ada dalam tas tersebut. Bila ada sebuah perangkat yang berat atau bentuknya tidak sesuai dengan fungsinya, maka komputer akan memperingati petugas operator CT Scan.

Proses pemeriksaan dengan CT Scan lebih lama ketimbang X-Ray. Namun, data yang dihasilkan memang lebih lengkap. Sebaiknya penggunaan CT-Scan hanya dilakukan untuk orang-orang atau bawaan yang sangat mencurigakan saja. Jangan sampai terjadi antrian yang tidak berarti pada pintu masuk.

RFID
Lain di bandara lain pula di pertokoan. Saat ini keberadaan teknologi labeling sudah sangat canggih. Dengan menggunakan label berfrekuensi radio, tidak perlu lagi khawatir produk dari supermarket tersebut kecurian. Karena setiap barang atau produk yang melewati batas akan membuat alarm berbunyi.

Teknologi mana yang akan digunakan? Terserah yang mana saja, asalkan menyesuaikan dengan keadaan. Bila memang ingin menggunakan sebagai security sebuah ruangan atau sebagai absensi, kartu dengan cip sidik jari cukup baik.

Namun bila akan menggunakannya untuk memeriksa pengunjung toko Anda atau gedung Anda, sebaiknya carilah teknologi yang sopan. Mungkin sinar X dapat menjadi jawabannya. Jangan menggunakan metal detector jika yang dicari bukanlah benda tajam. Atau dengan tidak sopan menggeledah tas pengunjung toko atau gedung Anda.

Biometrik Gantikan Password

TEKNOLOGI biometrik datang, dunia security ikut terus berubah. Sebab, kehadiran teknologi yang satu ini memiliki kemampuan untuk mengenali manusia lewat sidik jari, mata, atau karakter khas bagian tubuh manusia yang lainnya.

Bagaimana sepak terjang penggunaan teknologi biometrik ini, kita dapat nikmati dalam film ”Sixth Day” (2001), sebagai contohnya. Film dengan pemeran utama Arnold Schwarzenegger itu memperlihatkan betapa biometrik sudah seperti menggantikan kunci. Dalam petualanganya, sidik jari atau mata bisa digunakan sebagai pembuka akses masuk ruangan kantor, laboratorium, menstarter mobil, dll. Singkatnya, teknologi pengenalan diri itu kini benar-benar mengenali fisik si pemilik, bukan lagi menggunakan password (kata sandi).

Dalam bahasa lain, Elizabeth Millard menyebutkan bahwa biometrik telah bergerak dari tontonan pada film thriller James Bond Sang Agen 007 ke dalam dunia komputer sehari-hari. Fitur biometrik telah diintegrasikan ke dalam PDA Hewlett-Packard, ThinkPads IBM, dan peranti genggam dan laptop sebagai cara untuk mengamankan perangkat tanpa meminta pengguna untuk mengingat sejumlah kata sandi untuk pengontrolan akses dalam berbagai tingkatan.

Kelemahan kata sandi

Munculnya teknologi biometrik sebagai metode verifikasi identitas individual, sesungguhnya merupakan refleksi dari kesadaran bahwa password adalah suatu hal yang tidak dapat diandalkan untuk security. Sebab, kata sandi itu memiliki sisi kelemahan yang dapat bersifat merugikan.

Kondisi seperti itu, penulis ibaratkan dengan ungkapan ”Biomerik datang, password ditinggal”. Alasan ditinggalnya passeord, tidak lain karena kelemahan-kelemahan yang dimilikinya. Kelemahan kata sandi itu di antaranya ketika akses jaringan ia membutuhkan verifikasi. Password terbukti mudah sekali diserang hacker dan mudah diketahui secara luas. Hal ini diakui Millard, banyak manajer teknologi informasi (TI) dapat menyampaikan rekening yang terdapat pada user’s desk dan melihat password mereka pada post-it note stuck pada monitor mereka.

Selain itu, password juga mudah terlupakan, seperti yang dilaporkan oleh Gartner Group. Perusahaan riset tersebut menemukan bahwa panggilan untuk help desk yang berhubungan dengan password, turun hingga 30 persen dari biasanya. Untuk setiap penghapusan password, harus dibayar perusahaan dengan biaya antara 50 – 150 dolar AS.

Potensi biometrik

Kehadiran teknologi biometrik, apalagi saat ini didukung faktor harga yang semakin terjangkau dan bisa diterapkan pada banyak sektor, teknologi biometrik akan menggeser dunia password sebagai pintu masuk yang memiliki beberapa kelemahan tersebut.

Ditinggalnya penggunaan password ini, tentu bukan tanpa dasar. Paling tidak, pendapat para ahli keamanan menjadi salah satu dasarnya. Menurut para ahli keamanan, kini ada cracking tool yang mampu memindai kata maupun menebak password berupa kombinasi huruf dan angka. ”Loft Crack”, salah satu program penjebol sandi misalnya, hanya butuh waktu 48 jam untuk mencari seluruh arsip password di suatu perusahaan (Intisari, Agustus 2001).

Terlepas dari itu semua, yang harus diingat dalam penerapan teknologi biometrik ini adalah apa yang diungkapkan Joseph Kim, Associate Director of Consulting pada International Biometric Group. Menurut Kim, sebuah teknologi biometrik yang tidak terintegrasi dengan baik dalam ruang korporat merupakan facial recognition. Walaupun kamera mungkin berada di posisinya sebagai ”pengamat”, teknologinya belum cukup akurat untuk diteruskan atau digunakan untuk akses pegawai. Dibutuhkan beberapa tahun untuk dapat dijalankan dengan benar-benar efektif. Saat ini hal tersebut merupakan satu-satunya cara yang dapat digunakan untuk mengakses sebuah data base yang diketahui setiap orang dalam sebuah struktur yang ada dan mengakselerasikan prosesnya untuk keamanan.

Akhirnya, dengan reputasi password selama ini yang dapat dicuri dan terlupakan itu, tidak berlebihan bila dunia password akan ditinggalkan. Apalagi kehadiran biometrik itu memiliki potensi untuk mengamankan jaringan dan data dengan cara mengambilalih tugas user (pengguna) yang serupa.

BIOMETRIK, makhluk apaan tuh? Biometrik merupakan kata lain dari parameter manusia. Biometrik adalah metode untuk mengidentifikasi atau mengenali seseorang berdasarkan karakteristik fisik atau perilakunya. Hal ini biasanya digunakan dalam area security (keamanan) yang bersifat personal. Makanya, teknologi biometrik itu punya keunggulan sifat yang relatif tidak bisa dihilangkan, dilupakan, atau dipindahkan dari satu orang ke orang lain. Pendeknya, sulit ditiru atau dipalsukan.

Saat ini, perkembangan penggunaan alat-alat berbasis teknologi biometrik dengan alasan untuk keamanan berkembang dengan cepat. Di Indonesia sendiri, implementasi penggunaan teknologi biometrik ini sudah digunakan oleh banyak perusahaan dan perkantoran. Misalnya, perusahaan penyedia layanan safety box, perusahaan farmasi, kantor imigrasi, dll.

Berbicara sistem keamanan, sebetulnya apa saja yang harus kita pertimbangkan dalam pembuatan sistemnya? Lalu, bentuk autentikasi seperti apa yang ditawarkan dari teknologi biometrik itu?

Pertimbangan keamanan

Keamanan sesungguhnya terbentuk dari suatu mata rantai yang akan memiliki kekuatan sama dengan mata rantai yang terlemah sekalipun. Buktinya, misalnya sistem keamanan yang berbasiskan certificate authority (CA) memiliki rantai yang tidak seluruhnya merupakan sistem kriptografi, tetapi manusia juga banyak terlibat.

Menyikapi hal tersebut, harus diakui bahwa banyak hal yang perlu dipertimbangkan dalam pengaksesan data. Untuk itu, dalam perancangan suatu sistem keamanan, lazimnya kita akan dihadapkan pada beberapa pertimbangan. Meminjam istilah Suparno, pertimbangan tersebut dikenal dengan segitiga CIA.

Segitiga CIA ini terdiri dari pertama, confidentiality. Yaitu segala usaha yang berkaitan dengan pencegahan pengaksesan terhadap informasi yang dilakukan pihak lain yang tidak berhak. Kedua, integrity. Yaitu sesuatu yang berkaitan dengan pencegahan dalam modifikasi informasi yang dilakukan oleh pihak lain yang tidak berhak. Ketiga, availability. Yaitu pencegahan penguasaan informasi atau sumber daya oleh pihak lain yang tidak berhak.

Lebih jauh dari pertimbangan segitiga CIA, kita juga dalam membangun sistem keamanan harus melakukan pendekatan secara komprehensif dan modern. Sebab, sering kali pendekatan tradisional pada keamanan komputer misalnya, hanya berorentasi pada teknologi dan produk. Dalam pendekatan model ini, terdapat anggapan bahwa hanya sebagian orang saja yang harus mengerti dan bertanggung jawab dalam masalah keamanan. Kondisi model itu, lebih diperparah lagi oleh tindakan pihak manajemen yang biasanya menempatkan keamanan komputer pada perioritas yang rendah.

Pendekatan tradisional biasanya ditandai dengan ketidakmengertian pengguna akan pentingnya keikutsertaan mereka dalam membangun keamanan. Pengguna menganggap, setelah membeli dan menggunakan produk-produk keamanan, seperti firewall dan kriptografi dapat menjamin keamanan suatu sistem yang digunakan.

Menyikapi kenyataan tersebut, pendekatan tradisional harus dihindari dalam membangun sistem keamanan dan kita ganti dengan pendekatan modern yang komprehensif. Yakni dengan mengikutsertakan pengguna, kebijakan, manajemen, dan teknologi. Arti lainnya, dalam pelaksanaan keamanan akan melibatkan 3M (matematika, manajemen, dan manusia).

Autentikasi biologis

Dari uraian di awal, dapatlah kita nyatakan bahwa sesungguhnya autentifikasi dalam keamanan merupakan hal yang sangat penting demi keamanan data. Masalahnya, teknologi yang selama ini diterapkan memiliki banyak kendala dalam penerapannya dan masih kurang memberikan perlindungan yang aman.

Menyikapi kondisi tersebut, saat ini kita sedikit merasa lega dengan kehadiran teknologi berbasis biometrik. Pasalnya, teknologi biometrik ini menawarkan autentikasi secara biologis yang memungkinkan sistem dapat mengenali penggunanya secara lebih tepat.

Walau begitu, kita harus sadar, sesungguhnya alat biometrik itu merupakan peralatan tambahan yang digunakan dengan tujuan menambah tingkat keamanan di suatu wilayah, tempat, atau barang. Ada beberapa metode yang digunakan dalam alat biometrik ini, di antaranya berdasarkan identifikasi dari sidik jari (fingerprint), bentuk wajah, lekuk di tangan, selaput pelangi mata (iris), retina mata, suara, dan tanda tangan. Di antara sekian kemungkinan tersebut, yang umum digunakan di Indonesia adalah mode alat biometrik yang menggunakan sidik jari dan digunakan bersama-sama dengan smartcard dalam proses autentikasi.

Keautentikasikan dari penggunaan teknologi identifikasi sidik jari ini didasarkan pada fakta bahwa setiap sidik jari adalah unik. Cara kerja verifikasi sistem ini menggunakan kontur dan flat image dari jari dan membandingkannya. Dalam hal ini, sidik jari manusia biasanya diklasifikasikan berdasarkan sistem Henry.

Sistem Henry berasal dari pola ridge yang terpusat pola jari tangan, jari kaki, khususnya telunjuk. Metodenya, setelah seseorang meletakkan sidik jarinya pada sensor, maka akan dilakukan proses penangkapan gambar sidik jari beserta konturnya (tinggi rendah permukaan sidik jari). Dari sini, lalu ditentukan beberapa titik koordinat di mana ditemukan pola pusat, pola percabangan, dan pola ujung.

Kemudian dari titik-titik koordinat tersebut akan dibentuk menjadi garis-garis vektor dan pada akhirnya menjadi pola berbentuk seperti kristal (ditentukan jarak antartitik yang paling efisien) yang bisa dikodekan dalam digital sepanjang 256 byte data. Baru setelah data didapat, menjadi tugas pemroses (komputer) untuk melakukan pencocokan data yang didapat dengan data base yang ada.

Akhirnya, dapatlah dikatakan bahwa biometrik benar-benar menawarkan autentikasi secara biologis. Sebab, tidak ada dua individu mempunyai pola ridge serupa, pola ridge tidaklah bisa menerima warisan, pola ridge dibentuk embrio, pola ridge tidak pernah berubah dalam hidup, dan dapat berubah hanya setelah kematian sebagai hasil pembusukan. Atau secara kebetulan, pola ridge hanya diubah akibat luka-luka, kebakaran, penyakit atau penyebab lain yang tidak wajar.

Tingkat Keamanan Makin Ketat dengan Teknologi yang Tepat 2

Tingkat keamanan yang tinggi tidak selalu ditandai oleh jumlah petugas kemanan yang semakin banyak. Justru terletak dari aplikasi teknologi yang tepat.

Petugas keamanan yang bertambah banyak akan membebani perusahaan dari segi cost operational dan management personalia, selain itu di segi penjahat yang semakin pintar melakukan aksinya

Penjahat dari hari ke hari sudah semakin pintar. Banyak kejahatan yang dilakukan menggunakan teknologi canggih. Bahkan tidak jarang kita berlomba dengan teknologi kemanan itu sendiri. Misalnya saja sebuah virus yang menyerang komputer Anda. Semakin hari semakin canggih. Dan program antivirus pun semakin hari juga semakin canggih berusaha untuk selalu menandingi. Begitu pula dengan virus yang semakin hari juga terus dikembangkan untuk menggagalkan satu antivirus dengan antivirus yang lain.

Begitu pula penjahat semakin canggih alat kemanan, cara kerja mereka pun semakin canggih dan lihai. Sayangnya, di Indonesia tingkat kemanan yang sangat ketat jarang sekali ditemukan kecuali pada tempat-tempat tertentu saja. Misalnya, bandara, kantor konsulat, atau gedung-gedung khusus. Kebanyakan pihak kemanan sebuah gedung hanya menerapkan pemeriksaan alakadarnya atau sekadar formalitas dengan alat metal detector. Yang terkadang aktif terkadang mati. Bahkan yang terkadang sangat mengganggu kenyamanan adalah seseorang diminta untuk memperlihatkan isi tasnya pada petugas keamanan. Padahal hal ini sebenarnya dapat dihindari.

Dengan teknologi yang tepat, tidak hanya tingkat kemanan yang meningkat, melainkan pengunjung juga akan merasa lebih nyaman. Perangkat apa saja sebenarnya yang dapat digunakan untuk meningkatkan kemanan? Banyak sekali dengan menggunakan kamera CCTV atau mungkin dengan menggunakan sinar X.

Sedangkan untuk keamanan tempat-tempat tertentu, dapat saja menggunakan teknologi biometrics yang kini sudah mulai marak digunakan. Sebagian dari teknologi tersebut memang masih tergolong cukup mahal. Tapi untuk melindungi sesuatu yang snagat berharga, rasanya nilai teknologi tersebut tidak akan terlalu berarti.

CCTV adalah teknologi yang cukup konvensional yang sudah lebih dulu hadir. Dengan kamera CCTV yang sangat mungil, seorang petugas kemanan dapat memantau keadaan. Dan bila ada kejahatan terjadi, rekaman pada CCTV cukup dapat dijadikan barang bukti. Oleh sebab itu, keberadaan CCTV banyak digunakan pada tempat-tempat yang rawan akan kejahatan pencurian seperti supermarket, dan mesin ATM. Bentuk kamera yang semakin hari semakin kecil membuatnya sangat fleksibel untuk diletakkan di mana saja. Belum lagi instalasi CCTV tidak terlalu sulit. Bahkan, jika diinginkan kini juga sudah tersedia CCTV yang tidak menggunakan kabel.

Keberadaan CCTV sebagai alat keamanan kadang menyulitkan kadang tidak. Untuk kemanan yang butuh pantauan ketat, tentu akan membutuhkan kehadiran SDM sebagai operator atau petugas pemantau.

Sedangkan bila CCTV hanya digunakan sebagai alat dokumentasi atau bukti di kemudian hari. Petugas operator hanya perlu merekamnya. Biometrics Teknologi biometrics adalah teknologi kemanan yang menggunakan bagian tubuh sebagai identitas. Dunia medis mengatakan bahwa ada berapa bagian tubuh kita yang sangat unik. Artinya, tidak dimiliki oleh lebih dari satu individu. Contohnya saja sidik jari atau retina mata.

Meskipun bentuk atau warna mata bisa saja sama, namun retina mata belum tentu sama. Begitu juga dengan suara dan struktur wajah. Bagian-bagian unik inilah yang kemudian dikembangkan sebagai atribut keamanan. Sebagai bagian dari teknologi keamanan, biometrics memiliki dua fungsi sekaligus yang dapat dijalankan terpisah maupun secara bersamaan. Yang pertama sebagai pencatat ID atau sebagai alat verifikasi (password). Teknologi biometrics hampir dapat diterapkan di mana saja. Mulai untuk melindungi sebuah barang tertentu dari akses yang tidak diinginkan, seperti komputer. Sampai untuk melindungi sebuah ruangan yang ramai dari orang-orang tertentu. Misalnya, untuk mengetahui keberadaan teroris atau penjahat lain di bandara.

Cara kerja teknologi keamanan yang satu ini hampir sama dengan teknologi keamanan lain yang sangat bergantung kepada sensor. Sendor yang digunakan pada teknologi biometrics cenderung mahal dan semakin akurat ketajamannya maka akan semakin mahal. Selain sensor, bagian yang tidak kalah penting dari biometrics adalah data. Bagaimana Anda menyimpan data pada sebuah sistem sangat penting. Sebab biometrics adalah teknologi yang bergantung kepada data. Bila data yang disimpan tidak aman atau lengkap, kemungkinan adanya penyusup ke system ini akan lebih besar.

Tingkat Keamanan Makin Ketat dengan Teknologi yang Tepat 1


Tingkat keamanan yang tinggi tidak selalu ditandai oleh jumlah petugas kemanan yang semakin banyak. Justru terletak dari teknologi yang digunakan. Bila petugas keamanan bertambah banyak, tapi penjahat semakin pintar menyamarkan diri dan barang bawaannya, tetap saja dapat terjadi kejahatan.

Menurut sistemnya biometrics sendiri terbagi atas tiga macam, yaitu:

1. Sistem yang menyimpan data langsung pada alat.
Dengan sistem ini, data akan disimpan pada media penyimpanan yang berada dalam alat detektor. Jika sewaktu-waktu mesin harus di-reset atau dikembalikan ke posisi awal, maka data yang ada dapat saja ikut terhapus. Sehingga petugas harus meng-input ulang. Jika data yang dimasukkan sangat banyak tentu akan sangat merepotkan, lain halnya bila data tidak terlalu banyak. Biometrics dengan sistem ini sangat cocok untuk diterapkan pada sebuah alat tertentu yang tidak digunakan oleh banyak orang atau untuk untuk melindungi sebuah ruang khusus, yang juga tidak diakses oleh banyak pengunjungnya.

2. Sistem yang menyimpan data pada jaringan.
Sistem yang kedua memanfaatkan jaringan untuk menyimpan datanya. Sistem yang kedua sangat efektif bagi aplikasi yang memang dipergunakan untuk banyak user. Misalnya saja untuk data absen karyawan atau siswa. Bentuk fisik yang ditampilkan oleh alat juga tidak perlu terlalu besar. Karena data tidak akan diproses langsung pada alat. Melainkan dikirim dahulu ke sebuah jaringan baru kemudian diproses dan disimpan. Sistem ini memang membutuhkan waktu lama.

Tetapi cukup efektif untuk data yang besar. Karena tidak akan terkena risiko data hilang pada saat proses reset pada alat harus dilakukan.

3. Sistem yang menyimpan data pada sebuah chip.
Sistem yang terakhir ini menggunakan media tambahan berupa chip untuk menyimpan data si pemilik ID. Sehingga untuk menggunakannya seseorang harus membawanya. Untuk sistem yang terakhir ini, akan sangat efektif diterapkan untuk yang memiliki pengguna sangat banyak atau bila alatnya hendak diletakkan di tempat umum. Misalnya saja untuk keamanan di mesin ATM atau hanya sekadar sebagai ID masuk dalam sebuah gedung.

Sedangkan bagian tubuh yang saat ini sudah mulai digunakan sebagai ID atau password adalah:

- Sidik Jari
Ini adalah bagian tubuh yang penggunaannya sangat populer baik sebagai ID maupun sebagai password. Sensor yang digunakan untuk men-scan sidik jari sangat bervariasi. Ada sensor yang hanya dapat memeriksa satu sidik jari saja ada yang dapat memeriksa lebih dari satu sidik jari.

Luka pada sidik jari dapat mengakibatkan sidik jari sulit dideteksi. Namun, bukan berarti tidak bisa. Selama luka tersebut tidak terlalu dalam ada beberapa sensor yang masih dapat
mengenalinya. Tentu saja sensor-sensor dengan ketajaman seperti ini akan lebih mahal harganya ketimbang sensor sidik jari dengan ketajaman biasa.

Penerapan sidik jari sebagai bagian dari sistem keamanan kini sudah se makin luas. Bahkan saat ini sudah ada mouse yang penggunaannya membutuhkan sidik jari penggunanya.

- Geometris Tangan
Lain sidik jari lain pula yang dimaksud dengan geometris tangan atau yang dikenal juga dengan bentuk tangan. Nilai-nilai yang menjadi bagian dari datanya adalah, ukuran tangan, bentuk telapak tangan, sampai bentuk dan ukuran masing-masing jari. Sensor yang digunakan untuk mendeteksi geometris tangan berbeda dengan sensor yang digunakan untuk mendeteksi sidik jari. Cara pengambilan sampel juga lebih rumit, karena harus dilakukan dari berbagai perspektif. Oleh sebab itu, biometrics ini dianggap lebih akurat dan lebih sulit untuk dipalsukan datanya. Namun, proses pengaksesan juga akan berjalan lebih lama. Oleh sebab itu, sebaiknya jangan menggunakan sistem ini untuk ruangan yang terbuka atau untuk aplikasi yang dimanfaatkan oleh banyak orang (seperti absensi).

- Mata
Mata manusia sangat unik. Meskipun secara kasat mata, setiap bola mata manusia hampir sama. Ada dua bagian yang kerap menjadi bagian dari biometrics mata, yaitu retina dan iris mata. Iris mata lebih mudah penggunaannya dibandingkan dengan retina mata. Untuk menganalisis retina mata, seorang pengguna harus menatap pada fokus yang telah ditentukan dan proses analisis juga tidak akan dapat dilakukan bila user menggunakan kaca mata.

Lain halnya dengan iris mata. Teknologi dengan iris mata tidak sesulit retina mata. User tidak perlu menatap lurus ke fokus. Dan pengguna kaca mata masih dapat dikenali.

- Bentuk Wajah
Teknologi biometrics yang menganalisis bentuk wajah sudah juga digunakan di beberapa tempat. Salah satunya bandara. Perangkat yang difungsikan sebagai sensor untuk teknologi ini umumnya adalah kamera CCTV biasa. Dan sistem yang digunakan adalah sistem yang datanya disimpan dalam sebuah jaringan. Sedangkan proses kerjanya adalah sebagai berikut. Gambar yang diperoleh oleh kamera CCTV secara otomatis akan diolah oleh komputer yang terhubung langsung dengan data kepolisian. Setiap wajah yang lewat akan dilihat kecocokannya dengan data yang ada pada jaringan. Jika ada kemiripan, maka nyala alarm akan berbunyi dan memberi tahu kepada petugas.

Untuk menggunakan bentuk wajah sebagai bagian dari sistem keamanan, sampel yang diambil harus lengkap, artinya pengambilan sampel harus dilakukan dari berbagai arah. Sama halnya seperti pada penggunaan geometris tangan.

- Suara
Gelombang suara juga dapat dijadikan identitas yang unik. Namun sayangnya, untuk yang satu ini keadaan sekitar sangat mempengaruhi. Sehingga untuk menerapkannya harus benar-benar di ruangan atau lingkungan yang tidak ramai. Dan semakin tinggi toleransi yang dimiliki oleh sebuah sensor akan membuat harga sensor akan semakin tinggi.

Metal Detector
Ini adalah alat yang paling sering ditemui masyarakat belakangan ini sejak merebaknya isu terror bom di Indonesia. Di mana-mana petugas keamanan baik gedung kantor sampai tempat hiburan dan belanja sibuk menenteng-nenteng alat berwarna hitam. Alat ini biasa ditempelkan pada barang bawaan pengunjung. Untuk mengetahui apakah pengunjung membawa barang berbahaya atau tidak. Selain dengan alat semacam pentungan berwarna hitam, kadang pengunjung juga harus melewati sebuah alat yang menyerupai gawang kecil. Bila pengunjung mengantongi perangkat berbahan logam atau metal seperti ponsel, maka alat itu akan berbunyi nyaring sekali. Begitu juga dengan alat berwarna hitam yang
menyerupai pentungan tersebut.

Alat ini dikenal juga dengan sebutan metal detector. Fungsinya adalah untuk mengetahui keberadaan komponen logam atau metal yang berada pada targetnya. Pada tempat-tempat tertentu, keberadaan metal detector memang membantu kemanan gedung. Namun, apa yang diamankan oleh metal detector? Tidak lain adalah semua komponen yang mengandung logam. Mulai dari benda tajam seperti pisau, gunting, penggaris sampai pena, dan ponsel. Semuanya akan memancing bunyi sebuah metal detector.

Jika untuk melindungi sebuah tempat dari pengunjung yang membawa sebuah bom. Alat keamanan ini dapat dikatakan kurang efektif, karena bahan kimia tidak akan dapat terdeteksi oleh alat ini. Dan pada umumnya, bom terbuat dari campuran bahan kimia.

Dalam melakukan proses deteksi, metal detector menggunakan kawat tembaga sebagai pengumpan sinyal. Bila sinyal tersebut bertabrakan dengan logam, maka akan terjadi medan magnet yang menyebabkan echo (gema) yang panjang.

Namun, keberadaan metal detector sendiri kini tidak lagi dapat dijadikan satu-satunya komponen keamanan. Karena sangat sering apa yang dibawa oleh pengujung digeledah. Hal ini tentu saja mengganggu hak privasi seseorang. Oleh sebab itu, bila sebuah institusi ingin menjaga keamanan tempatnya tanpa harus melanggar hak privasi pengunjungnya, maka ia harus menyediakan sebuah alat deteksi lain yang lebih sopan. Salah satu contohnya X-Ray.

Mendekonstruksi peran mouse

Kemaren nemu site experimental dontclick. Jadi pingin membahas isu-isu User Interface / Human Computer Interaction lagi.

Site dontclick merupakan situs research tentang kebiasaan pengguna dengan piranti masukan mouse. Aturannya sederhana saja : penggunanya diharamkan menggunakan tombol atau meng-klik mouse mereka. Semua interaksi menggunakan medium pergerakan kursor pada koordinat x-y layar. Gambar dan informasi yang bersesuaian akan muncul dengan cukup mengarahkan mouse kita ke menu yang kita inginkan. Artinya klik digantikan dengan mode gerakan. Ada berbagai macam eksperimen di situ termasuk juga tutorial serta eksperimen bagaimana kita mengganti klik dengan gerakan sirkular pada layar.


Jika Anda ternyata mengklik tikus di bawah tangan Anda ketika sedang berkunjung ke sana, maka mereka akan merekamnya. Sengaja atau tidak, mereka akan mengkonfirmasinya. Termasuk keseluruhan gerakan yang Anda lakukan saat bertandang ke situs dontclick. Namanya juga penelitian. Mereka butuh mengerti bagaimana pengalaman pengguna akan membentuk suatu persepsi psikologis kognitif saat mereka menghadapi lingkungan yang baru apalagi mensarahkan meninggalkan kebiasaan lama pengguna komputer. Apakah teknik tersebut bermanfaat dalam mendekati pengguna? Apakah pengguna merasa nyaman atau malah frustasi? Secara ergonomis apakah ada hubungannya antara menghilangkan klik mouse dengan kesehatan manusia? (ini sepertinya berlebihan).

Saya sendiri salut dengan ide brilian ini. Ternyata bisa juga tombol yang imut itu ditinggalkan. Navigasi web yang smooth dan mudah. Namun sekali lagi ia tidak cukup signifikan untuk diterapkan. Klik tetaplah lebih nyaman. Karena ada hal2 yang tidak tergantikan oleh gerak.

Pertama adalah real model. Beragam inovasi diluncurkan agar User Interface (UI) semirip mungkin dengan dunia nyata. Pemodelan yang paling sederhana misalnya adalah sebuah tombol (button). Tombol berfungsi untuk memicu sebuah action. Menggunakannya adalah dengan cukup ditekan. Dalam hal ini pemodelan meng-klik mouse lebih mirip menekan tombol daripada sekedar menyentuh atau meraba-raba. Tolong, jangan ngeres ya.
Kedua yaitu faktor feedback. Mouse mampu menyajikan kemantapan dan kepuasan umpan balik bagi pengguna. Gerakan meng-klik tombol, sensasi sentuhan atas-bawah berpegas, suara ‘klik’ dari mouse lebih mampu membuat pengguna merasa terwakili. Alias lebih marem.

Alasan lainnya adalah tidak semua menu ingin kita lihat. Jika kita tak sengaja mengarahkan mouse ke menu lain maka akan tampil informasi lain. Hal ini cukup mengganggu jika kita sedang fokus membaca sebuah informasi yang cukup panjang. Akhirnya adalah kita harus selalu waspada dengan keberadaan posisi kursor kita. Salah letak bisa membuat kita berjarak dengan informasi yang kita butuhkan. Capek d!

Tak kalah penting yaitu alokasi gerakan kursor yang dilakukan oleh UI dontclick akan lebih banyak. Apalagi jika klik diganti dengan gerakan memutar di atas sebuah pilihan. Padahal terlalu banyak menggerakkan mouse hanya untuk mengakses menu merupakan salah satu ciri antarmuka yang kurang bersahabat.

Ikon Sebagai Antarmuka Manusia-Komputer

Ikon telah digunakan sejak sejarah manusia ada sebagai sirnbol dari
representasi visualnya. Kata ikon berasal dari kata Greek (Yunani Kuno) yang
digunakan untuk image, gambar-gambar, ataupun simbol-simbol yang
merepresentasikan suatu objek seperti temak, biji-bijian, masyarakat/ keluarga, dan
sebagainya. Dari ikon-ikon ini kemudian berkembang menjadi komponen-
komponen bahasa tulisan dan sistem bilangan [NOR90].
Dewasa ini ikon telah menjadi komponen urnum dalam antarmuka komputer.
Menurut Smith, dkk. [dalam FAM93] ikon juga membuat antarmuka lebih akrab
(familiar) bagi pemakai. Sedangkan Johnson [dalam FAM93] menyatakan bahwa
dengan fasilitas ikon pada sistem antarmuka, pemakai bisa memanipulasi informasi
melalui layar tampilannya, seperti cara yang pemakai gunakan dalam memanipulasi
obyek fisik pada suatu desktop.
Dalam disiplin interaksi manusia-komputer, ikon dimaksudkan sebagai
bayangan (image), gambar, atau simbol yang merepresentasikan suatu konsep
[SHN92]. Ikon dikiasifikasikan menjadi dua jenis yaitu ikon piktoral dan ikon
simbol. Ikon piktoral adalah ikon untuk merepresentasikan informasi operasi
semantik dan abstrak dengan menggunakan gambar-gambar. Sedangkan ikon-ikon
dengan beberapa karakter untuk membantu menangkap informasi semantik disebut
ilrnri cirrihril

Ikon dirancang untuk merepresentasikan suatu operasi atau perintah yang
akan dijalankan sistem. Untuk menciptakan suatu representasi bentuk visual (ikon)
yang baik harus mempertimbangkan faktor-faktor berikut:
1. Ketergantungan kultur/budaya dan aplikasi.
Ikon dirancang untuk merepresentasikan sebuah klas atau kelompok obyek (misal
operasi dan perintah), bukan hanya untuk obyek-obyek spesifik. Maka ikon yang
dibuat harus rnenggunakan sirnbol-simbol alami yang merupakan latar belakang
budaya pemakai. Adalah suatu fakta bahwa dalam setiap kelompok masyarakat
yang berbeda akan memiliki gaya kognitf yang berbeda pula., dan sangat dapat
dimengerti bahwa preferensi masing-masing individu bisa berbeda-beda
[SHN92]. Sebagai contoh tanda stop bidang delapan (oktagonal) dan simbol "x"
dapat mengandung pengertian "tidak" dan beberapa ruang kamar kecil
digunakan ikon "pants" dan "skirt" di depan pintu yang berarti simbol "laki-laki"
dan "perempuan" [CHA90].
2. Bentuk mudah dikenal (easy recognition).
Suatu ikon yang dirancang dengan makna yang tepat akan membantu pemakai
dalam mengingat dan mengidentifikasi ikon itu. Keuntungan dari suatu ikon
adalah bahwa ikon dapat dikenal melalui bentuk-bentuknya, sekali bentuk itu
diketahui maka akan dengan mudah untuk diingat artinya tanpa menambahkan
teks yang mungkin sulit untuk diimplementasikan
3. Berbeda dengan ikon lainnya dalam suatu sistem.
Ikon di dalam suatu sistem harus konsisten danjelas (mudah dibedakan). Setiap
ikon harus dirancang dengan ciri yang khas, yang merefleksikan makna dari
obyek yang direpresentasikan dan harus berbeda dengan ikon yang lain.
Dengan digunakannya ikon sebagai antarmuka dalam suatu sistem akan
memberikan keuntungan bagi pemakai, yaitu:
• Operasi akan menjadi lebih cepat daripada menuliskan kata-kata perintah.
• Untuk memahami arti semantik suatu ikon akan lebih cepat.
• Perintah-perintah atau operasi dengan ikon dapat dilakukan secara simultan.
Dalam sistem interaksi berbasis ikon, ukuran simbol-simbol piktografis
untuk merepresentasikan suatu obyek dalam suatu sistem komputer, biasanya
64x64 piksel. Tetapi, yang lebih utama dalam pembuatan ikon sebagai interface
adalah ikon tersebut mudah ditangkap, mudah dibaca, berhubungan dengan
pengetahuan pemakai dan dapat mengurangi beban kognitif pemakai [SHN92].
Ketepatan bentuk pola gambar dari rancangan ikon akan membantu pemakai
dalam mengingat dan mengidentifikasikan ikon tersebut, sehingga tidak perlu
menarnbahkan teks untuk memperjelasnya. Selain itu, ikon dalam suatu sistem harus
konsisten dan mudah dapat dibedakan satu sama lainnya. Setiap ikon harus
dirancang dengan ciri khas, yang merefleksikan pengertian dari sesuatu yang
direpresentasikan dan berbeda dengan ikon lainnya [CHA90].

Model Mental HCI

Sejak adanya ternuan-ternuan yang dilakukan oleh para peneliti HCI tentang
fungsionalitas sistem, yakni "apa yang diketahui oleh pemakai tentang sistem
perangkat lunak komputer" dan usability sistem, yakni "apa yang harus dilakukan
oleh pemakai terhadap sistem " mendorong perkembangan riset dalam HCI tersebut.
Riset yang dilakukan pada akhir-akhir ini mulai berfokus kepada jenis-jenis
pengetahuan pemakai ketika ia menggunakan sistem komputer. Konsep model
mental terhadap sistem adalah topik utamanya. Studi representasi pengetahuan yang
berbasis komputer ini menghasilkan keuntungan-keuntungan antara lain studi ini
bisa menggali basis perilaku teoritis, seperti perilaku khusus pemakai terhadap
tugasnya. Studi jenis ini juga berkaitan dengan representasi mental, maka diperlukan

3. Mental model. Pemakai dikatakan sudah memiliki model mental terhadap sistem
apabila ia telah memahami bagaimana sistem itu bekerja, apa saja komponen
sistem tersebut, bagaimana hubungannya, apa saja proses-proses internalnya, dan
bagaimana operasi internal tersebut mempengaruhi komponen-komponennya
[CAR90].

Ketepatan rancangan system image dari suatu sistem terhadap model mental
pemakai adalah sangat penting. Jika sistem tersebut tidak bisa merepresentasikan
model mental pemakai secara baik, maka interaksi yang terjadi antara sistem dan
pemakai niscaya akan mengalami hambatan-hambatan. Pemakai akan tidak bisa
nyaman dalam menggunakan sistem tersebut, bahkan bisa terjadi kesalahpahaman,
karena beban kognitif pemakai bertambah berat. Oleh karenanya, dalam sistem antar
muka biasanya masalah yang paling sering terjadi adalah kesenjangan antara model
mental pemakai mengenai tugas dari sistem dengan keadaan riil dari sistem itu.
Misalnya, pada waktu memulai suatu program, seorang pemakai sudah memiliki
tujuan yang ingin dicapai dari interaksi yang dilakukan, yang mana tujuan ini ada
didalam pikiran pemakai. Di lain pihak, perancang atau pengembang program juga
mempunyai tujuan sendiri dari sistem yang dikembangkannya. Bila tujuan dari
pemakai dan tujuan dari perancang sistim itu berbeda jauh, maka disini biasanya
akan terjadi kesukaran atau konflik-konflik ketika berinteraksi.
Oleh Norman (1986) ditegaskan bahwa konflik-konflik demikian bisa terjadi
di-karenakan adanya kesenjangan antara model mental (yakni: goals dan intensi)
seseorang yang disebut variabel-variabel psikologikal dengan variabel-variabel
fisikal (sistem). Narnun demikian, perbedaan atau kesenjangan antara tujuan dari
pemakai dan sistim ini dapat diperkecil bila rancangan sistem dibuat berdasarkan
data-data dari pemakai, misalnya kemampuan kognitif pemakai, tujuan yang ingin
dicapai oleh pemakai, dan sebagainya. Untuk hal tersebut Norman (1986) mencoba
mengaplikasikan hasil risetnya dibidang cognitive science yang dikenal dengan
istilah Cognitive Engineering. Melalui cognitive engineering ini kesenjangan akan
diperkecil.
Kesenjangan interaksi antara pemakai dan sistem tersebut digambarkan
dengan dua buah gulfs (celah) yaitu the gulf of execution (celah eksekusi) dan the
gulfofevaluation (celah evaluasi )

Physica
Syistem

Gulf of
Execution

Gulf of
Evaluation

Agar celah tersebut tidak semakin jauh, maka kedua gulfs tersebut harus

dijembatani sehingga terdapat kecocokan antara sistem yang ada dengan model
mental pemakai. Kedua gulfs dijembatani dalam dua arah, dari arah sistem
dijembatani dengan Evaluation Bridge, sedangkan dari arah sisi pemakai

dijembatani dengan Execution Bridge
Dapat disimak bahwajembatan dari sisi pemakai (goals)
ke sistem fisikal (physical system) diawali dengan formasi intensi pemakai yang
relevan dengan sistem. Selanjutnya, pemakai menentukan langkah-langkah tindakan
I khusus (action specification) yang tepat guna mengeksekusi sebarisan tindakan itu

~xecuting the action). Melalui mekanisme antarmuka (interface mechanism),
I-
l~sekusi tindakan ini dijalankan untuk kemudian disampaikan ke sistem. Sistem

Mneresponnya,yang selanjutnya hasil respon tersebut (output), disampaikan


Execution Bridai atau ditampilkan lagi kepada pemakai melalui piranti yang tersedia (monitor atau
tampilan antarmuka). Jadi ada 4 komponen yang menjembatani dari sistem pemakai
ke sistem fisikal, yakni formasi intensi, spesifikasi aksi, eksekusi aksi dan
mekanisme antarmuka.
Sedangkan jembatan dari sisi sistem fisikal ke pemakai diawali dengan
tampilan antarmuka (interface display) yang menampilkan output (keluaran) dari
sistem. Output ini kemudian diinterpretasikan oleh pemakai melalui proses
intemalnya (pengolahan persepsinya). Selanjutnya dilakukan evaluasi dengan
membandingkan hasil interpretasi dari status sistem dengan goal dan intensi awal
(original goal). Dalam jembatan ini juga ada 4 (empat) komponen, yaitu tampilan
antarmuka, pengolahan persepsi, interpretasi, dan evaluasi [NOR86].

Pengertian HCI

Ketika komputer pertama kali diperkenalkan secara komersial pada tahun 50-an, mesin ini sangat sulit dipakai dan sangat tidak praktis. Hal demikian karena waktu itu komputer merupakan mesin yang sangat mahal dan besar, hanya dipakai dikalangan tertentu, misalnya para ilmuwan atau ahli-ahli teknik.
Setelah komputer pribadi (PC) diperkenalkan pada tahun 70-an, maka berkembanglah penggunaan teknologi ini secara cepat dan mengagurnkan ke berbagai penjuru kehidupan (pendidikan, perdagangan, pertahanan, perusahaan, dan sebagainya). Kemajuan-kemajuan teknologi tersebut akhirnya juga mempengaruhi rancangan sistem. Sistem rancangan dituntut harus bisa memenuhi kebutuhan pemakai, sistem harus mempunyai kecocokkan dengan kebutuhan pemakai atau suatu sistem yang dirancang harus berorientasi kepada pemakai. Pada awal tahun 70-an ini, juga mulai muncul isu teknik antarmuka pemakai (user interface) yang diketahui sebagai Man-Machine Interaction (MMI) atau Interaksi Manusia-Mesin.
Pada Man-Machine Interaction sudah diterapkan sistem yang "user friendly". Narnun, sifat user friendly pada MMI ini diartikan secara terbatas. User friendly pada MMI hanya dikaitkan dengan aspek-aspek yang berhubungan dengan estetika atau keindahan tampilan pada layar saja. Sistem tersebut hanya menitik beratkan pada aspek rancangan antarmukanya saja, sedangkan faktor-faktor atau aspek-aspek yang berhubungan dengan pemakai baik secara organisasi atau individu belum diperhatikan [PRE94].
Para peneliti akademis mengatakan suatu rancangan sistem yang berorientasi kepada pemakai, yang memperhatikan kapabilitas dan kelemahan pemakai ataupun sistem (komputer) akan memberi kontribusi kepada interaksi manusia-komputer yang lebih baik. Maka pada pertengahan tahun 80-an diperkenalkanlah istilah Human-Computer Interaction (HCI) atau Interaksi Manusia-Komputer.
Pada HCI ini cakupan atau fokus perhatiannya lebih luas, tidak hanya berfokus pada rancangan antarmuka saja, tetapi juga memperhatikan semua aspek yang berhubungan dengan interaksi antara manusia dan komputer. HCI ini kemudian berkembang sebagai disiplin ilmu tersendiri (yang merupakan bidang ilmu interdisipliner) yang membahas hubungan tirnbal balik antara manusia-komputer beserta efek-efek yang terjadi diantaranya.
Oleh Baecker dan Buxton [dalam PRE94] HCI ini didefinisikan sebagai "set of processes, dialogues, and actions through -which a human user employs and interacts with computer". ACM-SGCHI [dalam PRE94] lebih jauh menuliskan definisi tentang HCI sebagai berikut:
--- human-computer interaction is a discipline concerned with the design, evaluation and implementation of interactive computing system for human use and with the study of major phenomena surrounding them. "
Dengan demikian terlihat jelas bahwa fokus perhatian HCI tidak hanya pada keindahan tampilannya saja atau hanya tertuju pada tampilan antarmukanya saja, tetapi juga memperhatikan aspek-aspek pamakai, implementasi sistem rancangannya dan fenomena lingkungannya, dan lainnya. Misalnya, rancangan sistem itu harus memperhatikan kenyamanan pemakai, kemudahan dalam pemakaian, mudah untuk dipelajari dlsb.
Tujuan dari HCI adalah untuk menghasilkan sistem yang bermanfaat (usable) dan aman (safe), artinya sistem tersebut dapat berfungsi dengan baik. Sistem tersebut bisa untuk mengembangkan dan meningkatkan keamanan (safety), utilitas (utility), ketergunaan (usability), efektifitas (efectiveness) dan efisiensinya (eficiency). Sistem yang dimaksud konteksnya tidak hanya pada perangkat keras dan perangkat lunak, tetapi juga mencakup lingkungan secara keseluruhan, baik itu lingkungan organisasi masyarakat kerja atau lingkungan keluarga. Sedangkan utilitas mengacu kepada fungsionalitas sistem atau sistem tersebut dapat meningkatkan efektifitas dan efesiensi kerjanya. Ketergunaan (usability) disini dimaksudkan bahwa sstem yang dibuat tersebut mudah digunakan dan mudah dipelajari baik secara individu ataupun kelompok.
Pendapat Preece, J. di atas didasarkan pada pemikiran yang menyatakan bahwa kepentingan pemakai sistem harus didahulukan, pemakai tidak bisa diubah secara radikal terhadap sistem yang telah ada, sistem yang dirancang harus cocok dengan kebutuhan-kebutuhan pemakai.
Selanjutnya, dalam berinteraksi dengan komputer, para pemakai pertama kali akan berhadapan dengan perangkat keras komputer. Untuk sampai pada isi yang ingin disampaikan oleh perangkat lunak, pemakai dihadapkan terlebih dahulu dengan seperangkat alat seperti papan ketik (keyboard), monitor, mouse, joystick, dan lain-lain. Pemakai harus dapat mengoperasikan seperangkat alat tersebut. Selanjutnya, pemakai akan berhadapan dengan macam-macam tampilan menu, macam-macam perintah yang terdiri dari kata atau kata-kata yang harus diketikkannya, misalnya save, copy, delete, atau macam-macam ikon. Peralatan, perintah, ikon dan lain-lain yang disebutkan di atas dikenal dengan nama interface (antarmuka). Interface ini merupakan lapisan pertama yang langsung bertatap muka dengan pemakai.

Sistem interaksi itu sendiri juga merupakan bagian dari sistem komputer yang dibuat, sehingga memungkinkan manusia bermteraksi dengan sistem komputer se-efektif mungkin guna memanfaatkan kemampuan pengolahan yang tersedia pada sistem komputer. Salah satu model antarmuka antara manusia dan komputer atau rangkaian kegiatan interaksi manusia-komputer secara sederhana dapat disimak pada gambar di bawah.

Terlihat bahwa manusia memberi isyarat, atau masukan data kepada sistem pengolah informasi komputer, melalui alat masukan yang tersedia pada sistim komputer (misalnya keyboard). Berdasarkan masukan ini, melalui alat keluarannya (mi~lnya monitor), hasil-hasil pengolahan dari prosesor komputer disajikan kepada manusia. Melalui sensor manusia, seperti penglihatan (mata), pendengaran (telinga), dan peraba, sajian atau masukan-masukan itu kemudian dipantau/dimonitor untuk selanjutnya diteruskan ke sistem pengolah informasi manusia (perceptual processing, intellectual/cognitive processing, dan motor control yang selalu berinteraksi dengan human memory) untuk ditafsirkan.

Setelah penafsiran dilakukan dan keputusan diambil, maka diteruskanlah perintah ke alat responder manusia (tangan, jari, suara, dan lainnya) untuk melakukan tindak lanjutan yang pada urnumnya diwujudkan berupa masukan kembali ke komputer.

Rangkaian pesan dan isyarat antara manusia dengan komputer membentuk suatu dialog interaktif, yakni serangkaian aksi dan reaksi yang saling berkaitan. Memperhatikan rangkaian kegiatan interaksi yang terjadi, jelaslah bahwa sifat dari suatu interaksi sangat ditentukan oleh dialog manusia-komputer dan teknologi dari alat masukan serta keluaran yang digunakan [DOW92].
Dengan faktor-faktor yang tercakup pada HCI tersebut, sekarang semakin menjadi jelas peranan HCI di dalam rancangan sistem. la akan mempertinggi kualitas interaksi antara sistem komputer dan manusia. Untuk bisa tercapainya kualitas yang tinggi pada interaksi tersebut, maka secara sistematik perlu diterapkannya pengetahuan tentang tujuan manusia (human goals), kapabilitas dan keterbatasan manusia bersama-sama dengan pengetahuan tentang kapabilitas dan keterbatasan komputer pada sistem. Pengetahuan-pengetahuan yang berhubungan itu selanjutnya untuk mengetahui aspek-aspek fisik, sosial, organisasi dan lingkungan kerja pemakai. Dengan demikian, perancang sistem harus bisa membuat transisi dari 'apa yang dapat dilakukan kepada sistem (functionality)" menjadi 'bagaimana sistem itu harus dilakukan agar cocok dengan pemakai (usability)".

Hubungan antara HCI dan CSCR

CSCR merupakan bidang baru terkait riset masyarakat HCI. CSCR merupakan kelanjutan dari pendahulunya, yaitu Computer Supported Collaborative Work (CSCW) dan Computer Supported Collaborative Learning (CSCL). Keduanya ini merupakan subyek riset HCI hampir sepuluh tahun yang lalu.

Gambar berikut menampilkan kedudukan dari ketiganya (merupakan bagian dari HCI)

Gambar CSCR 1


Perbedaan utama antara CSCW dan CSCL yaitu bahwa CSCW dikarakteristikan oleh “kebutuhan akan ruang kerja (workingspace)” sedangkan CSCL membutuhkan ruang kerja dan ruang belajar (learningspace)

Workingspace adalah domain tempat aktivitas-aktivitas berikut berlangsung: communication space, scheduling space, sharing space, dan product space.

Learning space adalah domain yang memuat seluruh aspek workingspace ditambah dengan aktivitas berikut: reflection space, social space, assessment space, tutor space, dan administration space

Perbedaan utama antara CSCR dan CSCL adalah bahwa suatu rekord penuh dari seluruh interaksi antar partisipan merupakan tool penting dan dibutuhkan untuk mengevaluasi kontribusi setiap anggota dalam suatu collaboratiob group yang nanti dapat menentukan “suatu share modal yang adil (a fair capital share) apabila proyek riset berjalan dengan sukses.is successful.

CSCR membutuhkan Workingspace, Learningspace, dan aktivitas-aktivitas berikut: knowledge space, publication space, privacy space, publication space, negotiation space.

Kecerdasan Buatan 3

Angkatan Udara AS (USAF) kini tengah m,engembangkan sistem kendali penerbangan untuk pesawat militer dan rudal dengan kecerdasan buatan atau artificial intelligence. Tujuannya adalah membantu kestabilan terbang pada saat-saat krisis, sehingga pilot lebih mudah dalam mengatasi kerusakan pada pesawat serta mengurangi kemungkinan jatuhnya korban. Sistem pengendalian yang didasarkan pada jejaring teknologi neural ini dikembangkan bersama dengan Georgia Institute of Technology di Atlanta. Sistem ini sekarang telah siap untuk diuji-cobakan pada beberapa jenis pesawat tak berawak USAF, seperti UCV atau pesawat tempur tanpa awak serta pesawat angkasa VentureStar. UCV adalah proyek dari badan riset USAF untuk membuktikan kemungkinan pemakaian pesawat tak berawak untuk melakukan serangan udara. Menurut USAF, sistem neural untuk kendali penerbangan ini menawarkan kestabilan yang nyaris sempurna dan langsung pada saat timbul kerusakan atau kegagalan pada sistem kendali konvensional. Sistem itu secara otomatis juga menyesuaikan diri dengan perubahan lingkungannya, seperti berat pesawat, kerusakan sayap dan sebagainya. Pengembangan sistem ini telah dimulai sejak 1996, dan sampai tahun lalu telah menghabiskan biaya 2,5 juta dollar.

KECERDASAN BUATAN DALAM ROBOTIK

Kecerdasan Buatan (Artificial Intelligence) dalam robotik adalah suatu algorithma (yang dipandang) cerdas yang diprogramkan ke dalam kontroler robot. Pengertian cerdas di sini sangat relatif, karena tergantung dari sisi mana sesorang memandang.

Para filsuf diketahui telah mulai ribuan tahun yang lalu mencoba untuk memahami dua pertanyaan mendasar: bagaimanakah pikiran manusia itu bekerja, dan, dapatkah yang bukan-manusia itu berpikir? (Negnevitsky, 2004). Hingga sekarang, tak satupun mampu menjawab dengan tepat dua pertanyaan ini. Pernyataan cerdas yang pada dasarnya digunakan untuk mengukur kemampuan berpikir manusia selalu menjadi perbincangan menarik karena yang melakukan penilaian cerdas atau tidak adalah juga manusia. Sementara itu, manusia tetap bercita-cita untuk menularkan �kecerdasan manusia� kepada mesin.


Dalam literatur, orang pertama yang dianggap sebagai pionir dalam mengembangkan mesin cerdas (intelligence machine) adalah Alan Turing, sorang matematikawan asal Inggris yang memulai karir saintifiknya di awal tahun 1930-an. Di tahun 1937 ia menulis paper tentang konsep mesin universal (universal machine). Kemudian, selama perang dunia ke-2 ia dikenal sebagai pemain kunci dalam penciptaan Enigma, sebuah mesin encoding milik militer Jerman. Setelah perang, Turing membuat �automatic computing engine�. Ia dikenal juga sebagai pencipta pertama program komputer untuk bermain catur, yang kemudian program ini dikembangkan dan dimainkan di komputer milik Manchester University. Karya-karyanya ini, yang kemudian dikenal sebagai Turing Machine, dewasa ini masih dapat ditemukan aplikasi-aplikasinya. Beberapa tulisannya yang berkaitan dengan prediksi perkembangan komputer di masa datang akhirnya juga ada yang terbukti. Misalnya tentang ramalannya bahwa di tahun 2000-an komputer akan mampu melakukan percakapan dengan manusia. Meski tidak ditemukan dalam paper-papernya tentang istilah �resmi�: artificial intelligence, namun para peneliti di bidang ini sepakat untuk menobatkan Turing sebagai orang pertama yang mengembangkan kecerdasan buatan.

Secara saintifik, istilah kecerdasan buatan � untuk selanjutnya disebut sebagai AI (artificial intelligence) � pertama kali diperkenalkan oleh Warren McCulloch, seorang filsuf dan ahli perobatan dari Columbia University, dan Walter Pitts, seorang matematikawan muda pada tahun 1943, (Negnevitsky, 2004). Mereka mengajukan suatu teori tentang jaringan saraf tiruan (artificial neural network, ANN) � untuk selanjutnya disebut sebagai ANN � bahwa setiap neuron dapat dipostulasikan dalam dua keadaan biner, yaitu ON dan OFF. Mereka mencoba menstimulasi model neuron ini secara teori dan eksperimen di laboratorium. Dari percobaan, telah didemonstrasikan bahwa model jaringan saraf yang mereka ajukan mempunyai kemiripan dengan mesin Turing, dan setiap fungsi perhitungan dapat dapat diselesaikan melalui jaringan neuron yang mereka modelkan.

Kendati mereka meraih sukses dalam pembuktian aplikasinya, pada akhirnya melalui eksperimen lanjut diketahui bahwa model ON-OFF pada ANN yang mereka ajukan adalah kurang tepat. Kenyataannya, neuron memiliki karakteristik yang sangat nonlinear yang tidak hanya memiliki keadaan ON-OFF saja dalam aktifitasnya. Walau demikian, McCulloch akhirnya dikenal sebagai orang kedua setelah Turing yang gigih mendalami bidang kecerdasan buatan dan rekayasa mesin cerdas. Perkembangan ANN sempat mengalami masa redup pada tahun 1970-an. Baru kemudian pada pertengahan 1980-an ide ini kembali banyak dikaji oleh para peneliti.

Sementara itu, metoda lain dalam AI yang sama terkenalnya dengan ANN adalah Fuzzy Logic (FL) � untuk selanjutnya ditulis sebagai FL. Kalau ANN didisain berdasarkan kajian cara otak biologis manusia bekerja (dari dalam), maka FL justru merupakan representasi dari cara berfikir manusia yang nampak dari sisi luar. Jika ANN dibuat berdasarkan model biologis teoritis, maka FL dibuat berdasarkan model pragmatis praktis. FL adalah representasi logika berpikir manusia yang tertuang dalam bentuk kata-kata.

Kajian saintifik pertama tentang logika berfikir manusia ini dipublikasikan oleh Lukazewicz, seorang filsuf, sekitar tahun 1930-an. Ia mengajukan beberapa representasi matematik tentang �kekaburan� (fuzziness) logika ketika manusia mengungkapkan atau menyatakan penilaian terhadap tinggi, tua dan panas (tall, old, & hot). Jika logika klasik hanya menyatakan 1 atau 0, ya atau tidak, maka ia mencoba mengembangkan pernyataan ini dengan menambahkan faktor kepercayaan (truth value) di antara 0 dan 1.

Di tahun 1965, Lotfi Zadeh, seorang profesor di University of California, Berkeley US, mempublikasikan papernya yang terkenal, �Fuzzy Sets�. Penelitian-penelitian tentang FL dan fuzzy system dalam AI yang berkembang dewasa ini hampir selalu menyebutkan paper Zadeh itulah sebagai basis pijakannya. Ia mampu menjabarkan FL dengan pernyataan matematik dan visual yang relatif mudah untuk dipahami. Karena basis kajian FL ini kental berkaitan dengan sistem kontrol (Zadeh adalah profesor di bidang teknik elektro) maka pernyataan matematiknya banyak dikembangkan dalam konteks pemrograman komputer.

Metoda AI lain yang juga berkembang adalah algorithma genetik (genetic algorithm, GA) � untuk selanjutnya disebut sebagai GA. Dalam pemrograman komputer, aplikasi GA ini dikenal sebagai pemrograman berbasis teori evolusi (evolutionary computation, EC) � untuk selanjutnya disebut sebagai EC. Konsep EC ini dipublikasikan pertama kali oleh Holland (1975). Ia mengajukan konsep pemrograman berbasis GA yang diilhami oleh teori Darwin. Intinya, alam (nature), seperti manusia, memiliki kemampuan adaptasi dan pembelajaran alami �tanpa perlu dinyatakan: apa yang harus dilakukan�. Dengan kata lain, alam memilih �kromosom yang baik� secara �buta�/alami. Seperti pada ANN, kajian GA juga pernah mengalami masa vakum sebelum akhirnya banyak peneliti memfokuskan kembali perhatiannya pada teori EC.

GA pada dasarnya terdiri dari dua macam mekanisme, yaitu encoding dan evaluation. Davis (1991) mempublikasikan papernya yang berisi tentang beberapa metoda encoding. Dari berbagai literatur diketahui bahwa tidak ada metoda encoding yang mampu menyelesaikan semua permasalahan dengan sama baiknya. Namun demikian, banyak peneliti yang menggunakan metoda bit string dalam kajian-kajian EC dewasa ini.

Aplikasi AI dalam kontrol robotik dapat diilustrasikan sebagai berikut,


Gambar 4.1: Kontrol robot loop tertutup berbasis AI

Penggunaan AI dalam kontroler dilakukan untuk mendapatkan sifat dinamik kontroler �secara cerdas�. Seperti telah dijelaskan di muka, secara klasik, kontrol P, I, D atau kombinasi, tidak dapat melakukan adaptasi terhadap perubahan dinamik sistem selama operasi karena parameter P, I dan D itu secara teoritis hanya mampu memberikan efek kontrol terbaik pada kondisi sistem yang sama ketika parameter tersebut di-tune. Di sinilah kemudian dikatakan bahwa kontrol klasik ini �belum cerdas� karena belum mampu mengakomodasi sifat-sifat nonlinieritas atau perubahan-perubahan dinamik, baik pada sistem robot itu sendiri maupun terhadap perubahan beban atau gangguan lingkungan.

Banyak kajian tentang bagaimana membuat P, I dan D menjadi dinamis, seperti misalnya kontrol adaptif, namun di sini hanya akan dibahas tentang rekayasa bagaimana membuat sistem kontrol bersifat �cerdas� melalui pendekatan-pendekatan AI yang populer, seperti ANN, FL dan EC atau GA.

Gambar 4.1 mengilustrasikan tentang skema AI yang digunakan secara langsung sebagai kontroler sistem robot. Dalam aplikasi lain, AI juga dapat digunakan untuk membantu proses identifikasi model dari sistem robot, model lingkungan atau gangguan, model dari tugas robot (task) seperti membuat rencana trajektori, dan sebagainya. Dalam hal ini konsep AI tidak digunakan secara langsung (direct) ke dalam kontroler, namun lebih bersifat tak langsung (indirect).

Kecerdasan Buatan 2

Kecerdasan Buatan (bahasa Inggris: Artificial Intelligence atau AI) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan robotika.

Banyak hal yang kelihatannya sulit untuk kecerdasan manusia, tetapi untuk Informatika relatif tidak bermasalah. Seperti contoh: mentransformasikan persamaan, menyelesaikan persamaan integral, membuat permainan catur atau Backgammon. Di sisi lain, hal yang bagi manusia kelihatannya menuntut sedikit kecerdasan, sampai sekarang masih sulit untuk direalisasikan dalam Informatika. Seperti contoh: Pengenalan Obyek/Muka, bermain Sepakbola.

Walaupun AI memiliki konotasi fiksi ilmiah yang kuat, AI membentuk cabang yang sangat penting pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan adaptasi yang cerdas dalam sebuah mesin. Penelitian dalam AI menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game.

'Kecerdasan buatan' ini bukan hanya ingin mengerti apa itu sistem kecerdasan, tapi juga mengkonstruksinya.

Kecerdasan Buatan

Kecerdasan Buatan (bahasa Inggeris: Artificial Intelligence) atau lebih dikenali sebagai AI merujuk kepada mesin yang mampu untuk berfikir, menimbangkan tindakan yang akan diambil, dan mampu mengambil keputusan sepertimana yang dilakukan oleh manusia.

Terdapat beberapa cara yang digunakan untuk membina kecerdasan buatan buat masa ini. Contoh-contoh utama termasuk :

* Logik Kabur : Menggunakan logik kabur untuk mencapai pilihan optimum. Berdasarkan intuisi manusia dan sangat mudah untuk direka.
* Jaringan Neural (bahasa Inggeris: Neural Network): Dimodel dari interaksi antara neuron sebenar. Berkemampuan untuk belajar dari set data-data sedia ada untuk meramal output.
* Pengiraan Evolusi : Menggunakan model berasaskan konsep evolusi (mutasi, perkongsian genetic, keupayaan hidup) untuk menghasilkan penyelesaian termudah untuk sesuatu masalah.

Oleh kerana bidang ini masih muda berbanding dengan cabang-cabang sains lain masih tiada jaminan cara yang mana yang akan boleh menghasilkan AI yang sebenar (true AI); AI yang mampu meniru 100% cara manusia berfikir.

Menulis Program dengan Teknik Dynamic Loading

Semua plug-ins di Netscape atau modul di Apache memakai teknik yang sama, yaitu Dynamic Loading (DL). Ada beberapa terminologi lain untuk menyebutkan teknik ini, seperti DSO (Dynamic Shared Object) atau DLL (Dynamic Link Library). Tulisan ini akan memberikan pengantar tentang bagaimana membuat program dengan memakai teknik ini.
1.Pendahuluan Dalam pembuatan sebuah program, terkadang kita tidak ingin semua fungsi diimplementasikan langsung pada program utama, karena kita mungkin belum tahu fungsi apa saja yang harus disediakan. Atau kita menginginkan pemakai program ini harus mempunyai kemungkinan untuk menambahkan fungsi-fungsi yang belum ada pada program yang akan kita tulis. Tentu saja semua itu harus dapat dilakukan tanpa harus melakukan proses rekompilasi program utama dari awal. Teknik Dynamic Loading adalah solusi yang tepat untuk merealisasikan keinginan di atas. Yang harus kita kerjakan hanyalah menulis program pokok yang mempunyai kemampuan memuatkan (loading) fungsi tambahan dan menginterpretasikan fungsi ini dengan benar. Sebelum kita membahas lebih jauh, kita harus mengetahui terlebih dahulu bagaimana tahapan proses dari file source code menjadi file yang bisa dieksekusi. Kita akan memulai dengan menulis program yang sudah tidak asing lagi bagi para pemrogram bahasa C yaitu Hello World.
#include
int main(int argc, char** argv) { printf("Hello World"); } Untuk melakukan proses kompilasi dapat dipakai perintah:
$ gcc -o hello hello.c Instruksi di atas akan melakukan proses berikut:
1.Proses kompilasi Source code hello.c dikompilasi menghasilkan file objek hello.o. Karena fungsi printf() tidak diimplementasikan di file ini, maka kompiler akan memberi catatan di tabel file objek ini bahwa fungsi printf() belum mempunyai referensi. 2.Proses linking Linker akan mencari di librari standard pengimplementasi fungsi yang tidak dapat ditemukan pada saat proses kompilasi, dalam hal ini pengimplementasi fungsi printf(). Perintah di atas secara implisit memanggil linker dan menambahkan beberapa librari standar sebagai parameter. Di sini pengimplementasi fungsi dari printf() akan ditemukan di libc yang juga ditambahkan tanpa sepengetahuan sang pemrogram. Proses linking librari ke program utama dibedakan menjadi dua tergantung dari caranya: 2.Proses linking statis (static linking). Di sini jika pengimplementasi fungsi printf() ditemukan, maka akan dikopikan ke dalam file objek hello. 3.Proses linking dinamis (dynamic linking). Di sini libc diimplementasikan sebagai shared library. Linker hanya akan mencatatkan referensi ke simbol pengimplementasi fungsi printf() pada file objek hello. Jika file program hello hasil dari proses linking statis dieksekusi, maka objek file program akan dimuatkan ke memori. Kemudian fungsi pertama, yang nama simbolnya tergantung dari sistem (contohnya __main), akan dipanggil. Fungsi ini, yang biasanya didefinisikan oleh kompiler atau librari akan melakukan seting dan initialisasi internal dan akhirnya akan memanggil fungsi utama main() yang didefinisikan oleh user. Pada cara kedua, jika program hello dieksekusi, maka objek file ini mula-mula juga akan dimuatkan ke memori. Kemudian linker dinamis (dynamic linker) akan membaca catatan referensi yang ada di file program hello yang dihasilkan oleh linker sebelumnya. Jika objek file shared library yang berisi pengimplementasi fungsi yang dibutuhkan belum dimuatkan ke memori, maka linker dinamis akan secara rekursif memuatkan objek file shared library ini ke memori. Rekursif berarti, jika suatu file shared library mempunyai referensi ke file shared library lainnya, maka objek file shared library yang lain ini juga akan dimuatkan ke memori (jika belum dimuat) dan seterusnya. Selanjutnya semua referensi yang merujuk ke simbol pengimplementasi fungsi akan diperbaharui ke posisi simbol yang aktual. Ini disebabkan posisi simbol pengimplementasi baru dapat ditentukan setelah objek file shared library dimuatkan ke memori (runtime). Dan posisi ini selalu berubah-ubah, tergantung dari banyak hal, seperti kapan objek file shared library ini dimuatkan ke memori, objek file shared library apa saja yang sudah dimuatkan ke memori dan sebagainya. Karena kita hanya akan membahas cara yang kedua, maka untuk selanjutnya terminologi librari dimaksudkan untuk merujuk ke shared library. 1.Shared Library Seperti disebutkan di atas, setiap kali objek file librari dimuatkan ke memori tidak selalu mempunyai posisi yang sama. Maka posisi simbol di dalam file libraripun mempunyai alamat yang selalu berubah. Oleh karena itu untuk mereferensi sebuah simbol, dilakukan pengalamatan berbasis zero, yaitu pengalamatan yang relatif terhadap posisi awal dari file librari. Setelah alamat posisi awal dapat ditentukan, maka referensi semua simbol di file librari dapat dihitung pada saat waktu eksekusi (runtime). Pada Program Library HOWTO [#!Wheeler!#] disebutkan tiga jenis librari, selain librari statis (static library) dan shared library masih ada dynamic loaded library. Dilihat dari arsitektur filenya, tidak ada perbedaan antara shared library dan dynamic loaded library. Pembedaan ini hanya dipandang dari sisi pemrogramnya saja. Pada shared library, proses loading dari objek file librari terjadi saat program utama dimuatkan ke memori (proses linking dinamis seperti diuraikan di atas). Sedang pada dynamic loaded library, proses loading dari file librari dapat berlangsung kapan saja selama program utama dijalankan. Proses linking ini juga sering disebut dengan runtime linking. Kita akan menamakan teknik yang memanfaatkan runtime linking ini dengan nama Dynamic Loading. Sebelum teknik ini dibahas, ada baiknya kita mengetahui aturan pemberian nama pada sebuah shared library, walaupun aturan ini tidak sepenuhnya berlaku pada dynamic loaded library. Penggunaan terminologi shared library untuk selanjutnya berlaku juga pada dynamic loaded library. Berbeda dengan jenis librari statis, shared library mempunyai dua jenis nama, yaitu soname dan real name. Soname terdiri dari awalan lib, nama dari librari, kata .so diikuti tanda titik (".") dan nomor versi mayor, seperti contohnya libhello.so.1. Real name adalah nama file librari sebenarnya yang disusun dari soname ditambah tanda titik ("."), nomor minor, dan kalau ada diikuti tanda titik (".") dan nomor release, seperti contohnya libhello.so.1.1 atau libhello.so.1.1.5. Selain kedua jenis nama di atas, masih ditambahkan satu jenis nama lagi yaitu linker name yang sama dengan soname tanpa nomor versi mayor, seperti contohnya libhello.so. Program yang membutuhkan file shared library akan melakukan referensi menggunakan jenis nama ini. Secara umum linker name adalah link ke soname dan soname adalah link ke real name. 2.API dari Dynamic Loading Kebanyakan sistem operasi menyediakan API (Application Program Interface) untuk penggunaan teknik Dynamic Loading. Sayangnya, nama-nama API ini belum ada standarnya, sehingga secara umum setiap sistem operasi menggunakan nama API sendiri-sendiri. Di sini kita akan menggunakan API dari sistem operasi Linux. Sebelum kita mulai dengan contoh program, kita akan membahas terlebih dahulu fungsi-fungsi API yang ditulis dalam bahasa program C. Deklarasi dari fungsi-fungsi ini terdapat di file header . void* dlopen(const char* filename, int flag); Fungsi ini bertujuan untuk memuatkan objek file filename ke memori. Jika pemanggilan fungsi berhasil atau file objek filename sudah ada di memori, maka fungsi akan mengembalikan sebuah handle sebagai hasilnya. Pada prinsipnya handle ini dapat dibayangkan sebagai referensi yang merujuk ke file objek filename. Namun demikian handle ini tidak boleh diinterpretasikan sebagai apapun juga, tapi hanya boleh digunakan sebagai parameter waktu pemanggilan fungsi lainnya seperti dlsym() atau dlclose(). Setiap kali fungsi ini dipanggil dengan sukses, maka librari dl akan memanajemen jumlah pemakai handle ini dengan cara menginkrementasi variabel. Parameter flag menentukan bagaimana dlopen() menangani simbol yang ada di objek filename. RTLD_LAZY dan RTLD_NOW dengan kombinasi RTLD_GLOBAL atau RTLD_LOCAL dapat digunakan untuk parameter ini. Intinya, pada RTLD_LAZY relokasi objek shared library baru dilakukan pada saat referensi di shared library untuk pertama kalinya dipanggil. Sedang pada RTLD_NOW proses relokasi dari semua objek shared library yang dibutuhkan dilakukan setelah objek filename dimuatkan ke memori. Dengan RTLD_GLOBAL, maka simbol di file shared library yang dimuatkan akan dapat dipakai oleh shared library lainnya. Kalau hal ini tidak dikehendaki maka dapat dipakai nilai RTLD_LOCAL yang juga merupakan nilai default. char* dlerror(void); Dengan fungsi ini, informasi tentang sebab-sebab terjadinya kesalahan pada proses linking dinamis dapat diakses. Pada terjadinya kesalahan, fungsi ini akan mengembalikan null-terminated character string sebagai hasilnya. Jika pada pemrosesan terakhir tidak terjadi kesalahan maka nilai NULL akan dikembalikan sebagai hasilnya. void* dlsym(void* handle, char* simbol); Setelah objek file filename dimuatkan ke memori, maka simbol-simbol di dalamnya dapat diakses dengan menggunakan fungsi dlsym(). Sebagai parameter pertama adalah handle yang merupakan hasil dari pemanggilan fungsi dlopen(). Parameter kedua simbol adalah nama fungsi atau nama variabel yang akan diakses. Jika simbol tidak ditemukan, maka fungsi akan mengembalikan NULL sebagai hasilnya. Pada kasus simbol ditemukan, maka sebuah pointer akan dikembalikan oleh fungsi ini sebagai hasilnya. Tergantung dari jenis simbol, pointer ini dapat diinterpretasikan sebagai pointer dari suatu fungsi atau variabel. Ada hal yang perlu mendapat perhatian di sini, jika fungsi mengembalikan nilai NULL. Di sini ada dua kemungkinan, yaitu simbol tidak ditemukan seperti diuraikan di atas, atau simbol ditemukan, tetapi mempunyai nilai NULL. Untuk mendapatkan informasi yang benar, dapat dilakukan dengan cara memanggil fungsi dlerror(), setelah pemanggilan fungsi ini. Jika fungsi dlerror() mengembalikan nilai bukan NULL, maka dapat dipastikan bahwa simbol tidak ditemukan. void* dlclose(void* handle); Fungsi ini adalah kebalikan dari fungsi dlopen(). Setiap kali fungsi ini dipanggil dengan sukses, maka librari dl akan memanajemen jumlah pemakai handle ini dengan cara mendekrementasi variabel. File objek yang direferensi oleh handle baru akan dihapuskan (unload) dari memori, jika sudah tidak ada lagi yang menggunakan handle ini (jumlahnya nol). 3.Contoh pemakaian Dynamic Loading Cara pemakaian API dari Dynamic Loading akan diperlihatkan di sini dengan menggunakan program demo yang sederhana. Source code program terdiri dari dua file, yaitu main.c dan simple_dl.c (Lihat list program: script-1 adalah main.c, script-2 adalah simple_dl.c dan script-3 adalah Makefile). File main.c adalah program utama yang mempunyai fungsi main(). Sedangkan file simple_dl.c adalah file modul yang berisi simbol variabel dan simbol pengimplementasi fungsi yang akan diakses dari fungsi main() dengan menggunakan fasilitas API Dynamic Loading. Dua simbol didefinisikan di dalam simple_dl.c. Yang pertama adalah simbol variabel yang didefinisikan sebagai berikut: char* info_linux = "Info Linux!"; Nama simbol variabel ini adalah info_linux yang merupakan pointer dari tipe data char. Pada pointer ini juga secara langsung dialokasikan sejumlah memori yang berisikan karakter string "Info Linux!". Simbol kedua adalah hello_world yang merupakan simbol dari pengimplementasi fungsi hello_world(). Pada prinsipnya nama simbol tidak selalu sama dengan nama pengimplementasi fungsi. Kita akan membahas hal ini secara ringkas pada bagian akhir dari artikel ini pada kasus penulisan program menggunakan C++. Simbol fungsi ini didefinisikan sebagai berikut: void hello_world(void); Fungsi ini hanya akan menampilkan kalimat "Hello world!" di layar monitor. Sebelum kita membahas kode di file main.c, kita akan mencoba untuk mengkompilasi file simple_dl.c. Untuk dapat menghasilkan shared library, pada proses kompilasi harus digunakan parameter -fPIC. PIC adalah kepanjangan dari position independent code. Dengan instruksi berikut:
$ gcc -fPIC -c simple_dl.c akan dihasilkan file objek simple_dl.o. Untuk mendapatkan file shared library simple_dl.so dari file objek ini dapat digunakan instruksi:
$ gcc -shared -o simple_dl.so simple_dl.o Untuk lebih yakin lagi, bahwa kedua simbol info_linux dan hello_world terdapat di file shared library simple_dl.o dapat digunakan program nm. Program ini adalah salah satu tools terdapat pada binutils yang dapat menampilkan simbol dari sebuah objek file. Instruksi
$ nm -g --defined-only -n simple_dl.so hanya akan menampilkan simbol global yang sudah terdefinisi. Daftar simbol akan ditampilkan secara berurutan menurut alamat relatif simbol, seperti yang terlihat di bawah ini:
00000618 ? _init 000007a0 T hello_world 00000840 A _etext 00000840 ? _fini 00001880 D info_linux 00001898 A _GLOBAL_OFFSET_TABLE_ 000018cc A _DYNAMIC 00001964 A __bss_start 00001964 A _edata 0000197c A _end Kolom kedua di atas menunjukkan tipe dari simbol. Huruf T mempunyai arti bahwa posisi simbol yang bersangkutan berada di bagian kode atau text, seperti halnya pada simbol hello_world yang adalah pengimplementasi fungsi. Sedangkan huruf D seperti pada simbol info_linux menandakan bahwa posisi simbol yang bersangkutan berada di bagian data yang terinitialisasi. Sekarang kita akan beralih membahas kode di dalam file main.c. Di sini kita mendefinisikan beberapa variabel. Dua diantaranya adalah void (*pFuncSimbol)(); dan char** pVarSimbol; Yang pertama adalah variabel pointer dari fungsi yang tidak mempunyai parameter (void) dan tidak mempunyai nilai kembali(void). Sedangkan variabel kedua adalah pointer dari character string. Sekarang kita akan membahas fungsi-fungsi yang dipakai di sini satu persatu.
handle = dlopen("./simple_dl.so", RTLD_NOW); if (!handle) { printf("Failed: %s\n", dlerror()); return 1; } Pertama-tama fungsi dlopen() akan dipanggil untuk memuatkan objek file shared library simple_dl.so ke memori. Program akan berakhir jika file ini tidak ditemukan. Jika objek file ini dapat dimuatkan ke memori dengan sukses, maka variabel handle selanjutnya dapat dipakai sebagai parameter untuk memanggil fungsi lainnya.
pFuncSimbol = (void (*)())dlsym(handle, "hello_world"); error = dlerror(); if (error) { printf("Failed(2): %s\n", error); return 1; } Fungsi dlsym() di atas dipanggil untuk mendapatkan referensi dari simbol hello_world. Jika simbol ini tidak ditemukan maka program akan berakhir. Informasi ini didapatkan dengan cara memanggil fungsi dlerror() yang akan mengembalikan hasil bukan NULL(lihat di atas tentang dlsym()). Jika simbol ditemukan, maka variabel pFuncSimbol sekarang mempunyai referensi ke simbol hello_world dari shared library simple_dl.so.
pFuncSimbol(); Dengan instruksi di atas, maka fungsi yang direferensi oleh variabel pFuncSimbol yang tak lain adalah fungsi hello_world di simple_dl.so akan dipanggil. Hasilnya dapat dilihat di layar monitor, yaitu penampilan character string "Hello world!".
pVarSimbol = (char**)dlsym(handle, "info_linux"); error = dlerror(); if (error) { printf("Failed(2): %s\n", error); return 1; } Seperti sebelumnya, di sini fungsi dlsym() dipakai untuk mendapatkan referensi dari simbol info_linux. Jika simbol ditemukan, maka sekarang pVarSimbol mempunyai referensi ke simbol info_linux yang isinya tidak lain adalah character string "Info Linux!".
printf("%s\n", *pVarSimbol); Di sini isi dari referensi pVarSimbol "Info Linux!" akan ditampilkan di layar monitor.
dlclose(handle); Setelah kita tidak membutuhkan lagi, maka kita harus menutup handle yang telah kita buka sebelumnya. Untuk menghasilkan file program main yang dapat dieksekusi, dapat digunakan instruksi seperti berikut:
$ gcc -o main main.c -ldl Dengan parameter -ldl maka pada proses linking shared library libdl.so yang mengimplementasi API Dynamic Loading akan ditambahkan. Setelah berhasil, jika program main dieksekusi maka di layar monitor akan ada tampilan sebagai berikut:
$ ./main Hello world! Info Linux! 4.Memanggil Fungsi di Program Utama dari Objek shared library Pada banyak kasus kita akan memerlukan fungsi yang sudah diimplementasikan di program utama untuk dipanggil dari objek shared library. Dari sisi objek shared library sendiri tidak ada masalah, selama fungsi ini sudah terimplementasi di program utama, karena pembuatan file shared library tidak membutuhkan proses linking. Yang menjadi kunci pokok di sini adalah, bahwa simbol fungsi di program utama harus ditambahan ke tabel simbol dinamik (dynamic symbol table). Tabel ini memuat semua simbol yang akan dapat diakses oleh semua objek shared library pada saat runtime. Hal ini dapat dilakukan dengan menambahkan parameter -rdynamic pada proses pembuatan file program utama. Parameter ini akan menginstruksikan kompiler untuk melewatkan parameter -export-dynamic pada proses linking oleh ld. Jika parameter ini tidak ditambahkan, maka tabel simbol dinamik hanya akan berisi simbol yang direferensi oleh objek shared library saat proses linking pada pembuatan file program utama. Kita akan menambahkan beberapa baris pada file main.c dan simple_dl.c untuk menunjukkan hal di atas. Pada file main.c ditambahkan sebuah fungsi hello_main() yang akan dipanggil dari file simple_dl.c.
/*============================== * Fungi tambahan di file main.c */
void hello_main(const char* txt) { printf("%s\n", txt); } Fungsi hello_main() hanya akan menampilkan isi string txt yang dilewatkan melalui parameter.
void hello_world(void) { printf("Hello world!\n");
/* ======================================== * Memanggil fungsi yang ada di file main.c */ hello_main("Saya simple_dl"); } Fungsi hello_main() di program utama akan dipanggil setelah fungsi helllo_world() ini dipanggil oleh program utama. Proses pembuatan objek shared library simple_dl.so sama seperti diterangkan sebelumnya. Pada pembuatan objek program utama, harus ditambahkan parameter -rdynamic seperti berikut:
$ gcc -rdynamic -o main main.c -ldl Hasil dari pengeksekusian program main dapat dilihat pada tampilan monitor:
$ ./main Hello world! Saya simple_dl Info Linux! 5.Fungsi _init() dan _fini() Fungsi _init() dan _fini() adalah dua fungsi khusus pada sebuah file shared library. Fungsi _init() akan dipanggil oleh librari dl setelah sebuah objek file shared library dimuatkan ke memori dengan instruksi dlopen(). Sedang sebelum shared library dihapuskan(unload) dari memori lewat instruksi dlclose(), librari dl akan memanggil fungsi _fini(). Kita dapat memanfaatkan kedua fungsi ini dengan cara mengimplementasikan kedua fungsi tersebut dalam shared library yang kita tulis. Pada umumnya fungsi _init() digunakan untuk menginitialisasi variabel ataupun mengalokasi memori. Fungsi _fini() sebaliknya dapat digunakan untuk menghapuskan memori yang dialokasi sebelumnya. Untuk menghindari pengimplementasian ganda, pada saat proses kompilasi pembuatan shared library harus ditambahkan parameter -nostartfiles, seperti contohnya:
$ gcc -shared -nostartfiles -o simple_dl.so simple_dl.o 6.Penggunaan C++ Pada penggunaan bahasa C++ ada beberapa aspek yang perlu mendapat perhatian. Salah satu hal yang membedakan antara C++ dan C adalah, bahwa di C++ kita dapat mempunyai beberapa fungsi dengan nama yang sama tetapi parameter yang berbeda. Terminologi yang sering dipakai untuk ini pada bahasa yang mendukung object oriented adalah overloading. Lain dengan bahasa C, di sini nama fungsi saja tidak cukup untuk dijadikan sebagai identitas yang unik (unique identifier) di tabel simbol. Untuk mendapatkan identitas yang unik ini, akan dilakukan proses mangling terhadap nama fungsi di C++ yang menyertakan informasi parameternya. Misalnya saja dengan memakai gcc, simbol fungsi foobar dengan parameter tunggal int akan berubah menjadi foobar__Fi. Proses mangling ini bergantung kepada jenis kompiler, sehingga pada pemakaian kompiler yang berbeda akan dihasilkan identitas unik yang berbeda juga. Dengan menggunakan program c++filt yang juga terdapat dalam paket binutils, kita dapat melakukan proses demangling, yaitu proses kebalikan dari mangling. Contohnya dengan intruksi
c++filt foobar__Fi maka dari simbol foobar__Fi kita akan mendapatkan kembali nama fungsi dengan parameternya foobar(int). Hal di atas akan membuat masalah pada pembuatan program yang memakai bahasa C dan C++, karena simbol fungsi program yang ditulis dengan C juga akan dilakukan proses mangling. Sebagai contoh kita ingin menulis program yang memakai librari dari pihak ketiga yang hanya memberikan file header dan file objek shared library yang ditulis dengan bahasa C. Sedangkan program yang kita tulis menggunakan bahasa C++ yang akan memanggil beberapa fungsi di librari ini. Pada proses kompilasi, simbol fungsi di file header akan dilakukan proses mangling, sehingga pada proses linking akan mengakibatkan kesalahan, karena simbol tidak dapat ditemukan. Untuk mencegahnya, simbol fungsi pada file header tidak boleh dilakukan proses mangling oleh kompiler. Ini dapat dilakukan dengan menambahkan deklarasi extern "C" di file header yang akan membuat kompiler untuk memakai konvensi nama C (C name convention). Karena pada kompiler C++ biasanya didefinisikan makro __cplusplus maka penambahan header dapat dilakukan sbb:
#ifdef __cpluplus extern "C" { #endif
......
#ifdef __cpluplus } #endif Jika librari dimuatkan menggunakan Dynamic Loading dan fungsi di librari dipanggil dengan memakai fungsi dlsym(), maka masalah di atas tidak akan terjadi, karena pada simbol fungsi di librari tidak dilakukan proses mangling. Masalah lain yang timbul sehubungan dengan pemakaian bahasa C++ adalah kita tidak dapat memakai fungsi dlsym() untuk memanggil fungsi di librari yang ditulis memakai bahasa C++. Hal ini diakibatkan karena pada semua simbol akan dilakukan proses mangling, sehingga kita tidak akan tahu nama simbol dari fungsi yang kita inginkan. 7.Penutup Penerapan teknik Dynamic Loading akan memudahkan pengembangan suatu aplikasi besar yang dilakukan oleh sekelompok pemrogram seperti halnya aplikasi web server Apache. Program utamanya hanya mengimplementasi fungsi pokok saja, sedang fungsi-fungsi lainnya ditambahkan dalam bentuk modul secara fleksibel bergantung dari keperluan. Salah satu faktor yang tidak menguntungkan adalah lamanya waktu proses pemuatan file shared library ke memori dan proses pereferensian dari simbol. Jika modul-modul dimuatkan hanya pada saat awal saja, maka faktor di atas tidak terlalu penting. Aplikasi bot irc eggdrop memakai teknik lain untuk menghindari faktor di atas. Pengaksesan ke simbol dilakukan dengan melalui tabel yang berisikan pointer statis dari simbol. Akhir kata, semoga artikel ini bermanfaat dan dapat menambah wacana teknik pemrograman bagi pembaca.