kondisi pengulangan pertama kali bernilai false. Jadi :
→ Gunakan konstruksi WHILE pada kasus yang mengharuskan terlebih dahulu pemeriksaan kondisi objek sebelum objek tersebut dimanipulasi
→ Gunakan konstruksi REPEAT pada kasus yang terlebih dahulu memanipulasi objek, baru kemudian memeriksa kondisi objek tersebut.
Latihan
1.
Tuliskanlah algoritma untuk menentukan nilai terkecil dari N buah data integer yang dibaca dari papan ketik. Nilai N dibaca terlebih dahulu N0
2. Buat algoritmaprogram untuk menampilkan kata “Saya sedang belajar pemrograman” sebanyak 50 kali.
3. Buat algoritmaprogram untuk menulis angka deret tambah mulai dari angka 0 hingga 100 dengan pertambahan 10.
Sehingga tampilan output di layar : 10 20 30 40 50 60 70 80 90 100
dengan selang 2 spasi diantara angka-angka itu. 4. Buat algoritmaprogram untuk menampilkan jumlah angka 20 bilangan asli pertama. Bilangan asli
adalah bilangan bulat dimulai dari 1,2,3,…. 5. Buat algoritmaprogram untuk membuat Daftar telepon. Daftar Telepon berisi Nama dan No.Telp.
Pertama kali dibaca berapa jumlah data Nama dan No.Telp yang akan diinput, kemudian masukan data Nama dan No.Telp sesuai dengan jumlah data yang dibaca dari keyboard.
6. Buat algoritmaprogram untuk menghitung nilai rata-rata dari N buah data bilangan bulat yang dibaca dari keyboard. Nilai rata-rata adalah jumlah seluruh data dibagi dengan banyaknya data.
Misalnya, jika N=5 dan data bilangan yang dibaca berturut-turut adalah 2,5,3,4,2 maka nilai rata- ratanya adalah 2+5+3+4+25=165=3.2.
7. Buat algoritma untuk memeriksa apakah password dari suatu kartu ATM diterima atau ditolak. Pakailah flag Ok bertipe Boolean. Buatlah password sebagai konstanta= ‘100107’. Pemasukan
password boleh diulang sampai 3x. Jika password benar, Output : ‘PIN benar, lanjutkan proses’
Jika password salah, Output : ‘PIN salah, ulangi lagi’ Jika password 3x salah, Output : ‘Kartu ditolak’
5.4 MESIN ABSTRAK
Mesin abstrak menggambarkan dalam suatu mesin terdapat pita yang bertipe karakter dan tipe numerik. Jika Pita bertipe karakter maka akhir dari pita tersebut ditandai dengan ’ . ’ atau ’ ’
Jika Pita bertipe numerik maka diakhiri dari pita tersebut ditandai dengan 9999 Jika Pita hanya berisi akhiran ’ . ’ , ’ ’ dan 9999 berarti pita kosong
Contoh : Pita Karakter S
A Y
A Arah pembacaannya
Read Baca
Notasi Algoritma
Pita bertipe karakter
{inisialisasi} readx
while x ≠ ’ ’ do aksi
readx {dibaca kembali isi mesin karakter} endwhile
{terminasi}
Pita bertipe numerik
{inisialisasi} readx
while x ≠ 9999 do aksi
readx {dibaca kembali isi mesin numerik} endwhile
{terminasi}
Contoh Kasus untuk Mesin Karakter Contoh 1:
Didalam pita karakter terdapat sederatan karakter yang diakhiri dengan tanda ’ ’, tuliskan algoritma untuk menampilkan deretan karakter tersebut
illustrasi S
A Y
A
PROGRAM MenampilkanKarakter {Menghitung jumlah karakter yang dimasukan}
DEKLARASI
x : char {data character yang dibaca dari papan ketik}
ALGORITMA
readx {baca data character} while x ≠ ‘ ’ do
writex readx
endwhile {x = ’’} {kondisi setelah pengulangan berhenti}
Contoh 2: Didalam pita karakter terdapat sederatan karakter yang diakhiri dengan tanda ’ ’, tuliskan algoritma untuk
menghitung jumlah karakter yang dimasukan
illustrasi S
A Y
A Jumlah karakter adalah : 4
PROGRAM HitungJumlahKarakter {Menghitung jumlah karakter yang dimasukan}
DEKLARASI
x : char {data character yang dibaca dari papan ketik}
jumlah : integer
ALGORITMA
readx {baca data character} jumlah 0 {inisialisasi}
while x ≠ ‘ ’ do
jumlah jumlah + 1 readx
endwhile {x = ’’} {kondisi setelah pengulangan berhenti}
writejumlah
Contoh Kasus untuk Mesin Numerik
Contoh 1: Diberikan mesin bertipe integer yang terdapat sederetan angka numerik yang dimasukan dan diakhiri
dengan tanda 9999. tuliskan algoritma untuk menghitung jumlah seluruh angka tersebut illustrasi
1 3
4 2
9999 Jumlah seluruh angka tersebut adalah : 10
PROGRAM HitungJumlahAngka {Menghitung jumlah seluruh bilangan yang dimasukan}
DEKLARASI
x : integer {data integer yang dibaca dari papan ketik}
jumlah : integer
ALGORITMA
readx {baca data integer} jumlah 0 {inisialisasi}
while x ≠ 9999 do jumlah jumlah + x
readx endwhile
{x = 9999} {kondisi setelah pengulangan berhenti} writejumlah
Contoh 2: Diberikan mesin bertipe integer yang terdapat sederetan angka numerik yang dimasukan dan diakhiri
dengan tanda 9999. tuliskan algoritma untuk menghitung banyaknya angka positif dari deretan angka tersebut
illustrasi 1
-3 4
-2 -9
9999 Jumlah angka positif adalah : 2
PROGRAM BanyaknyaAngkaPositif {Menghitung jumlah bilangan positif yang dimasukan}
DEKLARASI
x : integer {data integer yang dibaca dari papan ketik}
jumlah : integer
ALGORITMA
readx {baca data integer}
jumlah 0 {inisialisasi} while x ≠ 9999 do
if x 0 then jumlah jumlah + 1
endif readx
endwhile {x = 9999} {kondisi setelah pengulangan berhenti}
writejumlah
LATIHAN Mesin Karakter
1. Diberikan mesin bertipe karakter yang terdapat sederetan karakter yang dimasukan dan diakhiri tanda ’ ’. Tuliskan algoritma untuk menghitung karakter ’A’ yang dimasukan
Ilustrasi M
A K
A N
Jumlah karakter A : 2 2. Tuliskan algoritma untuk menghitung jumlah kemunculan pasangan huruf ’an’ di dalam mesin
karakter. Misalkan pada contoh dibawah ini jumlah ’an’ ada 3 buah ditandai dengan arsiran. Ilustrasi
Jumlah ’an’ adalah : 3
3. Tuliskan Algoritma untuk menghitung banyaknya kata di dalam pita karakter. Kata adalah deretan karakter bukan spasi yang diakhiri dengan spasi atau titik.
Ilustrasi
Jumlah Kata adalah : 3
Mesin Integer
1. Diberikan mesin bertipe integer yang terdapat sederetan angka numerik yang dimasukan dan diakhiri dengan tanda 9999. tuliskan algoritma untuk menghitung nilai rata-rata angka tersebut
illustrasi 1
3 5
6 10
9999 2. Diberikan mesin bertipe integer yang terdapat sederetan angka numerik yang dimasukan dan
diakhiri dengan tanda 9999. tuliskan algoritma untuk menghitung jumlah bilangan genap saja P
A N
D A
N G
A N
H A
R I
I N
I H
U J
A N
.
illustrasi
3. Diberikan mesin bertipe integer yang terdapat sederetan angka numerik yang dimasukan dan diakhiri dengan tanda 9999. tuliskan algoritma untuk menghitung jumlah angka 10 saja
illustrasi 1
3 5
6 10
9999
1 10
5 6
10 9999
MATERI 6 PROCEDURE DAN FUNCTION
Program yang besar lebih sulit dimengerti dan lebih sulit lagi dalam melakukan pelacakan kesalahan Jika ada. Oleh karena itu, program sebaiknya dipecah menjadi beberapa sub program yang
lebih kecil. Setiap sub program melakukan komputasi yang spesifik. Sub program yang baik adalah sub program yang independent dari program utama, sehingga programnya dapat dirancang tanpa
mempermasalahkan bagaimana sub program tersebut dilakukan, tetapi cukup memikirkan apa yang ia lakukan. Sub program yang bagus menyembunyikan detil operasi dari bagian program yang tidak perlu
tahu tentang sub-program tersebut. Teknik pemecahan program menjadi sejumlah sub program dinamakan teknik pemrograman modular. Modular artinya penyelesaian seluruh masalah dapat dipecah-pecahkan
dengan unsur-unsur langkah penyelesaian spesifik berbentuk modul yang berwujud prosedur procedure dan fungsi function.
Keuntungan Pemrograman Modular
Untuk aktivitas yang harus dilakukan lebih dari satu kali, modularisasi menghindari penulisan teks
program yang sama secara berulangkali. Disini sub-program cukup ditulis sekali saja, lalu sub-program dapat dipanggil dari bagian lain di dalam program. Disini, penggunaan sub-program dapat mengurangi
panjang program.
Kemudahan menulis dan menemukan kesalahan debug program. Kemudahan menulis akan sangat berguna pada masalah besar yang dikerjakan oleh satu tim pemrogram yang beranggotakan beberapa
orang. Masalah yang akan diprogram dipecah menjadi beberapa masalah yang lebih kecil. Setiap masalah yang lebih kecil tesebut ditulis kedalam modul yang spesifik dan dikerjakan oleh orang yang
berbeda. Satu modul bisa berisi dari satu atau lebih sub-program. Seluruh modul diintegrasikan menjadi satu buah program yang lengkap.Program yang modular menjadi lebih mudah untuk dibaca dan
dimengerti. Program yang tidak modular sulit dipahami, khususnya kalau program tersebut panjang atau terdiri dari puluhan, ratusan, atau ribuan baris instruksi.
Karena setiap sub-program melakukan aktivitas spesifik, maka apabila terdapat kesalahan di dalam program, kesalahan tersebut cukup dilokalisir di dalam sub-program yang bersangkutan. Kebanyakan
program komputer ditulis modular, meskipun program tersebut tidak melibatkan ekseskusi yang berulang dari aktivitas yang sama. Pemecahan program menjadi modul-modul yang lebih kecil umumnya dianggap
sebagai praktik pemrograman yang baik dan terstruktur.
Terdapat 2 bentuk sub-program, yaitu prosedur procedure dan fungsi function. Dimana struktur setiap sub-program tersebut pada hakikatnya sama dengan struktur program biasa, yaitu ada bagian judul header
yang berisi nama modul, bagian deklarasi, dan badan body program yang berisi instruksi yang akan dilaksanakan.
Variabel Global dan Variabel Lokal Variabel global adalah variabel yang dapat dipakai diseluruh program, di program utama atau di dalam
procedure atau function. Variabel lokal hanya dapat dipakai di tempat pendefinisiannya. Jika variabel lokal didefinisikan didalam
procedure, maka hanya procedure tersebut yang mengenalnya. Suatu variabel atau peubah akan dideklarasikan global atau local tergantung kepada penggunaan nama
tersebut. Jika suatu variabel digunakan di seluruh bagian program termasuk di dalam prosedur, maka variabel tersebut harus dideklarasikan global. Sebaliknya, jika variabel tersebut hanya digunakan di dalam
prosedurfunction saja, maka nama variabel “sebaiknya” dideklarasikan sebagai variabel lokal saja, meskipun bila dideklarasikan global pun masih tetap benar.
Usahakanlah menggunakan variabel global sesedikit mungkin. Penggunaan variabel lokal akan
memberikan keuntungan, sebab variabel lokal membuat program lebih elegan, dan dapat meminimumkan usaha pencarian kesalahan yang disebabkan oleh nama tersebut, karena variabel lokal hanya dipakai di
dalam lingkup procedure atau function saja.
Procedurefunction yang baik adalah yang independen dari program pemanggilnya. Pernyataan ini menyiratkan bahwa procedurefunction yang baik tidak menggunakan variabel-varibel global di dalam
badan procedur function-nya. Jika program utama perlu mengkomunikasikan nilai variabel global ke dalam procedurefucntion, maka ada satu cara untuk melakukannya yaitu dengan menggunakan parameter.
Karena parameter dapat mengurangi kebutuhan penggunaan variabel global.
6.1 Parameter Kebanyakan program memerlukan informasi antara procedure atau fungsi dimana ia dipanggil.
Penggunaan parameter menawarkan mekanisme pertukaran informasi tersebut. Tiap item data ditransfer antara parameter actual dan parameter formal yang bersesuaian. Parameter actual adalah parameter yang
disertakan pada waktu pemanggilan, sedangkan parameter formal adalah parameter yang dideklarasikan didalam bagian header procedurefunction itu sendiri. Ketika procedurefunction dipanggil, parameter
actual menggantikan parameter formal. Tiap-tiap parameter actual berpasangan dengan parameter formal yang bersesuaian.
Berdasarkan maksud penggunaannya, terdapat tiga jenis parameter formal yang disertakan didalam procedurefunction, yaitu :
a.
Parameter masukan input → parameter yang nilainya berlaku sebagai masukan untuk procedurefunction.
b.Parameter keluaran output→parameter yang menampung keluaran yang dihasilkan oleh procedure. c.Parameter masukankeluaran inputoutput parameter→ parameter yang berfungsi sebagai masukan
sekaligus keluaran bagi procedure tersebut. Dalam function hanya ada parameter masukan saja.
Bila procedure menghasilkan keluaran yang digunakan oleh program pemanggil, gunakan parameter keluaran untuk menampung keluaran tersebut. Sebaliknya, bila procedure tidak menghasilkan keluaran,
atau kalaupun menghasilkan keluaran dan ternyata keluaran tersebut hanya digunakan di dalam procedure itu saja, gunakan parameter masukan. Bila procedure menerima masukan sekaligus keluaran pada
parameter yang sama, gunakan parameter masukankeluaran.
Aturan penting yang harus diamati dalam korespondensi satu-satu antara parameter actual dan parameter formal adalah :
a. Jumlah parameter actual pada pemanggilan procedurefunction harus sama dengan jumlah parameter formal pada deklarasi procedurefunction-nya.
b. Tiap parameter actual harus bertipe sama dengan tipe parameter formal yang bersesuaian.
6.2 PROCEDURE PROSEDUR