Senin, 23 Maret 2009

Agile Programming

Agile Programming

Kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Kata ini digunakan sebagai kata yang mengambarkan konsep model proses yang berbeda dari konsep model-model proses yang sudah ada. Konsep Agile Software Development dicetuskan oleh Kent Beck dan 16 rekannya dengan menyatakan bahwa Agile Software Development adalah cara membangun software dengan melakukannya dan membantu orang lain membangunnya sekaligus. Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana. Namun demikian, sama seperti model proses yang lain, Agile Software Development memiliki kelebihan dan tidak cocok untuk semua jenis proyek, produk, orang dan situasi.

Agile Software Development memungkinkan model proses yang toleransi terhadap perubahan kebutuhan sehingga perubahan dapat cepat ditanggapi. Namun di sisi lain menyebabkan produktifitas menurun.

Prinsip Agile Software Development

Salah satu ciri dari Agile Software Development adalah tim yang tanggap terhadap perubahan. Mengapa? Karena perubahan adalah hal yang utama dalam pembangunan software: perubahan kebutuhan software, perubahan anggota tim, perubahan teknologi dll. Selain itu Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara developer dan managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development:

  1. kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus
  2. menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
  3. penyerahan hasil/software dalam hitungan waktu dua minggu sampai dua bulan.
  4. bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung
  5. membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukun dan yang dipercaya untuk dapat menyelesaikan proyek.
  6. komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien
  7. software yang berfungsi adalah ukuran utama dari kemajuan proyek
  8. dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan
  9. perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
  10. kesederhanaan penting
  11. arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri
  12. secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.

Kedua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya:

  1. kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek.
  2. desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan.
  3. analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

Faktor Manusia pada Agile Process Model

Kunci faktor manusia pada model ini adalah proses didasari pada kebutuhan orang dan tim bukan sebaliknya, Untuk dapat sukses menerapkan model proses ini, pada faktor manusia ada beberapa kunci penting:

  1. kompetensi: ketrampilan dalam membangun dan pengetahuan tentang proses membangun
  2. fokus: memiliki fokus yang sama sekalipun peran dalam tim berbeda
  3. kolaborasi : kerja sama dengan klien, anggota tim dan manajer.
  4. kemampuan ambil keputusan : tim pembangun memiliki otonomi dalam pengambilan keputusan terkait teknis dan proyek
  5. kemampuan fuzzy problem-solving: mampu menyelesaikan memilah masalah yang penting untuk dipecahkan segera atau nanti.
  6. saling percaya dan hormat: kekompakan tim yang didukung oleh rasa percaya dan saling menghargai satu sama lain.
  7. manajemen diri: tim mengatur diri untuk selesaikan proyek, mengatur proses untuk disesuaikan dengan lingkungannya, tim menjadwal dirinya untuk menyerahkan hasil.

Agile Modeling

Ø banyak situasi pembangun software harus membangun sistem bisnis yang besar dan penting. Jangkauan dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti, masalah dapat dibagi menjadi lebih kecil dan kualitas dapat dijaga pada tiap langkah pembangunan software.

Ø AM adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan system software.

Ø AM adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif.

Ø prinsip dalam AM:

• Tujuan model: tentukan tujuan sebelum membuat model

Multiple model: tiap model mewakili aspek yang berbeda dari model lain.

Travel light: simpan model-model yang bersifat jangka panjang saja

• Isi lebih penting: modeling menyajikan informasi kepada audiens yang tepat.

• memahami model dan alat yang yang digunakan untuk membuat software

• adaptasi secara lokal.

Dikutip dari: http://lecturer.ukdw.ac.id/othie/agile_model.pdf

Extreme Programming

