8
BAB 2
LANDASAN TEORI
2.1
Graph
Rinaldi Munir (2003) menjelaskan bahwa graph merupakan kumpulan verteks yang dihubungkan satu sama lain melalui sisi/ busur (edges). Suatu graph G terdiri dari dua himpunan yaitu himpunan verteks dan himpunan edge. Vertek adalah suatu elemen dari graph G yang dapat disajikan berupa titik, lingkaran kecil atau node. Sedangkan edge adalah suatu elemen dari graph G yang disajikan berupa garis.
Edge dapat menunjukkan hubungan (relasi) sembarang seperti rute penerbangan, jalan raya, sambungan telepon, ikatan kimia, dan lain-lain. Graph dinotasikan dengan G (V,E). Pada umumnya graph digunakan untuk memodelkan suatu masalah sehingga menjadi lebih mudah, yaitu dengan cara merepresentasikan objek-objek tersebut. Menurut arah dan bobotnya, graph dibagi menjadi empat bagian, yaitu : a. Graph berarah dan berbobot yaitu graph yang setiap sisinya diberikan orientasi arah dan bobot berupa bilangan bukan negatif. b. Graph tidak berarah dan berbobot yaitu graph yang setiap sisinya tidak mempunyai orientasi arah tetapi mempunyai bobot. c. Graph berarah dan tidak berbobot yaitu graph yang setiap sisinya diberikan orientasi arah tetapi tidak berbobot. d. Graph tidak berarah dan tidak berbobot yaitu graph yang setiap sisinya tidak mempunyai orientasi arah dan tidak berbobot.
Universitas Sumatera Utara
9
2.2.1 Keterhubungan
Ada beberapa sifat keterhubungan dalam graph. Berikut adalah sifat-sifat yang sering digunakan, yaitu: a. Perjalanan (Walk) Perjalanan atau walk pada suatu graph G adalah barisan vertek dan edge secara berganti-ganti v1 , e1 , v2 , e2 ,..., en1 , vn dimana edge e1 menghubungkan vi dan vi 1 dan dapat hanya ditulis barisan edge atau barisan vertek saja ( e1 , e2 ,..., en1 atau v1 , v2 ,...vn1 , vn ), dalam hal ini v1 disebut vertek awal, dan vn disebut vertek
akhir.
b. Lintasan (Trail) Lintasan adalah Walk dengan semua edge dalam barisan adalah berbeda.
c. Jalur (Path) Jalur adalah Walk yang setiap verteksnya dalam barisan adalah berbeda.
d. Terhubung (connected) Graph tak berarah G disebut graph terhubung (undirecteg connected graph) jika untuk setiap pasang simpul u dan v di dalam himpunan V terdapat lintasan dari u ke v (yang berarti ada lintasan dari u ke v). Sama halnya seperti pada graph tak berarah, graph berarah G disebut graph terhubung (directed connected graph) jika untuk setiap pasang simpul u dan v di dalam himpunan V terdapat lintasan dari u ke v (yang berarti ada lintasan dari u ke v).
2.2.1 Representasi Graf
Suatu graph dapat direpresentasikan ke beberapa bentuk. Representasi graph dapat digunakan untuk mengimplementasikan graph tersebut ke dalam bentuk tertentu, sehingga dapat digunakan pada berbagai kasus yang berbeda. Matriks dapat digunakan untuk menyatakan suatu graph. Hal ini sangat membantu program komputer yang berhubungan dengan graph.
Universitas Sumatera Utara
10
1.1.2.2 Representasi Graph Tidak Berarah dalam Matriks
Matriks Hubung (Adjacency Matrix) digunakan untuk menyatakan graph dengan cara menyatakannya dalam jumlah edge yang menghubungkan setiap vertex. Jumlah baris (dan kolom) matriks hubung sama dengan jumlah vertex dalam graph. Misalkan G adalah graph tidak berarah untuk suatu graph dengan jumlah verteks sebanyak n, maka matriks hubung mempunyai ukuran n x n (n baris dan n kolom). Jika antara dua buah verteks terhubung maka elemen matriks bernilai 1, dan sebaliknya bernilai 0 jika tidak terhubung. Jumlah edge yang menghubungkan vertek vi dengan vj selalu sama dengan jumlah edge yang menghubungkan
dengan
, maka jelas bahwa matriks hubung
selalu merupakan matriks yang simetris (aij=aji i,j).
Gambar 2.1 Graph Tidak Berarah dan Tidak Berbobot
Universitas Sumatera Utara
11
Maka matriks kedekatan dari graph tidak berarah dan tidak berbobot pada Gambar 2.1 diatas dapat dilihat pada Tabel 2.1 dibawah ini.
Tabel 2.1 Matriks Kedekatan Graph Tidak Berarah dan Tidak Berbobot
A
B
C
D
E
F
G
A
0
1
1
0
0
0
0
B
1
0
1
1
1
0
0
C
1
1
0
1
0
1
0
D
0
1
1
0
1
1
1
E
0
1
0
1
0
0
1
F
0
0
1
1
0
0
1
G
0
0
0
1
1
1
0
Jika graph yang diberikan adalah graph berbobot maka elemen matriks yang terhubung antara vertex adalah bobot graph.
2.1.2.2 Representasi Graph Berarah dalam Matriks
Matriks Hubung (Adjacency Matrix) pada
graph berarah sebenarnya tidak jauh
berbeda dengan cara menyatakan graph tak berarah dalam suatu matriks. Perbedaanya hanyalah terletak pada keikutsertaan informasi tentang arah arc yang terdapat dalam graph berarah. Jika ada arc dari vertek vi ke vertek vj maka nilai elemen matriksnya adalah 1, dan jika tidak ada arc dari vertek vi ke vertek vj maka nilai elemen matriksnya adalah 0.
Gambar 2.2 Graph Berarah dan Tidak Berbobot
Universitas Sumatera Utara
12
Maka matriks kedekatan dari graph berarah dan tidak berbobot pada Gambar 2.2 diatas dapat dilihat pada Tabel 2.2 dibawah ini.
Tabel 2.2 Matriks Kedekatan Graph Berarah dan Tidak Berbobot A B C D E F G
A 0 0 0 0 0 0 0
B 1 0 0 0 0 0 0
C 1 1 0 0 0 0 0
D 0 1 1 0 0 0 0
E 0 1 0 1 0 0 0
F 0 0 1 1 0 0 0
G 0 0 0 1 1 1 0
Jika graph yang diberikan adalah graph berbobot maka elemen matriks yang terhubung antara vertex adalah bobot graph.
2.2 Algoritma Genetika
Kecerdasan buatan merupakan suatu ilmu dengan ide-ide untuk membuat bagaimana komputer menjadi cerdas seperti yang dapat dilakukan manusia bahkan lebih baik dari yang dilakukan manusia, dengan mengimplementasikan dalam sebuah program. Diharapkan nantinya kecerdasan buatan ini dapat menirukan proses belajar yang dilakukan oleh manusia sehingga informasi-informasi baru dapat diserap dan dapat dijadikan acuan pada masa yang akan datang. Algoritma genetika merupakan evolusi atau perkembangan dunia komputer dalam bidang kecerdasan buatan (Artificial Intelligence).
Sejak algortima genetika pertama kali dirintis oleh John Holland dari Universitas Michigan pada tahun 1960-an, AG telah diaplikasikan secara luas pada berbagai bidang. AG banyak digunakan untuk memecahkan masalah optimasi, walaupun pada kenyataannya juga memiliki kemampuan yang baik untuk masalahmasalah selain optimasi. John Holland menyatakan bahwa setiap masalah yang berbentuk adaptasi (alami maupun buatan) dapat diformulasikan dalam terminologi
Universitas Sumatera Utara
13
genetika. Algoritma genetika adalah simulasi dari proses evolusi Darwin dan operasi genetika atas kromosom. Algoritma genetika (Genetic Algorithm, GA) adalah algoritma pencarian yang didasarkan
atas mekanisme seleksi alami dan evolusi
biologis.
Algoritma genetika mengikuti prosedur atau tahap-tahap yang menyerupai proses evolusi, yaitu adanya proses seleksi, crossover dan mutasi. AG juga mengkombinasikan antara deretan struktur dengan pertukaran informasi acak ke bentuk algoritma pencarian dengan beberapa perubahan bakat pada manusia. Pada setiap generasi, himpunan baru dari deretan individu dibuat berdasarkan kecocokan pada generasi sebelumnya (Goldberg, 1996). Keberagaman pada evolusi biologis adalah variasi dari kromosom dalam individu organisme. Variasi kromosom ini akan mempengaruhi laju reproduksi dan tingkat kemampuan organisme untuk tetap hidup (Kristanto, 2004). Pada dasarnya ada 4 kondisi yang sangat mempengaruhi proses evaluasi, yaitu: a.
Kemampuan organisme untuk melakukan reproduksi.
b.
Keberadaan populasi organisme yang bisa melakukan reproduksi.
c.
Keberagaman organisme dalam suatu populasi.
d.
Perbedaan kekuatan dan kemampuan organisme untuk bertahan hidup.
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
Universitas Sumatera Utara
14
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-kromosom yang lainnya sehingga ukuran populasi (jumlah kromosom dalam suatu populasi) konstan. Setelah melalui beberapa generasi, maka algoritma ini akan konvergen ke kromosom terbaik.
2.2.1 Komponen-Komponen Utama Algoritma Genetika
Ada 6 komponen utama dalam algoritma genetika, yaitu skema pengodean, fungsi fitness, seleksi, crossover, mutasi,elitism.
2.2.1.1 Skema Pengodean
Skema pengodean di sini meliputi penyandian gen dan kromosom. Gen merupakan bagian dari kromosom. Satu gen biasanya akan mewakili satu variabel. Gen dapat direpresentasikan dalam bentuk: string bit, pohon, array bilangan real, daftar aturan, elemen permutasi, elemen program, atau representasi lainnya yang dapat diimplementasikan untuk operator genetika (kusumadewi, 2005). Ada beberapa macam teknik pengodean yang dapat dilakukan dalam algoritma genetika (Lukas, 2005)., diantaranya:
a.
Pengodean Biner (binary encoding) Pengodean biner adalah yang paling sering digunakan untuk bekerja dalam algoritma genetika, dengan setiap kromosom terdiri dari bit 0 dan 1. Contohnya:
Tabel 2.3 Pengodean Biner Krom A
1
0
1
1
0
0
1
0
1
0
Krom B
1
1
1
1
1
1
0
0
1
0
Dalam Binary Encoding memungkinkan didapatkan kromosom dengan nilai allele yang kecil, tetapi kekurangannya tidak dapat digunakan untuk
Universitas Sumatera Utara
15
beberapa permasalahan dan terkadang diperlukan adanya koreksi setelah proses crossover dan mutasi. Salah satu permasalahan yang menggunakan encoding adalah menghitung nilai maksimal dari suatu fungsi.
b.
Pengodean Permutasi (permutation encoding) Dalam pengodean jenis ini setiap kromosom adalah adalah suatu angka yang mempresentasikan suatu urutan. Pengodean ini hanya berguna untuk masalah ordering, bahkan beberapa korelasi terhadap kromosom harus dilakukan untuk menjaga konsistensi representasi kromosom setelah proses crossover atau mutasi. Contohnya:
Tabel 2.4 Pengodean Permutasi
c.
Krom A
8 5
6 7
2 1
3 4
9
Krom B
1 5
3 2
6 4
7 9
8
Pengodean Nilai (Value Encoding) Value encoding, dalam pengodean ini setiap kromosom adalah string dari suatu nilai. Nilai dapat berupa apapun yang berhubungan dengan masalah, seperti bilangan bulat, desimal atau karakter. Pengodean ini merupakan pilihan yang bagus untuk beberapa permasalahan khusus, biasanya diperlukan metode khusus untuk memproses crossover dan mutasinya sesuai dengan permasalahan yang dihadapi. Contohnya: Tabel 2.5 Pengodean Nilai Krom A
1.232
5.324
0.455
2.329
Krom B
ABFDGJHJHKJKJLKLFSR
Krom C
(
right), (left), (back), (forward)
Universitas Sumatera Utara
16
d.
Pengodean Pohon (Tree Encoding) Biasanya digunakan untuk menyusun program atau ekspresi dari genetik programming (pemrograman genetik). Dalam pengodean pohon ini, setiap kromosom dinyatakan sebagai sebuah pohon dan beberapa objek, seperti fungsi atau perintah dalam bahasa pemrograman. Contohnya: (*(-(ab))(+(*(CD))(/(EF))))
*
-
A
+
B
/
* C
D
E
F
Gambar 2.3 Pengodean Pohon
2.2.1.2 Nilai Fitness
Nilai Fitness, menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapat. Nilai ini yang kemudian akan dijadikan sebagai acuan dalam mencapai nilai optimal dalam algoritma genetika. Di dalam evolusi alam, individu yang bernilai fitness tinggi yang akan bertahan hidup sedangkan individu yang bernilai fitness rendah akan mati. Pada masalah optimasi, jika solusi yang dicari adalah memaksimalkan sebuah fungsi h (dikenal sebagai masalah maksimasi), maka nilai fitness yang digunakan adalah nilai dari fungsi h tersebut, f = h (dimana f adalah nilai fitness). Jika masalahnya adalah meminimalkan fungsi h (masalah minimasi), maka fungsi h tidak bisa digunakan secara langsung. Hal ini disebabkan adanya aturan bahwa individu yang memiliki nilai fitness tinggi lebih mampu bertahan hidup pada generasi berikutnya.
Universitas Sumatera Utara
17
Maka nilai fitness yang bisa digunakan adalah f = i/h, yang artinya semakin kecil nilai h, semakin besar nilai f. Tetapi hal ini akan menjadi masalah jika nilai h = 0, yang mengakibatkan f dapat bernilai tak terhingga. Untuk mengatasinya, h perlu ditambah sebuah bilangan yang dianggap sangat kecil sehingga nilai fitnessnya menjadi :
f
1 , (h a)
(2.1)
Dimana a adalah bilangan yang dianggap sangat kecil dan bervariansi sesuai dengan masalah yang akan diselesaikan.
2.2.1.3 Seleksi Orang Tua
Seleksi adalah proses untuk menentukan individu mana saja yang akan dipilih untuk dilakukan rekombinasi dan bagaimana keturunan terbentuk dari individu-individu terpilih tersebut. Pemilihan dua buah kromosom sebagai orang tua, yang akan dipindahsilangkan, biasanya dilakukan secara proporsional sesuai dengan nilai fitnessnya. Masing-masing individu dalam suatu wadah seleksi akan menerima probabilitas reproduksi yang tergantung pada nilai obyektif dirinya sendiri terhadap nilai obyektif dari semua individu dalam wadah seleksi tersebut. Nilai fitness kemudian akan digunakan pada tahap seleksi berikutnya. Ada beberapa macam proses seleksi yang ada pada algoritma genetika, diantaranya (Kusumadewi, 2005): a.
Seleksi dengan Roda Roulette (Roulette Wheel Selection), dengan memetakan individu-individu dalam suatu segmen garis secara berurutan sedemikian hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran fitness-nya.
b.
Seleksi berdasarkan Ranking Fitness (Rankbased Fitness), yaitu dengan cara mengurutkan populasi menurut nilai obyektifnya.
c.
Seleksi Pengambilan Sampling Stokastik (Stocastic Universal Sampling), dengan memetakan individu-individu seperti halnya roda roulette, kemudian memberikan sejumlah pointer sebanyak individu yang ingin diseleksi pada garis tersebut.
Universitas Sumatera Utara
18
d.
Seleksi Lokal (Local Selection), seleksi yang dilakukan hanya pada konstrain tertentu.
e.
Seleksi dengan Pemotongan (Truncation Selection), seleksi buatan yang biasanya digunakan oleh polulasi yang jumlahnya sangat besar.
f.
Seleksi dengan Turnamen (Tournament Selection), menetapkan suatu nilai turnamen untuk individu-individu yang dipilih secara acak dari suatu populasi.
2.2.1.4 Proses Rekombinasi
Proses rekombinasi adalah proses untuk menyilangkan dua kromosom sehingga membentuk kromosom baru yang harapannya lebih baik dari pada induknya. Rekombinasi dikenal juga dengan nama crossover. Tidak semua kromosom pada suatu populasi akan mengalami proses rekombinasi. Kemungkinan suatu kromosom mengalami proses rekombinasi didasarkan pada probabilitas crossover yang telah ditentukan terlebih dahulu. Probabilitas crossover menyatakan peluang suatu kromosom akan mengalami crossover.
Parameter yang penting dalam proses kawin silang adalah crossover rate yang merupakan nilai perbandingan jumlah kromosom yang diharapkan akan mengalami kawin silang terhadap jumlah kromosom dalam satu populasi. Crossover rate 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.
Rekombinasi 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 pindah silang hanya bisa dilakukan dengan suatu probabilitas tertentu, artinya pindah silang bisa dilakukan
Universitas Sumatera Utara
19
hanya jika suatu bilangan random yang dibangkitkan kurang dari probabilitas yang ditentukan tersebut. Pada umumnya probabilitas tersebut diset mendekati 1.
2.2.1.5 Proses Mutasi
Proses mutasi adalah proses penambahan nilai acak yang sangat kecil dengan probabilitas rendah pada variabel keturunan. Peluang mutasi didefinisikan sebagai persentasi dari jumlah total gen pada populasi yang mengalami mutasi. Peluang mutasi mengendalikan banyaknya gen baru yang akan dimunculkan untuk dievaluasi. Jika peluang mutasi terlalu kecil, banyak gen yang mungkin berguna tidak dievaluasi, tetapi bila peluang mutasi ini terlalu besar maka akan terlalu banyak gangguan acak, sehingga anak akan kehilangan kemiripan dari induknya dan algoritma juga akan kehilangan kemampuan untuk belajar dari history pencarian (Kusumadewi, 2005). Ada beberapa macam proses mutasi yang ada pada algritma genetika, diantaranya:
a. Mutasi bilangan real, dengan mendefinisikan ukuran langkah mutasi, kecil atau besar. b. Mutasi biner, dengan mengganti satu atau beberapa nilai gen dari kromosom.
2.2.1.6 Elitisme
Karena seleksi dilakukan secara random, maka tidak ada jaminan bahwa suatu individu bernilai fitness tertinggi akan selalu terpilih. Kalaupun individu bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak (nilai fitnessnya menurun) karena proses pindah silang. Untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama evolusi, maka perlu dibuat satu atau lebih kopinya. Prosedur ini dikenal sebagai elitisme.
Universitas Sumatera Utara
20
2.3 Penentuan Parameter
Parameter digunakan dalam algoritma genetika untuk memberikan suatu probabilitas yang berupa persentase. Parameter disini adalah parameter kontrol algoritma genetika, yaitu : ukuran populasi (popsize), peluang crossover ( c ) dan peluang mutasi ( m ). Nilai parameter ini ditentukan juga berdasarkan permasalahan yang akan dipecahkan. 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)
Ukuran populasi (pop size) merupakan kumpulan kromosom dalam populasi (dalam satu generasi). Probabilitas crossover merupakan persentase dari seringnya melakukan crossover. Jika tidak ada crossover, offspring (turunan) pasti meniru dari parent (induk). Jika ada crossover, offspring dibuat dari bagian kromosom parent. Jika kemungkinan crossover 100%, maka semua offspring dibuat oleh crossover. Jika 0%, generasi baru secara lengkap dibuat dengan meniru kromosom dari populasi lama. Probabilitas mutasi merupakan bagian dari kromosom yang dimutasikan. Jika tidak ada mutasi, offspring langsung mengambil dari crossover (atau meniru) dengan tidak mengubah lagi. Jika dilakukan mutasi, bagian kromosom diubah. Jika kemungkinan mutasi adalah 100%, seluruh kromosom diubah dan jika kemungkinan
Universitas Sumatera Utara
21
mutasi adalah 0%, tidak ada yang diubah. Mutasi dibuat untuk mencegah penurunan algoritma genetika ke dalam nilai ekstrem lokal, tapi ini tidak sering terjadi karena algoritma genetika akan mengubah fakta dengan random search.
2.4 Keunggulan dari Aplikasi Algoritma Genetika dalam Proses Optimasi
Ada tiga keunggulan dari aplikasi algoritma genetika dalam proses optimasi, yaitu: a. Algoritma genetika tidak terlalu banyak memerlukan persyaratan matematika dalam penyelesaian proses optimasi, dan 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.
2.5 Langkah-langkah Algoritma Sederhana untuk Pencarian Jalur Terpendek
Berikut adalah langkah algoritma genetika sederhana untuk pencarian jalur terpendek: ` Langkah 1: Inisialisasi generasi awal. Generasi awal harus diinisialisasi kosong, sehingga belum ada generasi. Generasi = 0.
Langkah 2: Inisialisasi populasi awal, P (generasi) secara acak. Populasi yang ditentukan di inisialisasi secara acak.
Langkah 3: Evaluasi nilai fitness pada setiap individu dalam P (generasi). Nilai fitness adalah nilai yang menunjukkan kualitas suatu kromosom dalam populasi.
Universitas Sumatera Utara
22
Langkah 4: a. Menambahkan generasi baru dengan persamaan: generasi = generasi+1 b. Seleksi populasi tersebut untuk mendapatkan kandidat induk P (generasi). c. Lakukan crossover pada P (generasi). d. Lakukan mutasi pada P (generasi). e. Lakukan evaluasi fitness setiap individu pada P (generasi). f. Bentuk populasi baru, P (generasi) ={P(generasi1) yang bertahan, P (generasi)}.
Secara umum, blok diagram (flowchat) dari mekanisme kerja algoritma genetika adalah seperti gambar dibawah ini.
Gambar 2.4 Flowchart Algoritma Genetik
Universitas Sumatera Utara
23
2.6 Matlab
MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis dan komputasi numerik dan merupakan suatu bahasa pemrograman matematika lanjutan yang dibentuk dengan dasar pemikiran menggunakan sifat dan bentuk matriks. Salah satu aspek yang sangat berguna dari MATLAB adalah kemampuannya untuk menggambarkan berbagai jenis grafik, sehingga kita bisa memvisualisasikan data dan fungsi yang kompleks. MATLAB memiliki elemen data dalam suatu array sehingga tidak lagi kita dipusingkan dengan masalah dimensi. Hal ini memungkinkan kita untuk memecahkan banyak masalah teknis yang terkait dengan komputasi, khususnya yang berhubungan dengan matriks dan formulasi vektor, yang mana masalah tersebut merupakan momok apabila kita harus menyelesaikannya dengan menggunakan bahasa level rendah seperti Pascall, C dan Basic.
Pada awalnya MATLAB hanya dikenal sebagai Matrik Laboratory, tetapi sesuai dengan perkembangannya MATLAB adalah bahasa yang canggih untuk komputasi teknik. Di dalamnya terdapat kemampuan penghitungan, visualisasi, dan pemograman dalam suatu lingkungan yang mudah untuk digunakan karena permasalahan dan pemecahannya dinyatakan dalam notasi matematika biasa. Sebagai sebuah sistem, MATLAB tersusun dari bagian utama:
a. Development Environment Development Environment merupakan sekumpulan perangkat dan fasilitas untuk menggunakan fungsi-fungsi dan file-file MATLAB. Beberapa perangkat ini merupakan sebuah graphical user interfaces (GUI). Termasuk didalamnya adalah MATLAB desktop dan Command Window, command history, sebuah editor dan debugger, dan browsers untuk melihat help, workspace, files, dan search path.
b. MATLAB Mathematical Function Library MATLAB Mathematical Function Library merupakan sekumpulan algoritma komputasi mulai dari fungsi-fungsi dasar seperti: sum, sin, cos, dan complex
Universitas Sumatera Utara
24
arithmetic, sampai dengan fungsi-fungsi yang lebih kompek seperti matrix inverse, matrix eigenvalues, Bessel functions, dan fast Fourier transforms.
c. MATLAB Language MATLAB Language merupakan suatu high-level matrix/array language dengan control flow statements, functions, data structures, input/output, dan fitur-fitur object-oriented programming. Ini memungkinkan bagi kita untuk melakukan kedua hal baik "pemrograman dalam lingkup sederhana " untuk mendapatkan hasil yang cepat, dan "pemrograman dalam lingkup yang lebih besar" untuk memperoleh hasil-hasil dan aplikasi yang komplek.
d. Graphics MATLAB memiliki fasilitas untuk menampilkan vector dan matrices sebagai suatu grafik. Didalamnya melibatkan high-level functions (fungsi-fungsi level tinggi) untuk visualisasi data dua dimensi dan data tiga dimensi, image processing, animation, dan presentation graphics. Ini juga melibatkan fungsi level rendah yang memungkinkan untuk memunculkan grafik mulai dari bentuk yang sederhana sampai dengan tingkatan graphical user interfaces.
e. MATLAB Application Program Interface (API). Application Program Interface (API) merupakan suatu library yang memungkinkan program yang telah anda tulis dalam bahasa C dan Fortran mampu berinteraksi dengan MATLAB.
2.6.1 Fungsi M-File
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 suatu file tersendiri yang dibuat dalam editor teks (MATLAB editor/ debugger). Suatu fungsi M-File harus mengikuti beberapa aturan. Fungsi M-file juga mempunyai sejumlah sifat penting. Aturan-aturan dan sifat-sifat tersebut meliputi:
Universitas Sumatera Utara
25
a.
Nama fungsi dan nama file harus identik. Contohnya flipud disimpan dalam file yang bernama flipud.m.
b.
Pertama kali MATLAB mengeksekusi suatu fungsi M-file, MATLAB membuka file fungsi tersebut dan mengkompilasi perintah-perintah di dalamnya menjadi suatu representasi internal dalam memoriyang mempercepat eksekusi untuk 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.
c.
Baris komentar sampai dengan baris bukan komentar yang pertama adalah teks help yang ditampilkan. Jika anda meminta help, misalnya >>help flipud yang menampilkan 9 baris komentar pertama dari contoh di atas. Baris komentar yang paling atas disebut baris H1 adalah baris yang dicari oleh perintah look for.
d.
Setiap fungsi memiliki ruang kerjanya sendiri yang berbeda dengan ruang kerja MATLAB. Satu-satunya hubungan antara ruang kerja MATLAB dengan variabel-variabel dalam fungsi adalah variabelvariabel input dan output fungsi. Jika suatu fungsi mengubah nilai dalam bentuk suatu variabel input, perubahan itu hanya tampak dalam fungsi dan tidak mempengaruhi ruang kerja MATLAB.
e.
Jumlah dari argument input dan output yang digunakan jika suatu fungsi dipanggil hanya ada dalam fungsi tersebut.
f.
Fungsi dapat berbagi variabel dengan fungsi lain, ruang kerja MATLAB dan pemanggilan rekursi untuk dirinya sendiri jika variabelnya dideklarasikan sebagai variabel global.
g.
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.
h.
Fungsi M-file dapat memuat lebih dari sebuah fungsi.
Universitas Sumatera Utara
26
Ada beberapa macam window yang tersedia dalam MATLAB, yang dapat dijelaskan sebagai berikut:
a.
MATLAB Command window/ editor MATLAB Command window/ editor merupakan window yang dibuka pertama kali setiap kali MATLAB dijalankan. Pada dasarnya jendela inilah inti dari pemrograman matlab yang menjadi media utama satusatunya untuk berinteraksi dengan matlab.
b.
MATLAB Editor/ Debugger (Editor M-File/ Pencarian Kesalahan) Berfungsi sebagai editor script Matlab (M-file). Walaupun sebenarnya script ini untuk pemrograman Matlab dapat saja menggunakan editor yang lain seperi notepad, wordpad bahkan word, namun sangat dianjurkan untuk menggunakan matlab editor karena kemampuannya dalam mendeteksi kesalahan pengetikan sintaks oleh programmer. (Sugiharto, 2006).
c.
Figure Windows Window ini adalah hasil visualisasi dari script Matlab. Namun Matlab memberi kemudahan bagi programer untuk mengedit window ini sekaligus memberikan program khusus untuk itu. Sehingga window ini selain berfungsi sebagai visualisasi output dapat juga sekaligus menjadi media input yang interaktif.
d.
MATLAB help window MATLAB menyediakan sistem help yang dapat diakses dengan perintah help.
Universitas Sumatera Utara