MODUL - Diezcenter's Blog | Jadikanlah dirimu oleh … · Web viewPernyataan = bentuk tunggal dari...

28
MODUL PENYELEKSIAN KONDISI TUJUAN Setelah melakukan pratikum , diharapkan dapat: 1. Memahami algoritma seleksi (selection) yakni mengerjakan suatu instruksi atau proses jika persyaratannya terpenuhi dengan dua pilihan atau lebih. 2. Menggunakan statement If…Then…Else..., dan If … Then bertingkat untuk percabangan bersyarat dalam program. 3. Menggunakan statement case-of-Else untuk melakukan percabangan. PENDAHULUAN Hampir setiap program yang komplek mengandung suatu penyeleksian kondisi. Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari hasil kondisi yang diseleksi tersebut. Untuk menyeleksi suatu kondisi, di dalam bahasa Pascal dapat dipergunakan statement If dan statemen Case. 1. STATEMEN IF a. Struktur IF-Then Bentuk Umum : PEMROGRAMAN PASCAL 27

Transcript of MODUL - Diezcenter's Blog | Jadikanlah dirimu oleh … · Web viewPernyataan = bentuk tunggal dari...

MODUL PENYELEKSIAN KONDISI

TUJUAN

Setelah melakukan pratikum , diharapkan dapat:1. Memahami algoritma seleksi (selection) yakni mengerjakan suatu

instruksi atau proses jika persyaratannya terpenuhi dengan dua pilihan atau lebih.

2. Menggunakan statement If…Then…Else..., dan If …Then bertingkat untuk percabangan bersyarat dalam program.

3. Menggunakan statement case-of-Else untuk melakukan percabangan.

PENDAHULUANHampir setiap program yang komplek mengandung suatu penyeleksian

kondisi. Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan apa

yang harus dikerjakan, tergantung dari hasil kondisi yang diseleksi tersebut. Untuk

menyeleksi suatu kondisi, di dalam bahasa Pascal dapat dipergunakan statement If

dan statemen Case.

1. STATEMEN IF

a. Struktur IF-Then

Bentuk Umum :

Kondisi = pernyataan Boolean (true/false)

Jika kondisi bernilai benar (true) maka pernyataan akan diproses,

sebaliknya jika kondisi bernilai salah (false) maka akan dijalankan

pernyataan baris berikutnya.

Pernyataan = bentuk tunggal dari perintah pascal atau sekumpulan perintah

pascal yang diapit oleh Begin dan End.

PEMROGRAMAN PASCAL 27

If kondisi then pernyataan

Contoh 1:

- Algoritma

i. Mulai

ii. Set ket ‘tidak lulus’

iii. Masukkan nilai_ujian

iv. Jika nilai_ujian > 60 maka tulis ket ‘Lulus’

v. Tampilkan hasil

vi. Selesai

-Buat flowchartnya !-Simpan contoh 1 pada E:\PK\Sesi_Kelas\CTH2_1

PEMROGRAMAN PASCAL 28

Kondisi

Pernyataan

Ya

Tidak

b. STRUKTUR IF-THEN-ELSE

Bentuk Umum :

Pada bentuk ini :

Pernyataan1 hanya akan dijalankan kalau kondisi bernilai benar (true)

Pernyataan2 hanya akan dijalankan kalau kondisi bernilai salah (false)

Catatan :

Dalam menuliskan pernyataan If-Else tidak diperkenankan pemakaian tanda

titik koma di belakang pernyataan sebelum Else.

Pernyataan1 maupun pernyataan2 bisa berupa sebuah pernyataan tunggal

ataupun pernyataan majemuk(banyak), jika pernyataan tersebut majemuk

maka apitlah pernyataan tersebut dengan Begin – End;

PEMROGRAMAN PASCAL 29

If kondisi then pernyataan1

Else pernyataan2;

Kondisi

Pernyataan1

Ya

Tidak

Pernyataan2

Contoh 2 :

Flowchart :

PEMROGRAMAN PASCAL 30

Kondisi

Ket ‘Lulus’

Ya

Tidak

Ket ‘Tidak lulus’

Mulai

Selesai

Nilai_ujian

Ket

