BAB II TINJAUAN PUSTAKA 2.1 Tinjauan Pustaka (Samuel, Toni & Willi 2005) dalam penelitian yang berjudul “Penerapan Algoritma Genetika untuk Traveling Salesman Problem Dengan Menggunakan Metode Order Crossover Dan Insertion Mutation” dalam penelitiannya TSP adalah salah satu masalah optimasi yang paling terkenal dan algoritma genetika adalah pemecahan masalah yang paling terkenal. Makalah ini menunjukkan bagaimana algoritma genetika dapat memecahkan masalah ini. TSP (Traveling Salesman Problem). Keempat variabel dalam algoritma genetika adalah jumlah kromosom, jumlah generasi, probabilitas crossover dan probabilitas mutasi ditetapkan sedemikian rupa. (Aries & Wawan F. 2005) dalam penelitian yang berjudul “Penerapan Algoritma Genetika Traveling Salesman Problem with Problem With Time Window: Studi Kasus Rute Antar Jemput Laundry” dalam penelitian Optimasi pemilihan rute merupakan masalah yang banyak dibahas pada penelitian ilmu komputer. Antar jemput laundry dengan pelanggan yang memiliki waktu khusus untuk menerima barang adalah salah satu contoh kasus pemilihan rute. Perhitungan rute tercepat memegang peranan penting karena harus tepat waktu dan semua pelanggan dapat dilayani. Berbeda dengan Traveling Salesman Problem (TSP) konvensional yang bertujuan untuk meminimalkan jarak, kasus ini juga harus dipertimbangkan waktu ketersediaan setiap pelanggan. Pencarian solusi untuk permasalahannya adalah dengan mengkombinasikan solusi-solusi (kromosom) untuk menghasilkan solusi baru dengan menggunakan operator genetika (seleksi, Crossover Dan Mutasi). Untuk mencari solusi terbaik digunakan beberapa kombinasi probabilitas crossover dan mutasi serta ukuran populasi dan ukuran generasi. Dari hasil pengujian kombinasi probabilitas crossover yang terbaik adalah 0,4 dan mutasi adalah 0,6 sedangkan ukuran generasi adalah 2000. Dari nilai-nilai parameter didapatkan solusi yang 4 memungkinkan untuk melayani semua pelanggan dengan time window masingmasing. (I Dewa Made & Vivine 2012) dalam penelitian yang berjudul “Penentuan Jarak Terpendek Jalur Distribusi Barang Di pulau Jawa Dengan Menggunakan Algoritma Genetika” dalam penelitian terdapat banyak kemungkinan kombinasi jalur distribusi barang melalui darat yang dapat digunakan untuk mengoptimalkan waktu dan biaya perjalanan. Namun demikian, tidak semua kombinasi jalur distribusi memberikan solusi terbaik. Agar solusi terbaik dicapai, suatu penelitian untuk menentukan jalur distribusi barang melalui jalur darat dilakukan. Untuk mempermudah proses penentuan jalur distribusi barang tersebut didukung dengan pembangunan perangkat lunak. Algoritma genetika memiliki kehandalan dalam menghasilkan output yang optimal dapat dimanfaatkan untuk memecahkan masalah tersebut. Penerapan metode algoritma genetika diaplikasikan dalam suatu perangkat lunak. Pada perangkat lunak dibangun terdapat beberapa inputan yang dibutuhkan yaitu kota-kota tujuan distribusi sebagai jumlah kromosom awal, jumlah generasi, probabilitas mutasi. Hasil pemrosesan merupakan kombinasi jalur distribusi barang yang akan diambil yang mempresentasikan masalah ini. Hanya kromosom terbaik yang akan diberikan sebagai hasil. Melalui perangkat lunak yang dibangun, penentuan jalur distribusi barang yang diharapkan dapat dilakukan dengan lebih baik dan dapat mengoptimalkan waktu dan biaya perjalanan. Berdasarkan penelitian yang telah dilakukan, digunakan 5 kombinasi kota sebagai tujuan distribusi yang digunakan pada pengujian. Melalui pengujian yang telah dilakukan terhadap 3 skenario pertama dengan nilai PC dan PM yang rendah (PC & PM <50). Skenario tersebut menghasilkan rute distribusi dengan nilai fitness yang lebih rendah daripada nilai fitness tahap inisialisasi data awal. Nilai fitness pada tahap inisialisasi dari kromosom adalah 931 dan setelah melalui proses algoritma genetika menghasilkan nilai fitness 762. Penelitian ini fokus untuk menentukan rute yang optimal berdasarkan sekolah-sekolah yang sudah ditentukan. Dalam penelitan ini bertujuan mencari nilai fitness yang paling rendah berdasarkan beberapa proses generasi dan pembentukan populasi dari kromosom dan gen. Dan alur programnya dimulai dari 5 inputan data sekolah sebagai kromosom dan nilai bobot dicari berdasarkan jarak sekolah A ke sekolah B. Pencarian nilai bobot menggunakan google maps dimana ketika penginputan sekolah akan mengeluarkan jarak berupa angka yang nantinya sebagai nilai bobot yang akan diperoses menggunakan algoritma genetika. Dan dimana hasilnya akan mengeluarkan satu solusi atau satu kromosom yang menampilkan total dari setiap rute terbaiknya pada setiap generasinya. 2.2 Landasaan Teori 2.2.1 Sistem Sistem adalah suatu kesatuan yang terdiri dari beberapa komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi, materi atau energi untuk mencapai sebuah tujuan. Sistem dalam aplikasi ini yang adalah kesatuan dari beberapa komponen yaitu ada proses penginputan data, kemudian proses pencarian nilai bobot atau jarak dan proses perhitungan menggunakan algoritma genetika dimana dengan setiap komponen jika dihubungkan akan membuat suatu output atau informasi yang akan menampilkan hasil rute berupa jarak dan urutuan rute secara visual. 2.2.2 Rute Rute adalah jarak atau arah yang harus ditempuh. Jarak juga bisa diartikan sebagai jalur yang menghubungkan dua tempat. Dengan adanya rute kita dapat menentukan jalur untuk mencapai sebuah tujuan. Tujuan dari aplikasi rute ini adalah mencari sebuah nilai atau jarak dari satu titik titik yang lain. Dengan menghubungkan satu titik dan titik tujuan akan mendapat sebuah nilai dari jarak yang ingin dituju. 2.2.3 Algoritma Genetika Algoritma Genetika (AG) adalah suatu algoritma pencarian berbasis pada pada mekanisme seleksi alam dan genetika. Algortima Genetika merupakan salah algoritma yang tepat digunakan dalam menyelesaikan suatu masalah optimasi kompleks, yang sulit dilakukan oleh metode konvensional. Algoritma Genetika diperkenal oleh john Holland pada tahun 1975 dari Universitas Michigan. John 6 Holland menyatakan bahwa setiap masalah yang berbentuk adapatasi (Alami maupun Buatan) dapat diformulasikan ke dalam terminologi genetika. Sifat Algoritma Genetika adalah mencari kemungkinan dari calon solusi untuk mendapatkan solusi yang lebih optimal dalam penyelesaian masalah. Ruang cakupan dari semua solusi yang layak, yaitu berbagai obyek diantara solusi yang sesuai, yang dinamakan ruang pencarian. Tiap titik didalam ruang pencarian mempresentasi satu solusi yang layak. Tiap solusi yang layak dapat ditandai dengan nilai fitnessnya. Solusi yang dicari dalam algoritma Genetika data titik (satu atau lebih) diantara solusi yang layak dalam ruang pencarian. Sifat pencarian inilah yang menyebabkan baik diterapkan untuk masalah NP-complete. Gambar 2.1 Diagram Algoritma Genetika 7 2.2.4 Hal – hal yang harus dilakukan dalam Algoritma Genetika Ada beberapa hal yang harus dilakukan Algoritma Genetika. Hal-hal yang dilakukan oleh Algoritma adalah sebagai berikut : 1. Mendefinisikan Individu, dimana setiap individu menyatakan salah satu solusi (penyelesaian) yang mungkin dari permasalahan yang diangkat. 2. Mendefinisikan Nilai Fitness, yang merupakan ukuran baik tidaknya sebuah individu atau baik tidaknya solusi yang didapatkan. 3. Menentukan proses pembangkitan nilai awal. Hal ini biasanya dilakukan dengan menggunakan pembangkit acak seperti random-walk. 4. Menentukan proses seleksi yang akan digunakan. 5. Menentukan proses perkawinan silang (crossover) dan mutasi gen yang akan digunakan. 2.2.4.1 individu Individu menyatakan salah satu solusi mungkin. Individu bisa dikatakan sama dengan chromosome, yang merupakan kumpulan gen. Gen bisa bisa biner, float atau kombinatorial. Beberapa definisi penting yang perlu diperhatikan di mendefinisikan individu untuk membangun penyelesain permasalahan dengan Algortima Genetika adalah sebagai berikut : Genotype (Gen) sebuah nilai yang menyatakan satuan dasar membentuk suatu arti dalam satu kesatuan gen yang dinamakan kromosom. Dalam Algoritma Genetika, gen ini bisa berupa nilai biner, float, atau kombinatorial. Allele nilai dari gen. Kromosom yakni gabungan gen-gen yang membentuk nilai tertentu. Individu menyatakan suatu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat. Populasi merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi. 8 Generasi menyatakan satu siklus proses evolusi atau satu iterasi dalam Algoritma Genetika. 2.2.4.2 Pemberian nilai Fitness Nilai fitness adalah nilai yang menyatakan baik tidaknya suatu solusi (individu). Nilai fitness ini dijadikan acuan dalam mencapai nilai optimal dalam Algoritma Genetika. Algoritma Genetika bertujuan mencari individu dengan nilai fitness yang paling tinggi. Suatu fungsi fitness dapat sama atau merupakan hasil modifikasi terhadap fungsi tujuan masalah yang hendak diselesaikan. Jika masalahnya adalah masalah maksimal, fungsi fitness-nya sama atau berbanding lurus dengan fungsi tujuan, namun jika masalahnya adalah masalah minimasi, fungsi fitness-nya berbanding terbalik dengan fungsi tujuan. Secara umum Algoritma Genetika mengoprasikan kromosom dengan fitness positif dan mencari untuk memaksimumkan fitness ini. Proses minimasi dapat dilakukan dengan mudah, dengan cara membalik fungsi maksimal. 2.2.4.3 Seleksi Kromosom Seleksi merupakan salah satu operasi untuk memastikan bahwa jumlah perwakilan dari sebuah kromosom yang diterima pada generasi selanjutnya akan bergantung pada nilai fitness-nya yang dibandingkan dengan nilai fitness rata-rata dari populasi yang ada. Kromosom–kromosom yang telah di evaluasi dengan menggunakan fungsi fitness akan diseleksi untuk dijadikan induk. Kromosomkromosom yang telah memiliki nilai fitness yang sangat baik akan memiliki peluang yang lebih besar untuk terpilih menjadi induk dan tetap bertahan pada generasi berikutnya, sedangkan kromosom-kromosom yang lebih buruk akan tergantikan dengan kromosom baru. Pada model seleksi alam, kromosom yang memiliki nilai fitness lebih baik akan memiliki peluang bertahan hidup (survival of the fitness) lebih baik pada generasi berikutnya, sebaliknya, kromosom yang memiliki nilia fitness buruk akan tergantikan oleh kromosom baru yang lebih baik. Proses seleksi dalam Algoritma Genetika juga meniru prinsip seleksi alam dalam cara kerjanya. Salah 9 satu prinsip umum seleksi adalah peluang masing-masing kromosom untuk terpilih sebanding dengan nilai fitness-nya. Tipe select iini disebut fitness proportional selection jadi, jika kromosom A dua kali nilainya dari kromosom B, kromosom A seharusnya memiliki dua kali kesempatan untuk berproduksi. Salah satu teknik seleksi dalam Algoritma Genetika adalah teknik seleksi cakram rolet (roulette wheel selection) yang dikenalkan oleh Goldberg (1989). Teknik ini diilustrasikan sebagai teknik pemutaran cakram rolet. Besarnya ukuran slot adalah sama dengan rasio antara nilai fitness suatu kromosom dengan total nilai fitness semua kromosom. Untuk menghasilkan sejumlah populasi, rolet tersebut diputar sebanyak ukuran populasi yang ada. Terdapat beberapa metode seleksi. Dalam hal ini hanya dibahas dua metode yaitu metode mesin roullete dan mesin turnamen. 2.2.4.4 Metode Roulette Wheel Metode seleksi dengan mesin roulette ini merupakan metode yang paling sederhana dan sering dikenal dengan nama stochastic sampling with replacement. Cara kerja metode ini adalah sebagai berikut : 1. Dihitung dari nilai fitness dari masing-masing individu (fn dimana I adalah individu ke-1 s/d ke-n) 2. Dihitung total fitness semua individu. 3. Dihitung probbabilitas masing-masing individu. 4. Dari probabilitas tersebut, dihitung jatah masing-masing individu pada angka 1 sampai 100. 5. Dibangkitkan dengan random antara 1 sampai 100. 6. Dari bilangan random yang dihasilkan, ditentukan individu mana yang terplih dalam proses seleksi. 10 2.2.5 Penyilangan (Crossover) Penyilangan (Crossover) adalah operator utama atau operator primer dalam Algoritma Genetika. Operator ini bekerja pada sepasang kromosom induk untuk menghasilkan dua kromosom anak dengan cara menukarkan beberapa elemen (gen) yang dimiliki masing-masing kromosom induk. Tingkat penyilangan atau peluang penyilangan (dinotasikan sebagai Pc) adlaah rasio antara jumlah kromosom yang diharapakan mengalami penyilangan dalam setiap generasi dengan jumlah kromosom total dalam populasi. Oleh karena penyilangan adalah operator primer, nilai Pc yang digunakan biasanya cukup tinggi menyebabkan semakin besar semakin besarnya kemungkinan Algoritma Genetika mengeksplorasi ruang pencarian sekaligus mempercepat ditemukannya solusi optimum. Akan tetapi, apabila tingkat penyilangan terlalu tinggi, hal ini sama artinya membuang-buang waktu mencari solusi pada daerah yang mungkin saja kurang menjanjikan (unpromising region). Penentuan nilai Pc yang tepat sangat bergantung pada permasalahan yang dihadapi. Holland (1975) telah memperkenalkan operator penyilangan yang disebut penyilangan satu titik (one-point crossover). Penyilangan satu-titik ini sangat cocok digunakan untuk kromosom dengan representasi biner (0 dan 1). Prinsip pindah silang ini adalah melakukan operasi (pertukaran, arimatika) pada gen-gen yang bersesuaian dari dua induk untuk menghasilkan individu baru. Pada proses crossover dilakukan pada setiap individu dengan probalitas crossover yang ditentukan. Pada gambar 2.2 diilustrasikan dengan flowchart probabilitas crossover dan proses-crossover. 11 Gambar 2.2 Diagram Alir Proses Crossover sumber (entin.lecturer.pens.ac.id) 12 2.2.6 Mutasi Mutasi atau (mutation) adalah operastor sekunder atau operator pendukung dalam Algoritma Genetika yang berperan mengubah struktur kromosom secara spontan. Perubahan spontan ini menyebabkan terbentuknya suatu mutan, yaitu suatu kromosom baru yang secara genetik berbeda dari kromosom sebelumnya. Operator mutasi bekerja pada satu kromosom, tidak pada sepasang kromosom seperti halnya yang dilakukan operator penyilangan. Dalam mencari solusi optimum mutasi sangat diperlukan yaitu untuk: (1) mengembalikan gen-gen yang hilang pada generasi-generasi sebelumnya, dan (2) memunculkan gen-gen baru yang belum pernah muncul pada generasi-generasi sebelumnya. (Gen dan Cheng,1997). Tingkat mutasi atau peluang mutasi (dinotasikan sebagai Pm) adalah rasio antara jumlah gen yang diharapkan mengalami mutasi pada setiap generasi dengan jumlah gen total dalam populasi. Oleh karena mutasi adalah operator sekunder, nilai Pm yang digunakan untuk running program biasanya cukup rendah (0,001-0,2). Jika tingkat mutasi terlalu rendah, semakin kecil pula kemungkinan memunculkan gen-gen baru. Padahal, gen yang baru sebenarnya sangat diperlukan dalam menunjang keberhasilan memperoleh solusi optimum. Sebaliknya, jika tingkat mutasi terlalu tinggi, akan banyak sekali mutan yang muncul, akibatnya, banyak karakteristik kromosom induk yang kemungkinan hilang pada generasi berikutnya sehingga algoritma genetika akan kehilangan kemampuan untuk mengingat atau belajar dari proses pencarian sebelumnya (Gen dan Cheng, 1997). Gen dan Cheng (1997) menyebutkan bahwa dalam beberapa tahun belakangan ini para peneliti telah memperkenalkan beberapa jenis operator mutasi. Beberapa operator mutasi untuk masalah yang menggunakan permutation representation atau order representation adalah mutasi inversi, mutas insersi, displacement mutation dan reciprocal exchange mutation. Berikut ini adalah diagram alir proses mutasi pada gambar 2.3 Diagram Alur Proses Mutasi. 13 Gambar 2.3 Diagram Alur Proses Mutasi sumber (entin.lecturer.pens.ac.id) pada gambar 2.3. diilustrasikan sebuah diagram alir penggunaan probalitas mutasi pada proses mutasi. Proses yang diilustrasikan tersebut adalah cara mudah untuk melakukan mutasi. Proses mutasi yang dilakukan tidak harus seperti pada proses tersebut. Proses yang lain bisa dengan melakuak mutasi pada gen sebanyak probabilitas mutas * jumlah gen, dimana posisi gen yang akan dilakukan mutasi diplih secara acak. 14