Extreme Programming
Extreme programming (XP) merupakan salah satu model proses dari agile proses model. Pertama kali diusulkan oleh Kent Beck dan Ward Cunningham pada bulan Maret 1996, asal mula XP digunakan karena pada saat itu permintaan dari customer yang sering berubah dengan cepat sehingga mengakibatkan putaran kehidupan metode pengembangan perangkat lunak tradisional menjadi lebih pendek dan tidak selaras dengan metode tradisional karena pada umumnya memerlukan desain yang luas dan itu mengakibatkan perubahan desain yang terjadi dan tentu saja memerlukan biaya yang lebih tinggi. Tujuan XP adalah meminimalisir biaya yang diperlukan jika ada perubahan dalam pengembangan perangkat lunak.

Cara Kerja Extreme Progrmamming
  • Perencanaan XP: pengumpulan user stories dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa story yang lebih kecil. Periksa dan pertimbangkan resiko
  • Desain XP berprinsip: sederhana memanfaatkan kartu CRC (Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Jika temui kesulitan, prototype dibangun (ini namanya spike solution). Lakukan refactoring, yaitu mengembangkan desain dari program setelah ditulis.
  • Pengkodean XP: siapkan unit test sebelum pengkodean dipakai sebagai fokus pemrogram untuk membuat program. Pair programming dilakukan untuk real time program solving dan real time quality assurance
  • Pengujian XP: menggunakan unit test yang dipersiapkan sebelum pengkodean.

Lima kunci utama Extreme Progrmamming
Ada lima kunci dari XP menurut Kent Beck yaitu:
1. Komunikasi (communication)
2. Kesederhanaan (simplicity)
3. Masukkan (feedback)
4. Keberanian (courage)
5. Menghormati (Respect)


Keuntungan dan Kelebihan Extreme Progrmamming
Keuntungan XP:
  • Menjalin komunikasi yang baik dengan client.
  • Meningkatkan komunikasi dan sifat saling menghargai antar developer.

Kerugian XP:
  • Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
  • Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).

Dikutip dari: http://adit279.com/?p=71 dan http://lecturer.ukdw.ac.id/othie/agile_model.pdf

Senin, 09 Maret 2009

IT pada Otomotif

1.Alarm Mobil

Kalau ada orang yang hanya mendekat dan menyender di bodi mobil, bola akan meluncur ke tombol kontak pertama. Sensor akan meneruskan informasi ke komputer. Komputer mendeteksinya sebagai getaran yang tidak terlalu penting dan tidak mengaktifkan alarm. Namun kalau goyangannya membesar, bola terus bergerak menuju tombol utama, komputer akan mengaktifkan sistem alarm.
Sensor tekanan
Usaha pencurian yang semakin canggih mendorong perkembangan teknologi alarm. Kini alarm tidak hanya menghasilkan suara bunyi, tetapi bisa langsung mematikan sistem pengapian mobil, sehingga mesin tidak bisa distarter.
Untuk mencegah pencurian mobil yang memecahkan kaca jendela mobil, dikembangkan teknologi alarm sensor tekanan udara. Alarm langsung berbunyi bila kaca jendela dipecahkan. Sistem ini menggunakan microphone kecil yang dihubungkan dengan komputer mobil. Microphone bertugas mengukur fluktuasi tekanan udara berdasarkan frekuensi. Memecahkan kaca mobil menghasilkan frekuensi tertentu yang akan diterjemahkan komputer sebagai pencurian kendaraan bermotor.
Sistem tekanan yang lebih canggih, dirancang mampu membedakan antara tekanan udara di luar dan di dalam kabin. Bila ada perbedaan antara tekanan udara luar dan di dalam, secara otomatis alarm akan berbunyi. Mekanisme kerjanya menggunakan speaker pendeteksi tekanan udara.
Metode kerjanya memanfaatkan prinsip pergerakan cone speaker dan electromagnet yang dipasang di belakang cone. Alunan musik yang dihasilkan speaker sebenarnya merupakan getaran maju mundur cone yang didorong oleh elektromagnet.
Pada sistem tekanan udara, prinsip kerjanya dibalik. Perbedaan fluktuasi menggerakkan cone maju mundur, yang diteruskan ke electromagnet. Selanjutnya electromagnet meneruskan informasi ini ke komputer mobil yang sudah memiliki data tentang segala jenis getaran elektromagnet. Jika komputer mendeteksi ada perbedaan yang signifikan dibandingkan tekanan kabin standar, komputer memerintahkan sirene untuk berbunyi.










