45
Pemrograman Matlab Simon Patabang, MT. http://spatabang.blogspot.co.id

3 pemrograman matlab

Embed Size (px)

Citation preview

Pemrograman Matlab

Simon Patabang, MT.

http://spatabang.blogspot.co.id

1. Algoritma

• Algoritma adalah langkah-langkah proses yang disusunsecara logis dan berurutan untuk menyelesaikan suatumasalah dengan tepat.

• Algoritma digunakan sebagai panduan langkah demilangkah untuk menuliskan program.

• Jika algoritma yang dibuat salah, maka penulisanprogramnya akan salah juga. Karena itu, algoritmasangat penting untuk dipelajari dan dikuasai denganbaik.

• Jika sudah terbiasa menggunakan algoritma untukmenulis program, maka semakin lama, kita dapatdengan mudah menulis progam, karena konsepalgoritma sudah dikuasai dengan baik.

Kriteria algoritma

• Kriteria algoritma adalah sebagai berikut :

– Setiap langkah harus jelas dan pasti

– Jumlah langkah harus berhingga atau harusselesai.

– Ditulis dengan kalimat yang mudah dipahamisehingga tidak menimbulkan arti ganda.

– Tuliskan dengan logika yang benar dan terstruktur

– Semua operasi atau proses disebutkan denganjelas.

Penyajian Algoritma :

Algoritma dapat disajikan dengan dua cara :

• Secara Tulisan, yaitu menuliskan deskripsi urutanlangkah-langkah penyelesaian masalah

• Flowchart, yaitu menggambarkan algoritma dengansimbol-simbol menurut urutan proses

Contoh :

Buatlah Algoritma untuk menghitung nilai y daripersamaan y = 6a + 2b

Penyelesaian :

Untuk mendapatkan nilai y, maka nilai a dan b harusdiketahui lebih dahulu. Nilai a dan b diperolehdengan menginput ke dalam program melaluikeyboard. Kemudian a dikalikan dengan 6 dan bdikalikan dengan 2. Hasil perkaliannya kemudiandijumlahkan untuk mendapatkan nilai y.

Algoritma :

– Mulai

– Deklarasikan variabel y, a, dan b

– Input Nilai a dan b

– Hitung nilai y = 6a + 2b

– Cetak nilai y

– Selesai

2. Flowchart

Dipakai sebagai alat bantu untuk menggambarkan aliranproses di dalam program berdasarkan algoritmapenyelesaian masalah.

Flowchart dapat dibagi menjadi tiga kelompok yaitu :

1. Simbol arah aliran proses; dipakai untuk menyatakanarah aliran proses program.

2. Simbol proses; menunjukkan jenis operasi pengola-han data dalam suatu program.

3. Simbol Input-output; menyatakan jenis peralatanyang digunakan sebagai media input atau output.

Simbol Arah Proses

• Simbol arah aliran proses

• Simbol untuk keluar – masuk ataupenyambungan proses pada lembar /halaman yang berbeda.

• Simbol untuk keluar – masuk ataupenyambungan proses dalam lembar/ halaman yang sama.

Simbol Proses Data

• Simbol yang menunjukkan pengolahandata yang dilakukan oleh komputer

• Simbol yang menunjukkan prosespengolahan yang tidak dilakukan olehkomputer

• Simbol yang menyatakan prosespengambilan keputusan denganmengecek suatu kondisi apakah salahatau benar.

• Simbol untuk mempersiapkan variable penyimpanan yang akan digunakan sebagai tempat pengolahan data di dalam memori

• Simbol untuk menyatakanpermulaan atau akhir dari suatu program

• Simbol yang menunjukkan bahwa data di dalam symbol ini akan disimpan secara manual

Simbol Input-output• Symbol yang menyatakan input dari

keyboard atau output ke layar atau keharddisk.

• Symbol yang menyatakan input berasaldari harddisk atau output ditulis keharddisk

• Symbol yang menyatakan peralatanoutput yang digunakan yaitu layar,plotter, printer, dan sebagainya

• Symbol untuk menyatakan inputberasal dari mesin jumlah/hitung

3. Kontrol Program

• Perintah if digunakanuntuk memeriksa se-buah kondisi.

• Jika kondisi tersebutbenar, maka kerjakanpernyataan di bahwaperintah if.

• Jika kondisi bernilaisalah, maka lanjutkanproses lainnya setelahend.

Bentuk perintah :

If <kondisi>< pernyataan >

end

1. If-end

Flowchart :Contoh :

clc;

disp('Contoh Program If-end')

n = input('Input n= ');

if n<5

disp('n lebih kecil dari 5')

end

Bentuk Perintah :

If <kondisi-1><pernyataan-1>

else <pernyataan-2>

end

• Perintah if-else-end digunakanuntuk memeriksa sebuahkondisi.

• Jika kondisi tersebut benar,maka kerjakan perintah dibawah perintah if.

• Jika kondisi bernilai salah,maka kerjakan perintah dibawah else.

2. If-else-end

Flowchart : Contoh:

clc;disp('Contoh Program If-

else-end')n = input('Input n= ');if n<5

disp('n lebih kecil dari5')

elsedisp('n lebih besar sama dengan dari 5')

end

Bentuk perintah :

If kondisi-1<pernyataan-1>

Else if kondisi-2<pernyataan-2>…………

Else kondisi-n<pernyataan-n>

Else<pernyataan-n+1>End

3. If-else if-else-endPerintah if-else-end digunakan untuk memeriksadua buah kondisi atau lebih.

Penjelasan

• Jika kondisi-1 benar, maka kerjakan <pernyataan-1>.

• Jika kondisi-1 bernilai salah, maka periksa kondisi-2.

• Jika kondisi-2 benar, maka kerjakan <pernyataan-2>.

• Jika kondisi-2 bernilai salah, maka periksa kondisi-3. Jikakondisi-3 benar, maka kerjakan <pernyataan-3>

• Jika kondisi bernilai salah, maka periksa kondisiselanjutnya hingga kondisi ke-n.

• Jika semua kondisi bernilai salah, maka kerjakanperintah dibawah else.

Contoh :

clc;disp('Contoh Program IF-elseif-else-end')disp(' ')n = input('Input n= ');if n<5

disp('n lebih kecil dari dengan 5')Else if n>5

disp('n lebih besar dari 5')else

disp('n sama dengan 5')end

Kontrol ForDigunakan untuk melakukan perulangan sebanyak n kali, mulai n1 hingga n2.

Bentuk perintah :

For nama_var= n1: inkrimen : n2<pernyataan-1>

End<pernyataan-2>

n1 adalah nilai awal perulangann2 adalah nilai akhir perulanganInkrimen adalah jarak pertambahan nilai

Penjelasan :

<pernyataan-1> akan dikejakan sebanyak n kali mulaidari n1 hingga n2. Setelah selesai, maka akanmengerjakan <pernyataan-2> dan seterusnya.

Flowchart :

Contoh :

• for n=1:1:10 artinya perulangan dilakukan mulai darinilai n=1 hingga n=10 dengan pertambahan 1.

• for k=10:-1:1, artinya perulangan dilakukan mulaidari nilai k=10 hingga n=1 dengan pertambahan -1.

• for i=2:3:20, artinya perulangan dilakukan mulai nilaidari i=2 hingga n=20 dengan pertambahan 3.

Contoh :

Buatlah flowchart dan program untuk mencetak dan menjumlahkan deret bilangan 1 hingga n dengan rumus m = 1 + 2 + 3 + … + … + … n

Algoritma program:

Step 1: Definisikan jumlah nilai awal = 0Step 2: input nilai nStep 3: Buat perulangan for mulai dari k=1 hingga k=n, for

k=1:1:nStep 4: Hitung nilai m = m + kStep 5: Ulangi Step 2Step 6: Cetak nilai n

%Perulangan for%Mencetak dan menjumlahkan angka 1 hingga n.

clc;a=[]; % Tentukan variabel vektor am=0; %nilai awal penjumlahann=input('Input nilai n = ');for k = 1:1:n

a(k) = k;m=m+k;

enddisp(['Deret = ',num2str(a)])disp(['Jumlah = ',num2str(m)])

Keluaran program :

Input nilai n = 20

Deret = 1 3 5 7 9 11 13 15 17 19

Jumlah = 100

Contoh :

Buatlah algoritma dan program untukmenghitung n ! (n faktorial).

Rumus :

n! = n x (n-1) x (n-2) x (n-3) x … x 2 x 1

Algoritma program:

Step 1: input nilai n

Step 2: Buat perulangan for mulai dari k=n-1 hingga k=1, for k=n-1:-1:1

Step 3: Hitung nilai n = n x k

Step 4: Ulangi Step 2

Step 5: Cetak nilai n

Program :

% Loop for % Untuk menghitung n Faktorial% ================================clc;n=input('Input nilai n = ');for i = n-1:-1:1

n = n*i;enddisp(['n ! =',num2str(n)])

2. Buatlah program untuk menghitung nilaiPermutasi dengan rumus :

!

( )!

r

n

nP

n r

Algoritma program:

1.Input nilai n2.Input nilai r3.Hitung m=n-r4.Hitung n!5.Hitung m!6.Hitung Permutasi P=n/m7.Cetak P

Program :

% Loop for untuk menghitung Permutasi% =================================clc;disp('Program untuk menhitung Permutasi')n=input('Input nilai n = ');r=input('Input nilai r = ');m=n-r;for i = n-1:-1:1

n = n*i;End

%Hitung faktorial (n-r)!for i = m-1:-1:1

m = m*i;End

%Hitung Permutasip=(n/m);

%Cetak hasil perhitungandisp(['n ! =',num2str(n)])disp(*‘(n - r)! =',num2str(m)])disp(['P =',num2str(p)])

3. Buat program untuk menghitung Nilai combinasi.Rumus :

Algoritma program :1.Input nilai n2.Input nilai r3.Hitung m=n-r4.Hitung n!5.Hitung m!6.Hitung r!7.Hitung Combinasi C = n/(m.r)8.Cetak C

!

( )! !

r

n

nC

n r r

Program :

% Loop for untuk menghitung n Combinasi% ================================clc;disp('Program untuk menghitung Permutasi')n=input('Input nilai n = ');r=input('Input nilai r = ');m=n-r;for i = n-1:-1:1

n = n*i;End

%Hitung faktorial (n-r)!for i = m-1:-1:1

m = m*i;endfor i = r-1:-1:1

r = r*i;endc=n/(m*r);disp(['n ! =',num2str(n)])disp(['n - r)! =',num2str(m)])disp(['C ! =',num2str(c)])

4. Buatlah program untuk menghitung DeretFibonacci dengan pola 0, 1, 1, 2, 3, 5, 8, 13, 21,34,…., kemudian jumlahkan semua bilangan.

Rumus :

0

( ) 1

( 1) ( 2)

F n

F n F n

Untuk n =1

Untuk n =2

Untuk n >2

Algoritma :

1. Input nilai n2. Definisikan nilai awal, F=[0 1]3. Definisikan nilaw awal jumlah, JF=14. Buat perulangan untuk i=3 hingga n5. Hitung deret, F(i) = F(i-1) + F(i-2)6. Jumlahkan deret, JF=JF+F(i)7. Ulangi langkah 48. Cetak deret Fibonacci F dan jumlahnya JF

Program :

% Loop for

% Untuk menghitung Deret Fibonacci

% ================================

clc;

disp('Program untuk Menghitung DeretFobonacci')

n=input('Input nilai n = ');

F=[0 1];

JF=1;

for i = 3:1:n

F(i)=F(i-1)+F(i-2);

JF=JF+F(i);

end

disp(['F = ',num2str(F)])

disp(['Jumlah = ',num2str(JF)])

3. Kontrol while-endUlangi soal 4 dengan menggunakan kontrol while-end.

Algoritma :

1. Input nilai n2. Definisikan nilai awal, F=[0 1]3. Definisikan nilai awal jumlah, JF=14. Definisikan nilai awal i=35. Buat perulangan while untuk i >=3 hingga n6. Hitung deret, F(i) = F(i-1) + F(i-2)7. Jumlahkan deret, JF=JF+F(i)8. Tambahkan variabel i dengan 1, i= i + 19. Ulangi langkah 510. Cetak deret Fibonacci F dan jumlahnya JF

Program :

% Loop while

% Untuk menghitung Deret Fibonacci

% ================================

clc;

disp('Program untuk Menghitung DeretFobonacci')

n=input('Input nilai n = ');

F=[0 1];

JF=1;i=3;

while i<=n

F(i)=F(i-1)+F(i-2);

JF=JF+F(i);

i=i+1;

end

disp(['F = ',num2str(F)])

disp(['Jumlah = ',num2str(JF)])

4. Kontrol Break dan Continue

• Buat program untuk menginput data nmaksimum 10. Jika lebih, maka hentikanproses. Jika kurang dari 10, lanjutkan proses.Untuk i=1 s/d 5, proses perintah dalamperulangan, Jika i>5, keluar dari loop

Program :

clc;

disp('Contoh Penggunaan break dan continue')

disp('=================================')

disp(' ')

n=input('Input nilai n (maks 10) = ');

if (n>10)

disp('Anda menginput data lebih dari 10')

break;

end

for i=1:n

if (i<=5)

fprintf('Nilai %i lebih kecil atau sama dengan dari 5 \n',i);

continue;

end

fprintf('Nilai %i. lebih besar dari 5 \n',i);

end

Latihan :

1. Buat program untuk menghitung luas,keliling, dan volume balok.

2. Buat program untuk menghitung n faktorialdengan menggunakan kontrol while-end.

3. Buat program untuk menghitung y=x2 untuknilai x=-n sampai n

Sekian