Selasa, 14 April 2009

Tugas Lisensi Software


MEMPERHATIKAN LISENSI SOFTWARE


Anda mungkin mengamati kebanyakan software yang berjalan di sistem operasi Linux berada dibawah lisensi GPL (General Public License). Sementara itu Anda juga sering mendapati tool-tool / software menarik di sistem operasi Windows berada di bawah lisensi freeware atau shareware. Dalam tulisan ini bukan bermaksud melarang Anda memakai / meng-copy / meng-install / men-download suatu software atau juga mendistribusikannya. Tetapi sekedar untuk memberikan pengetahuan kepada Anda mengenai berbagai macam lisensi software yang sering Anda temukan ketika Anda ingin meng-install software. Untuk memudahkan dalam mempelajarinya dapat dibagi menjadi tiga kelompok, yaitu free, semifree, dan propierty.

Free

Free disini berarti software yang dimaksud bebas untuk dipergunakan dan didistribusikan. Free ini terdiri dari:
  1. Copylefted: Copyright pada author, contoh LGPL dan GPL
  2. Non Copylefted
  3. Non Copyrighted: Public Domain Software
  4. Copyrighted pada author: MIT license, BSD license, Apache license


Copyleft berarti perubahan dan distribusinya bisa dilakukan tanpa ada batasannya.


Software free bisa di-download dan dipergunakan tanpa biaya. Biasanya source code-nya tersedia untuk GPL, LGPL, dan Public Domain Software. Software free bisa dimodifikasi sesuai dengan keinginan dan didistribusikan kemana saja secara gratis atau sekedar membayar untuk biaya copy, software dengan lisensi free memiliki ketentuan sebagai berikut:
  1. GPL dan LGPL: Source harus disertakan.
  2. BSD license: Nama author / contributor semula tidak bisa dipakai untuk mempromosikan produk turunan darinya.
  3. Apache license: Versi modifikasi tidak boleh disebut dengan nama versi aslinya. Nama author / contributot semula tidak bisa dipakai untuk mempromosikan produk turunan darinya.
  4. Public Domain Software: Bisa dimodifikasi dan dipakai dengan lisensinya sendiri.


Semi Free


Pada software dengan lisensi semi free Copyrighted dimiliki oleh pembuatnya (Author), contohnya adalah Semi-Free Software. Software dengan lisensi ini bisa di-download dan dipergunakan tanpa mengeluarkan biaya bila pemakaiannya hanya untuk keperluan pribadi dan non-profit. Source code untuk software ini tidak tersedia sehingga software ini tidak bisa dimodifikasi dan didistribusikan kecuali bila pembuat software tersebut (author) memperbolehkannya.


Propiertary Software


Pada jenis ini, software tidak bisa dimodifikasi dan didistribusikan kecuali bila pembuat (author) memperbolehkannya. Source code-nya juga tidak tersedia. Pada jenis ini Copyrighted dimiliki oleh pembuat (author).


Contoh:


  • Freeware: harga=0 alias gratis, bisa didownload dan dipergunakan tanpa mengeluarkan biaya.
  • Shareware: harga>0. Hanya boleh didownload dan dipergunakan tanpa mengeluarkan biaya untuk pengujian (evaluation purpose only). Software dengan lisensi ini biasanya memiki batas waktu pakai dan fungsi-fungsinya dibatasi hanya sekedar untuk pengujian saja, misalnya software yang digunakan hanya bisa dipakai selama 30 hari dan jika melewati batas pakai tersebut software tidak bisa dipakai lagi dan agar bisa memakainya kembali user harus mengeluarkan biaya.

Commercial license


Ada juga perbedaan istilah antara free dan gratis. Free artinya bebas dipergunakan dan didistribusikan, sedangkan gratis artinya harganya sama dengan nol (harga=0) atau user tidak perlu mengerluarkan biaya sepeserpun.
Untuk software jenis free kebanyakan source code-nya tersedia dan bisa didownload dan diubah sesuai kehendak user. Sedangkan untuk jenis freeware dan shareware meski ada yang bisa dipergunakan tanpa biaya, tetapi tidak selalu bebas didistribusikan dan source code-nya pun tidak tersedia.

Selasa, 31 Maret 2009

Tugas lisensi software

Jenis-jenis lisensi software komputer

25 01 2008

Menurut Microsoft dalam “The Hallowen Document”, terdapat beberapa jenis lisensi yang dapat digunakan untuk program komputer. Beberapa jenis lisensi tersebut antara lain adalah:

Lisensi Commercial
adalah jenis lisensi yang biasa ditemui pada perangkat lunak seperti Microsoft dengan Windows dan Officenya, Lotus, Oracle dan lain sebagainya. Software yang diciptakan dengan lisensi ini memang dibuat untuk kepentingan komersial sehingga user yang ingin menggunakannya harus membeli atau mendapatkan izin penggunaan dari pemegang hak cipta.

Lisensi Trial Software
adalah jenis lisensi yang biasa ditemui pada software untuk keperluan demo dari sebuah software sebelum diluncurkan ke masyarakat atau biasanya sudah diluncurkan tetapi memiliki batas masa aktif. Lisensi ini mengizinkan pengguna untuk menggunakan, menyalin atau menggandakan software tersebut secara bebas. Namun karena bersifat demo, seringkali software dengan lisensi ini tidak memiliki fungsi dan fasilitas selengkap versi komersialnya. Dan biasanya dibatasi oleh masa aktif tertentu.

Lisensi Non Commercial Use
biasanya diperuntukkan untuk kalangan pendidikan atau yayasan tertentu dibidang sosial. Sifatnya yang tidak komersial, biasanya gratis tetapi dengan batasan penggunaan tertentu.

Lisensi Shareware
mengizinkan pemakainya untuk menggunakan, menyalin atau menggandakan tanpa harus meminta izin pemegang hak cipta. Berbeda dengan Trial Software, lisensi ini tidak dibatasi oleh batas waktu masa aktif dan memiliki fitur yang lengkap. Lisensi jenis ini biasanya ditemui pada software perusahaan kecil.

Lisensi Freeware
biasanya ditemui pada software yang bersifat mendukung, memberikan fasilitas tambahan atau memang free/gratis. Contoh yang bersifat mendukung antara lain adalah plug in tambahan yang biasanya menempel pada software induk seperti Eye Candy yang menempel pada Adobe Photoshop.

Lisensi Royalty-Free Binaries
serupa dengan lisensi freeware, hanya saja produk yang ditawarkan adalah library yang berfungsi melengkapi software yang sudah ada dan bukan merupakan suatu software yang berdiri sendiri.

Lisensi Open Source
membebaskan usernya untuk menjalankan, menggandakan, menyebarluaskan, mempelajari, mengubah, dan meningkatkan kinerja software. Berbagai jenis lisensi open source berkembang sesuai dengan kebutuhan, misalnya GNU/GPL, The FreeBSD, The MPL. Jenis-jenis software yang memakai lisensi ini misalnya Linux, sendmail, apache dan FreeBSD.

sebagian isi dari : Etika Komputer dan Tanggung Jawab Profesional di Bidang TI

Minggu, 22 Maret 2009

TUGAS Extrem Programing

Satu lagi tipe metodologi pengembangan aplikasi yang dapat diterapkan di dalam merealisasikan proyek pengembangan aplikasi, termasuk aplikasi bergerak, adalah Extreme Programming (XP). XP pada dasarnya merupakan tipe agile software development methodology yang menerapkan iterasi pengembangan aplikasi dan mengantisipasi perubahan persyaratan atau kebutuhan sistem sepanjang siklus hidup proyek. XP memiliki 12 praktik yang dirangkum dari best practice rekayasa perangkat lunak, yang dikelompokkan ke dalam 4 area, yaitu : Fine scale feedback (Pair programming, Planning Game, Test Driven Development, Whole team), Continuous process (Continuous Integration, Design Improvement, Small Releases), Shared understanding (Coding Standards, Collective Code Ownership, Simple Design, System Metaphor), dan Programmer welfare (Sustainable Pace).

  • Pair programming, memerlukan dua orang pembuat kode program untuk berpartisipasi di dalam usaha mengembangkan aplikasi pada sebuah workstation. Setiap orang melakukan aksi yang saling mendukung, di mana orang yang mengetik kode program disebut sebagai driver dan orang yang memberi panduan disebut sebagai navigator. Sangat disarankan kedua orang tersebut saling berganti peran setiap setengah jam atau setelah unit test selesai dibuat, dan disarankan juga untuk mengganti rekan setiap harinya.
  • Planning game, merupakan proses perencanaan utama di dalam XP. Planning game adalah pertemuan yang dilaksanakan setiap iterasi pengembangan aplikasi, umumnya setiap minggu. Planning game dibagi ke dalam dua tahap : Release Planning dan Iteration Planning. Release Planning difokuskan untuk menentukan persyaratan apa yang dapat/perlu disertakan pada release selanjutnya dan kapan release berikutnya dilakukan. Penentuan ini didasarkan pada kesepakatan antara client dan tim pengembang. Iteration Planning difokuskan untuk merencanakan aktivitas dan tugas tim pengembang.
  • Test driven development, merupakan pendekatan untuk membuat unit test sebelum kode program benar-benar ditulis. Unit test merupakan automated test yang menguji fungsionalitas penggalan kode, dapat berupa kode dalam suatu kelas atau metode. Pendekatan ini dimaksudkan untuk menstimulasi para pembuat kode berpikir tentang kondisi di mana kode yang dibuat dapat gagal berfungsi.
  • Whole team, berarti client juga harus terlibat di dalam proses pengembangan aplikasi.
  • Continuous integration, berarti tim pengembang sebaiknya selalu mengerjakan aplikasi versi terakhir. Karena anggota tim yang berbeda dapat memiliki versi yang tersimpan di lokal dengan berbagai perubahan dan perbaikan, maka mereka sebaiknya upload versi terakhir ke code repository setiap beberapa jam atau ketika sesuatu perbaikan yang penting dilakukan. Continuous integration dapat mencegah delay yang sering terjadi akibat permasalahan integrasi.
  • Design improvement, berarti ketika refactoring kode diperlukan, maka proses ini dilakukan dengan mengubah desain arsitektur menjadi lebih sederhana dan lebih umum.
  • Small releases, berarti aplikasi diberikan ke client setiap release yang telah ditentukan di mana setiap release memuat segmen aplikasi yang lebih kecil dari aplikasi keseluruhan, yang dapat berjalan tanpa tergantung pada komponen yang akan dibuat kemudian. Small releases menambah tingkat kepercayaan client terhadap kemajuan proyek pengembangan aplikasi.
  • Coding standard, merupakan sekumpulan peraturan atau standar yang disepakati tim pengembang selama proses pengembangan aplikasi. Standar yang dimaksud menspesifikasikan format dan tipe penulisan kode sumber terhadap bahasa pemrograman yang digunakan. Penggunaan standar dapat mengacu pada konvensi yang dikeluarkan vendor bahasa pemrograman atau dikustomisasi oleh tim pengembang.
  • Collective code ownership, berarti setiap individu bertanggung jawab atas semua kode sumber, yang juga berarti setiap individu diizinkan untuk mengupdate kode.
  • Simple design, berarti pengembang aplikasi perlu menerapkan pendekatan simple is best di dalam melakukan desain aplikasi. Setiap kali penggalan kode baru ditulis, pembuat kode perlu memikirkan apakah masih terdapat cara yang lebih sederhana untuk memberikan fungsionalitas yang sama.
  • System metaphor, merupakan konsep penamaan untuk kelas dan metode yang memudahkan anggota tim dapat memperkirakan fungsionalitas kelas atau metode dari nama yang diberikan.
  • Sustainable pace, berarti tim pengembang sebaiknya tidak bekerja lebih dari 40 jam dalam satu minggu. Jika terdapat tambahan waktu kerja dalam satu minggu, maka pada minggu selanjutnya sebaiknya tidak ada tambahan waktu kerja. Sustainable pace merupakan konsep di mana individu akan melakukan pekerjaan terbaik jika mereka beristirahat yang cukup.

Tugas Agile Extrem Programing

Software development merupakan salah satu bentuk engineering yang berkembang sejak diciptakannya komputer. Jika dibandingkan dengan engineering lain yang ada, seperti arsitektur, machine engineering, maka disiplin ilmu ini tergolong muda. Dalam perkembangannya kita melihat berbagai hal sudah dihasilkan. Awalnya manusia berinteraksi dengan komputer dengan menggunakan bahasa mesin yang direpresentasikan dengan nilai-nilai biner. Kemudian muncul bahasa rakitan yg menggantikan penggunaan nilai-nilai biner tersebut dengan simbol-simbol opcodes. Berikutnya lahirlah berbagai bahasa pemrograman tingkat tinggi yg membuat pemrograman semakin mudah dengan struktur yang dekat dengan bahasa manusia. Sejak saat itu produktivitas pembuatan software juga meningkat. Software rumit semacam sistem operasi juga semakin modern.