Bahkan kini pemilik dapat mengetahui kendaraannya ada yang membobol karena alat sensor di gantungan kunci akan berbunyi dan bergetar bila ada yang berupaya memasuki atau mengganggu mobil. Dengan teknologi yang semakin canggih alat detektor ini bisa memberi peringatan pada pemiliknya hingga jarak 1 km. Selain itu, dengan alat GPS bila mobil dicuri dengan derek atau masuk kontainer masih bisa dideteksi.

2. Pengontrol Jarak
Teknologi maju pada otomotif juga dimaksudkan untuk mengamankan penumpang di dalamnya bila terjadi tabrakan. Mercedes Benz dan Toyota sudah memasang sistem pengontrol jarak.

Dengan demikian pengemudi dapat menentukan, berapa jarak yang diinginkan dari mobil yang ada di depannya. Komputer akan mengatur untuk mengurangi kecepatan hingga mendekati limit jarak yang diinginkan. Peralatan ini juga sudah banyak dipasang, untuk keperluan parkir. Bila Toyota menggunakan sistem sinar laser, Mercedes Benz menggunakan sistem radar.

3. Stabilitas Elektronik

DaimlerChrysler, General Motor, dan BMW, sudah menggunakan sistem stabilitas elektronik, yang membuat mobil tetap stabil meski kemudi dibanting ke kiri atau ke kanan guna menghindari orang menyeberang atau hewan yang melintas secara tiba-tiba.
Sistem sensor pada roda dan kemudi, akan mengirim sinyal ke komputer, dan komputer akan mengatur rem agar putaran roda tidak tergelincir dan pengemudi tetap dapat mengendalikan kendaraannya.
Bila temuan ini digabungkan dengan sistem radar atau sinar laser, maka sistem ini bisa mengambil alih peran sopir dari roda kemudi. Sehingga pengemudi bisa tidur dan membiarkan mobil berjalan sendiri. Digunakannya sinar laser atau radar, akan menghindarkan kendaraan dari tabrakan. Seluruh kendali akan diambil alih komputer, seperti mengerem, mengurangi kecepatan, dan menghindar sendiri bila ada dari samping tiba-tiba ada orang menyeberang.

4. Mobil Hibrida
Direncanakan pada suatu saat, orang dengan mudah merubah mobil lamanya menjadi mobil hibrida dengan mengganti komponen mesin, yaitu fly wheel.
Bagian ini akan berfungsi sebagai generator yang menghasilkan arus untuk pengisian aki dan pada kesempatan lain digunakan untuk menghidupkan mesin berfungsi sebagai starter.



5. Ban Pintar

Selain di bidang mekanik dan mesin, komponen mobil yang lain juga mengalami kemajuan. Pabrik ban Michelin, beberapa waktu lalu memperkenal-kan ban yang tetap bisa dioperasikan sejauh 200 kilometer meski tanpa angin. Ban model ini sudah digunakan pada mobil mewah Mercedes dan Lexus. Dengan adanya ban seperti ini, pengendara tidak perlu khawatir bila tiba-tiba bannya kempes, ia bisa mencari tempat aman untuk menggantinya.

Kini, pabrik ban Firestone mengumumkan penemuan ban pintar. Di dalam roda ada “pemancar” sekaligus sensor. Sensor itu akan mendeteksi tekanan angin dari tiap ban dan akan mengirim sinyal ke panel di depan pengemudi. Mata pengemudi dengan mudah bisa membaca tekanan tiap roda, dan dengan demikian membantu pengemudi untuk segera menambah tekanan angin.
Temuan ini dirasa perlu mengingat tekanan angin ban yang tidak sama menjadi penyebab mobil tidak stabil. Bila tekanan angin ban tidak sama, mobil akan mudah slip bila dipacu dalam kecepatan tinggi.

