1 Dasar-dasar Algoritma Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN Apa Itu Algoritma? Algoritma berasal dari: Nama Abu Ja far Muh...
Dasar-dasar Algoritma Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN
Apa Itu Algoritma? • Algoritma berasal dari: dari:
– Nama Abu Ja’far Muhammad Ibnu Musa AlAl-Khwarizmi ahli matematika Persia yang menulis Kitab Al jabar walwal-muqabala pada sekitar tahun 825M. – Konsep pencatatan caracara-cara (prosedur) prosedur) pemecahan masalah matematika. matematika.
• Definisi: Definisi:
– Urutan langkah berhingga untuk memecahkan masalah logika atau matematika (Microsoft Press@) – Kamus Besar Bahasa Indonesia: Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah
• Algoritma dibutuhkan (terkait dengan komputer):
– untuk memerintah komputer mengambil langkahlangkah-langkah tertentu dalam menyelesaikan masalah
TI - Algoritma dan Pemrograman
2
1
Algoritma di Kehidupan Nyata • Cara-cara memasak atau membuat kue yang •
dinyatakan sebagai resep adalah algoritma. Menulis surat:
1. Mempersiapkan kertas dan amplop 2. Mempersiapkan alat tulis. tulis. 3. Mulai menulis 4. Memasukkan kertas ke dalam amplop 5. Amplop ditempeli perangko secukupnya 6. Pergi ke kantor pos untuk mengeposkan surat tsb. tsb. Langkah 1 s/d 6 adalah algoritma TI - Algoritma dan Pemrograman
– langkah dikerjakan secara berurutan (sekuensial). sekuensial).
• Percabangan (selection):
– langkah dikerjakan JIKA memenuhi kondisi tertentu
• Pengulangan (iteration):
– langkah dikerjakan SELAMA memenuhi suatu kondisi tertentu. tertentu.
• Konkuren (concurrent):
– beberapa langkah dikerjakan secara bersama. bersama. Catatan: Catatan: langkah = instruksi TI - Algoritma dan Pemrograman
4
2
Penulisan Algoritma • Dalam bahasa natural (Bahasa Indonesia,
Bahasa Inggris, dan bahasa manusia lainnya) – Tapi sering membingungkan (ambiguous)
• Menggunakan pseudo-code
– Sudah lebih dekat ke bahasa pemrograman, pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman
• Menggunakan flow chart (diagram alir) – Bagus secara visual akan tetapi repot kalau algoritmanya panjang TI - Algoritma dan Pemrograman
5
Pseudo-code • Definisi:
– Bahasa (biasanya Inggris) Inggris) terstruktur untuk menggambarkan logika algoritma
• Bagian terstruktur (konstruksi dasar) adalah:
– SEQUENCE: berurutan melakukan satu langkah setelah langkah lainnya – IFIF-THENTHEN-ELSE: percabangan (seleksi) seleksi) pilihan dibuat diantara dua alternatif langkah – WHILE: pengulangan dengan uji kondisi di awal
• Konstruksi tambahan:
– CASE: percabangan (generalisasi IFIF-THENTHEN-ELSE) – DODO-WHILE: pengulangan dengan uji kondisi di akhir – FOR: pengulangan dengan pencacah TI - Algoritma dan Pemrograman
6
3
Konstruksi SEQUENCE • Keyword yang umum dari SEQUENCE: Input : READ, OBTAIN, GET Output : PRINT, DISPLAY, SHOW Compute : COMPUTE, CALCULATE, DETERMINE Initialize : SET, INIT Add one : INCREMENT, BUMP
• Contoh: Contoh: READ height of rectangle READ width of rectangle COMPUTE area as height times width DISPLAY area
BACA tinggi persegi panjang BACA lebar persegi panjang HITUNG luas sbg tinggi kali lebar TAMPILKAN luas
TI - Algoritma dan Pemrograman
7
Konstruksi IF-THEN-ELSE • Bentuk Umum: Umum:
IF condition THEN sequence 1 ELSE sequence 2 ENDIF Catatan: Catatan: condition adalah pilihan biner (ya atau tidak) tidak)
• Contoh: Contoh:
IF HoursWorked > NormalMax THEN Display overtime message ELSE Display regular time message ENDIF TI - Algoritma dan Pemrograman
8
4
Konstruksi WHILE • Bentuk Umum: WHILE condition sequence ENDWHILE
• Contoh: WHILE Population < Limit Compute Population as Population + Births - Deaths ENDWHILE TI - Algoritma dan Pemrograman
9
Flowchart • Definisi: Definisi: Flowchart adalah bentuk gambar/diagram gambar/diagram yang mempunyai aliran satu atau dua arah secara sekuensial. sekuensial.
• Digunakan: Digunakan:
Untuk merepresentasikan sebuah algoritma secara skematik sehingga mempermudah memahami alur logikanya. logikanya.
Lambang-lambang Flowchart
Lambang
Keterangan Mulai atau Selesai (Terminator) Aliran data
TI - Algoritma dan Pemrograman
10
5
Lambang-lambang Flowchart Lambang
Keterangan Lambang
Keterangan
Input/Output
Perulangan (Iterasi) Iterasi)
Proses
syarat Bagian yang diulang
Percabangan (Seleksi) Seleksi)
pencacah
Konektor di halaman yang sama
Pemberian nilai awal suatu variabel
Konektor di halaman lain
Memanggil fungsi
TI - Algoritma dan Pemrograman
11
Contoh Konstruksi Berurutan – Memecahkan masalah matematika yaitu menghitung luas lingkaran dengan masukan berupa jarijari-jari lingkaran Rumus: Rumus: L = πR2
• Algoritma dalam bahasa natural (Indonesia) 1. 2. 3. 4.
Ambil jarijari-jari lingkaran R Set Pi sama dengan 3.14 Hitung luas lingkaran L yaitu Pi kali kwadrat jarijari-jari R Tampilkan luas lingkaran L TI - Algoritma dan Pemrograman
12
6
• Algoritma dengan Pseudo-code Indonesia
1. 2. 3. 4.
Masukkan R Pi ← 3.14 L ← Pi * R * R Tulis L
1. 2. 3. 4.
Read R Pi ← 3.14 L ← Pi * R * R Print L
• Algoritma dengan Pseudo-code Inggris
TI - Algoritma dan Pemrograman
13
Algoritma dengan Flow chart Mulai
Masukkan R
Pi ←3.14 L ←Pi * R * R
Tulis L
Selesai TI - Algoritma dan Pemrograman
14
7
Contoh Konstruksi Percabangan – Menuliskan nilai absolut dari nilai yang dimasukkan pengguna Definisi nilai absolut: absolut: | x | = x, jika x ≥ 0 | x | = -x, jika x < 0
• Algoritma dalam bahasa natural Indonesia
1. Ambil nilai x 2. Jika (x < 0) maka kerjakan baris 3, jika tidak kerjakan baris 4 3. Set x sama dengan -x 4. Tampilkan x TI - Algoritma dan Pemrograman
15
Algoritma dengan Pseudo-code (Bhs Inggris) 1. 2. 3.
GET x IF x < 0 THEN x ← -x DISPLAY x
Algoritma dengan Pseudo-code (Bhs Indonesia) 1. 2. 3.
AMBIL x JIKA x < 0 MAKA x ← -x TAMPILKAN x
TI - Algoritma dan Pemrograman
16
8
Algoritma dengan Flow chart Mulai
Masukkan x
x < 0?
Y
T
x ← -x
Tulis x
Selesai
TI - Algoritma dan Pemrograman
17
Contoh Konstruksi Pengulangan –
Menghitung penjumlahan dari sekumpulan data yang dimasukkan oleh pengguna Rumus mencari penjumlahan dari sejumlah data N: N
sum = ∑ dti i=1
• Algoritma dalam bahasa natural (Bhs (Bhs Indonesia) 1. Masukkan jumlah data N 2. Set sum = 0 dan pencacah i = 1 3. Ulangi langkahlangkah-langkah berikut sampai i > N
a. b. c.
Masukkan dt Hitung sum = sum + dt Tingkatkan pencacah i dengan 1
4. Tulis sum TI - Algoritma dan Pemrograman
18
9
Algoritma dengan Pseudo-code Inggris 1. 2. 3. 4. 5. 6. 7. 8. 9.
GET N sum ← 0 i←1 WHILE i ≤ N READ dt sum ← sum + dt i←i+1 ENDWHILE DISPLAY sum
TI - Algoritma dan Pemrograman
19
Algoritma dengan Flow chart Mulai Masukkan N sum ← 0 i←1 Selama (i ≤ N) Masukkan dt sum ← sum + dt i←i+1 Tulis sum Selesai TI - Algoritma dan Pemrograman
20
10
Aspek Penting dari Algoritma 1. Finiteness (ada (ada batas) batas)
Algoritma harus berhenti after a finite number of steps
2. Definiteness (pasti (pasti))
Setiap langkah harus didefinisikan secara tepat, tepat, tidak boleh membingungkan (ambiguous)
3. Input
Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan
4. Output
Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input
5. Effectiveness (tepat (tepat dan efisien) efisien)
Setiap algoritma diharapkan miliki sifat efektif TI - Algoritma dan Pemrograman
21
Latihan 1. Tulislah algoritma untuk mencari luas segitiga jika 2.
3. 4.
masukan dari pengguna adalah alas dan tingginya. tingginya. Rumus: Rumus: L = ½ a.t. a.t. Tulislah algoritma untuk mencari sisi miring dari suatu segitiga sikusiku-siku jika diketahui panjang dua sisi yang membentuk sudut sikusiku-siku. siku. Rumus: Rumus: c = √(a2 + b2) Tulislah algoritma untuk meminta masukan dua bilangan dari pengguna kemudian menampilkan bilangan terbesar di antara kedua bilangan tersebut. tersebut. Tulislah algoritma untuk menampilkan teks “Hello World” World” sebanyak 100 kali. TI - Algoritma dan Pemrograman