menentukan urutan prioritas produk berdasarkan

advertisement
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
Download