• Tidak ada hasil yang ditemukan

4.1. Penggunaan Perangkat

Dalam pembuatan Tugas Akhir ini, perangkat keras yang dipergunakan oleh penulis, yaitu :

a. Laptop Toshiba Satellite M645 Premier Series

b. Processor Intel(R) core(TM) i3 2,40 Ghz

c. Memory 2048 MB d. Hard Disk Drive 500 GB

e. Monitor LCD Display 14.0 Inch

f. keyboard

Sedangkan perangkat lunak yang dipergunakan antara lain :

a. Sistem Operasi Microsoft Windows 7 Home Premium

b. Microsoft Office Profesional Edition 2010,digunakan untuk pembuatan laporan Tugas Akhir

4.2. Implementasi Hasil Perancangan

Berikut ini merupakan implementasi dari hasil perancangan yang telah dibuat sebelumnya. Dalam melakukan proses implementasi ini, terdapat beberapa penyesuaian yang diperlukan sesuai kebutuhan agar aplikasi yang dibangun dapat berjalan dengan baik. Penyesuaian yang dilakukan meliputi penggunaan tipe data ataupun pembuatan prosedur atau fungsi, yang mungkin tidak terdapat dalam proses analisis ataupun perancangan sistem.

4.2.1. For m Utama Perangkat Lunak

Dalam form utama terdapat objek untuk memasukkan data yang akan diselesaikan yang direpresentasikan dalam bentuk node/titik dan data koordinat dari node-node tersebut. Dalam implementasi program penyelesaian rute terpendek menu yang disajikan adalah penyelesaian dengan algoritma genetika dan simulated annealing. Untuk memilih metode mana yang ingin dipakai user dapat memilih pada menu metode penyelesaian yang akan dilanjutkan dengan parameterinput untuk masing-masing metode yang dipilih. Form utama masing-masing metode terlihat seperti pada gambar 4.2. dan 4.3.

Gambar 4.1. Tampilan awal java developer tools

Pada gambar 4.1.diatas merupakan tampilan utama dari bahasa pemrograman java. Dimana penulis menggunakan developer tools java untuk membuat aplikasi ini, dengan menggunakan algoritma simulated annealing dan algoritma genetika sebagai perbandingan dalam menentukan rute terpendek.

Source Code Tampilan Simulated Annealing publicvoid setStatus(String status){

this.status = status; }

publicvoid startThread(){ // get the number of cities

int noTitik = 1; tr y{

CITY_COUNT = Integer.parseInt(ctrlCities.getText());

} catch (NumberFormatException e){} // create a random list of cities

citiesSA = new City[CITY_COUNT]; myCities = new City[CITY_COUNT]; for (int i = 0; i < CITY_COUNT; i++){

citiesSA[i] = new City((int) (10 + (Math.random()) * (560)), (int) (10 + (Math.random()) * (440)), noTitik);

myCities[i] = citiesSA[i]; noTitik++;

}

started = tr ue;

// start up the background thread

if (worker != null) worker = null;

worker = new SimulateAnnealing(this); worker.setPriority(Thread.MIN_PRIORITY); worker.start();

update(); }

Gambar 4.2. Form utama program dengan AlgoritmaSimulated Annealing

Pada gambar 4.2. diatas, merupakan tampilan awal dan utama dari program yang dibuat oleh penulis dengan menggunakan algoritma simulated annealing. Terlihat bahwa parameter titik, parameter temperatur dan parameter delta masih kosong atau belum dimasukkan nilai.

