if kondisi_dipenuhi true then Laksanakan_aksi
Jika Aksi lebih dari satu buah, maka : if kondisi_dipenuhi true then
begin Laksanakan_aksi
end;
contoh-contoh:
a
if x 100 then x :=x+1
endif
b
if kar = ‘’ then stop:=true
endif
c
if max 10 then max:=x
endif
Contoh Satu Kasus: Tulis algoritma yang membaca sebuah bilangan bulat dari suatu piranti masukan. Diminta mencetak pesan
”Bilangan genap” jika bilangan tersebut genap.Bilangan genap adalah bilangan yang habis dibagi 2.
Program Genap Deklarasi :
Bil : integer Algoritma :
Write ’Masukan Bilangan :’ Read Bil
If Bil mod 2 =0 Then Write ’Bilangan Genap’
Endif
Pascal : Program Genap;
Var Bil : integer;
Begin Write ’Masukan Bilangan :’;
Read Bil; If Bil mod 2 =0 Then
Write ’Bilangan Genap’; End.
4.2 DUA KASUS IF – THEN - ELSE
Notasi algoritma untuk analisis dengan dua kasus adalah dengan menggunakan konstruksi IF – THEN - ELSE jika-maka-kalau-tidak dalam bentuk:
IF kondisi_dipenuhi true THEN Laksanakan_aksi1
Else {kondisi_tidak dipenuhi false} Laksanakan_aksi2
EndIf
Notasi Pascal : if kondisi_dipenuhi true then
Laksanakan_aksi1 else {kondisi_tidak dipenuhi false}
Laksanakan_aksi2;
Keterangan : Aksi1 dilaksanakan jika kondisi bernilai benar, sebaliknya jika kondisi bernilai salah maka
Aksi2 akan dilaksanakan, bisa diperhatikan bahwa else menyatakan ingkaran negation dari kondisi.
Contoh-contoh:
a
if a0 then write’bilangan positif’
else write’bukan bilangan positif’
endif
b
if k mod 2 = 0 then write’bilangan genap’
else write’bilangan ganjil’
endif
Contoh Dua Kasus: Tulislah program yang membaca sebuah bilangan bulat dari suatu piranti masukan. Diminta mencetak
pesan ”Bilangan genap” jika bilangan tersebut adalah genap, atau ”Bilangan ganjil” jika bilangan tersebut adalah ganjil.
Program Genap_Ganjil Deklarasi :
Bil : integer Algoritma :
Write ’Masukan Bilangan :’ Read Bil
If Bil mod 2 =0 Then Write ’Bilangan Genap’
Else Write ’Bilangan Ganjil’
Endif
Pascal :
Program Genap_Ganjil; Var
Bil : integer; Begin
Write ’Masukan Bilangan :’; Read Bil;
If Bil mod 2 =0 Then Write ’Bilangan Genap’
Else Write ’Bilangan Ganjil’;
end.
4.3 TIGA KASUS Atau Lebih
Notasi algoritma untuk analisis dengan tiga kasus atau lebih adalah dengan menggunakan
konstruksi IF – THEN - ELSE bertingkat-tingkat dalam bentuk :
IF kondisi1_dipenuhi true THEN Laksanakan_aksi1
Else IF kondisi2_dipenuhi THEN
Laksanakan_aksi2 Else
IF kondisiN_dipenuhi THEN Laksanakan_aksiN
Else Laksanakan_aksi_lain
EndIf EndIf
EndIf
Contoh Tiga Kasus Atau Lebih: Tulislah program yang membaca sebuah bilangan bulat, lalu menentukan apakah bilangan tersebut positif,
negatif, atau nol.
Program Cek_Bilangan Deklarasi :
Bil : integer Algoritma :
Write ’Masukan Bilangan :’ Read Bil
If Bil 0 Then Write ’Bilangan Positif’
Else If Bil 0 Then
Write ’Bilangan Negatif’ Else
Write ’Bilangan Nol’ Endif
Endif
Pascal :
Program Cek_Bilangan;
Var Bil : integer;
Begin Write ’Masukan Bilangan :’;
Readln Bil; If Bil 0 Then
Write ’Bilangan Positif’ Else
If Bil 0 Then Write ’Bilangan Negatif’
Else Write ’Bilangan Nol’;
end.
4.4 Struktur Kontrol Pemilihan Alternatif Case Untuk masalah dengan dua kasus atau lebih, struktur CASE, dapat menyederhanakan penulisan
if_then_else. CASE... OF... merupakan struktur kontrol pemilihan alternatif, dimana dapat dipilih salah satu pelaksanaan
aksi diantara sejumlah alternatif kondisi yang disajikan. Notasi Algoritmik :
Ket : Ekspresi adalah sembarang ekspresi aritmetika atau Boolean yang menghasilkan suatu
nilai Konstanta. CASE memeriksa apakah nilai dari ekspresi tersebut sama dengan salah satu dari : Alternatif_Kondisi1, Alternatif_Kondisi2,….Alternatif_KondisiN
Jika nilai ekspresi sama dengan alternatif kondisi
k
, maka laksanakan_aksi
k
Jika tidak ada satupun nilai ekspresi yang cocok, maka pernyataan sesudah Otherwise dikerjakan. Otherwise bersifat opsional, artinya boleh ditulis atau tidak didalam konstruksi CASE.
Notasi Pascal : CASE ekspresi OF
Alternatif_Kondisi1 : laksanakan_aksi1 Alternatif_Kondisi2 : laksanakan_aksi2
Alternatif_KondisiN : laksanakan_aksiN Otherwise
Laksanakan_aksi_lain EndCase
case ekspresi of
Alternatif_Kondisi1 : laksanakan_aksi1 Alternatif_Kondisi2 : laksanakan_aksi2
Alternatif_KondisiN : laksanakan_aksiN else
Laksanakan_aksi_lain end;
Keterangan : Alternatif_Kondisi1, Alternatif_Kondisi2,….Alternatif_KondisiN adalah nilai
yang bertipe integer, char, atau boolean.
Contoh:
Tulislah Algoritma yang membaca seluruh bilangan bulat yang nilainya terletak antara 1 sampai 4, lalu menuliskannya ke piranti keluaran. Misalnya : input =1, maka output=’satu’
Solusi STRUKTUR IF-THEN-ELSE
PROGRAM KonversiAngka Teks {mencetak kata untuk angka 1 sampai 4}
DEKLARASI:
angka:integer
ALGORITMA
readangka if angka=1 then
write ’satu’ else
if angka=2 then write’dua’
else if angka=3 then
write’tiga’ else
if angka=4 then write’empat’
else write’angka yang dimasukan salah’
endif
endif endif
endif
Solusi STRUKTUR CASE...OF…
Program Angka Deklarasi :
A: integer Algoritma :
Write ’Masukan Angka 1-4 :’ Read A
Case A Of 1 : Write ’Satu’
2 : Write ’Dua’ 3 : Write ’Tiga’
4 : Write ’Empat’ Otherwise
Write ’Angka yang anda masukan salah’
EndCase
Pascal :
Program Angka; Var
A : integer; Begin
Write ’Masukan Angka 1-4 :’; Readln A;
Case A Of 1 : Write ’Satu’;
2 : Write ’Dua’; 3 : Write ’Tiga’;
4 : Write ’Empat’; Else
Write ’Angka yang anda masukan salah’; end;
end.
LATIHAN
1. Buatlah algoritma untuk membaca sebuah karakter dan menentukan karakter yang dimasukan
adalah karakter ’A’ atau bukan 2.
Buatlah algoritma untuk membaca sebuah bilangan bulat dari suatu papan ketik, lalu mencetak pesan bahwa ”Bilangan tersebut lebih besar dari 100” jika bilangan tersebut adalah
lebih besar dari 100
3. Buatlah algoritma yang membaca angka tahun masehi dari papan ketik, lalu menentukan
apakah tahun tersebut merupakan tahun kabisat 4.
Buatlah algoritma untuk menentukan bilangan yang dimasukan adalah habis dibagi 5, jika bilangan tersebut habis dibagi 5 maka pesan tertulis ’bilangan habis dibagi 5’ jika tidak
’bilangan tidak habis dibagi 5’
5.
Buat Algoritma untuk membaca temperature air T dalam satuan derajat celcius pada tekanan normal, lalu menentukan apakah wujud air tersebut dalam keadaan padat T
0 C , Cair 0 C T 100
C atau Gas T 100 C 6.
Buat algoritma untuk menghitung Nilai Akhir :
-
Input : Nilai UTS,UAS,Quiz,Tugas
- Nilai= Tugas 0.1 + Quiz0.2 + UTS0.3+ UAS0.4 - Dengan IF then Else tentukan Nilai akhir dimana :
80 Nilai 100
→ Indeks A 70
Nilai 80 → Indeks B
55 Nilai 70 → Indeks C
40 Nilai 55
→ Indeks D Nilai 40
→ Indeks E
- Output : Tugas, Quiz, UTS, UAS, Nilai, Nilai_Akhir
7.
PT XYZ membutuhkan suatu program untuk perhitungan gaji pegawai dengan ketentuan sebagai berikut:
Go l
GajiPokok UpahLembur Tunjangan
Ppn
I 1000000
20000 50 Gaji Pokok
5 II
850000 15000
40 Gaji Pokok 3
III 750000
12000 30 Gaji Pokok
2 IV
500000 10000
20 Gaji Pokok 1
Potongan pajak adalah ppn GajiPokok
Para pegawai bekerja selama 150 jam, bila melebihi jam tersebut maka dihitung lembur, kemudian pegawai yang sudah menikah mendapatkan Tunjangan sebesar 15 dari GajiPokok
Berdasarkan ketentuan tersebut, buatlah Algoritma untuk menyelesaikan permasalah tersebut Output yang diminta yaitu : NIK, Nama, Gol dan Gaji Bersih
Rumus : 1. GajiBersih := GajiPokok+Tunjangan – Potongan
2. GajiBersih := GajiPokok+Tunjangan+JamLemburUpahLembur-Potongan
MATERI 5 NOTASI PENGULANGAN
Salah satu kelebihan komputer dibandingkan dengan manusia adalah kemampuannya untuk mengulang suatu instruksi, bahkan aksi, secara berulang-ulang dengan performansi yang sama. Berbeda dengan
manusia yang cenderung melakukan kesalahan jika melakukan hal yang sama karena lelah atau bosan.
Struktur pengulangan secara umum terdiri dari dua bagian :
1.
Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan. Kondisi ini ada yang dinyatakan secara ekplisit oleh pemrogram atau dikelola sendiri oleh komputer
implisit. 2. Badan pengulangan, yaitu aksipernyataan yang harus diulang selama kondisi yang ditentukan untuk
pengulangan masih dipenuhi. Disamping itu, struktur pengulangan biasanya disertai dengan bagian :
1. Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali. 2. Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan.
Insialisasi dan terminasi tidak selalu harus ada, namun pada berbagai kasus inisisalisasi umumnya diperlukan.
Struktur pengulangan secara umum : inisialisasi
awal pengulangan badan pengulangan
akhir pengulangan terminasi
Pengulangan harus berhenti, ini yang harus dijamin oleh pemrogram. Karena algoritma yang tidak pernah berhentipengulangan yang terus menerus looping adalah algoritma yang salah.
Struktur Kontrol pengulangan terdiri dari : a.
Pernyataan FOR b. Pernyataan WHILE
a. Pernyataan REPEAT
5.1 Pernyataan FOR Adalah pengulangan yang paling sederhana. Pengulangan ini dipakai jika kita mengetahui berapa kali
pengulangan akan dilakukan. Bentuk umum pernyataan FOR ada dua macam, yaitu menaik ascending atau menurun descending.
FOR menaik Bentuk umum struktur kontrol FOR menaik ini, dapat dirumuskan dengan :
Notasi Algoritmik :
FOR nama_pencacah nilai_awal TO nilai_akhir DO
aksipernyataan
EndFor
Keterangan:
Aksipernyataan adalah satu atau lebih instruksi yang diulang. Keterangan:
Nilai_awal dan nilai_akhir pada umumnya bilangan integer atau karakter, asal nilai_akhir ≥ nilai_awal
Pengulangan dilaksanakan berulang-ulang tanpa kondisi atau syarat apapun dengan jumlah ulangan= nilai_akhir – nilai_awal + 1
Pada awalnya, pencacah diinisialisasi dengan nilai_awal. Nilai pencacah secara otomatis bertambah satu setiap kali badan pengulangan dimasuki, sampai akhirnya nilai pencacah =
nilai_akhir.
Notasi Pascal :
Contoh : Misalkan kita ingin mencetak angka 1 sampai 10, maka algoritma dan programnya
adalah :
Algoritmik :
Program Tulis_nomor Deklarasi :
nomor: integer
Algoritma : FOR nomor
1 To 10 DO writenomor
EndFor
Pascal :
Program Tulis_nomor; Var
nomor : integer; Begin
for nomor:= 1 to 10 do writelnnomor;
end. for nama_pencacah:=nilai_awal to nilai_akhir do
begin aksipernyataan
End;
FOR menurun Bentuk umum struktur kontrol FOR menurun ini, dapat dirumuskan dengan :
Notasi Algoritmik :
FOR nama_pencacah nilai_awal DOWNTO nilai_akhir DO
aksipernyataan EndFor
Keterangan:
Aksipernyataan adalah satu atau lebih instruksi yang diulang.
Nilai_awal dan nilai_akhir pada umumnya bilangan integer atau karakter, asal nilai_awal ≥ nilai_akhir
Pengulangan dilaksanakan berulang-ulang tanpa kondisi atau syarat apapun dengan jumlah ulangan= nilai_awal – nilai_akhir + 1.
Pada awalnya, pencacah diinisialisasi dengan nilai_awal. Nilai pencacah secara otomatis berkurang satu setiap kali badan pengulangan dimasuki, sampai akhirnya nilai pencacah =
nilai_akhir.
Notasi Pascal :
Contoh : Misalkan kita ingin meghitung mundur angka dari 10 sampai 1, maka algoritma dan programnya adalah :
Algoritmik :
Program hitung_mundur Deklarasi :
nomor: integer
Algoritma : FOR nomor
10 Downto 1 DO writenomor
EndFor
Pascal :
Program Hitung_mundur; Var
nomor : integer; Begin
for nomor:= 10 downto 1 do for nama_pencacah:=nilai_awal downto nilai_akhir do
begin aksipernyataan
end;
writelnnomor; end.
5.2 Pernyataan WHILE