6. AVL (Automatic Vehicle Location)
Kini produsen otomotif mengembangkan AVL (automatic vehicle location) yang menggunakan fasilitas Global Positioning System (GPS). Teknologi AVL sudah banyak digunakan pada mobil di Eropa, Jepang, dan Amerika, amat bermanfaat untuk mencari alamat rumah atau membelokkan mobil mencari jalan alternatif menghindari kemacetan.

Sebuah sistem telematik yang dihubungkan dengan satelit, akan memu-dahkan seseorang menemukan lokasi di darat. Untuk menggunakan teknologi ini, mobil harus dilengkapi alat penerima sinyal dan peta standar yang ditampilkan di layar monitor komputer.
Selain itu, AVL juga memiliki memori yang bisa membantu pengemudi yang belum mengenal lokasi. Bila melalui daerah yang belum diketahui, penge-mudi bisa menyimpan datanya hanya dengan menekan tombol. Nantinya, data itu akan dapat digunakan orang lain yang belum pernah mendatangi lokasi itu. Beberapa produk yang ada dipasaran adalah sebagai berikut:














1. iGUARD - 118TGPS (Mobil dikendalikan dan dilacak dari HP)
2. GSM CAR ALARM : iGUARD - 808RC (Mobil dikendalikan dari HP) - Dapat dipasang dengan alarm lama

Dikutip dari: http://subaridargombez.wordpress.com/2008/02/16/perkembangan-dunia-it-pada-bidang-otomotif

Algoritma Semut

Algoritma semut diperkenalkan oleh Moyson dan Manderick dan secara meluas dikembangkan oleh Marco Dorigo, merupakan teknik probabilistik untuk menyelesaikan masalah komputasi dengan menemukan jalur terbaik melalui grafik. Algoritma ini terinspirasi oleh perilaku semut dalam menemukan jalur dari koloninya menuju makanan.

Pada dunia nyata, semut berkeliling secara acak, dan ketika menemukan makanan mereka kembali ke koloninya sambil memberikan tanda dengan jejak feromon. Jika semut-semut lain menemukan jalur tersebut, mereka tidak akan bepergian dengan acak lagi, melainkan akan mengikuti jejak tersebut, kembali dan menguatkannya jika pada akhirnya merekapun menemukan makanan.

Seiring waktu, bagaimanapun juga jejak feromon akan menguap dan akan mengurangi kekuatan daya tariknya. Lebih lama seekor semut pulang pergi melalui jalur tersebut, lebih lama jugalah feromon menguap. Sebagai perbandingan, sebuah jalur yang pendek akan berbaris lebih cepat, dan dengan demikian kerapatan feromon akan tetap tinggi karena terletak pada jalur secepat penguapannya. Penguapan feromon juga mempunyai keuntungan untuk mencegah konvergensi pada penyelesaian optimal secara lokal. Jika tidak ada penguapan sama sekali, jalur yang dipilih semut pertama akan cenderung menarik secara berlebihan terhadap semut-semut yang mengikutinya. Pada kasus yang demikian, eksplorasi ruang penyelesaian akan terbatasi.

Oleh karena itu, ketika seekor semut menemukan jalur yang bagus (jalur yang pendek) dari koloni ke sumber makanan, semut lainnya akan mengikuti jalur tersebut, dan akhirnya semua semut akan mengikuti sebuah jalur tunggal. Ide algoritma koloni semut adalah untuk meniru perilaku ini melalui 'semut tiruan' berjalan seputar grafik yang menunjukkan masalah yang harus diselesaikan.

Algoritma optimisasi koloni semut telah digunakan untuk menghasilkan penyelesaian yang mendekati optimal pada masalah salesman yang melakukan perjalanan. Algoritma semut lebih menguntungkan daripada pendekatan penguatan tiruan (simulaten annealing) dan algoritma genetik saat grafik mungkin berubah secara dinamis; algoritma koloni semut dapat berjalan secara kontinyu dan menyesuaikan dengan perubahan secara waktu nyata (real time). Hal ini menarik dalam routing jaringan dan sistem transportasi urban.

The Ant Colony System

ANTS

Kalau kamu ngeliat judul diatas apa yang kamu bayangin??Hmm…kartun keluaran Pixma picture??atau ini adalah artikel yang ngebahas tentang struktur anatomi semut(bisa ga sih…)??Apa pun itu asal kamu berpikiran tentang hewan malang yg kalo kepijak kamu ga merasa bersalah sekalipun apalagi berduka alias si semut (Ant), maka kamu benar.

Tulisan ini emang menceritakan tentang semut and the ganks (koloni semut)tapi bukan secara biologi ya, melainkan diambil dari sudut pandang ilmu komputer. Emang apa hubungannya?? Inilah kehebatan dari makhluk kotak itu. Hampir segala bidang kehidupan bisa diselesaikan secara komputerisasi. Tapi bukan nyelesaian masalah si semut melainkan menyelesaikan berbagai macam masalah komputerisasi yang diinspirasi dari perilaku koloni semut (ant colony optimization). So,let’s check it out

A Little Facts About Ants

Semut seperti yang kita ketahui, berukuran mini dan selalu hidup berkelompok. Jarang kita temui semut itu jalan sendirian (kalopun ada mungkin nyasar atau lagi patah hati jadi pengennya sendirian. J). Koloni semut punya team work yang solid mulai dari bangun rumah sampe cari makanan, jadi jangan heran kalo kamu nemuin cake kesukaanmu yang baru kamu tinggalin bentar udah rame digerogoti sama mereka. Tapi kepikiran ga sih bagaimana koloni semut bisa nyampe ke sumber makanannya secara cepat padahal daerah itu tadinya ga ada semut!?

Nah,inilah fakta kecilnya yaitu semut bisa menemukan rute terpendek dari sarang ke sumber makanannya.

How Ants Communicate Each Other??

Semut dapat berkomunikasi dengan teman – temannya tidak secara langsung melainkan berkomunikasi dengan suatu zat kimia yang disebut dengan feromon. Feromon adalah zat atau yang biasanya disebut parfum serangga dimana dengan adanya zat ini maka setiap semut dapat mengenali posisi temannya sehingga semua semut dapat berkumpul kembali dengan koloninya. Setiap semut ketika melewati suatu jalur tertentu akan meninggalkan jejak feromon (Pheromone Trail). Jejak ini kemudian akan diikuti oleh semut – semut yang lainnya. Pada awalnya semut berpencar dari sarang mereka menuju ke sumber makanan. Semut berikutnya yang melalui jalur tersebut dapat mengidentifikasi feromon yang diletakkan oleh semut sebelumnya, memutuskan dengan probabilitas yang tinggi untuk mengikutinya, dan menguatkan jalur yang dipilihnya itu dengan feromon miliknya. Perilaku inilah yang menyebabkan semut dapat menemukan jalur terpendek. Dengan kata lain semakin besar feromon yang terdapat pada jalur itu maka jumlah semut yang melewatinya juga akan semakin besar bahkan kemungkinan semua semut akan melalui jalur tersebut.

Gambarannya adalah sebagai berikut:

Dari gambar ini dapat terlihat bahwa pada awalnya semut berjalan pada jalur yang sama dengan asumsi semua semut berjalan dengan kecepatan yang sama. Kita anggap A adalah sarang dan E adalah sumber makanan. Kemudian perhatikan gambar (b), pada gambar terdapat rintangan yang membuat jalur terpisah menjadi dua. Semut akan berpencar, beberapa akan ke jalan H dan yang lain akan memilih jalan C. Semut yang berjalan dari jalur C akan lebih cepat sampai ke sumber makanan karena jalur C lebih pendek. Hal ini juga mempengaruhi jalur pulangnya, maka dapat dipastikan semut yang berjalan pada jalur C akan tiba di sarang lebih dulu daripada yang melewati jalur H. Hal ini akan diikuti oleh semut yang lainnya berdasarkan dengan jejak feromon tadi. Berdasarkan dari semut yang duluan sampai maka tingkat semut yang melewati jalur C akan lebih besar karena tingkat feromon yang ada pada jalur C lebih besar dan ini akan mempengaruhi semut yang lainnya untuk mengikuti jalur tersebut sehingga semut akan memilih satu jalur yaitu jalur yang terpendek.