Dari contoh 2 buat algoritmanya !

Simpan contoh 2 pada E:\PK\Sesi_Kelas\CTH2_2

c. STRUKTUR IF TERSARANG

Struktur If tersarang (nested If) merupakan bentuk dari suatu statemen If

berada di dalam lingkungan statemen If lainnya.

Bentuk Umum :

Atau

Contoh 3 :

PEMROGRAMAN PASCAL 31

If kondisi1 thenIf kondisi2 then pernyataan1

Else pernyaaan2;

If kondisi1 then

Begin

End.

If kondisi2 then pernyataan1

Else pernyaaan2;

Indeks D

Indeks C

Indeks B

Indeks A

Flowchart :

PEMROGRAMAN PASCAL 32

Mulai

UTS,UAS,TGS

NA 0.35*UTS+0.4*UAS+0.25*TGS

NA≥85

Tidak

NA≥66

Tidak

NA≥56

Tidak

NA≥41

Ya

Ya

Ya

Ya

Buatlah algoritma!

Simpan contoh 3 pada E:\PK\Sesi_Kelas\CTH2_3

CONTOH-CONTOH STRUKTUR IF

1. Buatlah program membaca sebuah bilangan bulat yang diinput dari keyboard,

lalu mencetak pesan “BILANGAN GENAP” jika bilangan tersebut adalah genap.Program Genap;{Mencetak pesan "bilangan genap"}Var x : integer;Begin Write('Ketikkan sebuah bilangan : ');readln(x); If x mod 2 = 0 then write('BILANGAN GENAP'); readln;End.

2. Buatlah program untuk menentukan nilai mutlak dari sebuah bilangan riil (x),

dimana bilangan (x) diinput dari keyboard.Program Nilai_Mutlak;Var x : real;Begin Write('Masukkan nilai x : '); readln(x); If x<0 then x:= -x; Writeln('Nilai Mutlaknya adalah ',x); readln;end.

PEMROGRAMAN PASCAL 33

Indeks E

Selesai

Tampilkan NA

Tidak

3. Buatlah program membaca dua buah bilangan bulat yang diinput dari keyboard,

lalu tentukan bilangan yang terbesar dari kedua bilangan tersebut.Program Mencari_Bilangan_Terbesar;Var A,B : integer;Begin

Write('Ketikkan bilangan pertama : ');readln(A); Write('Ketikkan bilangan kedua : ');readln(B); If A>B then write ('Bilangan terbesar : ',A) TIDAK ADA (;) Else write('Bilangan terbesar : ',B); Readln;

End. Catatan : Sebelum statemen Else tidak menggunakan tanda (;)

4. Buatlah program yang membaca angka tahun masehi dari keyboard, lalu

tentukan apakah tahun tersebut adalah tahun kabisat. Suatu tahun disebut tahun

kabisat jika memenuhi salah satu syarat berikut :

i.) Habis dibagi 4 tetapi tidak habis dibagi 100

ii.) Habis dibagi 400Program Tahun_Kabisat;{Menentukan apakah suatu tahun merupakan tahun kabisat atau bukan}Var tahun : integer;Begin Write('Masukkan tahun masehi : ');readln(tahun); If ((tahun mod 4=0) and (tahun mod 100<>0)) or(tahun mod 400=0) then Write('Tahun Kabisat') Else Write('Bukan Tahun Kabisat'); Readln;End.

5. Buatlah program membaca titik P(x,y) di bidang kartesian dimana titik tersebut

diinput dari keyboard, lalu tentukan di kuadran mana letak titik tersebut.

Ilustrasi kasus :

Kasus 1 : jika x>0 dan y>0, maka P(x,y) terletak di kuadran I

Kasus 2 : jika x<0 dan y>0, maka P(x,y) terletak di kuadran II

Kasus 3 : jika x<0 dan y<0, maka P(x,y) terletak di kuadran III

Kasus 4 : jika x>0 dan y<0, maka P(x,y) terletak di kuadran IV

PEMROGRAMAN PASCAL 34

Kasus 5 : selain kasus 1,2,3,dan 4, maka P(x,y) tidak terletak di kuadran

manapun.Program Kuadran_Titik;

