BUKU AJAR PEMROGRAMAN KOMPUTER
Oleh : Tim Dosen Pemrograman Komputer Program Studi Teknik Industri
Fakultas Teknik Universitas Wijaya Putra 2009
KATA PENGANTAR
Mata kuliah Dasar Pemrograman Komputer adalah jenis mata kuliah
Keilmuan dan
Ketrampilan di program Studi Teknik Industri Fakultas Teknik Universitas Wijaya Putra. Buku ajar Dasar dan Pemrograman Komputer ini berisi dasar-dasar pemrograman komputer dengan bahasa komputer tingkat tinggi Matlab. Matlab merupakan bahasa pemrograman yang biasa digunakan pada bidang teknik Program kuliah direncanakan menggunakan pendekatan student center learning dimana mahasiswa harus aktif mencari bahan-bahan sendiri melalui text book maupun melalui online reading yang direkomendasikan. Mudah-mudahan buku ajar Dasar dan Pemrograman Komputer ini dapat menambah bahan belajar bagi mahasiswa teknik industri. Terimakasih kepada seluruh asisten laboratorium Komputer di Program Studi Teknik Industri, Fakultas Teknik-UWP maupun pihak-pihak yang telah membantu penyusunan buku ajar ini. Demi penyempurnaan buku ajar ini, kami mengharapkan kepada semua pihak untuk dapat memberikan masukan dan saran.
Penyusun Tim Dosen Laboratorium Komputer
Buku Ajar Pemrograman Komputer BAB I RUANG LINGKUP MATLAB BAGI PEMULA
1.
LINGKUNGAN KERJA MATLAB Sebagaimana bahasa pemrograman lainnya, MATLAB juga menyediakan lingkungan kerja terpadu yang sangat mendukung dalam pembangunan aplikasi. Pada setiap versi MATLAB yang terbaru, lingkungan terpadunya akan semakin dilengkapi. Lingkungan terpadu ini terdiri atas beberapa form/window yang memiliki kegunaan masing-masing. Untuk memulai aplikasi Matlab, Saudara hanya perlu mengklik ikon Matlab pada Dekstop window, atau bisa juga dengan menu start seperti pada aplikasi-aplikasi lainnya. Setiap pertama kali mulai membuka aplikasi Matlab, Saudara akan memperoleh beberapa form/window, yang sebenarnya menurut penulis hanya membuat dekstop Saudara kelihatan penuh. Saudara dapat menutup semua window tersebut kecuali Command Window yang menjadi window utama Matlab. Matlab akan menyimpan mode/setting terakhir lingkungan kerja yang Saudara gunakan sebagai mode/setting lingkungan kerja pada saat Saudara membuka aplikasi Matlab di waktu berikutnya.
Gambar 1.1. Aplikasi MATLAB
Program Studi Teknik Industri UWP
1
Buku Ajar Pemrograman Komputer 2.
WINDOW UTAMA MATLAB
Gambar 1.2. Window Utama MATLAB Window ini adalah window induk yang melingkupi seluruh lingkungan kerja MATLAB. Pada versi-versi pendahulu, window ini secara khusus belum ada namun terintegrasi dengan Command Window. Tidak ada fungsi utama yang ditawarkan oleh window ini selain sebagai tempat dock-ing bagi form yang lain.
3.
LAUNCH PAD WINDOW
Gambar 1.3. Launch Pad Window
Program Studi Teknik Industri UWP
2
Buku Ajar Pemrograman Komputer Window ini mulai diperkenalkan pada versi 6, berfungsi sebagai penuntun bagi pemakai dalam memilih opsi dari fungsi dan toolbox yang ditawarkan oleh MATLAB. 4.
WORKSPACE WINDOW
Gambar 1.4. Workspace Window Window ini juga baru diperkenalkan pada versi 6, berfungsi sebagai navigator bagi pemakai dalam penyediaan informasi mengenai variable yang sedang aktif dalam workspace pada saat pemakaian. Workspace adalah suatu lingkungan abstrak yang menyimpan seluruh variable dan perintah yang pernah digunakan selama penggunaan MATLAB berlangsung. 5.
CURRENT DIRECTORY WINDOW
Gambar 1.5. Current Directory Window
Program Studi Teknik Industri UWP
3
Buku Ajar Pemrograman Komputer Window ini juga fasilitas yang diperkenalkan pada versi 6. Berfungsi sebagai browser direktori aktif, yang hamper sama dengan window explorer. 6.
COMMAND HISTORY WINDOW
Gambar 1.6. Command History Window window ini berfungsi sebagai penyimpan perintah-perintah yang pernah dikerjakan pada suatu workspace. 7.
COMMAND WINDOW
Gambar 1.7. Command Window Window ini berfungsi sebagai penerima perintah dari pemakai untuk menjalankan seluruh fungsi-fungsi yang disediakan oleh MATLAB. Pada dasarnya window inilah inti dari pemrograman MATLAB yang menjadi media utama satu-satunya bagi kita untuk berinteraksi dengan MATLAB.
Program Studi Teknik Industri UWP
4
Buku Ajar Pemrograman Komputer 8.
MATLAB EDITOR
Gambar 1.8. Matlab Editor Window ini berfungsi untuk membuat skrip program Matlab. Walaupun skrip program dapat dibuat dengan menggunakan berbagai program editor seperti notepad, wordpad, word dan lain-lain. Namun sangat dianjurkan untuk menggunakan Matlab editor ini karena kemampuannya dalam mendeteksi kesalahan pengetikan sintak oleh programmer. Ketika window utama Matlab muncul, window Matlab editor tidak akan muncul dengan sendirinya, Saudara harus memanggilnya dengan cara mengklik pada ikon Create New. 9.
CARA BEKERJA DENGAN MATLAB Dalam melakukan pekerjaan pemrograman menggunakan bahasa MATLAB, Saudara dapat menggunakan salah satu cara yaitu : 1. Pemrograman di Command Window Pemrograman yang paling sering dilakukan oleh tingkatan mahasiswa yang baru belajar tentang MATLAB, namun akan sulit bagi saudara untuk mengevaluasi perintah secara keseluruhan karena biasanya perintah hanya dilakukan baris per baris. (contoh ada di pembahasan Bab III) 2. Pemrograman Menggunakan M-File Cara ini akan dipilih oleh Mahasiswa yang sudah memahami setingkat Programmer. Kelebihan cara ini adalah kemudahan untuk meng-evaluasi perintah secara keseluruhan. Terutama untuk program yang membutuhkan waktu pengerjaan yang cukup lama serta skrip yang cukup panjang. (Contoh ada di pembahasan bab selanjutnya)
Program Studi Teknik Industri UWP
5
Buku Ajar Pemrograman Komputer BAB II SINTAK DASAR MATLAB
1.
VARIABEL DAN OPERASI MATEMATIKA Sebagaimana bahasa pemrograman pada umumnya, MATLAB juga memiliki metoda dan symbol tersendiri dalam penulisan bahasa pemrogramannya (sintak). Tipe data yang dikenal dalam pemrograman MATLAB hanya dua yaitu Numeric 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 pemrogram pada setiap variabelnya, dan dapat secara dinamis mengganti tipe data tersebut pada waktu yang relative bersamaan tanpa adanya kesalahan. Namun demikian ada beberapa hal penting yang harus mahasiswa perhatikan dalam penulisan sintak, yaitu : 1. Penamaan Variabel bersifat Case Sensitive artinya MATLAB akan membedakan adanya huruf besar dan kecil dalam penamaan (mis. lbr akan tidak sama dengan Lbr) 2. Panjang nama variable tidak dapat melebihi 31 karakter 3. Penamaan variable harus selalu diawali dengan huruf, tidak boleh dengan bilangan symbol dan lain-lain. Cara Penulisan Variabel MATLAB menggunakan variable sebagai media bagi pemrogram untuk menempatkan data input/output. Ada beberapa cara penulisan yang dapat anda gunakan sesuai jenis data yang ingin diolah, yaitu : 1. Data Numerik Tunggal Cara penulisan
Program Studi Teknik Industri UWP
6
Buku Ajar Pemrograman Komputer 2. Data Numerik Berdimensi Banyak (Array/Matrik)
Beberapa hal penting penggunaan perintah MATLAB
Tanda ( : ) pada akhir command menunjukkan hasil command tidak ditampilkan pada layar.
Tanda ( [ ] ) digunakan untuk penulisan batas awal dan batas akhir elemen matrik.
Tanda ( ; ) dalam deklarasi matrik digunakan untuk pemisahan antar baris dalam matrik (carriage return).
Tanda ( , ) dalam deklarasi matrik berarti sama dengan spasi atau pemisah antar elemen dalam satu baris matrik
Diterjemahkan MATLAB sebagai :
3. Data String / Teks Cara penulisan
4. Cara Mengakses Variabel Secara default MATLAB mengenali variable yang anda gunakan sebagai sebuah matrik/array. Maka untuk variable yang memiliki elemen lebih dari satu, pengalamatan setiap elemen variable pada MATLAB memakai notasi berikut :
Program Studi Teknik Industri UWP
7
Buku Ajar Pemrograman Komputer Variable (baris ke, kolom ke) Untuk ilustrasi cara penggunaannya, buatlah pada Command Window sebuah matrik a berdimensi 3x3 berikut :
Operasi Matematika Operasi matematika dalam pemrograman MATLAB sangat sederhana, sama halnya dengan memakai kalkulator biasa. Berikut adalah table operator matematika yang digunakan dalam pemrograman MATLAB. Tabel 2.1. Operasi Matematika Operasi
Simbol
Contoh
Penjumlahan
+
A+B
Pengurangan
-
A–B
Perkalian
*
A*B
Pembagian
/ atau \
A / B atau A \ B
Perpangkatan
^
A^B
Pengetahuan tentang matrik adalah suatu hal yang sangat mendasar dalam pemrograman
MATLAB,
karena
semua
pola
operasi
matematika
akan
dikembalikan dalam pola operasi matematika matrik. Sebagai contoh adalah ketika melakukan deklarasi variable a yang diisi dengan nilai 5 dengan cara sebagai berikut :
Maka secara otomatis MATLAB akan mengenal variable a tersebut sebagai sebuah matrik yang memiliki dimensi 1 kali 1. dapat dibuktikan dengan cara sebagai berikut : Program Studi Teknik Industri UWP
8
Buku Ajar Pemrograman Komputer
Perbedaan akan sangat terasa ketika melakukan operasi yang melibatkan perkalian dan perhitungan. Sebagai contoh Saudara dapat mempergunakan kasus perhitungan luas dari data panjang dan lebar, kasus pertama disediakan masing-masing satu data panjang (5) dan satu data lebar (6), penyelesaian untuk kasus ini sebagai berikut :
Sedang untuk kasus kedua, disediakan masing-masing empat pasang data, panjang (2, 4, 3, 5) dan lebar (3, 5, 2, 3), jika menggunakan metoda yang sama menghasilkan pesan kesalahan :
Pesan tersebut adalah pesan kesalahan yang disebabkan oleh tidak terpenuhinya syarat perkalian matrik (ingat kolom matrik pertama harus sama dengan baris pada matrik kedua). Padahal yang kita inginkan bukan perkalian matrik melainkan perkalian antar pasangan data. Untuk menyelesaikan kasus tersebut kita hanya perlu menambahkan titik sebelum symbol operasi , sehingga hasilnya sebagai berikut :
Program Studi Teknik Industri UWP
9
Buku Ajar Pemrograman Komputer
keputusan untuk menggunakan operasi matematika antar elemen (menggunakan titik) atau operasi matematika antar matrik (tanpa titik) adalah sesuai kebutuhan anda sebagai pemrogram Operasi Bilangan Kompleks Kelebihan lain dari pemrograman MATLAB adalah kemampuannya dalam mengolah data bilangan kompleks tanpa membutuhkan deklarasi variable khusus untuk itu. Berikut adalah cara mendeklarasikan variable untuk bilangan kompleks.
Kesimpulannya, tidak ada perbedaan menggunakan pengenal i atau j untuk bilangan kompleks. Untuk keperluan perhitungan matematika tidak dibutuhkan fungsi khusus, misalnya sebagai berikut :
Program Studi Teknik Industri UWP
10
Buku Ajar Pemrograman Komputer Sedangkan untuk kebutuhan pemisahaan real dan imajiner dapat dengan mudah dilakukan, misalnya dengan contoh berikut :
Bentuk kompleks a + bi dalam aritmetika bilangan kompleks adalah bentuk rectangular, sedangkan bentuk polar dari bilangan kompleks tersebut direalisasikan dengan Magnitude dan sudut. Konversi dari bentukan rectangular ke polar dalam MATLAB dipenuhi melalui fungsi abs dan angle
Fungsi Matematika Umum Fungsi-fungsi matematika umum yang sering digunakan juga disediakan dalam pustaka fungsi MATLAB, antara lain sebagai berikut :
Program Studi Teknik Industri UWP
11
Buku Ajar Pemrograman Komputer Tabel 2.2. Fungsi Trigonometri Fungsi Trigonometri acos acosh acot acoth acsc acsch asec asech asin asinh atan atanh Cos Cosh Cot coth csc csch sec sech sin sinh tan tanh
Deskripsi Invers kosinus Invers hiperbola kosinus Invers kotangen Invers hiperbola kotangen Invers kosekan Invers hiperbola kosekan Invers sekan Invers hiperbola sekan Invers sinus Invers hiperbola sinus Invers tangent Invers hiperbola tangent Kosinus Kosinus hiperbola Kotangen Kotangen hiperbola Kosekan Kosekan hiperbola Sekan Sekan hiperbola Sinus Sinus hiperbola Tangent Tangent hiperbola
Prosedur Program Latihan 02.m (Penggunaan Fungsi Trigonometri) 1. Pada Command Window, ketikkan : >>
edit
2. Tekan enter, selanjutnya muncul MATLAB Editor dan Saudara ketik program dibawah berikut :
Program Studi Teknik Industri UWP
12
Buku Ajar Pemrograman Komputer 3. Setelah selesai mengetik program diatas, Saudara simpan di direktori c:/latihanku, dengan nama latihan02.m 4. Pastikan direktori penyimpanan file sudah terdapat didalam daftar pencarian direktori MATLAB. Lalu ketiklah nama file latihan02 tanpa ekstensi : >>
5
latihan02
Tekan Enter, selanjutnya program akan dijalankan, hasilnya sebagai berikut :
Penjelasan program latihan 02.m % ----------------------------------------------% Program latihan 2 % MATLAB Programming % oleh : Onny Purnamayudhia % ----------------------------------------------Tanda persen (%) digunakan untuk menulis komentar yang tidak akan diproses ketika eksekusi program. Biasanya digunakan untuk informasi program. Pada skrip bertipe function, bagian ini berguna untuk menempatkan info help-nya Clear all; Perintah ini digunakan untuk mengosongkan memori MATLAB dari semua variable yang pernah diola. clc; Perintah ini digunakan untuk membersihkan layar Command Window.
Program Studi Teknik Industri UWP
13
Buku Ajar Pemrograman Komputer disp(‘-------------------------------------------’); disp(‘Program Latihan 2’); disp(‘-------------------------------------------‘); Fungsi disp digunakan untuk menampilkan string didalam kurung. x = [0:10:180];
% membangkitkan data sudut
Membuat data x dari 0 sampai 180 dengan interval 10 y1 = sin (x*pi/180); y2 = cos(x*pi/180);
% kalkulasi sinus data x % kalkulasi sinus teta
Membuat perhitungan sinus dan kosinus dengan dari data x. perkalian x dengan pi dibagi 180 dimaksudkan untuk menghasilkan output dalam derajat. Karena default fungsi trigonometri adalah dalam radian. out = [x’ y1’ y2’] Menyimpan hasil perhitungan ke dalam variable out. Diakhiri tanpa titik koma untuk memunculkan output secara langsung ke layar. Penggunaan tanda petik setelah variable (x’) adalah untuk men-transpos data x menjadi columnar.
MATLAB juga menyediakan fungsi-fungsi matematika lainnya seperti : Tabel 2.3. Fungsi Eksponensial
2.
Fungsi Eksponensial
Deskripsi
Exp
Eksponensial
Log
Logaritma natural
Log10
Logaritma basis 10
Log2
Logaritma basis 2
Sqrt
Akar pangkat
Input dan Output Program Dinamis MATLAB menyediakan fasilitas untuk dapat berinteraksi langsung dengan program tanpa harus merubah skrip. Untuk meminta input dari user, MATLAB menyediakan fungsi input.
Program Studi Teknik Industri UWP
14
Buku Ajar Pemrograman Komputer Prosedur Program Latihan 03.m 1. Pada Command Window, ketikkan : >>
edit
2. Tekan enter, selanjutnya muncul MATLAB Editor dan Saudara ketik program dibawah ini :
3. Setelah selesai mengetik program diatas, Saudara simpan di direktori c:/latihanku, dengan nama latihan03.m 4. Pastikan direktori penyimpanan file Saudara sudah terdapat didalam daftar pencarian direktori MATLAB. Lalu ketiklah nama file latihan03 tanpa ekstensi >>
latihan03
5. Tekan Enter, selanjutnya program akan dijalankan, hasilnya sebagai berikut :
Program Studi Teknik Industri UWP
15
Buku Ajar Pemrograman Komputer Penjelasan program Latihan 03.m % ----------------------------------------------% Program latihan 3 % MATLAB Programming % oleh : Onny Purnamayudhia % ----------------------------------------------tanda persen (%) digunakan untuk menulis komentar yang tidak akan diproses ketika eksekusi program. Biasanya digunakan untuk informasi program. Pada skrip bertipe function, bagian ini berguna untuk menempatkan info help-nya. Clear all; Perintah ini digunakan untuk mengosongkan memori MATLAB dari semua variable yang pernah diolah. clc; Perintah ini digunakan untuk membersihkan layar Command Window. disp(‘-------------------------------------------’); disp(‘Program Latihan 3’); disp(‘-------------------------------------------‘); Fungsi disp digunakan dengan argument input bertipe string, ditandai dengan tanda petik didalam tanda kurung. Pjg = input (‘Data Panjang = ’); Lbr = input lebar = ’); Fungsi input(‘Data digunakan dengan argument input bertipe string, namun memiliki
argument output bertipe varian (bisa berupa string maupun numeric). Untuk contoh diatas, argument output adalah numeric. Luas = pjg * lbr;
Bagian ini adalah rumus yang digunakan untuk mengolah data input. disp ( [‘Luas -> ‘ num2str (luas) ] );
Fungsi disp tampil dengan gaya berbeda. Pada dasarnya sama dengan sebelumnya, tetapi pada pemunculan terakhir berupa penggabungan dua tipe data string dan numeric(luas). Maka untuk tipe penggabungan ini fungsi disp membutuhkan tanda [] didalam tanda kurungnya, dan variable luas yang bertipe numeric harus
Program Studi Teknik Industri UWP
16
Buku Ajar Pemrograman Komputer dikonversi menjadi string terlebih dahulu (menggunakan num2str) agar dapat bersanding dengan string lainnya didalam tanda kurung tersebut. 3.
Perulangan dan Kondisional – Control Flow Dalam membuat sebuah program yang lebih kompleks, MATLAB mempunyai sintak untuk mengatur aliran proses program. Pengontrol aliran proses program (Control Flow) terdiri dari 2 jenis yaitu perulangan dan kondisional. Control Flow 1 : Perulangan / Interasi / Looping Perulangan adalah jenis pengontrol yang berguna untuk mengefisienkan penulisan skrip program, khususnya untuk program-program yang membutuhkan proses berulang-ulang. Perulangan ini sering juga disebut sebagai iterasi atau looping. Untuk selanjutnya hanya menggunakan istilah iterasi. Iterasi Terbatas (for … end) Sintak iterasi ini digunakan untuk melakukan pengulangan proses yang telah diketahui jumlahnya. Misalnya untuk menghitung factorial 5, maka jelas diketahui jumlah iterasi adalah 5. Prosedur Program Latihan 04.m 1. Pada Command Window, ketikkan : >>
edit
2. Tekan enter, selanjutnya muncul MATLAB Editor dan Saudara ketik program dibawah ini :
Program Studi Teknik Industri UWP
17
Buku Ajar Pemrograman Komputer 3. Setelah selesai mengetik program diatas, Saudara simpan di direktori c:/latihanku, dengan nama latihan04.m 4. Pastikan direktori penyimpanan file Saudara sudah terdapat didalam daftar pencarian direktori MATLAB. Lalu ketiklah nama file latihan04 tanpa ekstensi >>
latihan04
5. Tekan Enter, selanjutnya program akan dijalankan, hasilnya sebagai berikut :
Penjelasan program latihan 04.m % ----------------------------------------------% Program latihan 4 % MATLAB Programming % oleh : Onny Purnamayudhia % ----------------------------------------------tanda persen (%) digunakan untuk menulis komentar yang tidak akan diproses ketika eksekusi program. Biasanya digunakan untuk informasi program. Pada skrip bertipe function, bagian ini berguna untuk menempatkan info help-nya. Clear all; Fungsi disp digunakan dengan argument input bertipe string, ditandai dengan tanda petik didalam tanda kurung. clc; Perintah ini digunakan untuk membersihkan layar Command Window.
Program Studi Teknik Industri UWP
18
Buku Ajar Pemrograman Komputer
disp(‘-------------------------------------------’); disp(‘Program Latihan 4’); disp(‘-------------------------------------------’); Fungsi disp digunakan dengan argument input bertipe string, ditandai dengan tanda petik didalam tanda kurung.
ndat = input (‘batas iterasi = ’); Meminta input batas iterasi dari user dan disimpan dalam variable ndat. for n = 1 : ndat for m = ndat : -1 : 1 Mulai melakukan proses iterasi didalam iterasi, dimana iterasi pertama adalah iterasi maju, dan iterasi kedua adalah iterasi mundur, ditandai dengan pemakaian nilai interval minus (-1) a (n , m) = n^2 + (5*m) Melakukan proses pengisian data elemen a satu demi satu sesuai rumus tertentu. Diakhiri tanpa tanda titik koma agar hasil setiap iterasi ditampilkan ke layar. end; end; Iterasi Terkondisi ( while … end ) Sintak iterasi ini digunakan untuk melakukan pengulangan proses tanpa diketahui jumlah pengulangannya. Iterasi jenis ini hanya berhenti melakukan pengulangan ketika mencapai syarat tertentu. Control Flow 2 : Kondisional / Percabangan Kondisional adalah pengontrol yang berguna untuk mengalihkan program ke proses tertentu. Biasanya digunakan untuk menyelesaikan program yang memiliki banyak proses tetapi dalam satu kesempatan eksekusi hanya menjalankan satu atau lebih proses pilihan berdasarkan syarat tertentu.
Program Studi Teknik Industri UWP
19
Buku Ajar Pemrograman Komputer Kondisional nilai relative ( if … elseif … else … end ) Sintak kondisional ini dapat digunakan untuk syarat yang berada dalam nilai interval tertentu maupun absolute, baik numeric maupun string. Sehingga paling umum digunakan oleh programmer. Cara penulisannya adalah sebagai berikut : if syarat1 perintah-perintah elseif syarat2 perintah-perintah else perintah-perintah end Prosedur Program Latihan 05.m 1. Pada Command Window, ketikkan : >>
edit
2. Tekan enter, selanjutnya muncul MATLAB Editor dan Saudara ketik program dibawah ini :
3. Setelah selesai mengetik program diatas, Saudara simpan di direktori c:/latihanku, dengan nama latihan05.m.
Program Studi Teknik Industri UWP
20
Buku Ajar Pemrograman Komputer 4. Pastikan direktori penyimpanan file Saudara sudah terdapat didalam daftar pencarian direktori MATLAB. Lalu ketiklah nama file latihan05 tanpa ekstensi >> Enter, latihan05 5. Tekan selanjutnya program akan dijalankan
Penjelasan program latihan 05.m % ----------------------------------------------% Program latihan 5 % MATLAB Programming % oleh : Onny Purnamayudhia % ----------------------------------------------tanda persen (%) digunakan untuk menulis komentar yang tidak akan diproses ketika eksekusi program. Biasanya digunakan untuk informasi program. Pada skrip bertipe function, bagian ini berguna untuk menempatkan info help-nya. Clear all ; Perintah ini digunakan untuk mengosongkan memori MATLAB dari semua variable yang pernah diolah. clc; Perintah ini digunakan untuk membersihkan layar command window. disp(‘-------------------------------------------’); disp(‘Program Latihan 5’); disp(‘-------------------------------------------’); fungsi disp digunakan untuk menampilkan tulisan ke layar dengan argument input bertipe string, ditandai dengan tanda petik didalam tanda kurung. uts1 = input ( ‘nilai uts1 = ’ ); uts2 = input ( ‘nilai uts2 = ’ ); uas = input ( ‘nilai uas = ’ ); meminta input data nilai uts1, uts2 dan uas dari user.
na = (uts1*20/100) + (uts2*30/100) + (uas*50/100); mengolah nilai akhir berdasarkan persentase tertent. disp ( [ ‘nilai akhir = ‘ num2str (na) ] ) ;
menampilkan nilai akhir
Program Studi Teknik Industri UWP
21
Buku Ajar Pemrograman Komputer
if na > 80 disp ( ‘ grade anda = A ’ ); elseif na <= 80 & na > 70 disp ( ‘ grade anda = B ’ ); elseif na <= 70 & na > 60 disp ( ‘ grade anda = C ’ ); elseif na <= 60 & na > 50 disp ( ‘ grade anda = D ’ ); else disp ( ‘ grade anda = E ’ ); end; mulai kondisional if, dengan menggunakan parameter input “na”. pada setiap segmen if akan melakukan penyaringan berdasarkan nilai “na” yang diperoleh sebelumnya. Jika terpenuhi syarat bahwa nilai tersebut berada dalam interval pada bagian tertentu maka akan dijalankan proses pada bagian tersebut. Proses yang dimaksud adalah menampilkan grade yang diperoleh. Cara penulisan syarat, menggunakan ekspresi matematika meliputi : == sama dengan ~=
tidak sama dengan
>
lebih besar dari
>= lebih besar atau sama dengan <
lebih kecil dari
<= lebih kecil atau sama dengan Untuk mengkombinasikan saudara gunakan operator logika berikut : & and / or ~ not Kondisional Nilai Absolut (switch … case … otherwise … end) Sintak kondisonal ini hanya dapat digunakan untuk syarat dengan nilai yang tidak berada dalam interval tertentu, bisa berupa numeric maupun String. Sintak perintah switch-case adalah sebagai berikut :
Program Studi Teknik Industri UWP
22
Buku Ajar Pemrograman Komputer
switch variable case value1 perintah-perintah case value2 perintah-perintah . . . otherwise perintah-perintah end Prosedur Program Latihan 06.m 1. Pada Command Window, ketikkan : >>
edit
2. Tekan enter, selanjutnya muncul MATLAB Editor dan Saudara ketik program dibawah ini :
3. Setelah selesai mengetik program diatas, Saudara simpan di direktori c:/latihanku, dengan nama latihan06.m 4. Pastikan direktori penyimpanan file Saudara sudah terdapat didalam daftar pencarian direktori MATLAB. Lalu ketiklah nama file latihan06 tanpa ekstensi Program Studi Teknik Industri UWP
23
Buku Ajar Pemrograman Komputer 5. Tekan Enter, selanjutnya program akan dijalankan. Penjelasan program Latihan 06.m % ----------------------------------------------% Program latihan 6 % MATLAB Programming % oleh : Onny Purnamayudhia % ----------------------------------------------tanda persen (%) digunakan untuk menulis komentar yang tidak akan diproses ketika eksekusi program. Biasanya digunakan untuk informasi program. Pada skrip bertipe function, bagian ini berguna untuk menempatkan info help-nya. Clear all ; Perintah ini digunakan untuk mengosongkan memori MATLAB dari semua variable yang pernah diolah. clc; Perintah ini digunakan untuk membersihkan layar command window. disp(‘-------------------------------------------’); disp(‘Program Latihan 6’); disp(‘-------------------------------------------’); fungsi disp digunakan untuk menampilkan tulisan ke layar dengan argument input bertipe string, ditandai dengan tanda petik didalam tanda kurung. disp ( ‘ Plihan Rumus Perhitungan ’) ; disp ( ‘ 1. Luas kotak ’ ) ; disp ( ‘ 2. Volume kotak ’ ) ; disp ( ‘ 3. Luas Silinder ’ ) ; disp ( ‘ 4. Volume Silinder ’ ) ; disp ( ‘ ’ );
menampilkan daftar pilihan perhitungan yang dapat dipilih. pilih=input ( ‘ pilihan anda ( 1 – 4 ) -> ’ ); meminta input pilihan dari user switch pilih mulai kondisional switch, dengan menggunakan parameter “pilih”.
Program Studi Teknik Industri UWP
24
Buku Ajar Pemrograman Komputer case 1 disp ( ‘ Hitung Luas Kotak ’ ); disp ( ‘ ---------------------------- ’ ); pjg=input ( ‘ panjang kotak = ’ ); lbr=input ( ‘ Lebar kotak = ’ ); tg=input ( ‘ tinggi kotak = ’ ); luas=2*pjg+2*lbr+2*tg disp ( [ ‘ luas kotak = ‘ num2str (luas) ] ); Segmen program jika parameter bernilai 1, program akan menjalankan proses perhitungan luas kotak. case 2 disp ( ‘ Hitung Volume Kotak ’ ); disp ( ‘ ---------------------------- ’ ); pjg=input ( ‘ panjang kotak = ’ ); lbr=input ( ‘ Lebar kotak = ’ ); tg=input ( ‘ tinggi kotak = ’ ); vol=pjg*lb*tg; disp ( [ ‘ volume kotak = ‘ num2str (luas) ] ); Segmen program jika parameter bernilai 2, program akan menjalankan proses perhitungan Volume kotak. case 3 disp ( ‘ Hitung Luas Silinder ’ ); disp ( ‘ ---------------------------- ’ ); r=input ( ‘ jari-jari silinder = ’ ); tg=input ( ‘ tinggi silinder = ’ ); luas=(2*pi*r*tg) + 2*(pi*r^2); disp ( [ ‘ luas silinder = ‘ num2str (luas) ] ); Segmen program jika parameter bernilai 3, program akan menjalankan proses perhitungan Luas Silinder case 4 disp ( ‘ Hitung Volume Silinder ’ ); disp ( ‘ ---------------------------- ’ ); r=input ( ‘ jari-jari silinder = ’ ); tg=input ( ‘ tinggi silinder = ’ ); vol=pi*r^2*tg; disp ( [ ‘ volume silinder = ’ num2str (vol) ] ); Segmen program jika parameter bernilai 4, program akan menjalankan proses perhitungan Volume silinder.
Program Studi Teknik Industri UWP
25
Buku Ajar Pemrograman Komputer
otherwise disp ( ‘ pilihan anda ngawuuurrrr!!! ’ ) end;
Segmen terakhir jika parameter bernilai selain 1 sampai 4, sekaligus menutup blok kondisional switch.
Program Studi Teknik Industri UWP
26
Buku Ajar Pemrograman Komputer BAB III TEKNIK DASAR MANIPULASI DATA
1.
Teknik 1 : Membangun data Secara sederhana MATLAB menyediakan beberapa teknik untuk membangun data dengan cepat, sebagai berikut :
Membangun data dengan elemen yang telah ditentukan Misalnya saudara akan membangun data x dengan nilai yang telah diketahui, maka cara penulisannya sebagai berikut :
Untuk data vector baris
Untuk data vector kolom
Membangun data dengan batas awal dan batas akhir Misalnya saudara ingin membuat data sudut dari sudut 30 derajat sampai 35 derajat, maka cara penulisannya adalah sebagai berikut :
Program Studi Teknik Industri UWP
27
Buku Ajar Pemrograman Komputer
Membangun data dengan batas awal, increment dan batas akhir. Misalnya saudara ingin membuat data sudut dari sudut 30 derajat sampai 90 derajat dengan pertambahan 10, maka cara penulisannya adalah sebagai berikut :
Membangun data dengan batas awal dan batas akhir, tetapi jumlah data ditentukan Misalnya saudara ingin membuat data 5 buah sudut dalam interval sudut 30 derajat sampai 90 derajat, maka cara penulisannya adalah sebagai berikut :
Membangun data logaritmik dengan batas awal dan batas akhir, tetapi jumlah data ditentukan Misalnya anda ingin membuat data 5 nilai yang berada dalam interval 10 2 dan 104, maka caranya adalah sebagai berikut :
Membangun data menggunakan standar matrix MATLAB Cara membuat data matrix dengan semua elemen bernilai 1 :
Program Studi Teknik Industri UWP
28
Buku Ajar Pemrograman Komputer
Membangun data Random Data random sangat sering digunakan dalam pemrograman, khususnya bidang pemodelan
matematika.
MATLAB
menyediakan
cara
cepat
untuk
membangkitkan data random sebagai berikut :
2.
Teknik 2 : Orientasi dan Augmentasi Data Merubah orientasi dan menempelkan data (data augmented) sangat umum digunakan dalam program. Antara lain :
Mengubah Orientasi data dengan Transpos
Menempelkan data pada baris
Program Studi Teknik Industri UWP
29
Buku Ajar Pemrograman Komputer
3.
Menempelkan data pada kolom
Teknik 3 : Pengurutan data Teknik pengurutan data sangat sering digunakan dalam program pengolahan data. MATLAB menyediakan fungsi khusus yaitu sort untuk melakukan pengurutan. Menggunakan sort dapat dengan dua cara. Cara pertama digunakan untuk mengurutkan data pada arah kolom, sintaknya sebagai berikut : var2=sort(var1,1) var1 adalah matrik atau vector yang akan diurutkan. Berikut adalah cara menggunakan dalam program :
Cara kedua digunakan untuk mengurutkan data pada arah baris, sintaknya sebagai berikut : var2=sort(var1,2)
Program Studi Teknik Industri UWP
30
Buku Ajar Pemrograman Komputer var1 adalah matrik atau vector yang akan diurutkan. Berikut adalah cara menggunakannya dalam program :
4.
Teknik 4 : Menyeleksi data Melakukan pemrograman untuk pengolahan data, pasti tidak lepas dari seleksi data. Menyeleksi data berarti menggunakan sebagian data dari sebuah data yang lengkap tanpa merusak ukuran maupun nilai data tersebut. Untuk melakukan seleksi data, saudara dapat mempergunakan ekspresi matematika =, ~=, >, >=, < dan <=
Program diatas maksudnya adalah menyeleksi elemen pada data a, dengan syarat elemen tersebut lebih besar dari 7, lalu hasilnya disimpan pada variable b. Prosedur Program Latihan 07.m 1. Pada Command Window, ketikkan : >>
edit
2. Tekan enter, selanjutnya muncul MATLAB Editor dan Saudara ketik program dibawah berikut :
Program Studi Teknik Industri UWP
31
Buku Ajar Pemrograman Komputer
3. Setelah selesai mengetik program diatas, Saudara simpan di direktori c:/latihanku, dengan nama latihan07.m 4. Pastikan direktori penyimpanan file sudah terdapat didalam daftar pencarian direktori MATLAB. Lalu ketiklah nama file latihan07 tanpa ekstensi : >>
latihan07
5. Tekan Enter, selanjutnya program akan dijalankan 6. pilihlah salah satu metoda dengan mengetikkan 1 atau 2 pada cursor, lalu bandingkan waktu runtime yang dibutuhkan.Untuk pilihan 1 program akan menggunakan waktu runtime yang lebih panjang dibandingkan pilihan 2!!! Penjelasan Program latihan 07.m % ----------------------------------------------% Program latihan 7 % MATLAB Programming % oleh : Onny Purnamayudhia % -----------------------------------------------
Program Studi Teknik Industri UWP
32
Buku Ajar Pemrograman Komputer tanda persen (%) digunakan untuk menulis komentar yang tidak akan diproses ketika eksekusi program. Biasanya digunakan untuk informasi program. Pada skrip bertipe function, bagian ini berguna untuk menempatkan info help-nya. Clear all; Perintah ini digunakan untuk mengosongkan memori MATLAB dari semua variable yang pernah diolah. clc; Perintah ini digunakan untuk membersihkan layar Command Window. disp(„-------------------------------------------‟); disp(„Program Latihan 7‟); disp(„-------------------------------------------„); disp(„Pilihan Konsep ‟); disp(„1. Hitung Iterasi Konvensional ‟); disp(„2. Hitung dengan Manipulasi Matrik ‟); disp(„ ‟); Fungsi disp digunakan untuk menampilkan tulisan ke layar dengan argument input bertipe string, ditandai dengan tanda petik didalam tanda kurung. pilih=input(„pilihan anda (1-2) -> „); Meminta input pilihan dari user
switch pilih Memulai kondisional switch dengan parameter “pilih”. case 1 disp ( „ Hitung Iterasi Konvensional ‟ ); disp ( „ ---------------------------------- ‟ ); segmen program jika parameter bernilai 1, program akan menjalankan perhitungan dengan konsep iterasi konvensional.
a=0; for i=1:100000 a=a+1; x(i)=a; end; Membangun data x dengan menggunakan iterasi konvensional
Program Studi Teknik Industri UWP
33
Buku Ajar Pemrograman Komputer for i =1 : 100000 if mod (x (i) , 3) = = 0 y (i) = x (i)^2+15; else y (i) = x (i)^2-25; end; end; y Menghitung nilai y dengan iterasi konvensional. Fungsi mod digunakan untuk mendapatkan nilai sisa pembagian dengan bilangan tertentu, dalam hal ini bilangan 3. jika nilai sisa adalah 0 perhitungan menggunakan rumus y = x 2+15, selain itu perhitungan menggunakan rumus y = x2-25. case 2 disp ( „ Hitung dengan Manipulasi Matrix ‟ ); disp ( „ ----------------------------------------- ‟ );
segmen program jika parameter bernilai 2, program akan menjalankan perhitungan dengan konsep manipulasi matrik yang dimiliki MATLAB. x = [ 1 : 100000 ]; membangun data dengan teknik MATLAB x1 = ( mod ( x , 3 ) = = 0 ) . *x ; x2 = ( mod ( x , 3 ) ~ = 0 ) . *x ; mencari nilai x yang habis dibagi dengan 3 dan yang tidak habis dibagi 3. disimpan sebagai x1 dan x2. y1 = ( x1. ^2+15 ). * ( mod ( x, 3 ) = = 0 ); y2 = ( x2. ^2-25 ). * ( mod ( x, 3 ) ~ = 0 ); y = y1 + y2 Menghitung nilai y dengan menggunakan teknik MATLAB
otherwise disp ( „ Pilihan anda ngawuur!!! ‟ ) end;
Program Studi Teknik Industri UWP
34
Buku Ajar Pemrograman Komputer BAB IV VISUALISASI DATA DENGAN MATLAB
1.
Teknik Visualisasi Dasar Umumnya, user MATLAB mulai tertarik menggunakan MATLAB setelah melihat sekilas kemampuan bahasa pemrograman ini dalam memvisualisasikan data numeric. Sebagai ilustrasi, misalnya kita inginkan sebuah program sederhana yang memperlihatkan grafik sinusoidal dari sudut 0 sampai 360. Pada command prompt MATLAB berturut-turut kita ketikkan sebagai berikut :
Memberi Judul dan Label Pada Grafik Untuk menambahkan judul grafik pada hasil plot kita menggunakan skrip berikut : Title ( ‘ --- judulnya --------------------’ );
dan untuk menambahkan label sumbu x pada hasil plot kita menggunakan skrip berikut : xlabel ( ‘ --- labelnya --------------------’ ); lalu untuk menambahkan label sumbu y pada hasil plot kita menggunakan skrip berikut : ylabel ( ‘ --- labelnya --------------------’ ); contoh program :
Program Studi Teknik Industri UWP
35
Buku Ajar Pemrograman Komputer Memunculkan Grid pada Grafik. Latar belakang grafik secara default berwarna putih dan polos. MATLAB menyediakan fungsi untuk membuat grid pada latar belakang grafik. Dengan menggunakan fungsi grid on dan grid off, akan terlihat tampilan yang berbeda. Contoh program
Mengubah Garis, Tanda dan Warna Pada Kurva Grafik Walaupun tampilan grafik yang diperoleh sudah memadai. Adakalanya kita menginginkan tampilan data tidak dalam bentuk grafik garis tetapi berupa titik, lingkaran atau kotak dan mungkin saja dalam warna yang berbeda-beda. Pada fungsi plot sebenarnya masih dapat diberikan beberapa parameter input yang berhubungan dengan tampilan, sehingga sintaknya sebagai berikut : plot ( x, y, symbol )
x dan y adalah variable data yang akan di plot. Symbol adalah karakter yang akan digunakan untuk menggantikan format tampilan default grafik. Symbol ini dapat berupa karakter tunggal maupun kombinasi dari beberapa karakter. Untuk mengisi symbol tersebut, tentu saja tidak sembarang. Berikut adalah table symbol yang dapat kita gunakan. Tabel 4.1. Simbol Symbol : -. --
Program Studi Teknik Industri UWP
Garis Solid line Dotted line Dash dot line Dash line
36
Buku Ajar Pemrograman Komputer Symbol . o x + * s d v ^ < > p h
Tanda Point Circle Cross Plus sign Asterisk Square Diamond Triangle (down) Triangle (up) Triangle (left) Triangle (right) Pentagram Hexagram
Symbol b g r c m y k w
Warna Blue Green Red Cyan Magenta Yellow Black White
Prosedur Program Latihan 08.m 1. Pada Command Window, ketikkan : >>
edit
2. Tekan enter, selanjutnya muncul MATLAB Editor dan Saudara ketik program dibawah ini :
Program Studi Teknik Industri UWP
37
Buku Ajar Pemrograman Komputer 3. Setelah selesai mengetik program diatas, Saudara simpan di direktori c:/latihanku, dengan nama latihan08.m 4. Pastikan direktori penyimpanan file sudah terdapat didalam daftar pencarian direktori MATLAB. Lalu ketiklah nama file latihan08 tanpa ekstensi : >>
latihan08
5. Tekan Enter, selanjutnya program akan dijalankan, dan hasilnya sebagai berikut :
Gambar 4.1. Grafik Plot Penjelasan Program Latihan 08.m % ----------------------------------------------% Program latihan 8 % MATLAB Programming % oleh : Onny Purnamayudhia % ----------------------------------------------tanda persen (%) digunakan untuk menulis komentar yang tidak akan diproses ketika eksekusi program. Biasanya digunakan untuk informasi program. Pada skrip bertipe function, bagian ini berguna untuk menempatkan info help-nya. Clear all; Perintah ini digunakan untuk mengosongkan memori MATLAB dari semua variable yang pernah diolah. clc; Perintah ini digunakan untuk membersihkan layar Command Window.
Program Studi Teknik Industri UWP
38
Buku Ajar Pemrograman Komputer
disp(‘-------------------------------------------’); disp(‘Program Latihan 8’); disp(‘-------------------------------------------‘); Fungsi disp digunakan untuk menampilkan tulisan ke layar dengan argument input bertipe string, ditandai dengan tanda petik didalam tanda kurung. sdt = [0 : 10 : 180]; y = sin (sdt*pi/180); membuat data sudut dari 0 sampai 180 dengan interval 10. dilanjutkan dengan menghitung nilai sinusnya dalam derajat (default MATLAB dalam radian).
Plot ( sdt, y, ‘*r’ ) Title ( ‘ Grafik Sinus ’ ); xlabel ( ‘ Sudut dalam derajat ’ ); ylabel ( ‘ Nilai sinus ’ ); menampilkan grafik dari data sudut dan nilai sinusnya. Perhatikan penggunaan fungsi plot, khususnya pada ‘*r’ yang artinya grafik menggunakan tanda asterisk (*) yang berwarna merah untuk menandai titik (x,y) pada grafik. Membuat Tampilan Grafik Overlay Masih pada fungsi plot, MATLAB memberikan keleluasaan pada user untuk menampilkan beberapa data secara tumpang tindih sekaligus pada satu grafik, berikut adalah sintaknya : plot ( x1, y1, simbol1, x2, y2, simbol2,… xn, yn, simboln ) Pointing 1, 2 sampai n menunjukkan jumlah layer grafik yang akan ditampilkan. Fungsi hold on dan hold off juga bisa digunakan. Hold on digunakan untuk menghidupkan fasilitas overlay. Hold off digunakan untuk mematikan fasilitas overlay pada grafik. Berikut adalah sintaknya : plot ( x1, y1, simbol1 ) ; hold on ; plot ( x2, y2, simbol2 ) ; hold on ; plot ( xn, yn, simboln ) ; Program Studi Teknik Industri UWP
39
Buku Ajar Pemrograman Komputer
Hasil program diatas menghasilkan grafik sebagai berikut :
Gambar 4.2. Grafik Overlay Membuat Tampilan Grafik Paralel Adakalanya saudara ingin membuat sebuah visualisasi yang memperbandingkan dua atau lebih grafik. Karena misalnya teknik overlay membuat grafik terlalu penuh dan membingungkan untuk menganalisa. MATLAB memberikan teknik khusus untuk itu. Yaitu dengan menggunakan fungsi subplot. Fungsi ini membuat seolah-
Program Studi Teknik Industri UWP
40
Buku Ajar Pemrograman Komputer olah grafik saudara sebagai sebuah elemen matrik dalam sebuah window. Sintaknya adalah sebagai berikut : Subplot (n_baris, n_kolom, i_grafik)
nbaris
: adalah jumlah elemen baris
nkolom : adalah jumlah elemen kolom igrafik
: adalah indeks grafik
Prosedur Program Latihan 09.m 1. Pada Command Window, ketikkan : >>
edit
2. Tekan enter, selanjutnya muncul MATLAB Editor dan Saudara ketik program dibawah ini :
3. Setelah selesai mengetik program diatas, Saudara simpan di direktori c:/latihanku, dengan nama latihan09.m 4. Pastikan direktori penyimpanan file sudah terdapat didalam daftar pencarian direktori MATLAB. Lalu ketiklah nama file latihan09 tanpa ekstensi : >>
latihan09
Program Studi Teknik Industri UWP
41
Buku Ajar Pemrograman Komputer 5. Tekan Enter, selanjutnya program akan dijalankan, dan hasilnya sebagai berikut :
Gambar 4.3. Grafik Paralel
Program Studi Teknik Industri UWP
42
Buku Ajar Pemrograman Komputer BAB V KONTROL PID
1.
Pengantar Pada bab ini mahasiswa diharapkan mampu memahami karakteristik dari setiap Pengontrol P, Pengontrol I, dan Pengontrol D serta bagaimana menggunakannya untuk mendapatkan respon yang diinginkan dengan menggunakan MATLAB. System yang digunakan adalah system unity feedback. Blok diagramnya adalah sebagai berikut : R
e +
Controller
-
u
Plant
Y
Gambar 5.1. System Unity Feedback Dimana : Plant
= System yang harus dikontrol
Controller = Menyediakan / memberikan rencana yang mantab, didesain untuk mengontrol tingkah laku yang menyeluruh dari system tersebut. 2.
Tiga Jenis Controller Fungsi transfer dari PID Controller akan tampak sebagai berikut : KDs2 + Kps + K1
K1 Kp +
+ KDs = s
s
Dimana : Kp KI KD
= Proportional gain = Integral gain = Derrivative gain
Cara kerja dari gambar 5.1. System Unity Feedback diatas adalah Variabel ( e ) menggambarkan tracking error, nilai masukan yang berbeda ( R ), keluaran actual ( Y ). Signal error ini akan dikirim ke PID controller, dan controller akan menghitung keseluruhan turunan dan integral dari signal error ini. Sinyal ( u ) yang telah melewati controller, sekarang sama dengan proporsional penguatan ( Kp ) Program Studi Teknik Industri UWP
43
Buku Ajar Pemrograman Komputer dikalikan ukuran kesalahannya ditambah penguatan integral ( Ki ) dikalikan ukuran kesalahan integralnya ditambah penguatan turunan ( Kd ) dikalikan ukuran kesalahan derivasinya. de u = Kpe + Ki e dt + KD dt Sinyal ( u ) akan dikirim ke plant, dan akan mendapatkan keluaran baru ( y ). Keluaran baru ( y ) ini akan dikirim kembali ke sensor untuk mencari kesalahan sinyal baru ( e ). Controller membawa kesalahan signal baru tersebut dan menghitung turunan-turunannya dan integral-integralnya sekali lagi. 3.
Karakteristik dari P, I, D Controller Proportional Controller (Kp) akan memberikan efek mengurangi waktu naik, tetapi tidak menghapus kesalahan keadaan tunak. Integral controller ( Ki ) akan memberikan efek menghapus kesalahan keadaan tunak, tetapi berakibat memburuknya respon transient. Derivative controller akan memberikan efek meningkatnya stabilitas system, mengurangi overshoot dan menaikkan respon transfer. Efek dari setiap controller (Kp, Kd, Ki) dalam system loop tertutup seperti pada table dibawah ini : Table 5.1. Karakteristik PID Controller Respon Loop
Waktu Naik
Overshoot
Waktu Turun
Tertutup
Kesalahan Keadaan Tunak
Kp
Menurun
Meningkat
Perubahan Kecil
Menurun
Ki
Menurun
Meningkat
Meningkat
Hilang
Kd
Perubahan
Menurun
Menurun
Perubahan
Kecil
Kecil
Dari table diatas terlihat bahwa hubungan korelasi tidak sepenuhnya akurat, karena Kp, Ki, dan Kd saling bebas. Untuk lebih jelasnya, mahasiswa dapat mempelajari pada definisi secara lengkap disertai dengan respon system dibawah ini dengan menggunakan MATLAB.
Program Studi Teknik Industri UWP
44
Buku Ajar Pemrograman Komputer 1)
Contoh Sistem Sebuah benda yang diberikan oleh massa 1 kg, peredam 10 N.s/m, pegas 20 N/m dan masukan 1, seperti gambar dibawah ini : x bx
F M
k
Gambar 5.2. Contoh Sistem Persamaan model dari system dibawah ini adalah : .. . Mx + bx + kx = F Ambil transformasi Laplace dari persamaan model : Ms2X(s) + bsX(s) + kX(s) = F(s) Fungsi transfer antara pergeseran X(s) dan masukan F(s) sehingga menjadi : X (s)
1 = Ms2 + bs + k
F (s)
Kemudian data soal dimasukkan kedalam fungsi transfer sebagai berikut : X (s)
1 =
F (s)
s2 + 10s + 20
Tujuan masalah ini adalah menunjukkan bagaimana Kp, Ki, dan Kd untuk mendapatkan :
Waktu naik yang cepat
Minimum overshoot
Tidak ada kesalahan tunak
Respon langkah terbuka disajikan dalam program command window : num = 1; den = [1 10 20]; step (num,den)
Program Studi Teknik Industri UWP
45
Buku Ajar Pemrograman Komputer hasil respon system :
Gambar 5.3. Respon langkah loop terbuka Dari grafik respon system diatas dapat dianalisa bahwa penguatan DC dari transfer fungsi ‘plant’ adalah 1/20, maka 0.05 adalah nilai akhir dari keluaran pada masukan sebuah langkah. Hal ini membuat kesalahan keadaan tunak 0.95 sebenarnya cukup besar. Terlebih lagi waktu naik sekitar satu detik dan waktu tunda sekitar 1.5 detik. 2)
Proportional Control Dari table diatas terlihat bahwa proportional controller (Kp) mengurangi waktu naik, meningkatkan overshoot dan mengurangi kesalahan keadaan tunak. Fungsi transfer loop tertutup dari system diatas dengan proportional controller adalah : X (s)
Kp =
F (s)
s2 + 10s + (20 + Kp)
Tentukan proportional gain (Kp) = 300 dan masukkan pada command window Matlab dibawah ini : Kp = 300; num = [Kp]; den = [1 10 20+Kp]; t = 0 : 0.01 : 2; step (num,den,t)
Program Studi Teknik Industri UWP
46
Buku Ajar Pemrograman Komputer hasil respon system :
Gambar 5.4. Respon langkah loop tertutup Dari grafik respon system diatas dapat dianalisa bahwa plot diatas memperlihatkan bahwa proporsional controller mereduksi waktu naik dan kesalahan keadaan tunak, meningkatkan overshoot, mengurangi waktu turun dalam skala kecil. 3)
Proportional – Derivative Control dari table diatas, terlihat jelas bahwa Derivatif controller (Kd) mereduksi baik itu overshoot maupun waktu turun. Fungsi transfer loop tertutup dari system diatas dengan PD controller adalah sebagai berikut : X (s)
KDS + Kp =
F (s)
s2 + (10+KD)S + (20 + Kp)
Tentukan Kp = 300 dan Kd = 10. masukkan pada command window Matlab dibawah ini : Kp = 300; Kd = 10; num = [Kd Kp]; den = [1 10+Kd 20+Kp]; t = 0 : 0.01 : 2; step (num, den, t)
Program Studi Teknik Industri UWP
47
Buku Ajar Pemrograman Komputer hasil respon system :
Gambar 5.5. Respon langkah dengan Proporsional Derricative Dari grafik respon system diatas dapat dianalisa bahwa plot tersebut menunjukkan derivative controller mereduksi overshoot dan waktu turun dan memberikan efek kecil pada waktu naik dan kesalahan keadaan tunak. 4)
Proportional Integral Control Berdasarkan table 5.1. respon PI Control menunjukkan bahwa I controller (Ki) menurun pada waktu naik, meningkat pada overshoot dan waktu turun dan menghilangkan kesalahan keadaan tunak. Sehingga didapatkan fungsi transfer loop-tertutup dengan PI Controller sebagai berikut : X (s)
Kps + Ki =
F (s)
s3 + 10 s2 + (20+Kp)S + Ki
Tentukan Kp = 30 dan Kd = 70. Masukkan pada command window Matlab dibawah ini : Kp = 30; Kd = 70; num = [Kp Ki]; den = [1 10 20+Kp Ki]; t = 0 : 0.01 : 2; step (num, den, t)
Program Studi Teknik Industri UWP
48
Buku Ajar Pemrograman Komputer hasil respon system :
Gambar 5.6. Respon langkah dengan Proporsional Integral Dari grafik respon system diatas dapat dianalisa bahwa respon system telah mereduksi Kp karena I controller juga mereduksi waktu naik dan meningkatkan overshoot seperti yang dilakukan P controller. Respon diatas menunjukkan bahwa I controller menghilangkan kesalahan keadaan tunak. 5)
PID Controller Fungsi transfer loop tertutup pada system yang dicontohkan dengan PID Controller adalah : X (s)
Kps² + Kps + Ki =
F (s)
s3 + (10+KD) s2 + (20+Kp)S + Ki
Setal beberapa trial dan error dijalankan, penguatan Kp = 50, Ki 50 Kd = 50 memberikan respon yang diinginkan. Masukkan data tersebut pada command window : Kp = 350; Ki = 300; Kd = 50; num = [Kp Ki]; den = [1 10+Kd 20+Kp Ki]; t = 0 : 0.01 : 2; step (num, den, t)
Program Studi Teknik Industri UWP
49
Buku Ajar Pemrograman Komputer hasil respon system :
Gambar 5.7. Respon langkah dengan PID
Program Studi Teknik Industri UWP
50