• Tidak ada hasil yang ditemukan

Analisis Kasus - MATLAB. Tim Penyusun Materi Pengenalan Komputasi Institut Teknologi Bandung 2019

N/A
N/A
Protected

Academic year: 2021

Membagikan "Analisis Kasus - MATLAB. Tim Penyusun Materi Pengenalan Komputasi Institut Teknologi Bandung 2019"

Copied!
39
0
0

Teks penuh

(1)

Analisis Kasus - MATLAB

Tim Penyusun Materi Pengenalan Komputasi Institut Teknologi Bandung © 2019

(2)

Tujuan

• Mahasiswa dapat menjelaskan pengertian dan jenis-jenis analisis kasus

• Mahasiswa dapat menggunakan notasi analisis kasus dengan benar

• Mahasiswa dapat memanfaatkan jenis-jenis analisis kasus dalam menyelesaikan persoalan sederhana yang diberikan

20/09/2021 KU1072/Pengenalan Komputasi B 2

(3)

Contoh-1: Memilih Mangga

• Analisis kasus dapat digunakan dalam kehidupan sehari-hari, contoh: memilih mangga

• Mangga yang sudah matang dan siap dimakan adalah

mangga yang berwarna kuning

• Jika tidak berwarna kuning maka tidak matang

(4)

Flowchart

Memilih Mangga

20/09/2021 KU1072/Pengenalan Komputasi B 4

Pilih Mangga

Matang

Apakah kuning?

Tidak Matang

ya tidak

Mulai

Selesai

(5)

Memilih Mangga - Pseudocode

PilihMangga

if (ApakahKuning? = true) then Matang

else { ApakahKuning? = false}

Tidak Matang

(6)

Contoh-2:

Menyiapkan kentang untuk makan malam

• Berdasarkan pengamatan, ada hari-hari di mana ibu memakai celemek ketika mengupas kentang, tapi ada hari-hari lain yang tidak

Setelah diamati, ternyata jika ibu sedang memakai baju berwarna cerah, maka ibu memakai celemek  takut bajunya terlihat kotor 

Jika tidak (memakai baju berwarna gelap), maka ibu tidak memakai celemek

20/09/2021 KU1072/Pengenalan Komputasi B 6

(7)

Kondisi:

Apakah memakai baju

warna cerah

Kasus-1:

Ya

Kasus- 2:

Kupas kentang Pakai celemek

(8)

Flowchart: Menyiapkan kentang untuk makan malam

20/09/2021 KU1072/Pengenalan Komputasi B 8

Mulai

Keadaan awal:

Kentang Tersedia

Apakah memakai baju warna

cerah?

Cek warna baju

Pakai

celemek Kupas

Kentang Selesai

Keadaan akhir:

Kentang Terkupas

Ya Tidak

(9)

Menyiapkan kentang untuk makan malam – Pseudocode

CekWarnaBaju

if (ApakahBajuWarnaCerah? = ya) then PakaiCelemek

{ else : ApakahBajuWarnaCerah? = tidak, tidak melakukan apa-apa } KupasKentang

(10)

20/09/2021 KU1072/Pengenalan Komputasi B 10

Analisis Kasus (1)

• Memungkinkan kita membuat teks yang sama, namun menghasilkan eksekusi berbeda

Sering disebut percabangan / kondisional

Dari satu langkah ada pilihan (bercabang) ke beberapa langkah

• Terdiri atas:

Kondisi: ekspresi yang menghasilkan true dan false

Aksi: statement yang dilaksanakan jika kondisi yang berpasangan dengan aksi dipenuhi

(11)

Analisis Kasus (2)

• Analisis kasus harus memenuhi 2 kriteria:

COMPLETE: semua kasus terdefinisi secara lengkap

DISJOINT: tidak ada kasus yang tumpang tindih/overlapped

• Contoh: Diberikan sebuah bilangan bulat, misalnya A, nyatakan apakah bilangan tersebut adalah bilangan positif, negatif, atau nol

Ada 3 kasus yang complete dan disjoint:

A > 0

A < 0

A = 0

Tidak ada kasus lain yang bisa ddefinisikan dan ketiga kasus tersebut tidak tumpang tindih

(12)

Sintaks Umum

20/09/2021 Pengenalan Komputasi 12

if ( kondisi ) aksi-1

else % kondisi = false aksi-2

end

if ( kondisi ) then aksi-1

else { kondisi=false } aksi-2

Pseudocode

kondisi

aksi-1 true

aksi-2 false flowchart

MATLAB

(13)

Jenis Analisis Kasus (dalam MATLAB)

if ( kondisi ) aksi-1 end

% jika kondisi=false