Di luar keberhasilan-keberhasilan tersebut tak terhitung pula jumlah pengembangan software yang mengalami kegagalan. Sering kita dengar project A dihentikan karena over budget, project B berhasil sampai pada production tetapi dengan defect rate sangat tinggi. Metodologi pengembangan software memang sudah ada pada project-project tersebut, tetapi mengapa kegagalan masih saja menjadi satu hal yg sangat mengancam? Sepertinya keberhasilan diambil dari sebuah kotak undian dengan kesempatan acak, terkadang berhasil, terkadang gagal.

Extreme Programming (dikenal juga dengan XP) muncul menawarkan sebuah disiplin dalam pengembangan software. Klaim dari penggagasnya adalah disiplin ini akan menghapus kesan bahwa keberhasilan software development hanya dapat dicapai dengan keberuntungan. Nilai dasar yang terkandung di dalamnya adalah: Komunikasi (Communication), Kesederhanaan (Simplicity), Umpan balik (Feedback), Keberanian (Courage). Ya nilai-nilai ini memang bukan suatu hal yg baru, tetapi lewat pengalaman dari serangkaian project penggagas bahwa hal-hal inilah yang dapat menekan resiko kegagalan suatu project. Dalam hal ini XP hanya mencoba untuk mengumpulkannya dan memberinya sebuah nama.

Komunikasi menjadi hal yang sangat menentukan dalam sebuah tim pengembangan software. Kegagalan komunikasi antar pihak-pihak yang berkepentingan dalam pengembangan software pastinya akan menimbulkan masalah-masalah yg tidak diinginkan seperti: proses bisnis yang dibuat tidak sesuai, anggota tim menghadapi masalah yg tidak bisa diselesaikan, atasan mendapatkan laporan kejutan sehari sebelum deadline, dsb. Pihak-pihak yang berkepentingan (selanjutnya disebut Role) dalam hal ini mencakup: programmer, customer, coach, tracker, tester, consultant, big boss.

Kesederhanaan mengacu pada desain sistem yang akan dibuat. Berlawanan dengan disiplin software development lainnya, XP menganjurkan desain yang berevolusi sepanjang proses pengembangan. Seringkali programmer berpikir terlalu kompleks dalam menyelesaikan suatu permasalahan. Pada saat yang lain mereka berpikir bagaimana supaya sistem menjadi fleksibel untuk masa depan. Dalam mengambil keputusan demikian biasanya hanya berdasar pada spekulasi saja, di mana pada akhirnya perkiraan tersebut meleset, sistem tidak pernah diuntungkan dengan desain fleksibel yang super kompleks tersebut. Satu prinsip yang berkaitan dengan ini adalah “You aren’t gonna need it“, di mana sangat dianjurkan agar dalam membangun sesuatu terlebih dahulu kita memastikan bahwa hal ini memang dibutuhkan.

Umpan balik diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari aplikasi yang dibangun. Informasi ini harus dikumpulkan setiap interval waktu yang singkat secara konsisten. Ini dimaksudkan agar hal-hal yang menjadi masalah dalam proses pengembangan dapat diketahui sedini mungkin dan customer dapat membuat keputusan berdasarkan informasi tersebut.

Keberanian. Ini merupakan nilai yang menjadi katalisator bagi ketiga nilai sebelumnya. Keberanian diperlukan untuk mengatakan bahwa target deadline yang diinginkan customer tidak mungkin tercapai, untuk mengambil keputusan saat code yang sudah dibuat ternyata harus dibuang karena kesalahan informasi.

Nilai-nilai di atas menjadi bagian inti dari Extreme Programming. Tetapi untuk mencapainya perlu ada strategi konkrit yang siap untuk diaplikasikan. Strategi tersebut akan dibahas di lain waktu.

Rabu, 11 Maret 2009

Rabu, 2009 Maret 11

Setiap ada perkembangan baru di dunia IT maka pasti akan diikuti juga oleh munculnya produk baru di bidang otomotif. Diantaranya akan dijelaskan sebagai berikut:

1. Mood Training

Mobil yang memadukan konsep alam dan ramah lingkungan. Mobil ini juga dilengkapi dengan teknologi “Mood Training” yang terletak di setir yang akan memonitor psikologi si pengendara. Ini masih dalam bentuk konsep yang akan dikeluarkan oleh Toyota.

2. Komputer Mobil