Computer And Ants

Berdasarkan dari perilaku semut inilah terciptalah algoritma koloni semut (ant colony system). Ant Colony System (ACS) merupakan salah satu algoritma yang menerapkan prinsip dari swarm intelligence (kecerdasan komunitas) ,yaitu algoritma yang didasarkan atau terinspirasi dari perilaku sosial serangga dan perilaku sosial binatang lainnya dimana dalam suatu komunitas terdapat beberapa agen yang saling berinteraksi, bernegoisasi, dan berkoordinasi satu sama lain dalam mengerjakan suatu pekerjaan bersama. Konsep kerjasama ini yang dikenal dengan multi agent system (MAS). Untuk konsep MAS lebih detil dapat didownload dari e-book ini
Algoritma ini dikemukakan pertama kali oleh Marco Dorigo dan Luca M. Gambardella pada tahun 1997. Ant System telah banyak diterapkan dalam berbagai kajian permasalahan optimisasi kombinatorial seperti traveling salesman problem (TSP), quadratic assignment problem, jobscheduling, vehicle routing, graph coloring, dan network routing[Dorigo, Di Caro, dan Gambardella]. Jadi semut yang ada pada komputer adalah agent – agent cerdas.


Dikutip dari: http://id.wikipedia.org/wiki/Algoritma_Semut

Kamis, 05 Maret 2009

Teori Sarang Lebah Madu

Pemrogram komputer menggunakan lebah madu sebagai rujukan


Naiknya tingkat kesibukan berbelanja melalui Internet menimbulkan sejumlah permasalahan besar. Perilaku pelanggan ketika berbelanja bisa jadi sama sekali lain dari perkiraan umumnya, dan mungkin saja berbeda di antara sesama pelanggan. Hal ini menyebabkan lalu lintas internet menjadi tidak teratur dan akhirnya berujung pada penumpukan tiba-tiba pada server Internet yang menangani belanja on-line. (Server: sebuah komputer dalam sebuah jaringan yang menyimpan program-program aplikasi dan file-file data yang dapat dikunjungi oleh komputer-komputer lainnya di dalam jaringan tersebut.) Para pakar dari Universitas Oxford dan the Georgia Institute of Technology [Institut Teknologi Georgia] melakukan kerjasama dalam rangka mengembangkan sejumlah teknologi yang dapat mengatasi penumpukan semacam itu. Para peneliti ini mengambil model atau contoh-acuan berupa suatu masyarakat yang lalu lintasnya telah berhasil diatur dengan sangat baik. Contoh-acuan ini adalah perilaku koloni atau masyarakat lebah madu yang tengah ditiru dalam sejumlah teknologi yang ditujukan untuk meringankan beban pada server-server pada saat terjadi kepadatan lalu lintas yang luar biasa. Lonjakan jumlah pelanggan belanja atau perdagangan saham secara tiba-tiba, naik turunnya kegiatan lelang melalui internet memunculkan kesulitan besar pada perusahaan-perusahaan pengelola server. Untuk meningkatkan keuntungan mereka sebesar-besarnya, perusahaan-perusahaan ini perlu memeriksa komputer-komputer mereka setiap saat untuk menjaga agar komputer tersebut tetap mampu menyesuaikan diri terhadap tingkat kebutuhan yang berubah-ubah melalui campur tangan secara cepat. Namun pada kenyataannya, hanya satu aplikasi web saja yang dapat dimuat ke dalam komputer pada satu waktu, dan hal ini merupakan sebuah kendala. Perpindahan antar-aplikasi menyebabkan penghentian sementara selama 5-7 menit, waktu ini diperlukan untuk konfigurasi ulang pada komputer, dan ini berarti kerugian.
Permasalahan serupa dijumpai dalam tugas-tugas yang dijalankan oleh lebah madu. Sumber-sumber bunga memiliki keragaman dalam hal mutu. Oleh karena itu, seseorang mungkin berpikiran bahwa keputusan tentang berapa banyak lebah yang harus dikirim ke setiap tempat tersebut dan berapa lama mereka sebaiknya berada di sana merupakan sebuah permasalahan dalam sebuah koloni yang ingin mencapai laju pengumpulan madu bunga (nektar) setinggi-tingginya. Akan tetapi, berkat sistem kerja mereka yang sangat baik, lebah mampu memecahkan permasalahan ini tanpa mengalami kesulitan.