{Menentukan kuadran titik P(x,y) di bidang kartesian}Var x,y : real;Begin

Write('Masukkan titik x : ');readln(x); Write('Masukkan titik y : ');readln(y); If (x>0) and (y>0) then write('KUADRAN I') Else If (x<0) and (y>0) then write('KUADRAN II') Else If (x<0) and (y<0) then write('KUADRAN III') Else If (x>0) and (y<0) then write('KUADRAN IV') Else write('TIDAK TERLETAK DI KUADRAN MANAPUN'); readln; End.

6 .Buatlah program yang membaca sudut (S) dalam satuan derajat dari keyboard,

lalu tentukan apakah sudut tersebut sudut lancip, sudut siku-siku, sudut tumpul,

atau sudut lurus

Ilustrasi kasus :

Kasus 1 : Jika S < 90 derajat maka sudut lancip

Kasus 2 : Jika S = 90 derajat maka sudut siku-siku

Kasus 3 : Jika 90<S<180 derajat maka sudut tumpul

Kasus 4 : Jika S = 180 derajat maka sudut lurus

Kasus 5 : Jika S>180 derajat maka masukkan nilai sudut yang baru. Gunakan

deklarasi label.

Program Jenis_Sudut;Uses crt;Label ulang;Var S : integer;Begin Clrscr; Ulang: Write('Masukkan nilai sudut : '); readln(S); If S<90 then Write('SUDUT LANCIP'); If S=90 then Write('SUDUT SIKU-SIKU'); If ((S>90) and (S<180)) then Write('SUDUT TUMPUL'); If S=180 then Write('SUDUT LURUS'); If S>180 then goto ulang; Readln;End.

PEMROGRAMAN PASCAL 35

7. Buatlah program mencari factor-faktor prime dari bilangan bulat N.

Algoritma :

i. Mulai

ii. Masukkan bilangan bulat (N)

iii. Set P 2 dan Q 1

iv. Jika N tidak habis dibagi P maka

Set P sebagai jumlah dan Q

Set Q 2 dan ulang langkah (iv)

v. Jika N habis dibagi P maka

Cetak nilai P sebagai factor prime

Set N sebagai hasil bagi bulat N dengan P

Jika N 1 maka selesai, jika tidak ulang langkah (iv)

vi. Tampilkan factor-faktor prime

vii. Selesai.

Program Faktor_Prima_Bilangan_Bulat;Uses crt;Label ulang;Var N,P,Q : integer;Begin Clrscr; Write('Masukkan nilai N : ');readln(N); P:=2; Q:=1; Writeln('Faktor Prime dari ',N,' adalah : '); Ulang: If N mod P <> 0 then Begin P:=P+Q; Q:=2; Goto ulang; End Else Begin Write(P); N:=N div P; If N <> 1 then goto ulang; End; Readln;End.

PEMROGRAMAN PASCAL 36

2. STRUKTUR CASE

a. STRUKTUR CASE-OF

Struktur Case-Of mempunyai suatu ungkapan logika yang disebut

dengan selector dan sejumlah pernyataan yang diawali dengan label

permasalahan (Case Label) yang mempunyai tipe yang sama dengan selector.

Perbedaan dengan struktur If adalah bila pernyataan If menyeleksi

suatu kondisi dan terpenuhi, setelah memproses pernyataan dalam lingkungan

yang terpenuhi tersebut, proses penyeleksian masih dilakukan terhadap

pernyataan If berikutnya yang lain. Sedangkan pada struktur Case-Of bila

salah satu kondisi terpenuhi (nilai Case Label sama dengan nilai selector) dan

pernyataan tersebut telah diproses, selanjutnya pernyataan-pernyataan yang

lainnya dalam lingkungan Case tidak akan diseleksi lagi.

Bentuk Umum :

Contoh 4 :(Bentuk struktur If pada contoh 3 dapat dikonstruksi dengan struktur Case)

PEMROGRAMAN PASCAL 37

Case ungkapan OfDaftar case_label 1 : pernyataan 1;

Daftar case_label 2 : pernyataan 2; Daftar case_label n : pernyataan n;End;