% tidak didefinisikan aksi

Satu Kasus

if ( kondisi ) aksi-1

else % kondisi=false aksi-2

Dua Kasus [Komplementer]

if (kondisi-1) aksi-1

else if (kondisi-2) aksi-2

else if ... % kondisi-3 dst.

...

else % kondisi-n aksi-n

end end

end

Banyak Kasus

Pseudocode dan flowchart silakan disesuaikan

(14)

Contoh-3: Apakah bilangan positif [Contoh Satu Kasus]

• Diberikan sebuah bilangan bulat, misalnya A, nyatakan apakah bilangan tersebut adalah bilangan positif atau bukan

Kondisi: Apakah A > 0?

Kasus:

Jika ya, maka: tuliskan “Positif”

Jika tidak, tidak dilakukan apa pun

20/09/2021 KU1072/Pengenalan Komputasi B 14

(15)

Contoh-3: Pseudocode + Flowchart

input(A)

if (A > 0) then

output(“Positif”)

{ else: tidak dilakukan apa pun }

Mulai

input(A)

output (“Positif”)

A > 0

false true

Pseudocode

Flowchart

(16)

Contoh-3: MATLAB

% Program CetakPositif

% Input A; jika A >= 0, cetak "positif"

% KAMUS

% A : int

% ALGORITMA A = input('');

if (A >= 0)

disp ('positif');

end

% else: tidak dilakukan apa pun

20/09/2021 KU1072/Pengenalan Komputasi B 16

(17)

Contoh-4: Genap atau Ganjil?

[Contoh Dua Kasus Komplementer]

• Buatlah program yang menerima masukan sebuah integer positif (asumsikan masukan pasti benar), misalnya N, kemudian tentukan apakah bilangan tersebut genap atau ganjil.

• N adalah bilangan genap jika N mod 2 = 0; jika N mod 2 = 1, maka N adalah bilangan ganjil

Tidak ada kasus lain.

• Kasus:

Jika N mod 2 = 0 maka cetak “genap”

Jika tidak (N mod 2 = 1), maka cetak “ganjil”

(18)

Contoh-4: Pseudocode + Flowchart

20/09/2021 Pengenalan Komputasi 18

Pseudocode Flowchart

output (“genap”)

true false

mulai

input(N)

selesai

output (“ganjil”)

N mod 2 = 0

input(N)

if (N mod 2 = 0) then output(“genap”) else { N mod 2 = 1 }

output(“ganjil”)

(19)

Contoh-4: MATLAB

% Program GenapGanjil

% Input N>0. Jika N genap, cetak "genap"

% Jika tidak, cetak "N ganjil"

% KAMUS

% N : int

% ALGORITMA

N = input('') % Asumsi N > 0 if (mod(N,2) == 0)

disp('genap') else % mod(N,2) = 1

