Bab I Pengantar Ke Algoritma -...

24
Bab I Pengantar Ke Algoritma

Transcript of Bab I Pengantar Ke Algoritma -...

Page 1: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Bab I

Pengantar Ke Algoritma

Page 2: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

1.1. Apa Itu Algoritma• Kata algoritma sendiri berasal dari kata algorism yang berarti proses

sebagai metode perhitungan komputasi ( Urutan logis pengambilan keputusan intuk penyelesaian masalah )

• Penemu : Abu Abdullah Muhammad Ibnu Musa Al-Khuwarizm

• Pada tahun 1950, algoritma sering dihubungkan dengan “ algoritma Eucledean “ yaitu proses untuk menentukan pembagi bersama terbesar dari dua bilangan bulat. Yaitu ;

diberikan dua buah bilangan bulat positif m dan n ( dalam hal ini m >=n), carilah pembagi bersama terbesar,pbt, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.

E1 bagilah m dengan n dan misalkan sisa hasil baginya adalah r.

E2 apakah r = 0 ? Jika r=0, algoritma selesai, n adalah jawabannya , tetapi jika tidak maka dilanjutkan ke langkah E3.

E3 ganti nilai m dengan nilai n, nilai n dengan nilai r, dan ulang kembali kelangkah E1.

Page 3: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

• Menurut Donald E. Knuth dalam bukunya yang berjudul the art of computer programmming, algoritma harus mempunyai lima ciri.

1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.

2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua.

3. Algoritma memiliki 0 atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma sebelum algoritma mulai bekerja.

4. Algoritma mempunyai satu atau lebih keluaran (output). Keluaran ialah besaran yang memiliki hubungan dengan masukan

5. Algoritma harus sangkil ( efective ).Setiap langkah harus sederhana sehingga dapat dikerrjakan dengan sejumlah waktu yang masuk akal.

Page 4: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

1.2. Proses, Langkah dan Aksi.

• Algoritma disusun oleh sederetan langkah yg

logis.

• Tiap langkah tsb mengerjakan suatu

tindakan/aksi.

• to : keadaan sebelum aksi dikerjakan

aksi

t1 : keadaan setelah aksi dikerjakan

Page 5: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Algoritma Euclidean dpt dipandang sebagai sebuah

proses mencari pembagi bersama terbesar dari dua buah

bilangan bulat positif, m dan n.

• to : m dan n sudah terdefinisi nilainya, m>0,

n>0 dan m>n

• E.1.Bagilah m dengan n dan misalkan r

adalah sisanya

• t1 : r adalah sisa hasil bagi, 0≤ r < n

• t0 : r adalah sisa hasil bagi, 0≤ r < n

• E.2. Apakah r = 0? Jika r = 0, algoritma

selesai; n adalah jawabannya, tapi jika tidak,

lanjutkan ke langkah E3.

Page 6: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

• t1 : r = 0 (n adalah jawabannya) atau r ≠ 0

• t0 : r ≠ 0

• E.3. Ganti nilai m dengan nilai n, nilai n

dengan nilai r dan ulang kembali ke langkah

E1.

• t1 : m = n dan n = r

Page 7: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

• Analisis yang tidak tajam terhadap permasalahan

dapat menghasilkan algoritma yang tidak benar untuk

beberapa kasus.

• Contoh : Menghitung lama percakapan di wartel.

Algoritma menghitung selisih dua buah jam

A1. baca jam mulai percakapan, misalkan j1:m1:d1

A2. baca jam selesai percakapan, misalkan j2:m2:d2

A3. hitung selisih (j2:m2:d2) dengan (j1:m1:d1)

A4. tulis selisih langkah A3.

Page 8: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

• Apabila penelepon mulai percakapan pukul 21:40:12

dan selesai pukul 22:58:48, maka lama percakapan

adalah (22:58:48)-(21:40:12) = (1:18:36)

• kasus lain: mulai percakapan = (21:50:58)

selesai percakapan = (23:18:10)

• Selisihnya bukan (23:18:10) - (21:50:58) = (2:32:-48)

• Maka harus dikonversi semua jam ke detik

• 23:18:10 = 83890 detik

• 21:50:58 = 78658 detik -