Catatan : Perintah Round, digunakan untuk membulatkan data tipe real ke data tipe

longint.

Sintaks : Round (x);

Keterangan : Jika nilai pecahan < 0.5 maka dibulatkan ke bawah

Jika nilai pecahan > 0.5 maka dibulatkan ke atas.

b. STRUKTUR CASE-OF-ELSE

Struktur Case-Of-Else merupakan pengembangan dari struktur Case-

Of. Pada struktur Case Of bila tidak ada kondisi yang terpenuhi berarti tidak

ada pernyataan dalam lingkungan Case-Of yang diproses. Dengan struktur

Case-Of-Else, bila tidak ada kondisi yang terpenuhi, maka pernyataan yang

akan diproses di dalam lingkungan Case-Of adalah pernyataan yang ada di

Else.

PEMROGRAMAN PASCAL 38

Bentuk Umum :

Contoh 5:

CONTOH-CONTOH STRUKTUR CASE :

1. Buatlah program Kalkulator Sederhana, dimana operand-operand merupakan

bilangan bulat yang diinput dari keyboard dan operator merupakan karakter

{'+','-','*','/'}.

Program Kalkulator_Sederhana;

PEMROGRAMAN PASCAL 39

Case ungkapan OfDaftar case_label 1 : pernyataan 1;

Daftar case_label 2 : pernyataan 2; Daftar case_label n : pernyataan n;Else pernyataan m;End;

{Mensimulasikan kalkulator sederhana, yaitu menghitung hasil operasi aritmatika}

Var op1,op2 : integer; {OPERAND} oprt : char; {'+','-','*','/' adalah OPERATOR} Hasil : real; Begin Write('Masukkan operand1 = ');readln(op1); Write('Masukkan operand2 = ');readln(op2); Write('Masukkan operator = ');readln(oprt); Case oprt of '+' : Hasil :=op1+op2; '-' : Hasil :=op1-op2; '*' : Hasil :=op1*op2; '/' : If op2<>0 then Hasil :=op1/op2 Else write('ERROR'); End; Writeln(op1,oprt,op2,' = ',Hasil:8:2); readln; end.

2. Buat program menampilkan menu pilihan untuk menghitung luas atau keliling

persegi panjang. Program Menu_Pilihan_Menghitung_Persegi_Panjang; Var NoMenu : integer; p,l,luas,klng : real; Begin {CETAK MENU} Writeln('Menu Persegi Panjang : '); Writeln('1.Luas Persegi Panjang'); Writeln('2.Keliling Persegi Panjang'); Writeln('Masukkan pilihan anda (1 atau 2)');readln(NoMenu); writeln; Case NoMenu of 1: Begin Write('Nilai panjang = ');readln(p); Write('Nilai lebar = ');readln(l); luas := p*l; Write('Nilai Luas = ',luas:5:3); End; 2: Begin Write('Nilai panjang = ');readln(p); Write('Nilai lebar = ');readln(l); klng := 2*p*l; Write('Nilai Keliling = ',klng:5:3); End; end; readln; end.

PEMROGRAMAN PASCAL 40

3. Buatlah program membaca sebuah bilangan bulat yang nilainya terletak antara 1

sampai 4, lalu mencetak tulisan angka tersebut. Misalkan bila dibaca 1, maka

tercetak tulisan “satu”, bila dibaca 2 maka tercetak tulisan “2”,dst. Jika angka

yang dimasukkan selain 1 sampai 4, tuliskan pesan bahwa angka yang

dimasukkan salah. Program Konversi_Angka_Ke_Teks; Var angka : integer; Begin Write('Masukkan angka yang akan dikonversi : '); readln(angka); Case angka of 1 : Write('SATU'); 2 : Write('DUA'); 3 : Write('TIGA'); 4 : Write('EMPAT'); Else Write('ANGKA YANG DIMASUKKAN SALAH'); End; Readln; End.

4. Buat program dengan output sebagai berikut :

#### BANGUN DATAR ####------------------------------------1. Lingkaran

2. Persegi panjang

3. Dll

Silahkan pilih pokok bahasannya? [Pilih nomor]

Dengan ketentuan sebagai berikut :