Sekitar seperlima dari lebah-lebah di dalam sebuah sarang bertugas sebagai pengumpul-nektar. Tugas mereka adalah berkelana di antara bunga-bunga dan mengumpulkan nektar sebanyak mungkin. Ketika kembali ke sarang, mereka menyerahkan muatan nektar mereka kepada lebah-lebah penyimpan-makanan yang menjaga sarang dan menyimpan bahan makanan. Lebah-lebah ini kemudian menyimpan nektar di dalam petak-petak madu. Seekor lebah pengumpul-nektar juga dibantu oleh rekan-rekannya dalam menentukan seberapa bagus mutu sumber bunganya. Lebah pengumpul-nektar tersebut menunggu dan mengamati seberapa lama waktu yang dibutuhkan untuk bertemu dengan seekor lebah penyimpan-makanan yang siap menerima muatan. Jika waktu tunggu ini berlangsung lama, maka sang lebah pengumpul-nektar memahami hal ini sebagai isyarat bahwa sumber bunganya bukan dari mutu yang terbaik, dan bahwa lebah-lebah yang lain kebanyakan telah melakukan pencarian yang berhasil. Sebaliknya, jika ia disambut oleh sejumlah besar lebah-lebah penyimpan-makanan untuk mengambil muatannya, maka semakin besarlah kemungkinan bahwa muatan nektar tersebut bermutu baik.