Perangkat keras utama dalam sistem ini adalah central processing unit (CPU). Untuk mempermudah pemasangan digunakan casing produksi Trivia yang sama dengan standar perangkat audio di mobil (berukuran 1 din, lebar 17,78 cm dan tinggi 5,08 cm), sehingga tidak perlu dilakukan banyak modifikasi interior mobil
Motherboard yang digunakan berukuran Mini-ITX (17 cm x 17 cm). Untuk mengurangi panas, dipilih motherboard kecepatan sedang,menggunakan processor VIA Eden 600 MHz, sudah cukup andal menjalankan aplikasi-aplikasi berbasis Windows XP.
Untuk media penyimpanan, digunakan harddisk 40 GB 2,5 inci, yang didesain lebih tahan guncangan dibandingkan harddisk biasa berukuran 3,5 inci. CPU ini juga dilengkapi dengan pemutar DVD.
Pada bagian depan komputer terdapat dua buah rongga USB versi 2.0, untuk memasang berbagai perangkat yang sesuai dengan standar USB. Kita bisa menggunakan keyboard USB untuk mengetik. Transfer data bisa dilakukan dari atau ke USB Flash. Koneksi Bluetooth didapatkan dengan menempelkan interface bluetooth pada slot USB.
Koneksi ke internet menggunakan CDMA ataupun GPRS bisa dilakukan dengan menghubungkan handphone ke rongga USB ini. Selagi mobil berjalan, kita dapat terkoneksi ke internet selama masih berada dalam cakupan layanan selular.
Monitor yang digunakan juga memiliki ukuran 1 din, sehingga bisa dipasang dengan mudah pada dudukan tape mobil. Saat tidak digunakan, layar terlipat dan masuk ke kotaknya, mirip cara kerja TV mobil yang sudah banyak digunakan. Meskipun komputer bisa dihubungkan dengan monitor TV, sebaiknya digunakan monitor SVGA dengan resolusi hingga 468 x 800 piksel (tipe lebar) berdiameter 7 inci.
Untuk mempermudah melakukan kontrol ke komputer, monitor juga difungsikan sebagai layar sentuh untuk pengganti mouse. Dengan sentuhan satu jari, dapat dilakukan beberapa fungsi sederhana, misalnya untuk mengaktifkan aplikasi pemutar lagu, atau mengatur volume musik yang diputar.
Layar sentuh dapat ditulisi, seperti penggunaan fitur grafiti pada PDA, sebagai pengganti keyboard untuk mengetik. Sistem operasi Windows XP versi Tablet PC menjadi pilihan menarik karena didesain untuk mengoptimalkan komputer yang menggunakan layar sentuh.
Sistem listrik
Perbedaan komputer mobil dengan komputer biasa adalah sistem kelistrikannya. Komputer menggunakan power supply unit yang akan mengubah arus listrik AC 220 Volt menjadi arus listrik DC 12 Volt.
Penggunaan komputer mobil sebagai media hiburan dapat dilakukan dengan mudah. Dengan kapasitas harddisk cukup besar, kita bisa menyimpan ribuan lagu dalam format MP3. Kita juga bisa memutar MP3, CD Audio, VCD, ataupun DVD. Dengan TV Tunner yang dihubungkan ke slot USB, kita bisa menikmati siaran televisi. Perlu ditambahkan juga antena TV pada atap mobil.

3. Motor Solar Cell
Kalau musim panas, motor ini tidak perlu mampir ke pompa bensin. Dengan menggunakan 4 buah 30W solar cell panel, motor ini cukup di jemur ketika mengisi baterai.



Motor ini setelah digunakan langsung dipajang dengan membuka panel surya untuk mengisi baterai selama 80 jam. sehingga selain hemat biaya motor ini juga hemat energi.

4.Teknologi LCD Menjadi Indikator Persneling

Revolusi baru dari teknologi LCD merambah otomotif. Perselingkendaraan dilengkapi dengan display LCD ketika sedang berkendara akan menunjukan posisi gigi kendaraan. Pengemudi akan lebih jelas melihat posisi gigi ketika memacu kendaraan, konon dengan petunjuk ini dapat menghemat bahan bakar. Karena pengemudi tidak pernah lupa melihat kondisi perseling dengan kecepatan.

5. Simulator Kereta Api