Jika pilih nomor 1 maka lakukan :

1. Input jari-jari

2. Hitung Luas dan keliling lingkaran

PEMROGRAMAN PASCAL 41

3. Tampilkan nilai luas dan keliling

Jika pilih nomor 2 maka lakukan :

1. Input panjang dan lebar

2. Hitung Luas dan keliling persegi panjang

3. Tampilkan nilai luas dan keliling

Jika pilih nomor 3 maka tampilkan “ANDA SALAH PILIH”

5. Buatlah sebuah program untuk menentukan keterangan kelulusan seorang

mahasiswa dengan ketentuan sebagai :

Deklarasikan sebuah konstanta mata kuliah adalah pemrograman komputer

Input nama, NPM, nilai

Jika nilai 56, maka pernyataan keterangan kelulusan adalah “LULUS”

Jika tidak pernyataan keterangan kelulusan adalah “GAGAL”

Buat program sekreatif mungkin dengan output sebagai berikut :

<<< Menentukan Kelulusan Mahasiswa >>>-------------------------------------------------------NPM : ........................Nama : ........................Matakuliah : ........................

Nilai Angka : ........................Keterangan : ........................

LATIHAN :

1. Tulislah algoritma dengan menggunakan kalimat dan flowchart serta program

untuk membaca tiga buah bilangan bulat, lalu mengurutkan tiga buah bilangan

tersebut dari nilai yang kecil ke nilai yang besar. Keluaran (output) adalah tiga

buah bilangan yang terurut.

PEMROGRAMAN PASCAL 42

2. Berdasarkan algoritma berikut, buatlah program untuk mencari nilai akar

persamaan kuadrat Ax2+Bx+C.

Algoritma :

i. Mulai

ii. Input nilai A,B dan C

iii. Hitung diskriminan B2-4AC

iv. Jika diskriminan = 0 maka

Hitung x1 -B/2A

Hitung x2 x1

Tampilkan tulisan ‘Persamaan kuadrat memiliki akar

kembar’ dan tampilkan nilai x1 dan x2.

Jika diskriminan > 0 maka

Hitung x1 (-B+ )/(2A)

Hitung x2 (-B- )/(2A)

Tampilkan tulisan ‘Persamaan kuadrat memiliki akar

berbeda’ dan tampikan nilai x1 dan x2.

Jika diskriminan < 0 maka

Tampilkan tulisan ‘Persamaan kuadrat memiliki akar

imajiner’.

v. Selesai.

3. Buatlah algoritma menggunakan kalimat, flowchat dan program membaca

sebuah bilangan positif lalu menentukan apakah bilangan tersebut merupakan

kelipatan 4?

4. Misalkan karyawan PT ABC dikelompokkan berdasarkan golongannya. Upah

perjam tiap karyawan bergantung pada golongannya. Jumlah jam kerja normal

selama seminggu adalah 48 jam. Kelebihan jam kerja dianggap lembur dengan

upah lembur adalah Rp.3000/jam untuk semua golongan karyawan. Buatlah

PEMROGRAMAN PASCAL 43

program yang membaca nama, golongan dan jumlah jam kerjanya selama

seminggu dari keyboard, lalu hitung upah total mingguannya.

a. Ilustrasi kasus menentukan upah per jam berdasarkan golongannya.

Kasus 1 : Jika golongan =’A’, maka upah perjam = 4000

Kasus 2 : Jika golongan =’B’, maka upah perjam = 5000

Kasus 3 : Jika golongan =’C’, maka upah perjam = 6000

Kasus 4 : Jika golongan =’D’, maka upah perjam = 7000

b. Selanjutnya ilustrasi kasus untuk menentukan upah total.

Jika jumlah jam kerja ≤ jam kerja normal maka :

Upah total jumlah jam kerja * upah perjam

Jika jumlah jam kerja > jam kerja normal maka :

Jam lembur jumlah jam kerja – jam kerja normal

Upah total jam kerja normal*upah perjam+jam lembur*upah lembur

5. Buatlah program untuk menentukan nilai mutlak dari sebuah bilangan riil (x),

