bab i dasar-dasar algoritma
DESCRIPTION
BAB I DASAR-DASAR ALGORITMA. ALGORITMA. An algorithm is “a precise rule (or set of rules) specifying how to solve some problem.” (thefreedictionary.com) Muhammad al-Khwarizmi - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/1.jpg)
BAB IDASAR-DASAR ALGORITMA
![Page 2: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/2.jpg)
ALGORITMA
An algorithm is “a precise rule (or set of rules) specifying how to solve some problem.” (thefreedictionary.com)
Muhammad al-KhwarizmiArab mathematician of the court of Mamun in Baghdad in the 9th century…the word algorithm is said to have been derived from his name. Much of the mathematical knowledge of medieval Europe (algebra) was derived from Latin translations of his works. (encyclopedia.com)
• The study of algorithms is one of the key foundations of computer science.
![Page 3: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/3.jpg)
FIRST ALGORITHM
Perhatikan pseudocode berikut ini(1) Input x(2) Input y(3) While x 0 do
(a) b= x modulo y(b) set x= y(c) set y = b(d) kembali ke langkah 3
(4) Output xJika nilai x = 114, dan y = 54, berapa outputnya?
![Page 4: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/4.jpg)
PENYAJIAN ALGORITMA
Kata-kata Pseudocode Flowchart
![Page 5: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/5.jpg)
ALGORITMA DI KEHIDUPAN SEHARI-HARI
Tuliskan resep membuat nasi goreng! Tuliskan langkah-langkah merakit kompor
gas! Tuliskan langkah-langkah menginstall
Windows XP. Tuliskan langkah-langkah menyelesaikan
Sistem Persamaan Linear dua peubah a1x + b1 y =c1 dan a2x + b2y =c2
Tuliskan langkah-langkah membuah grafik y = f(x)
![Page 6: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/6.jpg)
ALGORITMA ADALAH SUATU FUNGSI
![Page 7: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/7.jpg)
APA YANG DIPERLUKAN OLEH ALGORITMA?
SPESIFIKASI INPUT Agar bisa dijalankan sebuah algoritma
memerlukan spesifikasi input yang jelas Contoh:
Membuat resep makanan : Installasi software : Menjahit baju :
Spesifikasi input dalam algoritma komputer Jenis data apa yang diperlukan Berapa banyak data yang diperlukan Dari mana data tersebut diinputkan (bentuk
form, atau yang lain)
![Page 8: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/8.jpg)
APA YANG DIPERLUKAN OLEH ALGORITMA?
PROCESS Selain input, algoritma memerlukan langkah-
langkah yang jelas dan tepat untuk menyatakan bagaimna melakukan operasi untuk mendapatkan output yang diinginkan menyatakan proses dalam algoritma
Algoritma menyatkan kumpulan operas-operasi dasar yang diasumsikan dimengerti oleh eksekutor algoritma Resep makanan: haluskan, goreng, rebus,
tiriskan, … Komputasi: add, multiply, modulo, div, output, …
![Page 9: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/9.jpg)
APA YANG DIPERLUKAN OLEH ALGORITMA?
SPESIFIKASI OUTPUT Hasil apa yang diperlukan Bagaimana penyajian output Apa yang terjadi dengan output jika iput error
![Page 10: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/10.jpg)
BAGAIMNA MEMBUAT ALGORITMA BAIK?
Harus menghasilkan output yang benar untuk input yang legal
Sebisa mungkin mengeksekusi secara efisien dengan jumlah langkah seminimal mungkin
Sebisamungkin didesain sedemikian rupa sehingga orang lain mampu memahami dan memodifikasi untuk keperluan lebih lanjut
![Page 11: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/11.jpg)
CONTOH ALGORITMA
Misalkan diberikan algoritma berikut(1) Input: n(2) Input : Array A[1], A[2], …A[n] of
integer(3) Set i=2(4) Set m = A[1](5) While i<=n do
(a) if A[i] <m then set m=A[i](b) Set i=i+1
(6) Output m
Jika diberikan n = 5 dan A=[4, 7, 3, 5, 9, 8]
![Page 12: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/12.jpg)
MELACAK ALGORITMA
Nilai awal i=2, m=4. Berikutnya ada looping yang harus dicek i m
2
3
4
5
(1) Input: n=5(2) Input :
A=[4, 7, 3, 5, 9, 8](3) Set i=2(4) Set m = A[1](5) While i<=n do
(a) if A[i] <m then set m=A[i](b) Set i=i+1
(6) Output m
![Page 13: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/13.jpg)
CONTOH ALGORITMA 2
1. Input : n2. Input : array A[1], A[2], …, A[n] of integer3. For i=1 to n do4. for j=1 to n-1 do5. If A[j] > A[j+1], exchange
A[j] and A[j+1]6. Output A
Jika n = 5 dan A = [8,4,9,3,7], tentukan output nya
![Page 14: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/14.jpg)
CONTOH ALGORITMA 3
Apakah hasil dari algoritma di atas? Apakah pada langkah 3 perlu melakukan n kali
perulangan? Apakah pada langkah 4 perlu n-1 perulangan Coba lakukan algoritma ini untuk input yang
sama1. Input : n2. Input : array A[1], A[2], …, A[n] of integer3. For i=1 to n-1 do
for j=1 to n-i doIf A[j] > A[j+1], exchange A[j] and
A[j+1]4. Output A
![Page 15: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/15.jpg)
EFFISIENSI ALGORITMA
Hitunglah pada algoritma 2 dan 3 ada berapa kali pengecekan if .. Then …
Apa kesimpulanmu?
![Page 16: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/16.jpg)
LATIHAN
Buat Algoritma dengan kata-kata untuk beberapa masalah berikut Menentukan jenis segitiga berdasarkan panjang
sisi a, b, dan c (lancip, tumpul, siku-siku) Menentukan KPK dari dua bilangan integer x dan
y Menentukan persamaan garis singgung y=f(x) di
titik (x,y) Menentukan apakah sebuah bilangan prima atau
bukan Mencari nilai Pn(x) dengan input : n, koefisien
A[1..n] dan nilai x dan output hasilnya
![Page 17: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/17.jpg)
ATURAN PENULISAN ALGORITMA DENGAN PSEUDOCODE)
ALGORITMA Mencari Max//keterangan tujuan algoritma//keterangan input//keterangan output(1) Input: n(2) Input: array A[1], A[2], ..A[n] of integer(3) Process…(4) Process……(11) Output max
![Page 18: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/18.jpg)
ATURAN PENULISAN ALGORITMA DENGAN PSEUDOCODE)
SINTAX: If …then …else …
If (kondisi) then pernyataan 1 else pernyataan 2
ATAU
If (kondisi) then pernyataan 1
pernyataan 2 ….
else if pernyataan 1 pernyataan 2 else
pernytaan 1pernytaan 2
![Page 19: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/19.jpg)
ATURAN PENULISAN ALGORITMA DENGAN PSEUDOCODE)
SINTAX FOR … TO … DOFor i=nilaiawal to nilaiakhir do
pernyataan 1pernyataan 2….pernytaan n
![Page 20: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/20.jpg)
ATURAN PENULISAN ALGORITMA
SINTAX WHILE… DO …While (kondisi) do
pernyataan 1pernyataan 2….pernytaan n
![Page 21: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/21.jpg)
LATIHAN
Tuliskan algoritma berikut dalam pseudo code Menentukan apakah sebuah bilangan genap atau
ganjil Menentukan bilangan terbesar dari tiga angka a,
b, c Menentukan jumlah n bilangan kuadrat pertama
(input bilanagan integer n, output: jumlah n bilangan kuadrat yang pertama)
Menentukan 4 + 7+10 + ..+ Un (input:n) PR nomer 1 Menentukan bilangan fibonacci ke-n: 1, 2, 3, 5, 8,
..Fn (Input n)
![Page 22: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/22.jpg)
Menentukan jenis segitiga berdasarkan panjang sisi a, b, dan c (lancip, tumpul siku-siku) (diketahui c adalah sisi terpanjang)
Menentukan apakah sebuah bilangan prima atau bukan
Mencari nilai Pn(x) dengan input : n, koefisien A[0..n] dan nilai x dan output hasilnya
Mencari solusi SPL dua variabel dengan input koefisien-koefisien persamaan linear, output adalah x dan y
![Page 23: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/23.jpg)
LATIHAN (MENELUSURI ALGORITMA)
PR nomer 2 Ada sebanyak 100 loker di sebuah asrama,
dinomori secara urut dari 1 sampai 100. Setiap loker dilengkapi sebuah tombol yang jika ditekan akan merubah posisi loker. Jika tertutup menjadi terbuka dan sebaliknya. Posisi awal semua loker tertutup. Selanjutnya Anda langkah berikut. Langkah pertama dimulai dari loker 1, Anda tekan tombol pada semua loker i, i=1,2, …, 100. Pada langkah kedua, dimulai dari loker nomor 2 Anda tekan tombol pada loker bernomor genap(2, 4, 6…). Pada langkah ketiga, dimulai loker nomor 3 Anda tekan tombol pada loker kelipatan 3 (3, 6, 9, …) dan seterusnya. Setelah langkah ke 100, ada berapa loker yang tertutup?
![Page 24: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/24.jpg)
LATIHAN (MENELUSURI ALGORITMA)
PR ke-3ALGORITMA Sesuatu(1) Input: n(2) Input: array A[1..n] of integer(3) Set d=(4) For i=1 to n do(5) For j=1 to n do(6) If ij and |A[i]-A[j]|<d then(7) Set d=A[i]-A[j](8) Output d
Tentukan Outputnya jika diberikan n = 8, dan A=[2 3 7 11 4 14 10 8]
![Page 25: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/25.jpg)
PENYAJIAN ALGORITMA DENGAN FLOWCHART
Flowcharts digunakan untuk menunjukkan aliran kontrol dari suatu algoritma berjalan step by step dalam sajian visual
Flowcharts terdiri dari beberapa komponen Sebuah Oval utk menunjukkan START Sebarisan Kotak-kotak dengan operas-operasi
dalam algoritma (Kotak bisa persegi panjang, jajar genjang, belah ketupat)
Panah-panah untuk menunjukkan urutan kotak-kotak dievaluasi dalam algoritma
Sebuah Oval menunjukkan STOP or END
![Page 26: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/26.jpg)
SEQUENTIAL FLOW
Suatu operasi assignment (penugasan) memberikan suatu variabel sebuah nilai khusus atau merubah nilai lama menjadi nilai baru
Operasi Assignment disajikan dalam flow chart dengan menggunakan persegi panjang yang didalamnya dituliskan operasi assignment yang dimaksud
Contoh
![Page 27: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/27.jpg)
INPUT
Operasi input memberikan suatu variabel dengan nilai data yang diberikan oleh user/pengguna algoritma
Operasi input disajikan dalam flowchart menggunakan jajar genjang dengan panah kecil masuk dari samping
Isi dari jajar genjang adalah variabel yang diinisialisasi
Contoh
![Page 28: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/28.jpg)
OUTPUT
Operasi Output menampilkan nilai data variabel atau pesan kepada user dalam algoritma
Output disajikan dalam flowchart menggunakan jajar genjang dengan panah kecil keluar dari samping
Isi dari jajar genjang adalah variabel atau pesan yang hendak ditampilkan
Contoh
![Page 29: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/29.jpg)
CONTOH
Algoritma menentukan akar-akar persamaan kuadrat ax2 +bx + c =0
![Page 30: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/30.jpg)
OPERASI KONDISIONAL (BERSYARAT)
Operasi bersyarat menetukan aliran algoritma berdasarkan syarat tertentu
Digunakan untuk kasus If .. Then … atau while.. Do
Dilambangkan dengan belah ketupat dengan uji kondisi di dalamnya
Contoh:
![Page 31: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/31.jpg)
CONTOH
Algoritma mencari akar-akar persamaan ax2 + bx + c = 0
![Page 32: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/32.jpg)
LATIHAN
PR 4 dan 5 Sajikan algoritma berikut dalam bentuk flow
chart Menentukan jenis segitiga berdasarkan panjang
sisi a,b,c (diketahui sisi terpanjang adalah c) Menentukan nilai dalam huruf (A, B, C, D, E) dari
nilai angka skala 0-100
![Page 33: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/33.jpg)
OPERASI LOOP (PERULANGAN)
Perulangan mengindikasikan adanya operasi yang dilakukan secara berulang selama kondisi dipenuhi
Contoh struktur perulangan : WHILE … DO Direpresentasikan dalam flowchart dengan
tanda belah ketupat yang didalamya terdapat kondisi syarat. Pada dua ujung yang lain terdapat alur ke mana jika syarat dipenuhi dan tidak dipenuhi.
Proses di dalam perulangan bisa terdiri dari satu operasi atau lebih yang diakhiri dengan panah kembali ke atas untuk memeriksa kembali syarat
![Page 34: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/34.jpg)
OPERASI LOOP (PERULANGAN)
Contoh
![Page 35: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/35.jpg)
OPERASI PERULANGAN
Struktur perulangan : FOR … TO … DO
![Page 36: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/36.jpg)
BUAT FLOWCHART UNTUK MENENTUKAN ALGORITMA BERIKUT
PR NO 6, 7, 8 Menentukan nilai 2n (Gunakan while do) Buat flowchart untuk soal nomer 1 dan 3
![Page 37: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/37.jpg)
ALGORITMA REKURSIF
Rekursi Operasi rekursi adalah operasi yang didefinisikan
dengan dirinya sendiri
![Page 38: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/38.jpg)
ALGORITMA REKURSIF
Setiap operasi rekursi yg didefinisikan biasanya terdiri dari: Base case (kasus basis):
Kasus basis merupakan kasus yang paling sederhana dari operasi rekursif yang dapat langsung mendapatkan hasil
Recursive case (kasus rekursi) Kasus rekursi membawa suatu permasalah ke
permasalahan yang lebih sederhana atau lebih kecil ruang lingkupnya dari masalah awal
Pada akhirnya kasus rekursi membawa permasalahn ke kasus basisnya
![Page 39: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/39.jpg)
ALGORITMA REKURSIF
Ingat cara menentukan n! dengan struktur perulangan??
n!= n(n-1)(n-2)…1 Kita dapat definisikan dengan algoritma rekursi: Karena (n-1)(n-2)…(2)(1) = (n-1)!
n! = n(n-1)!, for n > 0 (recursive case) n! = 1 for n = 0 (base case)
![Page 40: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/40.jpg)
ALGORITMA REKURSIF
Jadi untuk n! dapat didefinisikan sebuah algoritma
Algoritma Rekursi(n) if n=0 then output 1 else output n*Rekursi(n-1)
![Page 41: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/41.jpg)
ALGORITMA REKURSIF
Tentukan output Hitung (10) dari algoritma berikut:(1) Algoritma Hitung(n)(2) If n=0 then output 0(3) else output 2+Hitung(n-1)
(1) Algoritma Hitung(n)(2) If n=1 then output 2(3) Else output 2*Hitung(n-1)
![Page 42: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/42.jpg)
ALGORITMA REKURSIF Algoritma Hitung(a,b) if a<=1 then Output 1 else if b<=1 then Output 2 else Output Hitung(a-2,b)+Hitung(a,b-2);Tentukan hasil Hitung(4,6)
Algoritma Ulang(n) if n=0 then Output 1 else if n=1 then Output 1 else
If (n mod 2)=0 then Output Ulang(n-1)+2*Ulang(n-2) else Output ulang(n-1)-ulang(n-2);Tentukan Ulang(6)
![Page 43: BAB I DASAR-DASAR ALGORITMA](https://reader035.vdocuments.us/reader035/viewer/2022070401/568135bc550346895d9d216d/html5/thumbnails/43.jpg)
ALGORITMA REKURSIF
Buatlah Algoritma Rekursi untuk menentukan Deret 1+4+9+16+… Suku ke n dari barisan: 1, 6, 11, 16, … Suku ke-n dari barisan : 2, 6, 18, 54, … Suku ke-n dari Barisan fibonacci: 1, 2, 3, 5, 8, ….