Selisih = 5232 detik = (1:27:22)

Page 9: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Dengan demikian, algoritma menghitung selisih

dua buah jam diperhalus menjadi :

• Algoritma menghitung selisih dua buah jam

A1. baca jam mulai percakapan, misalakan j1:m1:d1

A2. baca jam selesai percakapan, misalkan j2:m2:d2

A3.1 konversi j1:m1:d1 ke dalam jumlah detik

A3.2 konversi j2:m2:d2 ke dalam jumlah detik

A3.3 kurangi hasil langkah A3.2 dengan hasil langkah A3.1

A3.4 konversi hasil langkah A3.3 ke dalam jam:menit:detik

A4. tulis hasil langkah A3.4

Page 10: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

• Langkah A3 telah diperhalus menjadi beberapa

up – aksi (subaction) A3.1, A3.2, A3.3 dan A3.4.

• Pendekatan desain algoritma seperti ini

dinamakan penghalusan langkah atau

perancangan puncak-turun (top-down design)

• Pendekatan ini sangat bermanfaat dalam

membuat algoritma untuk masalah yg cukup

rumit atau kompleks.

• Penghalusan langkah terus berlanjut sampai tiap

langkah sudah cukup rinci dan tepat untuk

dilaksanakan pemroses.

Page 11: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Dengan memperjelas langkah A3.1, A3.2, A3.3 dan

memperhalus lagi langkah A3.4, maka :

• Algoritma menghitung selisih dua jam

A1. baca jam mulai percakapan, misalkan j1:m1:d1

A2. baca jam selesai percakapan, misalkan j2:m2:d2

A3.1 hitung p = j1 x 3600 + m1 x 60 + d1

A3.2 hitung q = j2 x 3600 + m2 x 60 + d2

A3.3 hitung r = q – p {selisih jumlah detik kedua jam}

A3.4.1 hitung s = r/3600, misalkan sisanya adalah t {s adalah selisih dalam jam}

A3.4.2 hitung u = t/60, misalkan sisanya adalah v {u adalah selisih dalam menit, v adalah selisih dalam detik}

A4. tulis s:u:v {selisih kedua jam dalam jam:menit:detik}

Page 12: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

1.3. Algoritma Merupakan Jantung Ilmu Informatika

• Algoritma adalah jantung ilmu informatika atau

komputer. Banyak cabang ilmu yang diacu dalam

terminologi algoritma, namun bukan berarti algoritma

selalu identik dengan komputer.

• Dalam algotitma ada bagian yang mengerjakan

langkah-langkah yang disebut dengan istilah

pemroses(Prosessor) dapat berupa alat, manusia, robot

komputer dll

Page 13: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

1.4. Perbedaan algoritma dengan Program

• Komputer hanyalah alat pemroses.

• Agar dapat dilaksanakan oleh komputer algoritma harus dinaytakan dalam bentuk yang disebut dengan program.jadi program adalah perwujudan atau implementasi dari algoritma yang ditulis dalam bahasa pemrograman tertentu dan dapat dilaksanakan oleh komputer..

• Pembuat program adalah programmer.

• Kegiatan membuat program disebut programming.

• Tiap langkah dalam program disebut pernyataan atau instruksi.

• Secara garis besar komputer tersusun atas piranti masukan, pemroses dan piranti keluaran

Page 14: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Komponen Utama Komputer

Piranti

masukanPiranti

Keluaran

CPU ( Unit

Pemroses

Utama )

Memory

Page 15: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

1.5. Belajar Memprogram & Belajar Bahasa

Pemrograman.

• Belajar memprogram adalah belajar tentang strategi pemecahan masalah dan dan sistematika pemecahan masalah tersebut.

• Belajar bahasa pemrograman belajar memakai suatu bahasa, aturan tata bahasanya, instruksi-instruksinya, cara pengoperasian compiler-nya dan memanfaatkan instruksi-instruksi tersebut untuk membuat program.

• Bahasa pemrograman dapat digolongkan mencjadi :

1) Bahasa Pemrograman bertujuan khusus.

2) Bahasa pemrograman bertujuan umum.

Berdasarkan pada apakah bahasa tersebut lebih dekat ke mesin atau kemanusia maka bahasa dikelompokan menjadi ;