dimana bilangan (x) diinput dari keyboard.Program Nilai_Mutlak;Var x : real;Begin Write('Masukkan nilai x : '); readln(x); If x<0 then x:= -x; Writeln('Nilai Mutlaknya adalah ',x); readln;end.

6. Buatlah program yang membaca angka tahun masehi dari keyboard, lalu

tentukan apakah tahun tersebut adalah tahun kabisat. Suatu tahun disebut

tahun kabisat jika memenuhi salah satu syarat berikut :

i.) Habis dibagi 4 tetapi tidak habis dibagi 100

ii.) Habis dibagi 400Program Tahun_Kabisat;{Menentukan apakah suatu tahun merupakan tahun kabisat atau bukan}Var tahun : integer;Begin

PEMROGRAMAN PASCAL 44

Write('Masukkan tahun masehi : ');readln(tahun); If ((tahun mod 4=0) and (tahun mod 100<>0)) or(tahun mod 400=0) then Write('Tahun Kabisat')

Else Write('Bukan Tahun Kabisat'); Readln;End.

7. Buatlah program yang membaca sudut (S) dalam satuan derajat dari keyboard,

lalu tentukan apakah sudut tersebut sudut lancip, sudut siku-siku, sudut tumpul,

atau sudut lurus.

Ilustrasi kasus :

Kasus 1 : Jika S < 90 derajat maka sudut lancip

Kasus 2 : Jika S = 90 derajat maka sudut siku-siku

Kasus 3 : Jika 90<S<180 derajat maka sudut tumpul

Kasus 4 : Jika S = 180 derajat maka sudut lurus

Kasus 5 : Jika S>180 derajat maka masukkan nilai sudut yang baru. Gunakan

deklarasi label.Program Jenis_Sudut;Uses crt;Label ulang;Var S : integer;Begin Clrscr; Ulang: Write('Masukkan nilai sudut : '); readln(S); If S<90 then Write('SUDUT LANCIP'); If S=90 then Write('SUDUT SIKU-SIKU'); If ((S>90) and (S<180)) then Write('SUDUT TUMPUL'); If S=180 then Write('SUDUT LURUS'); If S>180 then goto ulang; Readln;End.

8. Buatlah program membaca sebuah bilangan bulat yang nilainya terletak antara

1 sampai 4, lalu mencetak tulisan angka tersebut. Misalkan bila dibaca 1, maka

tercetak tulisan “satu”, bila dibaca 2 maka tercetak tulisan “2”,dst. Jika angka

yang dimasukkan selain 1 sampai 4, tuliskan pesan bahwa angka yang

dimasukkan salah.

PEMROGRAMAN PASCAL 45

Program Konversi_Angka_Ke_Teks;Var angka : integer;Begin Write('Masukkan angka yang akan dikonversi : '); readln(angka); Case angka of 1 : Write('SATU'); 2 : Write('DUA'); 3 : Write('TIGA'); 4 : Write('EMPAT'); Else Write('ANGKA YANG DIMASUKKAN SALAH'); End; Readln;End.

9. Buatlah program mencari factor-faktor prime dari bilangan bulat N.

Algoritma :

viii. Mulai

ix. Masukkan bilangan bulat (N)

x. Set P 2 dan Q 1

xi. Jika N tidak habis dibagi P maka

Set P sebagai jumlah dan Q

Set Q 2 dan ulang langkah (iv)

xii. Jika N habis dibagi P maka

Cetak nilai P sebagai factor prime

Set N sebagai hasil bagi bulat N dengan P

Jika N 1 maka selesai, jika tidak ulang langkah (iv)

xiii. Tampilkan factor-faktor prime

xiv. Selesai.Program Faktor_Prima_Bilangan_Bulat;Uses crt;Label ulang;Var N,P,Q : integer;Begin Clrscr; Write('Masukkan nilai N : ');readln(N); P:=2; Q:=1; Writeln('Faktor Prime dari ',N,' adalah : '); Ulang: If N mod P <> 0 then

PEMROGRAMAN PASCAL 46

Begin P:=P+Q; Q:=2; Goto ulang; End Else Begin Write(P); N:=N div P; If N <> 1 then goto ulang; End; Readln;End.

PEMROGRAMAN PASCAL 47