Prosedur : himpunan hingga instruksi,
yg bersifat diskrit dan jelas,
serta dapat dijalankan secara mekanik.
Secara mekanik maksudnya dapat dibuat program
komputer.
Semi-
Algoritma :
adalah prosedur yang mampu menghasilkan pemecahan
atau solusi masalah, bila
solusi memang ada, dan
kemudian berhenti.
Algoritma : - semi
algoritma yang mampu mendeteksi tidak adanya
solusi, bila solusi memang
tidak ada, dan mampu
untuk berhenti.
- suatu susunan langkah-langkah instruksi untuk
menyelesaikan masalah.
Contoh :
Masalah :
Tentukan
akar kuadrat dari suatu bilangan bulat positif ! (akarnya
bilangan bulat positif)
Penyelesaiannya :
Semi algoritmanya :
1. Baca bilangan bulat positif y
2. Nyatakan nilai q = 0
3. Hitung p = q x q
4. Jika p = y maka q adalah akarnya, lalu
berhenti
5. Q ditambah 1
6. Kembali ke langkah 3
Dari semi algoritma di atas, jika dijalankan
Untuk nilai y = 4, prosesnya adalah :
1. y = 4
2. q = 0
3. p = 0
4. p = y
® 0 = 4 ?
(salah)
5. q = 1
6. kembali ke langkah 3
3. p = 1
4. p = y
® 1 = 4 ?
(salah)
5. q
= 2
6.
kembali ke langkah 3
3. p = 4
4. p = y
® 4 = 4 ?
(benar)
5. berarti q = 2 adalah akarnya.
6. Proses berakhir.
Untuk nilai y = 5, maka prosesnya adalah :
1. y = 5
2. q = 0
3. p = 0
4. p = y
® 0 = 5 ?
(salah)
5. q = 1
6. kembali ke 3
3. p = 1
4. p = y
® 4 = 5 ?
(salah)
5. q = 3
6. kembali ke langkah 3
3. p = 9
4. p = y
® 9 = 5 ?
(salah)
5. q = 3
6. kembali ke 3
……
…..
dan
seterusnya
Proses tersebut tidak akan pernah berhenti, karena
untuk masalah nilai y = 5 tidak mempunyai solusi.
Urutan dari barisan langkah-lamgkah tersebut di atas
(semi algoritma) dapat diubah menjadi algoritma. Dengan demikian proses akan
berhenti atau berakhir baik dalam keadaan ada solusi maupun tidak ada solusi.
Hal ini cukup dilakukan dengan penambahan satu instruksi di antara langkah ke-4
dan ke-5. Sehingga algoritmanya adalah :
1. Baca bilangan bulat positif y
2. Nyatakan nilai q = 0
3. Hitung p = q x q
4. Jika p = y maka q adalah akarnya, lalu
berhenti
5. Jika p > y maka y tidak punya akar, lalu
benrhenti
6. Q ditambah 1
7. Kembali ke langkah 3
Dari algoritma di atas, jika dijalankan untuk nilai :
y = 4, prosesnya adalah :
1. y = 4
2. q = 0
3. p = 0
4. 0 = 4 ? (salah)
5. 0 > 4 ? (salah)
6. q = 1
7. kembali ke 3
3. p
= 1
4. 1 = 4 ? (salah)
5. 1 > 4 ? (salah)
6. q = 2
7. kembali ke langkah 3
7. p = 4
8. 4 = 4 ? (benar)
berarti q = 2 adalah akarnya.
Proses
berakhir.
Untuk y = 5, prosesnya adalah :
1. y = 5
2. q = 0
3. p = 0
4. 0 = 5 ? (salah)
5. 0 > 5 ? (salah)
6. q = 1
7. kembali ke langkah 3
3. p = 1
4. 1 = 5 ? (salah)
5. 1 > 5 ? (salah)
6. q = 2
7. kembali ke langkah 3
3. p = 4
4. 4 = 5 ? (salah)
5 .5 ? (salah)
6. q = 3
7. kembali ke langkah 3
8. p = 9
9. 9 = 5 ? (salah)
10. 9 > 5 ? (benar)
11. berarti tidak punya akar.
Proses berhenti
Sifat-sifat
Algoritma :
1. Banyaknya langkah instruksi yang hingga :
Banyaknya instruksi atau langkah
haruslah berhingga, jika tidak demikian, proses yang dilakukan akan memerlukan
waktu yang relatif lebih lama dan diperoleh hasil yang tidak diperlukan atau
tidak berhubungan dengan masalah yang ada. Bahkan akan memungkinkan proses
berlangsung terus walaupun solusi yang diharapkan sudah diperoleh.
2. Harus jelas :
Penulisan dari setiap langkah yang
terdapat didalam sebuah algoritma harus memiliki arti yang khusus dan spesifik,
karena penulisan langkah bagi komputer berbeda dengan penulisan langkah bagi
manusia.
3. Batasan dari rangkaian proses :
Rangkaian proses yang berisi
langkah-langkah dari suatu algoritma yang akan dilaksanakan harus ditetapkan
dengan pasti.
4. Batasan dari input dan output :
Input merupakan data yang dimasukkan ke
dalam algoritma. Input tersebut harus sesuai dengan jenis algoritma yang
bersangkutan. Output merupakan hasil yang dikeluarkan oleh komputer sebagai
hasil dari pelaksanaan program.
5. Efektivitas :
Instruksi dari sebuah algoritma dapat
memerintahkan komputer agar hanya melaksanakan penugasan yang mampu
dilaksanakannya saja. Komputer tidak dapat
melaksanakan instruksi, jika informasinya tidak lengkap, atau jika hasil
dari pelaksanaan perintah tidak diberi batasan yang jelas.
6. Batasan ruang lingkup :
Sebuah algoritma adalah diperuntukkan
bagi suatu masalah tertentu.
Contoh 1.
Masalah :
Tentukan
bilangan terbesar diantara 3 bilangan bulat yang diberikan.
Algoritma :
1. Baca (sebagai input) bilangan yang pertama,
sebut sebagai NUM1
2. Baca (sebagai input) bilangan yang kedua,
sebut sebagai NUM2
3. Bandingkan NUM1 dengan NUM2, kita ambil
yang lebih besar, jika kedua bilangan tersebut sama besarnya, kita ambil NUM1,
dan sebut bilangan tersebut BESAR.
4. Baca (sebagai input) bilangan yang ketiga,
sebut sebagai NUM3
5. Bandingkan BESAR dengan NUM3 dan pilih yang
lebih besar, jika keduanya sama besar, pilih BESAR, dan sebut bilangan tersebut
BESAR
6. Keluarkan, sebagai output, BESAR
7. Selesai
Contoh 2.
Berikut ini perluasan dari masalah pada contoh 1.
Masalah :
Tentukan bilangan terbesar diantara N buah
bilangan yang duberikan, dengan N lebih besar dari 2.
Algoritma :
1. Input (masukkan) N
2. Input (masukkan) bilangan yang pertama ,
sebut sebagai NUM1
3. Input (masukkan) bilangan yang kedua ,sebut
sebagai BESAR
4. Buatlah pencacah atau counter untuk
menghitung banyaknya bilangan yang sudah dibaca, sebut pencacah tersebut
HITUNG. Istilah sebagai harga awal dari HITUNG adalah 2.
5. Bandingkan NUM1 dengan BESAR, jika NUM1
lebih besar dari pada BESAR, tempatkan BESAR = NUM1.
6. Jika HITUNG sama dengan N, output adalah
BESAR, kemudian berhenti
7. Jika HITUNG tidak sama dengan N, tambahkan
1 pada nilai HITUNG. Masukkan bilangan berikutnya sebut NUM1. Kemudian
laksanakan lagi langkah ke- 5 ini.
DIAGRAM ALUR (FLOWCHART)
Diagram alur dapat menunjukkan secara jelas arus
pengendalian algoritma, dengan memberikan gambaran berupa simbol-simbol yang
masing-masing memiliki fungsi dan arti.
0 comments: