modul mata kuliah

advertisement
MODUL MATA KULIAH
LOGIKA DAN ALGORITMA
STIMIK EL RAHMA
JOGJAKARTA 2015
JURUSAN : SISTEM INFORMASI
SEMESTER GENAP 2015
Materi :
ITERASI
Iterasi adalah sifat tertentu dari algoritma atau program komputer di mana suatu urutan
atau lebih dari langkah algoritmik yang dilakukan di loop program.
Iterasi dapat diartikan sebagai suatu proses atau metode yang digunakan secara
berulang-ulang (pengulangan) dalam menyelesaikan suatu permasalahan matematik.
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 aksi/pernyataan 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 berhenti/pengulangan 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
DO
(nama_pencacahnilai_awal) TO (nilai_akhir)
(aksi/pernyataan)
EndFor
Keterangan:
 Aksi/pernyataan 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 :
for
do
(nama_pencacah:=nilai_awal) to (nilai_akhir)
begin
(aksi/pernyataan)
End;
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
write(nomor)
EndFor
Pascal :
Program
Var
Tulis_nomor;
nomor : integer;
Begin
for nomor:= 1 to 10 do
writeln(nomor);
end.
FOR menurun
Bentuk umum struktur kontrol FOR menurun ini, dapat dirumuskan dengan :
Notasi Algoritmik :
FOR
(nilai_akhir)
(nama_pencacahnilai_awal)
DO
(aksi/pernyataan)
EndFor
Keterangan:
DOWNTO




Aksi/pernyataan 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 :
for (nama_pencacah:=nilai_awal) downto (nilai_akhir) do
begin
(aksi/pernyataan)
end;
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
write(nomor)
EndFor
Pascal :
Program
Var
Hitung_mundur;
nomor : integer;
Begin
for nomor:= 10 downto 1 do
writeln(nomor);
end.
5.2 Pernyataan WHILE
Bentuk umum struktur kontrol WHILE dapat dirumuskan dengan :
WHILE
(kondisi_pengulangan) DO
(aksi/pernyataan)
EndWhile
Keterangan:
 Pengulangan bisa tidak dilakukan , jika pada saat awal, kondisi_pengulangan
tidak terpenuhi (false).
 Tidak mengetahui berapa kali pengulangan akan dikerjakan
 Kondisi pengulangan akan diperiksa sebelum masuk ke aksi / pernyataan.
 Pengulangan akan dilaksanakan berulang-ulang jika kondisi_pengulangan
dipenuhi (true).
 Di dalam pernyataan, harus ada instruksi yang mengubah nilai kondisi agar
pengulangan berhenti.
Notasi Pascal :
while (kondisi_pengulangan) do
begin
(aksi/pernyataan)
end;
Contoh :
Buat algoritma/program untuk menampilkan angka sesuai dengan angka yang di-input
dari keyboard. Program akan berhenti jika user meng-input angka 0 ;
Algoritmik :
Program CetakAngka
Deklarasi :
i,angka: integer
Algoritma :
write('Masukan angkanya: ')
read(angka)
i1
While (angka ≠ 0) do
write(‘Angka yang anda input:’, angka)
write('Masukan angkanya: ')
read(angka)
ii+1
EndWhile
Pascal :
Program
Var
CetakAngka;
i, angka : integer;
Begin
write('Masukan angkanya: ');
readln(angka);
i:=1;
While (angka <> 0) do
Begin
writeln(‘Angka yang anda
input:’, angka);
write('Masukan angkanya:
');
readln(angka);
ii+1;
end
end.
5.3 Pernyataan REPEAT
Bentuk umum struktur kontrol REPEAT dapat dirumuskan dengan :
REPEAT
(aksi/pernyataan)
UNTIL (kondisi_berhenti)
Keterangan:
 Aksi / pernyataan akan dikerjakan minimal satu kali , karena pernyataan
dilaksanakan terlebih dahulu kemudian baru diperiksa kondisi berhenti.
 Aksi / pernyataan akan dikerjakan berulang-ulang dan akan berhenti jika kondisi
berhenti terpenuhi
 Tidak mengetahui berapa kali pengulangan akan dikerjakan
 Di dalam pernyataan, harus ada instruksi yang mengubah nilai kondisi agar
pengulangan berhenti..
Notasi Pascal :
repeat
begin
(aksi/pernyataan)
end;
until (kondisi_berhenti)
Kesimpulan :
 FOR digunakan untuk proses pengulangan yang jumlah pengulangannya dapat
diketahui diawal.
 WHILE fungsinya sama seperti FOR, tetapi WHILE juga dapat digunakan untuk
proses yang jumlah pengulangannya tidak dapat ditentukan sebelum eksekusi.
 REPEAT fungsinya sama seperti WHILE, kita dapat menggunakan WHILE
maupun REPEAT untuk masalah-masalah tertentu. Tetapi, pada beberapa masalah,
pemilihan WHILE atau REPEAT bergantung kepada persoalannya. Ini artinya, ada
masalah yang hanya benar bila menggunakan struktur WHILE, tetapi bisa fatal bila
menggunakan REPEAT.
Untuk mengetahui struktur mana yang lebih tepat, kita harus mengetahui
perbedaannya, yaitu :
 Pada Konstruksi REPEAT, kondisi pengulangan diperiksa pada akhir
pengulangan. Jadi instruksi di dalam badan pengulangan dilaksanakan dulu, baru
pemeriksaan kondisi dilakukan. Konsekuensinya badan pengulangan dilaksanakan
paling sedikit satu kali.
 Pada konstruksi WHILE, kondisi pengulangan diperiksa di awal pengulangan.
Jadi instruksi didalam badan pengulangan hanya dapat dilaksanakan jika
pemeriksaan kondisi menghasilkan nilai true. Konsekuensinya badan pengulangan
mungkin tidak akan pernah dilaksanakan, bila 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 (N>0)
2. Buat algoritma/program untuk menampilkan kata “Saya sedang belajar
pemrograman” sebanyak 50 kali.
3. Buat algoritma/program untuk menulis angka deret tambah mulai dari angka 0 hingga
100 dengan pertambahan 10.
Sehingga tampilan output di layar :
0 10 20 30 40 50 60 70 80 90 100
(dengan selang 2 spasi diantara angka-angka itu).
4. Buat algoritma/program untuk menampilkan jumlah angka 20 bilangan asli pertama.
Bilangan asli adalah bilangan bulat dimulai dari 1,2,3,….
5. Buat algoritma/program 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 algoritma/program 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+2)/5=16/5=3.2.
Download