BAB II LANDASAN TEORI 2.1 Algoritma Genetika Algoritma Genetika merupakan suatu algoritma yang terinspirasi dari teori evolusi Darwin yang menyatakan bahwa kelangsungan hidup suatu makhluk dipengaruhi aturan bahwa yang kuat adalah yang menang. Algoritma Genetika merupakan algoritma pencarian hasil terbaik yang berdasarkan atas perkawinan dan seleksi gen secara alami. Algortima genetika (AG) pertama kali dirintis oleh John Holland dari Universitas Michigan pada tahun 1960-an, Algoritma Genetika telah diaplikasikan secara luas pada berbagai bidang. Algoritma Genetika banyak digunakan untuk memecahkan masalah optimasi, walaupun pada kenyataannya juga memiliki kemampuan yang baik untuk masalah-masalah selain optimasi. John Holland menyatakan bahwa setiap masalah yang berbentuk adaptasi (alami maupun buatan) dapat diformulasikan dalam terminologi genetika. Pada Algoritma Genetika, teknik pencarian dilakukan sekaligus atas sejumlah solusi yang mungkin dikenal dengan istilah populasi. Individu yang terdapat dalam satu populasi disebut dengan istilah kromosom. Kromosom ini merupakan suatu solusi yang masih berbentuk simbol. Populasi awal dibangun secara acak, sedangkan populasi berikutnya merupakan hasil evolusi kromosom-kromosom melalui iterasi yang disebut dengan generasi. Pada setiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang disebut dengan fungsi fitness. Nilai fitness dari suatu kromosom akan menunjukkan kualitas dari kromosom dalam populasi tersebut. Generasi berikutnya dikenal dengan istilah anak (offspring) terbentuk dari gabungan dua kromosom generasi sekarang yang bertindak sebagai induk (parent) dengan menggunakan operator penyilangan (crossover). Selain operator penyilangan, suatu kromosom dapat juga dimodifikasi dengan menggunakan operator mutasi. Populasi generasi yang baru dibentuk dengan cara menyeleksi nilai fitness dari kromosom induk (parent) dan nilai fitness dari kromosom anak (offspring), serta menolak kromosom- Universitas Sumatera Utara kromosom yang lainnya sehingga ukuran populasi (jumlah kromosom dalam suatu populasi) konstan. Setelah melalui beberapa generasi, maka Algoritma Genetika akan konvergen ke kromosom yang terbaik. 2.1.1 Sejarah Algoritma Genetika Algoritma Genetika merupakan metode pencarian yang disesuaikan dengan proses genetika dari organisme-organisme biologi yang berdasar pada teori evolusi Charles Darwin. Algoritma Genetika pertama kali ditemukan oleh John Holland di dalam bukunya yang berjudul Adaption in Natural and Artificial Systems pada tahun 1960-an dan kemudian dikembangkan bersama murid-murid dan rekan kerjanya di Universitas Michigan pada tahun 1960-an sampai 1970-an. Tujuan Holland mengembangkan Algoritma Genetika saat itu bukan untuk mendesain suatu algoritma yang dapat memecahkan suatu masalah, namun lebih mengarah ke studi mengenai fenomena adaptasi di alam dan mencoba menerapkan mekanisme adaptasi alam tersebut ke dalam sistem komputer. Algoritma Genetika yang dibuat Holland merupakan sebuah metode untuk memisahkan satu populasi kromosom (terdiri dari bit-bit 1 dan 0) ke populasi baru dengan menggunakan “seleksi alam” dan operator genetik seperti crossover, mutation (mutasi) dan inversion. Crossover menukar bagian kecil dari dua kromosom, mutasi mengganti secara acak nilai gen beberapa lokasi pada kromosom dan inversion membalikkan urutan beberapa gen yang berurutan dalam kromosom. Dasar teori inilah yang menjadi dasar kebanyakan program yang menggunakan Algoritma Genetika saat ini. 2.1.2 Karakteristik Algoritma Genetika Algoritma Genetika memeberikan suatu pilihan bagi penentuan nilai parameter dengan meniru cara reproduksi genetika, pembentukan kromosom baru serta seleksi alam seperti yang terjadi pada makhluk hidup. Algoritma Genetika mempunyai Universitas Sumatera Utara karakteristik-karakteristik yang perlu diketahui sehingga dapat terbedakan dari prosedur pencarian atau optimasi yang lainnya. Karakteristiknya dapat kita asumsikan sebagai berikut : 1. Algoritma Genetika bekerja dengan pengkodean dari himpunan solusi permasalahan berdasarkan parameter yang telah ditetapkan dan bukan parameter itu sendiri. 2. Algoritma Genetika malakukan pencarian pada sebuah populasi dari sejumlah individu-individu yang merupakan solusi permasalahan bukan hanya dari sebuah individu. 3. Algoritma Genetika merupakan informasi fungsi objektif (fitness), sebagai cara untuk mengevaluasi individu yang mempunyai solusi terbaik, bukan turunan dari suatu fungsi. 4. Algoritma Genetika aturan-aturan transisi peluang, bukan aturan-aturan deterministik. 2.1.3 Kelebihan Algoritma Genetika Algoritma Genetika merupakan salah satu algoritma yang sangat tepat digunakan dalam menyelesaikan masalah optimasi yang kompleks dan sulit dilakukan oleh metode konvensional. Ada tiga kelebihan dari aplikasi Algoritma Genetika dalam proses optimasi, yaitu : a. Algoritma Genetika tidak terlalu banyak memerlukan persyaratan matematika dalam penyelesaian proses optimasi. Algoritma Genetika dapat diaplikasikan pada beberapa jenis fungsi obyektif dengan beberapa fungsi pembatas baik berbentuk linier maupun non-linier. b. Operasi evolusi dari Algoritma Genetika sangat efektif untuk mengobservasi posisi global secara acak. c. Algoritma Genetika mempunyai fleksibilitas untuk diimplementasikan secara efisien pada problematika tertentu. Universitas Sumatera Utara 2.1.4 Komponen-komponen Algoritma Genetika Pada dasarnya algoritma genetika memiliki 7 komponen, antara lain : a. Pendefenisian Individu Pendefenisian individu merupakan proses pertama yang harus dilakukan dalam Algoritma Genetika yang menyatakan salah satu solusi yang mungkin dari suatu permasalahan yang diangkat. Pendefenisian individu dilakukan dengan mendefenisikan jumlah dan tipe dari gen yang digunakan dan tentunya dapat mewakili solusi permasalahan yang diangkat. Sebuah kromosom dibentuk dari komponen-komponen penyusun yang disebut sebagai gen dan nilainya dapat berupa bilangan numerik, biner, simbol ataupun karakter tergantung dari permasalahan yang ingin diselesaikan. Menurut Marek Obitko terdapat beberapa macam teknik pengkodean antara lain : 1. Binary Encoding (Pengkodean Biner) Pada binary encoding, setiap kromosom akan terdiri dari deretan bilangan biner, sehingga allela setiap gen-nya ada dua, yaitu bernilai 0 atau 1. Contohnya: Kromosom 1 1101100100110110 Kromosom 2 1101011000011110 2. Permutation Encoding (Pengkodean Permutasi) Pada permutation encoding, setiap kromosom terdiri atas deretan angka yang menyatakan posisi dalam suatu urutan. Nilai dalam suatu lokus yang ada pada satu kromosom tidak boleh ada yang sama. Biasanya digunakan pada permasalahan TSP. Contohnya : Pada permasalahan TSP (Travelling Salesman Problem), dimana seorang sales harus mengantarkan barang dengan melewati beberapa kota. Syaratnya dia tidak boleh melewati kota yang sama. Universitas Sumatera Utara Kromosom 1 147963528 Kromosom 2 932581647 3. Value Encoding (Pengkodean Nilai) Pada value encoding, setiap kromosom berupa kumpulan dari suatu nilai yang bisa berupa macam-macam nilai sesuai dengan permasalahan yang dihadapi. Seperti bilangan real, char dan lain-lain. Contohnya: Kromosom 1 ABEDBCAEDD Kromosom 2 NWWNESSWNN 4. Tree Encoding (Pengkodean Pohon) Pada tree encoding, tiap kromosom adalah pohon dari objek-objek seperti fungsi atau perintah dalam bahasa pemrograman. Contohnya: (+ x (/5 y)) + * / 5 y Gambar 2.1 Tree Encoding Universitas Sumatera Utara b. Nilai Fitness Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran performansinya. Di dalam evolusi alam, individu yang bernilai fitness tinggi yang akan bertahan hidup. Sedangkan individu yang bernilai fitness rendah akan mati. Pengertian nilai fitness ini sendiri adalah nilai yang menyatakan baik tidaknya suatu solusi (individu). Algoritma Genetika bertujuan mencari individu dengan nilai fitness yang paling tinggi. Umumnya kromosom ber-fitness tinggi akan bertahan dan berlanjut kegenerasi berikutnya. Kromosom yang telah terbentuk akan berevolusi secara berkelanjutan yang disebut dengan generasi. Dalam tiap generasi kromosomkromosom tersebut dievaluasi tingkat keberhasilan nilai solusinya terhadap masalah yang ingin diselesaikan menggunakan ukuran yang disebut dengan nilai fitness. Nilai fitness inilah yang dijadikan acuan dalam mencapai nilai optimal dalam Algoritma Genetika. c. Seleksi Proses seleksi adalah proses evaluasi kualitas setiap kromosom di dalam populasi untuk memperoleh peringkat calon solusi. Seleksi bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang paling fit. Proses seleksi dilakukan dengan mencari kromosom terbaik dalam satu generasi, dimana untuk menentukan suatu kromosom terbaik dapat dilihat dari nilai fitness-nya. Proses seleksi dilakukan dengan mengevaluasi setiap kromosom berdasarkan nilai fitness untuk mendapatkan peringkat terbaik. Selanjutnya dipilih secara acak, kromosom-kromosom yang mengalami proses rekombinasi. Umumnya kromosom ber-fitness tingggi yang berpeluang lebih besar untuk terpilih. Kromosom dengan kualitas yang lebih baik akan memiliki peluang lebih besar untuk terpilih sebagai calon kromosom generasi berikutnya. Kemampuan Algoritma Genetika untuk memproduksi kromosom yang lebih baik secara progresif tergantung pada penekanan selektif (Selektif Pressure) yang diterapkan ke populasi. Penekanan selektif dapat diterapkan dalam dua cara yaitu dengan membuat lebih banyak kromosom anak yang dipelihara dalam populasi dan memilih hanya kromosom-kromosom terbaik bagi generasi berikut. Walaupun induk dipilih secara acak, metode ini akan terus menghasilkan kromosom yang lebih baik berhubungan dengan penekanan selektif yang diterapkan pada individu anak Universitas Sumatera Utara tersebut. Cara lainnya adalah dengan memilih induk yang lebih baik ketika membuat keturunan baru. Dengan metode ini, hanya kromosom sebanyak yang dipelihara dalam populasi yang perlu dibuat bagi generasi berikutnya. Walaupun penekanan selektif tidak diterapkan ke level keturunan, metode ini akan terus menghasilkan kromosom yang lebih baik, karena adanya penekanan selektif yang diterapkan ke induk. Terdapat beberapa metode seleksi untuk mendapatkan calon induk yang baik, namun proses seleksi yang biasa digunakan adalah Roulette Wheel Selection (Seleksi Roda Roulette). Sesuai dengan namanya, metode ini menirukan permainan roulette-wheel dimana masing-masing kromosom menempati potongan lingkaran pada roda roulette secara proporsional sesuai dengan nilai fitness-nya. d. Perkawinan Silang (Crossover) Salah satu komponen paling penting dalam Algoritma Genetika adalah crossover atau perkawinan silang, dikenal juga dengan pindah silang. Crossover bertujuan menambah keanekaragaman kromosom digenerasi berikutnya berdasarkan kromosom-kromosom dari generasi saat ini. Crossover melibatkan dua induk untuk menghasilkan keturunan yang baru. Crossover dilakukan dengan melakukan pertukaran gen dari dua induk secara acak. Kromosom baru yang terbentuk akan mewarisi sebagian dari sifat kromosom induknya. Dalam proses ini dilakukan penukaran bagian gen yang telah dipilih posisinya secara acak dalam satu kromosom. Dalam proses ini, perkawinan silang yang terjadi adalah perkawinan antar seluruh gen dalam suatu generasi. Perkawinan Silang (Crossover) juga dapat berakibat buruk jika ukuran populasinya sangat kecil. Dalam suatu populasi yang sangat kecil, suatu kromosom dengan gen-gen yang mengarah ke solusi akan sangat cepat menyebar ke kromosom-kromosom lainnya. Untuk mengatasi masalah ini digunakan suatu aturan bahwa perkawinan silang hanya bisa dilakukan dengan suatu probabilitas tertentu ρc . Artinya pindah silang bisa dilakukan hanya jika suatu bilangan random yang dibangkitkan kurang dari probabilitas yang ditentukan tersebut. Pada umumnya probabilitas tersebut diset mendekati 1. Universitas Sumatera Utara Probabilitas crossover ρc merupakan nilai perbandingan jumlah kromosom yang diharapkan akan mengalami perkawinan silang terhadap jumlah kromosom dalam suatu populasi. Probabilitas crossover yang tinggi akan memungkinkan pencapaian alternatif solusi yang lebih bervariasi dan mengurangi kemungkinan menghasilkan nilai optimum yang tidak dikehendaki. Tetapi bila nilai ini terlalu tinggi akan mengakibatkan pemborosan waktu untuk melakukan perhitungan di daerah solusi yang tidak menjanjikan hasil yang optimal. e. Mutasi Mutasi menciptakan individu baru dengan melakukan modifikasi satu atau lebih gen dalam individu yang sama. Mutasi berfungsi untuk menggantikan gen yang hilang dari populasi selama proses seleksi serta menyediakan gen yang tidak ada dalam populasi awal, sehingga mutasi akan meningkatkan variasi populasi. Dalam proses ini dilakukan mutasi atau penukaran pasangan gen yang telah dipilih secara acak dalam satu kromosom. Penukaran pasangan ini dilakukan pada dua gen dalam suatu kromosom. Melalui mutasi, kromosom baru dapat diciptakan dengan melakukan modifikasi terhadap satu atau lebih karakter pada kromosom yang sama. Cara termudah untuk melakukan mutasi adalah dengan mengubah satu atau lebih bagian dalam kromosom dan hal ini tergantung pada probabilitas mutasi. Probabilitas mutasi menentukan probabilitas jumlah gen di dalam satu populasi yang diharapkan mengalami mutasi. Apabila nilai probabilitas mutasi terlalu kecil, banyak kromosom yang berguna mungkin tidak akan muncul dalam populasi, tetapi apabila terlalu tinggi maka keturunan yang dihasilkan akan kehilangan sifat-sifat yang mungkin saja merupakan sifat yang unggul dari induknya dan Algoritma Genetika akan kehilangan kemampuan untuk belajar dari pencarian-pencarian sebelumnya. Universitas Sumatera Utara f. Elitisme Proses seleksi dilakukan secara random sehingga tidak ada jaminan bahwa suatu individu yang bernilai fitness tertinggi akan selalu terpilih. Walaupun individu bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak (nilai fitness-nya menurun) karena proses perkawinan silang. Untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama proses evolusi, maka perlu dibuat satu atau beberapa kopinya. Prosedur inilah yang dikenal sebagai elitisme. Proses ini dilakukan untuk mempertahankan individu yang terbaik dari tiap generasi, karena setelah dilakukan proses perkawinan silang dan mutasi, kemungkinan untuk kehilangan kromosom yang terbaik sangat besar. Proses elitisme ini dilakukan dengan menggantikan kromosom terburuk dari generasi berikutnya dengan kromosom terbaik dari generasi sebelumnya apabila kromosom yang baru tersebut tidak lebih buruk dari yang lama. g. Evaluasi Solusi Proses evaluasi dilakukan dengan menghitung nilai fitness dari setiap kromosom dalam suatu generasi. Bila ada kromosom yang tidak mempunyai informasi titik tujuan maka kromosom ini dianggap mempunyai nilai fitness terbesar dan dikatakan tidak valid. Proses ini akan mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria berhenti. Beberapa kriteria berhenti yang sering digunakan antara lain : 1. Berhenti pada generasi tertentu. 2. Berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness tertinggi tidak berubah. 3. Berhenti bila dalam n generasi berikut tidak didapatkan nilai fitness yang lebih tinggi. Universitas Sumatera Utara 2.1.5 Parameter Genetik Yang disebut dengan parameter disini adalah parameter kontrol Algoritma Genetika, yaitu : ukuran populasi (popsize), probabilitas crossover (peluang crossover - ρc ) dan probabilitas mutasi (peluang mutasi - ρ m ). Nilai parameter ini ditentukan juga berdasarkan permasalahan yang akan dipecahkan. Tidak ada aturan pasti tentang berapa nilai setiap parameter ini. (Koza, 2001). Ukuran populasi kecil berarti hanya tersedia sedikit pilihan untuk crossover dan sebagian kecil dari domain solusi saja yang dieksplorasi untuk setiap generasinya. Sedangkan bila terlalu besar, kinerja Algoritma Genetika menurun. Penelitian menunjukkan ukuran populasi besar tidak mempercepat proses pencarian solusi. Disarankan ukuran populasi berkisar antara 20-30, probabilitas crossover umumnya berkisar antara 0,6 sampai dengan 0,9 dan probabilitas mutasi kecil berkisar 0.5%-1% atau sekitar 1 dibagi dengan jumlah gen. Jumlah generasi besar berarti semakin banyak iterasi yang dilakukan, dan semakin besar domain solusi yang akan dieksplorasi (Nico saputro dan Yento, 2004). Menurut Kusumadewi dan Purnomo (2005), ada beberapa rekomendasi yang bisa digunakan untuk menentukan nilai parameter tersebut, antara lain : a. Untuk permasalahan yang memiliki kawasan solusi cukup besar, De Jong merekomendasikan untuk nilai parameter control : (popsize; ρc ; ρ m ) = (50; 0,6; 0,001) b. Bila rata-rata fitness setiap generasi digunakan sebagai indikator, maka Grefenstette merekomendasikan : (popsize; ρc ; ρ m ) = (30; 0,95; 0,01) c. Bila fitness dari individu terbaik dipantau pada setiap generasi, maka usulannya adalah : (popsize; ρc ; ρ m ) = (80; 0,45; 0,01) 2.1.6 Mekanisme Kerja Algoritma Genetika Algoritma Genetika dimulai dengan pembentukan sejumlah solusi yang dilakukan secara acak. Sebuah solusi yang dibangkitkan dalam Algoritma Genetika disebut Universitas Sumatera Utara sebagai kromosom, sedangkan kumpulan kromosom-kromosom tersebut disebut sebagai populasi. Sebuah kromosom dibentuk dari komponen-komponen penyusun disebut sebagai gen dan nilainya dapat berupa bilangan numerik, biner, simbol ataupun karakter tergantung dari permasalahan yang ingin diselesaikan. Kromosom-kromosom tersebut akan berevolusi secara berkelanjutan yang disebut dengan generasi. Dalam tiap generasi, kromosom-kromosom tersebut dievaluasi tingkat keberhasilan nilai solusinya terhadap masalah yang ingin diselesaikan dengan menggunakan ukuran yang disebut dengan nilai fitness. Untuk memilih kromosom yang tetap dipertahankan untuk generasi selanjutnya dilakukan proses yang disebut dengan seleksi. Proses seleksi kromosom menggunakan konsep teori evolusi Darwin yaitu kromosom yang mempunyai nilai fitness tinggi akan memiliki peluang lebih besar untuk terrpilih lagi pada generasi selanjutnya. Kromosom-kromosom baru yang disebut dengan kromosom anak (offspring), dibentuk dengan cara melakukan perkawinan antar kromosom-kromosom dalam satu generasi yang disebut sebagai proses perkawinan silang (crossover). Mekanisme perubahan susunan unsur penyusun makhluk hidup akibat adanya faktor alam yang disebut dengan mutasi direpresentasikan sebagai proses berubahnya satu atau lebih nilai gen dalam kromosom dengan suatu nilai acak. Jumlah gen dalam populasi yang mengalami mutasi ditentukan oleh parameter yang dinamakan mutation rate. Setelah beberapa generasi akan dihasilkan kromosom-kromosom yang nilai gen-gennya konvergen ke suatu nilai tertentu yang merupakan solusi terbaik yang dihasilkan oleh Algoritma Genetika terhadap permasalahan yang ingin diselesaikan. Universitas Sumatera Utara Secara umum, blok diagram dari mekanisme kerja Algoritma Genetika ini adalah seperti yang terlihat pada gambar dibawah ini : Bangkitkan populasi awal Evaluasi fungsi tujuan Apakah kriteria optimasi tercapai ya Individuindividu terbaik Tidak Mulai Seleksi Selesai Pindah Silang Bangkitkan populasi baru Mutasi Gambar 2.2 Mekanisme Kerja Algoritma Genetika 2.2 Travelling Salesman Problem Traveling Salesman Problem (TSP) adalah suatu kondisi dimana seorang salesman keliling yang harus mengunjungi n kota dengan aturan bahwa ia harus mengunjungi setiap kota hanya sebanyak satu kali, meminimalisasi total jarak perjalanannya dan pada akhirnya ia harus kembali ke kota asalnya. Inti dari permasalahan TSP ini adalah menentukan sirkuit terpendek yang harus dilalui oleh seorang salesman dengan ketentuan dia hanya boleh mengunjungi kota pelangganannya paling banyak satu kali. Universitas Sumatera Utara 2.2.1 Pendahuluan Permasalahan Traveling Salesman Problem merupakan salah satu permasalahan optimasi kombinatorial. Banyak permasalahan yang dapat direpresentasikan dalam bentuk Traveling Salesman Problem. Permasalahan ini sendiri menggunakan representasi graf untuk memodelkan persoalan yang diwakili sehingga lebih memudahkan penyelesaiannya. Permasalahan yang dapat direpresentasikan dengan TSP ialah masalah transportasi, efisiensi pengiriman surat atau barang, perancangan pemasangan pipa saluran, proses pembuatan PCB (Printed Cirtcuit Board) dan lain-lain. Permasalahan yang muncul ialah bagaimana cara mengunjungi simpul (node) pada graf dari titik awal ke setiap titik-titik lainnya dengan bobot minimum. Bobot ini sendiri dapat mewakili berbagai hal, seperti biaya, jarak, bahan bakar, waktu, dan lainnya. Guna memudahkan permasalahan dalam penyelesaian TSP, permasalahan ini direpresentasikan terlebih dahulu dengan sebuah graph, dimana jumlah vertex dan edge-nya terbatas (sebuah vertex akan mewakili sebuah kota dan sebuah edge akan mewakili jarak antar dua kota yang dihubungkannya). Penanganan problem TSP ini ekuivalen dengan mencari sirkuit Hamiltonian terpendek. 2.3 Matlab 6.1 Bahasa Pemrograman merupakan suatu media untuk berinteraksi antara manusia dengan komputer dibuat agar semakin mudah dan cepat. Sebagai contoh, dapat dilihat dari perkembangan bahasa pemrograman pascal yang terus memunculkan varian baru hingga akhirnya menjadi Delphi, demikian pula dengan Basic dan Visual Basic-nya serta C dengan C++ Builder-nya. Pada akhirnya semua bahasa pemrograman akan semakin memudahkan pemakainya dengan penambahan fungsi-fungsi baru yang sangat mudah digunakan bahkan oleh pemakai tingkat pemula sekalipun. Matlab muncul didunia bahasa pemrograman yang cenderung di kuasai oleh bahasa yang telah mapan. Logikanya, sebagai bahasa pemrograman yang baru tentu saja Matlab akan sukar mendapat hati dari pemakai (programmer). Namun Matlab hadir tidak dengan fungsi dan karakteristik yang ditawarkan bahasa pemrograman lain (yang biasanya hampir seragam). Matlab dikembangkan sebagai bahasa pemrograman Universitas Sumatera Utara sekaligus alat visualisasi yang menawarkan banyak kemampuan untuk menyelesaikan berbagai kasus yang berhubungan langsung dengan disiplin keilmuan matematika, seperti bidang rekayasa teknik, fisika, statistika, komputasi dan modeling. Matlab dibangun dari bahasa induknya yaitu bahasa C, namun tidak dapat dikatakan sebagai varian dari C. Karena hubungan langsungnya terhadap C, Matlab memiliki kelebihankelebihan bahasa C bahkan mampu berjalan pada semua platform sistem operasi tanpa mengalami perubahan sintak sama sekali. MATLAB (Matrix Laboratory) adalah sebuah bahasa pemrograman tingkat tinggi untuk analisa dan komputasi numerik, merupakan suatu bahasa pemrograman matematika lanjutan yang dibentuk dengan dasar pemikiran menggunakan sifat dan bentuk matriks. Matlab merupakan software yang paling efisien untuk perhitungan numerik berbasis matriks. Dengan demikian jika di dalam perhitungan kita dapat memformulasikan masalah ke dalam fomat matriks, maka Matlab merupakan software terbaik untuk penyelesaian numeriknya. Cara termudah untuk menggambarkan matlab adalah dengan menganggapnya sebagai sebuah kalkulator. Seperti umumnya kalkulator biasa, Matlab sanggup mengerjakan perhitungan sederhana seperti penambahan, pengurangan, perkalian, dan pembagian. Seperti kalkulator sains, Matlab dapat menangani bilangan kompleks, akar dan pangkat, logaritma dan operasi trigonometri Untuk menjalankan aplikasi Matlab, sebenarnya tidak membutuhkan spesifikasi komputer yang tinggi. Cukup dengan komputer Pentium 1 atau setara, program sudah bisa dijalankan. Namun untuk visualisasi dari program dengan iterasi (berulang) atau pengolahan data yang cukup besar (misalnya matriks berdimensi 1000 x 1000) perbedaan kecepatan processor akan signifikan. Untuk itu, pada tahap instalasi Matlab perlu diperhatikan versinya. Setiap versi akan membutuhkan spesifikasi komputer minimum yang berbeda [ Away, Gunaidi Abdia, 2006] 2.3.1 Sintak Dasar Matlab Sebagaimana bahasa pemrograman pada umumnya, Matlab juga memiliki metode dan simbol tersendiri dalam penulisan bahasa pemrogramannya (sintak). Tipe data yang Universitas Sumatera Utara dikenal dalam pemrograman matlab hanya dua yaitu numerik dan string. Tidak seperti bahasa pemrograman yang lain, dalam pemrograman Matlab tidak dibutuhkan deklarasi eksplisit yang menyatakan tipe data, karena Matlab memiliki kemampuan tersendiri untuk mengenali tipe data yang dimasukkan oleh pemakai pada setiap variabelnya dan dapat secara dinamis mengganti tipe data tersebut pada waktu yang relatif bersamaan tanpa adanya kesalahan. Namun ada beberapa hal penting yang harus diperhatikan dalam penulisan sintak, yaitu : a. Peranan variabel bersifat case-sensitive, artinya Matlab akan membedakan adanya huruf besar dan kecil dalam penamaan. b. Panjang nama variabel tidak dapat melebihi 31 karakter, dan karakter setelah karakter ke-31 diabaikan. c. Penamaan variabel harus selalu diawali dengan huruf, diikuti dengan sembarang bilangan, huruf atau garis bawah, tidak boleh dengan bilangan dan simbol lain. 2.3.2 Fungsi M-file Penulisan barisan ekspresi dalam Matlab biasanya dilakukan baris perbaris. Hal ini sangat tidak efisien. Fungsi M-file hampir sama dengan script file dimana keduanya merupakan suatu file teks dengan ekstensi.m. Fungsi M-file ini tidak dimasukkan dalam command window, melainkan diletakkan pada file tersendiri yang dibuat dalam editor teks (matlab editor). Suatu fungsi M-file harus mengikuti beberapa aturan dan juga mempunyai sejumlah sifat penting. Aturan dan sifat-sifat tersebut meliputi : 1. Nama fungsi dan nama file harus identik. Contohnya fungsi flipud disimpan dalam file yang bernama flipud.m 2. Pertama kali Matlab mengeksekusi suatu fungsi M-file, Matlab membuka file fungsi tersebut dan mengkompilasi perintah-perintah di dalamnya menjadi suatu representasi internal dalam memori yang mempercepat eksekusi semua pemanggilan berikutnya. Jika fungsi juga melibatkan pemanggilan ke fungsi M-file yang lain, fungsi M-file yang dipanggil itu juga akan dikompilasi ke dalam memori. Universitas Sumatera Utara 3. Jumlah argumen input dan output yang digunakan jika suatu fungsi dipanggil hanya terdapat dalam fungsi tersebut. 4. Fungsi M-file berhenti dieksekusi dan kembali ke prompt jika telah mencapai akhir dari M-file atau jika menemui perintah return. Perintah return merupakan cara sederhana untuk menghentikan fungsi sebelum mencapai akhir file. 5. Fungsi M-file dapat memuat lebih dari sebuah fungsi. 2.3.3 Interaksi File Berinteraksi dengan file eksternal merupakan senjata yang sangat diandalkan oleh programmer, karena dengan cara inilah antar aplikasi yang berbeda dapat saling bertukar data. Pembuat matlab pun menyadari hal ini, dan memberikan beberapa alternatif bagi programmer untuk menggunakan metode yang paling cocok dalam berinteraksi dengan file eksternal. Dalam Matlab disediakan fungsi save dan load. Fungsi save digunakan untuk menyimpan data dari memori Matlab ke file, sedangkan fungsi load digunakan untuk mengambil data file ke memori Matlab. Secara default fungsi save dan load di desain untuk jenis file MAT. Dimana file dengan ekstensi mat adalah file biner yang hanya dapat dibuka oleh Matlab sendiri. Kelebihan menyimpan dengan jenis file ini adalah kemampuannya untuk menyimpan informasi data berupa variabel beserta nilai-nilainya tanpa direpotkan untuk mengatur format datanya. Berikut adalah sintak untuk menggunakan fungsi save : save [ nama file ] var1 var2; Nama file : diisi dengan nama file simpan yang kita inginkan, diketikkan tanpa ekstensi. File tersebut akan berekstensi MAT dan menyimpan data nilai-nilai var1 dan var2. Untuk mengambil kembali data yang telah disimpan dalam file berekstensi MAT, digunakan fungsi load yang mampu mengambil seluruh variabel dan nilai yang tersimpan dalam file. Sintak untuk mengambil fungsi load adalah sebagai berikut : Load [ nama file MAT ] Universitas Sumatera Utara