1) Bahasa tingkat rendah.

2) Bahasa tingkat tinggi.

Page 16: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Tahap Pelaksanaan Program Oleh Komputer

Algoritma

Pemrograman

Program dalam

Bahasa tingkat Tinggi

Translasi

Program dalam

Bahasa mesin

Interpretasi oleh CPU

Proses yang diinginkan

Page 17: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Struktur Dasar Algoritma

Ada tiga struktur dasar untuk membangun

algoritma , yaitu :

1. Runtunan (sequence)

2. Pemilihan (selection)

3. Pengulangan (repetition)

Page 18: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Runtunan

• Aksi – aksi dalam algoritma menghitung selisih dua buah jam akan dilaksanakan oleh pemroses sesuai dengan urutan penulisannya.

• Aksi – aksi yg berurutan ini dinamakan runtunan.

• Tiap aksi di dalam runtunan dilaksanakan setelah aksi sebelumnya selesai dilaksanakan.

• Runtunan aksi dilambangkan dengan A1, A2, A3, A4 dan A5 :

A1

A2

A3

A4

A5

Page 19: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Pemilihan

• Pada kasus selisih dua jam, harus diperiksa dulu apakah ia lebih kecil dari jam awal percakapan. Jika ya, maka tambahkan nilai 24 ke j2. Karena itu, langkah A2 diperhalus menjadi :

A2.1 baca jam selesai bicara, misalkan j2:m2:d2

A2.2 if j2 < j1 then

tambahkan j2 dengan 24

• Jika j2 lebih besar dari j1, maka j2 tetap semula, pernyataan diatas dapat ditulis dalam bentuk umum:

if kondisi then

aksi

Page 20: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

• If jika, then maka

• Kondisi adalah pernyataan yang dapat

ditentukan nilai kebenarannya (benar atau

salah)

• Aksi hanya dilaksanakan apabila kondisi

setelah kata if bernilai benar. Sebaliknya

apabila kondisi bernilai salah, aksi sesudah

kata then tidak dilaksanakan.

Page 21: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

• Pada langkah A2.2 hanya memberikan satu pilihan aksi bila kondisi dipenuhi bernilai benar dan tidak melakukan kasi apa2 jika konsidi bernilai salah.

• Bentuk pemilihan yg lebih umum ialah memilih satu dari dua buah aksi bergantung pada nilai kondisinya :

if kondisi then

aksi 1

else

aksi 2

• Else artinya “kalau tidak”. Bila kondisi bernilai benar, aksi 1 akan dikerjakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan. Misal :

if jalanan macet then

lewatlah di jalan tol

else

lewatlah di jalur biasa

Page 22: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Pengulangan

• Pada kasus pengulangan penulisan, bila dimasukkan ke dalam komputer, maka untuk mengatasinya digunakan kata kunci repeat (ulangi) dan times (kali).

• Contoh :

Algoritma menulis 500 kalimat

A2. Repeat 500 times

tulis “saya berjanji tidak akan nakal dan malas lagi”

• Struktur pengulangan dapat ditulis secara umum :

repeat N times

aksi

Page 23: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

• Struktur pengulangan disebut kalang (loop).

• Bagian algoritma yang diulang disebut

badan kalang (loop body).

• Aksi di dalam badan kalang akan

dilaksanakan sebanyak N kali

Page 24: Bab I Pengantar Ke Algoritma - teguh-cahyono.blog.unsoed.ac.idteguh-cahyono.blog.unsoed.ac.id/files/2010/04/bab1-algoritma.pdf• Menurut Donald E. Knuth dalam bukunya yang berjudul

Contoh : algoritma mencari alamat mahasiswa bila

diketahui NIM dari sebuah tabel yang berisi data NIM,

nama dan alamat seluruh mahasiswa.

• Algoritma pencarian di dalam tabel

A1. baca NIM pertama di dalam tabel

A2. repeat

if NIM yang dibaca sama dengan NIM yang dicari maka tulis alamat mahasiswa yang bersangkutan

else

baca NIM berikutnya di dalam tabel

end if

until NIM ditemukan atau seluruh isi tabel sudah diperiksa