You are on page 1of 29

Pemrograman

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

(0,0) (1,0) (2,0) (3,0) (4,0)

(0,1) (1,1) (2,1) (3,1) (4,1)

(0,2) (1,2) (2,2) (3,2) (4,2)

(0,3) (1,3) (2,3) (3,3) (4,3)


 Aturan-aturan

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)

(4,3) (0,0) (1,3) (4,3) (0,0) (3,0)


 Salah satu solusi:

Isi Teko A Isi Teko B Aturan yang


(gallon) (gallon) dipakai

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

(0,0,0,0) (1,1,1,1) solusi


Pendahuluan
 Komputer adalah alat bantu untuk
menyelesaikan masalah.
 Dalam menyelesaian masalah dengan
komputer perlu merumuskan langkah langkah
penyelesaian masalah dalam sekumpulan
instruksi.
 Sekumpulan instruksi yang dimengerti oleh
komputer yang disebut dengan program.
Bahasa Pemrograman
 Program harus ditulis dalam suatu bahasa yang
dimengerti oleh komputer yaitu dalam Bahasa
pemrogram dibedakan menjadi :
– Bahasa tingkat rendah (low level language) :
bahasa yang berorientasi ke mesin.
– Bahasa tingkat tinggi (high level language) :
bahasa yang berorientasi ke manusia (seperti
bahasa inggris) contoh bahasa Pascal, bahasa
C dll.
Bahasa Pemrograman
 Program yang ditulis dalam bahasa pemrograman
akan diterjemahkan ke dalam bahasa mesin (kenal
dengan biner digit) dengan menggunakan
penterjemah.
Penterjemah :
– Interpreter : menterjemahkan baris per baris
instruksi. Contoh bahasa Basic.
– Compiler : menterjamahkan setelah seluruh
instruksi ditulis. Contoh bahasa Pascal, C, Ada ,C++,
dll.
Apakah itu Algoritma?
 Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah
yang aneh. Orang hanya menemukan kata Algorism yang berarti proses
menghitung dengan angka arab. Anda dikatakan Algorist jika anda
menghitung menggunakan Angka Arab. Para ahli bahasa berusaha
menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para
ahli sejarah matematika menemukan asal kata tersebut yang berasal dari
nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu
Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism.
 Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal Muqabala
yang artinya “Buku pemugaran dan pengurangan” (The book of restoration
and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar”
(Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena
kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm
berubah menjadi–thm.
 Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka
lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode
perhitungan (komputasi) secara umum, sehingga kehilangan makna kata
aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.
Definisi Algoritma…
 Algoritma adalah urutan langkah-langkah
logis penyelesaian masalah yang disusun
secara sistematis dan logis”.
 Kata Logis merupakan kata kunci dalam
Algoritma.
 Langkah-langkah dalam Algoritma harus
logis dan harus dapat ditentukan bernilai salah
atau benar.
Belajar Pemrograman VS Belajar
Bahasa Program
 Belajar memprogram tidak sama dengan belajar
bahasa pemrograman. Belajar memprogram adalah
belajar tentang metodologi pemecahan masalah,
kemudian menuangkannya dalam suatu notasi
tertentu yang mudah dibaca dan dipahami.
 Sedangkan belajar bahasa pemrograman berarti
belajar memakai suatu bahasa aturan-aturan tata
bahasanya, instruksi-instruksinya, tata cara
pengoperasian compiler-nya, dan memanfaatkan
instruksi-instruksi tersebut untuk membuat program
yang ditulis hanya dalam bahasa itu saja.
Belajar Memrogram..
 Belajar memprogram ≠ belajar bahasa pemrograman
 Belajar memprogram : belajar tentang strategi
pemecahan masalah, metodologi dan sistematika
pemecahan masalah kemudian menuliskannya dalam
notasi yang disepakati bersama
 Belajar memprogram : bersifat pemahaman
persoalan, analisis dan sintesis
 Belajar memprogram, titik berat : designer program
Belajar Bahasa Pemrograman
 Belajar bahasa pemrograman : belajar
memakai suatu bahasa pemrograman, aturan
sintaks, tatacara untuk memanfaatkan
instruksi yang spesifik untuk setiap bahasa
 Belajar bahasa pemrograman , titik berat :
coder
Produk yang dihasilkan pemrogram
 program dengan rancangan yang baik (metodologis,
sistematis)
 Dapat dieksekusi oleh mesin
 Berfungsi dengan benar
 Sanggup melayani segala kemungkinan masukan
 Disertai dokumentasi
 Belajar memprogram, titik berat : designer program
Notasi Algoritma..
 Penulisan algoritma tidak tergantung dari
spesifikasi bahasa pemrograman dan
komputer yang mengeksekusinya. Notasi
algoritma bukan notasi bahasa
pemrograman tetapi dapat diterjemahkan
ke dalam berbagai bahasa pemrograman
Notasi Algoritma..
 Notasi algoritma dapat berupa :
 – Uraian kalimat deskriptif (narasi)

 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

 Algoritma harus berhenti setelah mengerjakan


sejumlah langkah terbatas.
 Setiap langkah harus didefinisikan dengan tepat dan
tidak berarti-dua (Ambiguitas).
 Algoritma memiliki nol atau lebih masukkan.
 Algoritma memiliki nol atau lebih keluaran.
 Algoritma harus efektif (setiap langkah harus
sederhana sehingga dapat dikerjakan dalam waktu
yang masuk akal).
Tugas :

Buat Pseudo-code untuk


mencari akar persamaan ax2+bx+c=0

You might also like