Lebah yang mendapatkan informasi ini memutuskan apakah sumber bunganya senilai dengan kerja keras yang akan dilakukan berikutnya. Jika ya, maka ia melakukan tarian-getarnya yang terkenal agar dipahami maksudnya oleh lebah-lebah lain. Lama tarian ini memperlihatkan seberapa besar keuntungan yang mungkin dapat diperoleh dari sumber bunga ini. [penjelasan lebih lanjut tentang tarian lebah, silakan baca: Links berikut ini tidak bisa dilihat sebelum anda Login atau Register Sunil Nakrani dari Universitas Oxford dan Craig Tovey dari the Georgia Institute of Technology menerapkan cara pemecahan masalah oleh lebah madu tersebut pada permasalahan ada pada Internet host. Setiap server mengambil peran sebagai lebah pengumpul-nektar, dan setiap permintaan pelanggan bertindak sebagai sumber bunga. Dengan cara ini, doktor Nakrani dan Tovey mengembangkan sebuah algoritma "lebah madu" untuk server Internet "sarang." (Algoritma: Serangkaian tahapan-tahapan logis untuk memecahkan suatu permasalahan yang dapat diterjemahkan ke dalam sebuah program komputer.)

Sebuah host menjalankan tugas, sebagaimana yang dilakukan lebah dengan tarian-getarnya, dengan membuat sebuah iklan dan mengirimkannya ke sejumlah server lainnya di dalam sarang. Lama masa penayangan iklan ini mencerminkan manfaat dan tingkat keuntungan yang dapat diraup melalui para pelanggan server-server tersebut. Server lain membaca iklan ini dan berperilaku seperti lebah-lebah pekerja yang mengikuti petunjuk yang yang disampaikan melalui tarian-getar tersebut. Setelah mempertimbangkan dan mengkaji iklan ini beserta pengalaman mereka sendiri, mereka memutuskan perlu tidaknya untuk beralih dari para pelanggan yang sedang mereka layani ke para pelanggan yang sedang dilayani oleh server yang mengirim iklan tersebut.

Doktor Nakrani dan Tovey melakukan uji banding antara algoritma lebah madu yang mereka kembangkan dengan apa yang disebut sebagai algoritma "rakus" yang saat ini dipakai oleh kebanyakan penyedia Internet host. Algoritma rakus terlihat ketinggalan zaman. Algoritma rakus membagi waktu menjadi sejumlah penggalan waktu yang tetap dan menempatkan server-server untuk melayani para pelanggan untuk satu penggalan waktu berdasarkan pengaturan yang dianggap paling menguntungkan pada penggalan waktu sebelumnya. Para peneliti mengungkap bahwa di saat-saat ketika lalu lintas sangat berubah-ubah, algoritma lebah madu memperlihatkan kinerja 20% lebih baik daripada algoritma rakus. Sebentar lagi mungkin server-server yang bekerja menggunakan algoritma lebah madu akan semakin banyak di masa mendatang, di mana Internet akan lebih tepat disebut sebagai "Interkoloni."

Dengan pemisalan yang sangat tepat, penelitian yang dilakukan oleh para ilmuwan ini menunjukkan betapa berbagai pemecahan masalah yang masuk akal terdapat di alam. Permasalahan yang dihadapi server-server Internet sangatlah mirip dengan permasalahan yang dipecahkan oleh koloni lebah madu. Sungguh, keberhasilan yang dicapai penelitian tersebut, yang dilakukan dengan menerapkan contoh-rujukan koloni lebah madu, menjadi isyarat akan hal ini. Akan tetapi, dari manakah asal usul rumusan pemecahan masalah yang diberikan lebah madu kepada para pemrogram komputer tersebut? Meskipun para pemrogram komputer dapat mengambil perilaku lebah madu sebagai contoh-rujukan mereka, lebah itu sendiri tidak dapat melakukan hal seperti itu. Ini dikarenakan meskipun tiruan algoritma lebah yang dibuat oleh pemrogram komputer merupakan hasil dari proses berpikir cerdas yang dilakukan secara sadar, lebah madu tidak memiliki kemampuan berpikir semacam itu. Pemecahan atas permasalahan tersebut membutuhkan tindakan sadar, misalnya pertama-tama pemahaman tentang adanya permasalahan tersebut, pengkajian terhadap sejumlah penyebab timbulnya permasalahan itu, pengenalan atas pengaruh sejumlah penyebab itu terhadap permasalahan tersebut secara umum dan pengaruhnya terhadap satu sama lain, dan akhirnya pengambilan keputusan di antara beragam pilihan yang ada.

Sudah pasti pemecahan masalah semacam itu tidak mungkin terjadi di dalam koloni lebah beranggotakan 20 sampai 50 ribu ekor. Hanya ada satu penjelasan masuk akal atas kenyataan ini, di mana sedemikian banyak makhluk hidup menghemat energi dengan menerapkan cara pengumpulan nektar yang paling menguntungkan; meskipun orang biasanya mengira akan melihat suatu kekacauan dan kebingungan di dalamnya. Pemahaman atas permasalahan di dalam koloni lebah dan jalan keluar pemecahannya merupakan hasil karya Pencipta Maha Mengetahui. Tidak ada keraguan, Allahlah, Pencipta langit dan bumi dan segala yang ada di antara keduanya, Yang telah menciptakan koloni lebah. Strategi yang diterapkan di dalam koloni lebah madu merupakan ilham yang berasal dari Allah. Allah menyatakan hal ini di ayat berikut:

Dan Tuhanmu mewahyukan kepada lebah: "Buatlah sarang-sarang di bukit-bukit, di pohon-pohon kayu, dan di tempat-tempat yang dibuat manusia. Kemudian makanlah dari tiap-tiap (macam) buah-buahan dan tempuhlah jalan Tuhanmu yang telah dimudahkan (bagimu)." Dari perut lebah itu keluar minuman (madu) yang bermacam-macam warnanya, di dalamnya terdapat obat yang menyembuhkan bagi manusia. Sesungguhnya pada yang demikian itu benar-benar terdapat tanda (kebesaran Tuhan) bagi orang-orang yang memikirkan. (QS. An Nahl, 16:68-69)


Dikutip dari: http://www.harunyahya.com/indo/artikel/079.htm