Source Code Tampilan Genetika publicvoid startThread() {

// create a random list of cities CITY_COUNT =

Integer.parseInt(txtTitik.getText().replaceAll(",", ".")); POPULATION_SIZE =

Integer.parseInt(txtPopulasi.getText().replaceAll(",", ".")); MUTATION_PERCENT =

Double.parseDouble(txtMutasi.getText().replaceAll(",", ".")); matingPopulationSize = POPULATION_SIZE/2; favoredPopulationSize = matingPopulationSize/2;

cutLength = CITY_COUNT/5;

int noTitik = 1;

cities = new City[CITY_COUNT]; for ( int i=0;i<CITY_COUNT;i++ ) {

cities[i] = new City(560,440,noTitik);

cities[i] = sa.myCities[i]; noTitik++;

}

// create the initial chromosomes

chromosomes = new Chromosome[POPULATION_SIZE];

for ( int i=0;i<POPULATION_SIZE;i++ ) {

chromosomes[i] = new Chromosome(cities);

chromosomes[i].setCut(cutLength);

chromosomes[i].setMutation(MUTATION_PERCENT);

}

Ga mbar 4.3. Form utama program dengan AlgoritmaGenetika

Pada gambar 4.3.diatas, merupakan tampilan awal program dengan menggunakan algoritma genetika. Sama seperti pada gambar 4.2. yang merupakan representasi dari program dengan menggunakan algoritma simulated annealing, maka pada tampilan ini juga parameternya juga masih kosong atau belum dimasukkan nilai.

4.2.2. Data Masukan

Data masukan yang digunakan perangkat lunak ini berasal dari berkas masukan yang berupa gambar/titik-titik yang merupakan representasi dari posisi dan jumlah kota-kota dalam TSP yang akan diselesaikan seperti yang terlihat pada gambar. Disamping data input kota/cities, terdapat beberapa parameter yang diperlukan oleh masing-masing metode yang juga harus di input. Dalam algoritma

genetika parameter masukan meliputi jumlah populasi dan mutasi, sedangkan pada algoritmasimulated annealingparameterinput adalah temperatur dan delta.

4.2.3. Data Saat Pemr osesan

Data yang diperlukan selama proses berlangsung adalah data jarak yang diperoleh dari pengurangan koordinat masing-masing kota dengan kota lain. menggunakan rumus jarak maka dianggap jarak antara kota 1 dan kota 2 sama dengan jarak kota 2 ke kota 1. Disamping data dari parameter input, juga diperlukan data selama proses berlangsung seperti data dari populasi yang mewakili sebuah lintasan dengan cara pembangkitan bilangan acak. Data ini diproses dan diganti selama iterasi berlangsung.

4.2.4. Data k eluar an

Data keluaran yang dihasilkan adalah nilai terbaik dari proses yaitu jarak terpendek, yang mana data ini dinyatakan dengan bilangan real. Data lain untuk data keluaran ini adalah waktu yang diperlukan untuk menemukan solusi.

4.3. Pengujian Sistem

Pengujian sistem diperlukan sebagai upaya untuk mengetahui hasil implementasi yang dilakukan apakah sudah menjawab rumusan masalah dan tujuan yang ingin dicapai dalam Tugas Akhir ini.

4.3.1. Pr ogr am Algor itma Genetika

Dalam program penyelesaian rute terpendek dengan menggunakan algoritma genetika, parameter input yang berupa node kota yang akan

diselesaikan seperti yang telah dijelaskan diatas, maka koordinat dari masing-masing kota yang akan diuji dapat ditentukan secara random. Jumlah input untuk parameter jumlah kota diisi dengan nilai integer. Parameterparameter input yang lain seperti jumlah populasi dan mutasi dapat dimasukkan sesuai dengan keinginan.

Source code penyelesaian dengan algoritma genetika dengan input n = 10

pr ivate JPanel getParameter(){

JPanel p = new JPanel(new GridLayout(6, 1));

p.setBorder(BorderFactory.createTitledBorder("Parameter")); p.add(lblTitik = new JLabel("Jumlah Titik/City :"));

p.add(txtTitik = new JTextField("10"));

p.add(lblPopulasi = new JLabel("Jumlah Populasi")); p.add(txtPopulasi = new JTextField("100"));

p.add(lblMutasi = new JLabel("Mutasi")); p.add(txtMutasi = new JTextField("0.2")); r etur n p;

}

pr ivate JPanel getButtonPanel(){

JPanel p = new JPanel(new GridLayout(2, 0, 5, 5)); p.setBorder(BorderFactory.createTitledBorder("Proses")); p.add(btnMulai = new JButton("Start"));

r etur n p; }

pr ivate JPanel getPanelHasil(){

JPanel p = new JPanel(new GridLayout(2, 2));

p.setBorder(BorderFactory.createTitledBorder("Hasil Komputasi Algoritma Genetika"));

p.setPreferredSize(new Dimension(700, 100)); lblhsl = new JLabel("Hasil Komputasi : "); lblhsl.setHorizontalAlignment(JLabel.RIGHT); p.add(lblhsl);

hasil = new JLabel();

hasil.setHorizontalAlignment(JLabel.LEFT); p.add(hasil);

RuntimeLabel = new JLabel("Waktu : ");

RuntimeLabel.setHorizontalAlignment(JLabel.RIGHT); p.add(RuntimeLabel);

p.add(RuntimeValue = new JLabel());

RuntimeValue.setHorizontalAlignment(JLabel.LEFT); SetRuntimeValue("00:00:00");

SecondsRunning = 0; r etur n p;

Gambar 4.4. Output penyelesaian dengan algoritmaGenetika dengan n = 10

Disini penulis mencoba memasukkan paramater ttik sebesar 10, dimana merupakan representasi dari angka kecil.

4.3.2. Pr ogr am Algor itma Simulated Annealing

Sama halnya dengan metodealgoritma genetika mengenai data masukan berupa jumlah kota yang akan diselesaikan, hanya perbedaannya adalah pada parameterinput yang lain yaitu temperatur dan delta.

Source code penyelesaian dengan algoritma Simulated annealing dengan input n = 10

publicvoid init() {

setLayout(new BorderLayout());

rbSA = new JRadioButton("Simulated Annealing", tr ue); rbGA = new JRadioButton("Genetic Algoritm", false); group = new ButtonGroup();

group.add(rbSA); group.add(rbGA); cntrlPanel = new Panel(); cntrlPanel.add(rbSA); cntrlPanel.add(rbGA);

//cntrlPanel.add(new JLabel("ComboBox")); this.add(cntrlPanel, BorderLayout.NORTH); this.add(getPanelParameter(), BorderLayout.WEST); this.add(getPanelHasil(), BorderLayout.SOUTH);

// set the default values ctrlTemp.setText("100"); ctrlDelta.setText("0.99"); ctrlCities.setText("10");

rbGA.addActionListener(new ActionListener() { @Override

publicvoid actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub new GAalgoritm().show();

} });

proses.addActionListener(new ActionListener(){

publicvoid actionPerformed(ActionEvent arg0){

SetRuntimeValue("00:00:00"); startThread(); getWaktuKomputasi(); } }); update(); setSize(700, 600); }

pr ivate Panel getPanelParameter(){

cntrlContent = new Panel(new BorderLayout());

cntrlContent.add(getParameter(), BorderLayout.NORTH); cntrlContent.add(getButtonPanel(), BorderLayout.SOUTH);

r etur ncntrlContent;

Ga mbar 4.5. Output penyelesaian dengan algoritmaSimulated Annealing dengan n = 10

Pada gambar 4.4. dan gambar 4.5. yang merupakan output penyelesaian rute terpendek dari masing-masing metode, terlihat bahwa perbedaan waktu antara kedua metode tersebut hampir sama. Hal ini terjadi karena input n kota yang dimasukkan terlalu kecil sehingga belum mencakup keseluruhan lintasan dan ruang persoalan. Berbeda hasilnya jika parameter input n kota yang dimasukkan nilainya besar.

4.4. Analisis Per cobaan

Uji coba dilakukan dengan cara memasukkan beberapa n kota untuk kemudian disimpan agar didapat koordinat kota yang sama pada pembandingan program yang dibuat. Selanjutnya dicari waktu dan jarak yang dibutuhkan untuk menghasilkan penyelesaian rute terpendek. Dari hasil tersebut akan dibandingkan untuk input n kota dengan waktu yang diperlukan dan jarak yang didapatkan hingga didapatkan penyelesaian. Karena kemungkinan lintasan yang diperoleh sebanyak (n-1)!/2 maka uji coba dilakukan beberapa kali untuk n yang besar, karena untuk n kecil lintasan dan jarak yang ditempuh sama.

4.5. Implementasi Antar Muka

Source code penyelesaian dengan algoritma Simulated Annealing dengan input n = 15

publicvoid init() {

setLayout(new BorderLayout());

rbSA = new JRadioButton("Simulated Annealing", tr ue); rbGA = new JRadioButton("Genetic Algoritm", false); group = new ButtonGroup();

group.add(rbSA); group.add(rbGA); cntrlPanel = new Panel(); cntrlPanel.add(rbSA); cntrlPanel.add(rbGA);

//cntrlPanel.add(new JLabel("ComboBox")); this.add(cntrlPanel, BorderLayout.NORTH); this.add(getPanelParameter(), BorderLayout.WEST); this.add(getPanelHasil(), BorderLayout.SOUTH);

// set the default values ctrlTemp.setText("100"); ctrlDelta.setText("0.99"); ctrlCities.setText("15");

rbGA.addActionListener(new ActionListener() { @Override

publicvoid actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub new GAalgoritm().show();

} });

Ga mbar 4.6. Output penyelesaian dengan algoritmaSimulated Annealing dengan n = 15

Pada gambar 4.6. ini input masih menggunakan angka-angka kecil dengan paramater Temperatur dan Delta yang masih sama.

Source code penyelesaian dengan algoritma genetika dengan input n = 15

pr ivate JPanel getParameter(){

JPanel p = new JPanel(new GridLayout(6, 1));

p.setBorder(BorderFactory.createTitledBorder("Parameter")); p.add(lblTitik = new JLabel("Jumlah Titik/City :"));

p.add(txtTitik = new JTextField("15"));

p.add(lblPopulasi = new JLabel("Jumlah Populasi")); p.add(txtPopulasi = new JTextField("100"));

p.add(lblMutasi = new JLabel("Mutasi")); p.add(txtMutasi = new JTextField("0.2")); r et ur n p;

}

pr ivate JPanel getButtonPanel(){

JPanel p = new JPanel(new GridLayout(2, 0, 5, 5)); p.setBorder(BorderFactory.createTitledBorder("Proses")); p.add(btnMulai = new JButton("Start"));

r et ur n p; }

pr ivate JPanel getPanelHasil(){

JPanel p = new JPanel(new GridLayout(2, 2));

p.setBorder(BorderFactory.createTitledBorder("Hasil Komputasi Algoritma Genetika"));

p.setPreferredSize(new Dimension(700, 100)); lblhsl = new JLabel("Hasil Komputasi : "); lblhsl.setHorizontalAlignment(JLabel.RIGHT); p.add(lblhsl);

hasil = new JLabel();

hasil.setHorizontalAlignment(JLabel.LEFT); p.add(hasil);

RuntimeLabel = new JLabel("Waktu : ");

RuntimeLabel.setHorizontalAlignment(JLabel.RIGHT); p.add(RuntimeLabel);

p.add(RuntimeValue = new JLabel());

RuntimeValue.setHorizontalAlignment(JLabel.LEFT); SetRuntimeValue("00:00:00");

SecondsRunning = 0; r et ur n p;

Gambar 4.7. Output penyelesaian dengan algoritmaGenetika dengan n = 15 Input kota n = 15, output waktu yang ditempuh atau dihasilkan oleh masing-masing algoritma masih sama, hal ini dikarenakan input yang dimasukkan masih kecil nilainya.

Source code penyelesaian dengan algoritma Simulated annealing dengan input n = 50

publicvoid init() {

setLayout(new BorderLayout());

rbSA = new JRadioButton("Simulated Annealing", tr ue); rbGA = new JRadioButton("Genetic Algoritm", false); group = new ButtonGroup();

group.add(rbSA); group.add(rbGA); cntrlPanel = new Panel(); cntrlPanel.add(rbSA); cntrlPanel.add(rbGA);

//cntrlPanel.add(new JLabel("ComboBox")); this.add(cntrlPanel, BorderLayout.NORTH); this.add(getPanelParameter(), BorderLayout.WEST); this.add(getPanelHasil(), BorderLayout.SOUTH);

// set the default values ctrlTemp.setText("100"); ctrlDelta.setText("0.99"); ctrlCities.setText("50");

rbGA.addActionListener(new ActionListener() { @Override

publicvoid actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub new GAalgoritm().show();

} });

proses.addActionListener(new ActionListener(){

publicvoid actionPerformed(ActionEvent arg0){

SetRuntimeValue("00:00:00"); startThread(); getWaktuKomputasi(); } }); update(); setSize(700, 600); }

pr ivate Panel getPanelParameter(){

cntrlContent = new Panel(new BorderLayout());

cntrlContent.add(getParameter(), BorderLayout.NORTH); cntrlContent.add(getButtonPanel(), BorderLayout.SOUTH);

r etur ncntrlContent;

Ga mbar 4.8. Output penyelesaian dengan algoritmaSimulated Annealing dengan n = 50

Pada Gambar 4.8. diatas menunjukkan bahwa titik/node/kota mulai menggunakan input besar yaitu sebesar 50. Tetapi parameter Temperatur dan Delta masih menggunakan input nilai yang sama.

Source code penyelesaian dengan algoritma Genetika dengan input n = 50

pr ivate JPanel getParameter(){

JPanel p = new JPanel(new GridLayout(6, 1));

p.setBorder(BorderFactory.createTitledBorder("Parameter")); p.add(lblTitik = new JLabel("Jumlah Titik/City :")); p.add(txtTitik = new JTextField("50"));

p.add(lblPopulasi = new JLabel("Jumlah Populasi")); p.add(txtPopulasi = new JTextField("100"));

p.add(lblMutasi = new JLabel("Mutasi")); p.add(txtMutasi = new JTextField("0.2")); r etur n p;

}

pr ivate JPanel getButtonPanel(){

JPanel p = new JPanel(new GridLayout(2, 0, 5, 5)); p.setBorder(BorderFactory.createTitledBorder("Proses")); p.add(btnMulai = new JButton("Start"));

r etur n p; }

pr ivate JPanel getPanelHasil(){

JPanel p = new JPanel(new GridLayout(2, 2));

p.setBorder(BorderFactory.createTitledBorder("Hasil Komputasi Algoritma Genetika"));

p.setPreferredSize(new Dimension(700, 100)); lblhsl = new JLabel("Hasil Komputasi : "); lblhsl.setHorizontalAlignment(JLabel.RIGHT); p.add(lblhsl);

hasil = new JLabel();

hasil.setHorizontalAlignment(JLabel.LEFT); p.add(hasil);

RuntimeLabel = new JLabel("Waktu : ");

RuntimeLabel.setHorizontalAlignment(JLabel.RIGHT); p.add(RuntimeLabel);

p.add(RuntimeValue = new JLabel());

RuntimeValue.setHorizontalAlignment(JLabel.LEFT); SetRuntimeValue("00:00:00");

SecondsRunning = 0; r etur n p;

Gambar 4.9. Output penyelesaian dengan algoritmaGenetika dengan n = 50

Dari gambar 4.8. dan 4.9. mulai terlihat perbedaan waktu yang ditempuh atau dihasilkan oleh masing-masing metode. Algoritmasimulated annealing lebih unggul dalam segi kecepatan waktu dibandingkan algoritmagenetika.

Source code penyelesaian dengan algoritma Simulated annealing dengan input n = 90

publicvoid init() {

setLayout(new BorderLayout());

rbSA = new JRadioButton("Simulated Annealing", tr ue); rbGA = new JRadioButton("Genetic Algoritm", false); group = new ButtonGroup();

group.add(rbSA); group.add(rbGA); cntrlPanel = new Panel(); cntrlPanel.add(rbSA); cntrlPanel.add(rbGA);

//cntrlPanel.add(new JLabel("ComboBox")); this.add(cntrlPanel, BorderLayout.NORTH); this.add(getPanelParameter(), BorderLayout.WEST); this.add(getPanelHasil(), BorderLayout.SOUTH);

// set the default values ctrlTemp.setText("100"); ctrlDelta.setText("0.99"); ctrlCities.setText("90");

rbGA.addActionListener(new ActionListener() { @Override

publicvoid actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub new GAalgoritm().show();

} });

proses.addActionListener(new ActionListener(){

publicvoid actionPerformed(ActionEvent arg0){

SetRuntimeValue("00:00:00"); startThread(); getWaktuKomputasi(); } }); update(); setSize(700, 600); }

pr ivate Panel getPanelParameter(){

cntrlContent = new Panel(new BorderLayout());

cntrlContent.add(getParameter(), BorderLayout.NORTH); cntrlContent.add(getButtonPanel(), BorderLayout.SOUTH);

r etur ncntrlContent;

Gambar 4.10. Output penyelesaian dengan algoritmaSimulated Annealing dengan n = 90

Di dalam algoritmasimulated annealing ini input yang dimasukkan masih seputar n kota, belum mengganti parameter temperatur dan delta. Dengan input n kota yang lebih besar dari sebelumnya,maka otomatis waktu tempuh atau yang dihasilkan relatif lebih lama. Akan tetapi waktu yang dihasilkan algoritma simulated annealing ini masih lebih baik dan cepat dibandingkan waktu yang dihasilkan oleh algoritmagenetika.

Source code penyelesaian dengan algoritma Simulated annealing dengan input n = 90

pr ivate JPanel getParameter(){

JPanel p = new JPanel(new GridLayout(6, 1));

p.setBorder(BorderFactory.createTitledBorder("Parameter")); p.add(lblTitik = new JLabel("Jumlah Titik/City :"));

p.add(txtTitik = new JTextField("90"));

p.add(lblPopulasi = new JLabel("Jumlah Populasi")); p.add(txtPopulasi = new JTextField("100"));

p.add(lblMutasi = new JLabel("Mutasi")); p.add(txtMutasi = new JTextField("0.2")); r etur n p;

}

pr ivate JPanel getButtonPanel(){

JPanel p = new JPanel(new GridLayout(2, 0, 5, 5)); p.setBorder(BorderFactory.createTitledBorder("Proses")); p.add(btnMulai = new JButton("Start"));

r etur n p; }

pr ivate JPanel getPanelHasil(){

JPanel p = new JPanel(new GridLayout(2, 2));

p.setBorder(BorderFactory.createTitledBorder("Hasil Komputasi Algoritma Genetika"));

p.setPreferredSize(new Dimension(700, 100)); lblhsl = new JLabel("Hasil Komputasi : "); lblhsl.setHorizontalAlignment(JLabel.RIGHT); p.add(lblhsl);

hasil = new JLabel();

hasil.setHorizontalAlignment(JLabel.LEFT); p.add(hasil);

RuntimeLabel = new JLabel("Waktu : ");

RuntimeLabel.setHorizontalAlignment(JLabel.RIGHT); p.add(RuntimeLabel);

p.add(RuntimeValue = new JLabel());

RuntimeValue.setHorizontalAlignment(JLabel.LEFT); SetRuntimeValue("00:00:00");

SecondsRunning = 0; r etur n p;

Ga mbar 4.11. Output penyelesaian dengan algoritmaGenetika dengan n = 90

Sama seperti dalam gambar 4.10 yang merupakan output program dari algoritmasimulated annealing, pada gambar 4.11. ini pun input yang dimasukkan masih seputar n kota, belum mengganti parameter jumlah populasi dan mutasi. Dengan input n kota yang lebih besar dari sebelumnya,maka otomatis waktu tempuh atau yang dihasilkan relatif lebih lama.

PENUTUP

5.1. Kesimpulan

Dari algoritma penyelesaian permasalahan rute terpendek (shortest path problem) dengan metode algoritma genetika dan algoritma simulated annealing yang telah dibahas maka dapat diambil beberapa kesimpulan, yaitu :

1. Algoritma Genetika

Setelah dilakukan uji coba penyelesaian permasalahan rute terpendek dengan algoritma genetika, menunjukkan bahwa algoritma ini dapat menemukan penyelesaian yang baik.

Ukuran populasi (pop_size) mempengaruhi unjuk kerja yang baik dan keefektifan algoritma genetika. Algoritma genetika dengan populasi yang kecil biasanya unjuk kerjanya buruk karena populasi tidak menyediakan cukup materi untuk mencakup ruang persoalan. Populasi yang lebih besar dibutuhkan untuk merepresentasikan keseluruhan ruang persoalan. Disamping itu input pada parameter probabilitas mutasi dan probabilitas tukar silang (cross over) juga mempengaruhi unjuk kerja sistem.

2. Algoritma Simulated Annealing

Dengan percobaan penyelesaian permasalahan rute terpendek yang dibahas, metode simulated annealing menunjukkan bahwa algoritma ini dapat

menemukan penyelesaian yang lebih baik daripada algoritma genetika dari segi efisiensi waktu. Sedangkan jarak lintasan yang ditempuh hasilnya tidak jauh berbeda dengan algoritmagenetika.

Semakin banyak kesempatan yang diberikan pada simulated annealing untuk menemukan solusi yang lebih baik dari solusi sebelumnya, maka akan memberikan keleluasaan bagi simulated annealing untuk menelusuri penyelesaian yang berikutnya sebelum dinyatakan frozen. Hanya saja, hal ini membutuhkan waktu yang lama. Sebaliknya bila diberikan terlalu sedikit maka operasi pencarian terlalu cepat dinyatakan frozen, sehingga kesempatan untuk menemukan solusi yang lebih baik menjadi hilang.

5.2. Sar an

Berikut adalah beberapa saran untuk pengembangan lebih lanjut terhadap Tugas Akhir ini :

1) Dapat ditambahkan data lain seperti memperluas atau penambahan node yang lebih banyak.

2) Sistem dapat dikembangkan dalam bentuk mobile, seperti di handphone, maupun ipad.

3) Hasil yang ditampilkan oleh aplikasi tidak hanya sebatas tampilan waktu dan jarak terpendek saja, melainkan dapat menampilkan rute-rute yang ditempuh atau dilewati dari titik asal menuju titik tujuan dengan menampilkan teks, gambar, animasi flash atau penunjuk berupa suara.

Saefuddin Esa. 2010. Penentuan Rute Jarak Terpendek di Kota Surabaya menggunakan Algoritma Dijkstra berbasis Java Midlet. Skripsi Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional “Veteran” Jawa Timur. Surabaya.

Wendy Arif Kurnianto, Tora Fahrudin, Arinto Hardono. 2004. Pemakaian Algoritma Brute Force pada Permasalahan TSP. Sekolah Tinggi Teknologi Telkom. Bandung.

Gary Chartrand dan Ortrud R.Oellerman. 1993. Applied and Algoritmhic Graph Theory. McGraw-Hill,Inc.

Fajar Saptono dan Taufiq Hidayat. 2007. Perancangan Algoritma Genetika untuk Menentukan Jalur Terpendek. Seminar Nasional Aplikasi Teknologi Informasi 2007 (SNATI 2007). Universitas Islam Indonesia. Yogyakarta.

Ling Mutakhiroh, Fajar Saptono, Nur Hasanah, Roni Wiryadinata. 2007. Pemanfaatan Metode Heuristik dalam Pencarian Jalur Terpendek dengan Algoritma Semut dan Algortima Genetika. Seminar Nasional Aplikasi Teknologi Informasi 2007 (SNATI 2007). Universitas Islam Indonesia. Yogyakarta.

Goldberg, D.E. 1989. Genetic Algorithms in Search,Optimization & Machine Learning. Addison-wesley. New York.

Lukas. 2005. Penerapan Algoritma Genetika untuk Traveling salesman Problem dengan Menggunakan Metode Order Crossover dan Insertion Mutation. Seminar Nasional Aplikasi Teknologi Informasi.

Kusumadewi, S. dan H., Purnomo. 2005. Penyelesaian Masalah Optimasi dengan Teknik-teknik Heuristi. Graha Ilmu. Yogyakarta.

Anies Hannawati dan Eleazar Thiang. 2002. Pencarian Rute Optimum Menggunakan Algoritma Genetika. Jurnal Teknik Elektro Vol. 2, No.2. Universitas Kristen Petra. Surabaya.

Hozairi, Muhsi, Ahmadi. 2010. Implementasi Algoritma Genetika untuk Optimasi Penempatan Armada Kapal TNI AL di Kawasan Timur Indonesia dalam Rangka Mengamankan Kedaulatan NKRI. Seminar Nasional Pascasarjana X – ITS. Universitas Islam Pamekasan. Madura.

Dhany Indrawan Thiang. 2008. Implementasi Metode Simulated Annealing pada Robot Mobil untuk Mencari Rute Terpendek. Universitas Kristen Petra. Surabaya.

Susilo Dwi Juniarto, Entin Martiana,S.Kom,M.Kom, Arna Fariza,S.Kom,M.Kom, Ira Prasetyaningrum,S.Si,M.T. 2010. Optimasi Distribusi Barang Berdasarkan Rute dan Daya Tampung Menggunakan Metode Simulated Annealing. PENS - ITS. Surabaya.

Andi Wahju Rahardjo Emanuel dan Allen F Aritonang. 2008. Aplikasi Desktop Pencarian Rute Jalan dengan Algortima Simulated Annealing. Jurnal Informatika, Vol. 4, No. 2. Universitas Kristen Maranatha. Bandung. Hari Soetanto, S.Kom, M.sc. 2003. Diktat kuliah Interaksi Manusia dengan Komputer.

Retno Hendrowati. 2003. Perancangan Pengujian Perangkat Lunak Berorientasi Obyek Berbasiskan Status State – Based Testing. Jurnal Universitas Paramadina Vol. 2, No. 2. Universitas Paramadina. Jakarta

Edward V Berrad. 1994. Issues in the Testing of Object-Oriented Software. Berard Software Engineering Inc.

Siti Rochimah. 1997. Penerapan Method Berarah Objek pada Kasus Penjadwalan. Institut Teknologi Bandung. Bandung.

Roger S Pressman. 1997. Software Enginering a Practitioner’s Approach 4th edition. Mc.Graw Hill Inc. Singapore.

Dokumen terkait