Professional Documents
Culture Documents
Komputer
Pengantar Logika
dan ALGORITMA PEMROGRAMAN
Contoh: Masalah Teko Air
Ada 2 buah teko masing-masing berkapasitas 4 galon (teko A) dan 3 galon
(teko B).
Tidak ada tanda yang menunjukkan batas ukuran pada kedua teko tersebut.
Ada sebuah pompa air yang akan digunakan untuk mengisikan air pada
kedua teko tersebut.
Permasalahannya: Bagaimanakah kita dapat mengisikan tepat 2 galon air
ke dalam teko yang berkapasitas 4 galon?
Air
Air
tak terbatas
tak terbatas
4 galon
(teko A) 3 galon
(teko B)
Penyelesaian …
Identifikasi ruang keadaan:
Permasalahan ini dapat direpresentasikan dengan 2 bilangan
integer, yaitu x dan y:
x = air yang diisikan pada teko 4 galon (teko A);
y = air yang diisikan pada teko 3 galon (teko B);
Ruang keadaan: (x,y) sedemikian hingga x{0,1,2,3,4} dan
y{0,1,2,3}.
Keadaan awal & tujuan:
Keadaan awal, kedua teko dalam keadaan kosong: (0,0);
Tujuan, keadaan dimana pada teko 4 galon berisi tepat 2 galon
air: (2,n) untuk sembarang n.
Keadaan Awal Tujuan
Aturan
Jika Maka
ke-
1. (x,y) (4,y)
x<4 Isi teko A.
2. (x,y) (x,3)
y<3 Isi teko B.
3. (x,y) (x-d,y)
x>0 Tuangkan sebagian air keluar dari teko A.
4. (x,y) (x,y-d)
y>0 Tuangkan sebagian air keluar dari teko B.
5. (x,y) (0,y)
x>0 Kosongkan teko A dengan membuang
airnya ke tanah.
6. (x,y) (x,0)
y>0 Kosongkan teko B dengan membuang
airnya ke tanah.
7. (x,y) (4,y-(4-x))
x+y 4 dan y > 0 Tuangkan air dari teko B ke teko A
sampai teko A penuh.
8. (x,y) (x-(3-y),3)
x+y 3 dan x > 0 Tuangkan air dari teko A ke teko B
sampai teko B penuh.
9. (x,y) (x+y,0)
x+y 4 dan y > 0 Tuangkan seluruh air dari teko B ke
teko A.
10. (x,y) (0,x+y)
x+y 3 dan x > 0 Tuangkan seluruh air dari teko A ke
teko B.
11. (0,2) (2,0)
Tuangkan 2 galon air dari teko B ke
teko A.
12. (2,y) (0,y)
Kosongkan 2 galon air di teko A
dengan membuang airnya ke tanah.
Representasi ruang keadaan dengan pohon
pelacakan.
(0,0)
(4,0) (0,3)
0 0 2
0 3 9
3 0 2
3 3 7
4 2 5
0 2 9
2 0 solusi
Contoh: Petani, Sayur, dan Kambing
Seorang petani akan menyeberangkan seekor
kambing, seekor serigala, dan sayur-sayuran
dengan sebuah boat yang melalui sungai.
Boat hanya bisa memuat petani dan satu
penumpang yang lain (kambing, serigala atau
sayur-sayuran).
Jika ditinggalkan oleh petani tersebut, maka
sayur-sayuran akan dimakan oleh kambing, dan
kambing akan dimakan oleh serigala.
Penyelesaian …
Identifikasi ruang keadaan
Permasalahan ini dapat dilambangkan dengan
(JumlahKambing, JumlahSerigala, JumlahSayuran,
JumlahBoat).
Sebagai contoh: Daerah asal (0,1,1,1) berarti pada daerah asal
tidak ada kambing, ada serigala, ada sayuran, dan ada boat.
Keadaan Awal
Daerah asal: (1,1,1,1)
Daerah seberang: (0,0,0,0)
Tujuan
Daerah asal: (0,0,0,0)
Daerah seberang: (1,1,1,1)
Aturan-aturan
Aturan
Aturan
ke-
1. Kambing menyeberang
2. Sayuran menyeberang
3. Serigala menyeberang
4. Kambing kembali
5. Sayuran kembali
6. Serigala kembali
7. Boat kembali
Salah satu solusi:
Daerah
Daerah Asal Aturan yang dipakai
Seberang
(1,1,1,1) (0,0,0,0) 1
(0,1,1,0) (1,0,0,1) 7
(0,1,1,1) (1,0,0,0) 3
(0,0,1,0) (1,1,0,1) 4
(1,0,1,1) (0,1,0,0) 2
(1,0,0,0) (0,1,1,1) 7
(1,0,0,1) (0,1,1,0) 1
Contoh
Algoritma Kelulusan_mhs
Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60
maka mahasiswa tersebut dinyatakan lulus jika nilai lebih kecil dari 60 maka dinyatakan
tidak lulus.
DESKRIPSI :
baca nama dan nilai mahasiswa.
jika nilai >= 60 maka
keterangan = lulus
yang lain
keterangan = tidak lulus.
tulis nama dan keterangan
Flow Chart..
Pseudo-Code
Algoritma Kelulusan_mhs
{diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60
maka mahasiswa tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus}
DEKLARASI :
Nama : string
Nilai : integer
Keterangan : string
DESKRIPSI :
read (nama, nilai)
if nilai >= 60 then
keterangan = ‘lulus’
else
keterangan = ‘tidak lulus’
write(nama, keterangan)
Aturan Penulisan Teks algoritma
Judul algoritma
Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi)
tentang algoritma tersebut. Nama sebaiknya singkat dan menggambarkan
apa yang dilakukan oleh algoritma tersebut.
Deklarasi
Bagian untuk mendefinisikan semua nama yang digunakan di dalam
program. Nama tersebut dapat berupa nama tetapan, peubah, tipe,
prosedur dan fungsi.
Deskripsi
Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang
ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya
Contoh..
Algoritma Luas_Kell_Lingkaran {<- ini judul algoritma}
{menghitung luas dan keliling lingkaran untuk ukuran jari-jari tertentu.
Algoritma menerima masukan jari-jari lingkaran, menghitung luas dan
kelilingnya, dan mencetak luas dan keliling lingkaran ke piranti keluaran}
DEKLARASI :
const phi = 3.14
R : real {jari-jari lingkaran}
Luas : real {luas lingkaran}
Keliling : real {keliling lingkaran}
DESKRIPSI :
read (R)
Luas = phi * R *R
Keliling = 2 * phi * R
write(luas, keliling)
Ciri penting algoritma