disp('ganjil’) end

(20)

Contoh-5: Positif, Negatif, atau Nol?

• Buatlah program yang menerima masukan sebuah integer, misalnya N, dan menentukan apakah N adalah bilangan bulat positif, negatif, atau nol

• Kasus:

Jika N > 0; cetak “positif”

Jika N < 0, cetak “negatif”

Jika N = 0; cetak “nol”

20/09/2021 KU1072/Pengenalan Komputasi B 20

(21)

Contoh-5: Pseudocode + Flowchart

Pseudocode Flowchart

input(N)

if (N > 0) then

output(“genap”) else if (N < 0) then

output(“negatif”) else { N = 0 }

output(“nol”)

N

output (“positif”)

N > 0

N < 0

mulai

input(N)

output (“negatif”)

N = 0

output (“nol”)

Jika banyak kasus boleh dituliskan

spt ini.

(22)

Contoh-5: MATLAB

20/09/2021 KU1072/Pengenalan Komputasi B 22

% Program Bilangan

% Input N. Tentukan apakah N positif, negatif, atau nol.

% KAMUS

% N : int

% ALGORITMA N = input('');

if (N > 0)

disp('positif');

else if (N < 0)

disp('negatif');

else % N = 0 disp('nol');

end end

(23)

Latihan Soal

• Untuk soal-soal berikut berlatihlah untuk membuat:

Flowchart atau Pseudocode (silakan pilih, atau ditentukan oleh dosen kelas)

Program MATLAB yang bersesuaian

(24)

Latihan-1: Maksimum 2 bilangan

• Buatlah sebuah program yang membaca masukan 2 buah bilangan bulat, misalnya A dan B, dan tuliskan di antara kedua bilangan

tersebut mana yang paling beasr

• Kasus:

Jika A > B, maka bilangan terbesar = A

Jika A < B, maka bilangan terbesar = B

Jika A = B, maka bilangan terbesar adalah A atau B (berarti output akan sama seperti salah satu dari 2 kasus di atas)

• Apakah ini 3 kasus atau hanya 2 kasus?

20/09/2021 KU1072/Pengenalan Komputasi B 24

(25)

Latihan-2. Wujud Air

• Buatlah sebuah program yang menerima suhu air (dalam derajat celcius) dan menuliskan wujud air ke layar yaitu beku, cair, atau uap.

Jika suhu air <= 0 derajat, maka tuliskan “beku”

Jika suhu air > 0 dan < 100 derajat, maka tuliskan “cair”

Jika suhu air >= 100, maka tuliskan “uap”

(26)

Latihan-3. Total Hambatan Seri

• Buatlah program yang menerima 3 buah hambatan (R1, R2, R3) dan menghasilkan hambatan total (RT) jika dirangkai seri.

RT = R1 + R2 + R3

• R1, R2, dan R3 tidak boleh bernilai negatif. Jika satu saja hambatan bernilai negatif, maka total hambatan tidak bisa dihitung dan

tuliskan ke layar pesan kesalahan “Hambatan total tidak bisa dihitung”.

20/09/2021 KU1072/Pengenalan Komputasi B 26

(27)

Latihan-4. Rangking 3 Bilangan

• Diberikan 3 buah integer yang dibaca dari keyboard, misalnya A, B, C. Asumsikan bahwa ketiga bilangan tersebut berbeda.

• Tuliskan ke layar ketiga bilangan tersebut dalam urutan dari yang terbesar sampai yang terkecil.

• Contoh: A = 1, B = -1, C = 2

Maka tertulis di layar: 2 1 -1

(28)

Alternatif Solusi Latihan

Hanya untuk dosen

20/09/2021 Pengenalan Komputasi 28

(29)

Latihan-1: Maksimum 2 bilangan

• Hanya ada 2 kasus, alternatifnya:

Jika A >= B, maka bilangan terbesar adalah A

Jika A < B (komplemen dari kasus di atas), maka bilangan terbesar = B

• Ada alternatif lain

(30)

Latihan-1: Pseudocode + Flowchart

20/09/2021 Pengenalan Komputasi 30

Pseudocode Flowchart

output (A)

true false

mulai

input(A,B)

selesai

output (B)

A >= B

input(A, B)

if (A >= B) then output(A) else { A < B }

output(B)

(31)

Latihan-1: MATLAB

% Program Max2Integer

% Menuliskan nilai terbesar dari masukan 2 integer

% KAMUS

% A, B : int

% ALGORITMA A = input('');

B = input('');

if (A >= B) disp(A);

else % A < B disp(B);

end

(32)

Latihan-2: Pseudocode + Flowchart

20/09/2021 Pengenalan Komputasi 32

Pseudocode Flowchart

input(T) { T adalah suhu air}

if (T <= 0) then

output(“beku”)

else if (T > 0 and T < 100) then output(“cair”)

else { T >= 100 } output(“uap”)

T

output (“beku”)

T<=0

T > 0 and T < 100 mulai

input(T)

selesai output (“cair”)

T >= 100

output (“uap”)

Jika banyak kasus boleh dituliskan

spt ini.

(33)

Latihan-2: MATLAB

% Program WujudAir

% Menuliskan wujud air tergantung masukan suhu

% KAMUS

% T : float

% ALGORITMA T = input('');

if (T <= 0)

disp ('beku');

else if (T > 0 && T < 100) disp ('cair');

else % T >= 100 disp ('uap');

end

(34)

Latihan-3: Total Hambatan Seri

• Kasus:

Jika R1 >= 0 dan R2 >= 0 dan R3 >= 0, maka hitung total hambatan dengan rumus: RT = R1 + R2 + R3

Jika tidak, yaitu R1 <= 0 atau R2 < 0 atau R3 < 0, maka tuliskan pesan kesalahan “Total hambatan tidak bisa dihitung”

20/09/2021 Pengenalan Komputasi 34

(35)

Latihan-3: Pseudocode + Flowchart

Pseudocode Flowchart

output (R1+R2+R3)

true false

mulai

input(R1,R2,R3)

output (“Hambatan total tidak bisa

dihitung”)

R1>=0 and R2>=0 and R3>=0

input (R1, R2, R3)

if (R1 >= 0) and (R2 >= 0) and (R3 >= 0) then output(R1+R2+R3)

else {R1 < 0 or R2 < 0 or R3 >= 0}

output(“Hambatan total tidak bisa dihitung”)

(36)

Latihan-3: MATLAB

20/09/2021 Pengenalan Komputasi 36

% Program HambatanSeri;

% Menghitung hambatan total berdasarkan hambatan R1, R2, R3

% KAMUS

% R1, R2, R3 : float

% ALGORITMA

R1 = input(''); R2 = input(''); R3 = input('');

if ((R1 >= 0) && (R2 >= 0) && (R3 >= 0)) disp (R1 + R2 + R3);

else % R1 < 0 atau R2 < 0 atau R3 < 0

disp('Hambatan total tidak bisa dihitung');

end

(37)

Latihan-4: Rangking 3 bilangan (1)

• Beberapa alternatif solusi:

1. Enumerasi hubungan antara A, B, C  ada 6 kasus:

1. A > B > C  A B C 2. A > C > B  A C B

3. … ( lanjutkan sendiri )

2. Tentukan nilai maksimum antara 2 bilangan, lalu baru ditentukan posisi terhadap bilangan ke-3. Contoh:

1. A > B, maka A pasti di sebelah “kiri” B. Tinggal tentukan posisi C.

1. Jika B > C, maka: A B C

2. Jika B < C, maka C pasti di “kiri” B, tergantung posisi C terhadap A:

1. Jika A > C, maka: A C B 2. Jika A < C, maka: C A B 2. A < B … (lanjutkan)

(38)

Latihan-4: Rangking 3 bilangan (2)

• Beberapa alternatif solusi:

3. Cari nilai terbesar dari A, B, C, lalu tentukan posisi 2 bilangan lainnya

1. A > B and A > C, maka:

1. Jika B > C, maka: A B C 2. Jika B < C, maka: A C B 2. B > A dan B > C, maka:

1. Jika A > C, maka: B A C 2. Jika A < C, maka: B C A 3. … ( lanjutkan sendiri )

4. … ada alternatif lain??

20/09/2021 Pengenalan Komputasi 38

(39)

Latihan-4:

MATLAB

% Program Rangking3Bilangan;

% Menerima masukan 3 bilangan: A, B, C

% Cetak ketiga bilangan terurut mengecil berdasarkan nilai

% Asumsi A, B, C berbeda

% KAMUS

% A, B, C : int

% ALGORITMA

A = input(''); B = input(''); C = input('');

if (A > B > C) % sama dengan (A > B) && (B > C)

disp ([num2str(A), ' ', num2str(B), ' ', num2str(C)]);

else if (A > C > B)

disp ([num2str(A), ' ', num2str(C), ' ', num2str(B)]);

else if (B > A > C)

disp ([num2str(B), ' ', num2str(A), ' ', num2str(C)]);

else if (B > C > A)

disp ([num2str(B), ' ', num2str(C), ' ', num2str(A)]);

else if (C > A > B)

disp ([num2str(C), ' ', num2str(A), ' ', num2str(B)]);

else % C > B > A

disp ([num2str(C), ' ', num2str(B), ' ', num2str(C)]);

end end

end

Alternatif Solusi 1

num2str: fungsi untuk

mengkonversi bilangan numerik

menjadi string

Referensi

Dokumen terkait

Permasalahan dalam penelitian ini apakah ada hubungan tinggi hak sepatu terhadap kasus nyeri plantaris pada karyawan wanita yang bekerja di MDS.. Rancangan penelitian

• Tiap sub bagian dapat didefinisikan sebagai fungsi yang tinggal dipanggil sebagai 1 baris atau ekspresi dalam program utama. • Code reuse instead of

• Buatlah program yang membaca sebuah matriks dengan elemen integer, misalnya M, dan masukan sebuah nilai integer, misalnya X dan selanjutnya mengalikan setiap elemen matriks M

Peringkat Poltekkes dengan Publikasi Terbanyak Nasional No Nama Jumlah 1Poltekkes Padang 32 2Poltekkes Surakarta 31 3Poltekkes Bengkulu 30 4Poltekkes Yogyakarta 29 5Poltekkes

Pembahasan dititikberatkan pada bagaimana smart relay dapat mengatur kerja landing gear system dengan menggunakan bahasa function block diagram (FBD), mulai pada

&gt;= Jika nilai operan kiri lebih besar dari atau sama dengan operan kanan, maka menghasilkan

Array bernama TabInt dengan setiap elemen bertype integer dan dengan nilai default elemen 0, dengan ukuran 10 elemen dan.. setiap elemen array diakses dengan menggunakan indeks ke-0

Setiap Orang dengan sengaja dan tanpa hak atau melawan hukum melakukan perbuatan sebagaimana dimaksud dalam Pasal 27 sampai dengan Pasal 34 yang mengakibatkan kerugian bagi Orang