Simulator kereta api adalah sebuah perangkat lunak komputer yang menyimulasikan pengoperasian kereta api. Beberapa aspek yang termasuk dalam simulasi kereta api antara lain:
• Mengendalikan kereta api, menampilkan pandangan dari kabin masinis.
• Mengatur sinyal perjalanan kereta api.
• Memimpin sebuah perusahaan kereta api.

5. 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.

Senin, 09 Maret 2009

tugas RPL

Ant Colony Optimization (ACO), atau yang diterjemahkan secara bebas: Optimasi Koloni Semut, adalah sebuah teknik metaheuristik optimasi yang terinspirasi oleh perilaku nyata koloni semut dalam menemukan jarak terpendek dari sumber makanan kembali ke sarangnya tanpa menggunakan petunjuk visual. Teknik ini kemudian digunakan untuk penyelesaian permasalahan optimasi diskret.

aco

Untuk memudahkan kita membayangkan bagaimana perilaku semut untuk selalu menemukan jarak terpendek, silahkan perhatikan ilustrasi gambar di bawah.

ants

Gambar bagian a menunjukkan iring-iringan semut dari sumber makanan balik ke sarang. Kemudian jalur iring-iringan semut tersebut terputus (Gambar b). Anggap saja ada orang yang iseng meletakkan sesuatu di situ. Semut-semut yang berada sebelum jalur yang terputus itu lalu berusaha mencari jalan lain untuk mencapai kelompok semut yang berada di depannya, sebagaimana terlihat dalam Gambar c. Setelah beberapa saat, para semut itu berhasil menemukan jalan terpendek (Gambar d). Bukan tidak mungkin, sang semut berusaha mendaki benda yang menghalangi jalurnya, bila itu memungkinkan.

Untuk memastikan, silahkan Anda cari iring-iringan semut. Kemudian jadilah orang iseng dengan meletakkan ranting kecil, atau mungkin jari Anda, di tengah-tengah iringan tersebut. Perhatikanlah apa yang terjadi. Asal bukan semut merah yang Anda ganggu, pasti akan didapati fenomena yang sama.

antcolonyoptimization_smallNah perilaku semut inilah yang memotivasi Marco Dorigo dalam memperkenalkan Ant System (Sistem Semut), yang merupakan sistem ACO yang pertama, dalam disertasi PhD nya. Sistem Semut ini merupakan hasil penelitiannya mengenai pendekatan computational intelligence untuk permasalahan combinatorial optimization. Penelitian dilakukan di Politeknik Milan, Italia, bekerja sama dengan Alberto Colorni dan Vittorio Maniezzo. Dalam penelitian itu, Sistem Semut diterapkan pada penyelesaian masalah penugasan : TSP (Travelling Salesman Problem) dan QAP (Quadratic Assignment Problem).

Sejak tahun 1995, Dorigo, Luca Maria Gambardella dan Thomas Stützle bekerja mengembangkan pelbagai variasi dari paradigma Sistem Semut, termasuk hybrid version dengan teknik local search. Tahun 1997, Dorigo dan Gambardella memperkenalkan Ant Colony System (ACS), sementara setahun sebelumnya, Stützle bekerja sama dengan H.H. Hoos memperkenalkan MAX-MIN Ant System (MMAS). Keduanya, ACS dan MMAS, telah berhasil diterapkan ke dalam penyelesaian symmetric and asymmetric TSP.

aco-chronologyPerlu dicatat bahwa apa yang dikemukakan oleh Dorigo dalam tesisnya adalah merupakan artificial system yang terinspirasi oleh perilaku semut dalam menemukan jarak terpendek. Perilaku binatang kecil tersebut, dalam arti yang sebenarnya, telah diteliti dan dipublikasikan tahun 1959 oleh Pierre-Paul Grass. Namun penelitian yang intens baru dilakukan sejak tahun 1983, yang mana kemudian dimasukkan sebagai bagian dari kronologi algoritma ACO ini (lihat gambar sebelah kiri).

Kekonvergenan ACO sendiri, yang merupakan ’syarat perlu’ bagi sebuah teknik optimasi, baru bisa dibuktikan tahun 2000 oleh W.J. Gutjahr. Setahun kemudian barulah muncul publikasi mengenai multicriteria ACO.

Karena banyaknya penerapan dari ACO ini, termasuk penerapan dalam permainan sudoku, Dorigo dan Stützle menulis sebuah buku yang bertujuan untuk mengulas penerapan-penerapan tersebut. Buku mereka berjudul Ant Colony Optimization dan diterbitkan oleh MIT Press tahun 2004.