Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

BAB I DASAR-DASAR ALGORITMA. ALGORITMA An algorithm is “a precise rule (or set of rules) specifying how to solve some problem.” (thefreedictionary.com)

Presentasi serupa


Presentasi berjudul: "BAB I DASAR-DASAR ALGORITMA. ALGORITMA An algorithm is “a precise rule (or set of rules) specifying how to solve some problem.” (thefreedictionary.com)"— Transcript presentasi:

1 BAB I DASAR-DASAR ALGORITMA

2 ALGORITMA An algorithm is “a precise rule (or set of rules) specifying how to solve some problem.” (thefreedictionary.com) Muhammad al-Khwarizmi Arab 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.

3 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 x Jika nilai x = 114, dan y = 54, berapa outputnya?

4 PENYAJIAN ALGORITMA Kata-kata Pseudocode Flowchart

5 A LGORITMA 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 a 1 x + b 1 y =c 1 dan a 2 x + b 2 y =c 2 Tuliskan langkah-langkah membuah grafik y = f(x)

6 A LGORITMA ADALAH SUATU FUNGSI

7 A PA YANG DIPERLUKAN OLEH A LGORITMA ? 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)

8 A PA YANG DIPERLUKAN OLEH A LGORITMA ? 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, …

9 A PA YANG DIPERLUKAN OLEH A LGORITMA ? SPESIFIKASI OUTPUT Hasil apa yang diperlukan Bagaimana penyajian output Apa yang terjadi dengan output jika iput error

10 B AGAIMNA MEMBUAT A LGORITMA 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

11 C ONTOH A LGORITMA 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]

12 M ELACAK A LGORITMA Nilai awal i=2, m=4. Berikutnya ada looping yang harus dicek im (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]

13 C ONTOH A LGORITMA 2 1. Input : n 2. Input : array A[1], A[2], …, A[n] of integer 3. For i=1 to n do 4. for j=1 to n-1 do 5.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

14 C ONTOH A LGORITMA 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 sama 1. Input : n 2. Input : array A[1], A[2], …, A[n] of integer 3. For i=1 to n-1 do for j=1 to n-i do If A[j] > A[j+1], exchange A[j] and A[j+1] 4. Output A

15 E FFISIENSI ALGORITMA Hitunglah pada algoritma 2 dan 3 ada berapa kali pengecekan if.. Then … Apa kesimpulanmu?

16 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

17 A TURAN 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

18 A TURAN 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 1 pernytaan 2

19 A TURAN PENULISAN ALGORITMA DENGAN PSEUDOCODE ) SINTAX FOR … TO … DO For i=nilaiawal to nilaiakhir do pernyataan 1 pernyataan 2 …. pernytaan n

20 A TURAN P ENULISAN A LGORITMA SINTAX WHILE… DO … While (kondisi) do pernyataan 1 pernyataan 2 …. pernytaan n

21 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 Un (input:n) PR nomer 1 Menentukan bilangan fibonacci ke-n: 1, 2, 3, 5, 8,..Fn (Input n)

22 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

23 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?

24 LATIHAN (MENELUSURI ALGORITMA) PR ke-3 ALGORITMA 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 i  j and |A[i]-A[j]|

25 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

26 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

27 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

28 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

29 CONTOH Algoritma menentukan akar-akar persamaan kuadrat ax2 +bx + c =0

30 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:

31 CONTOH Algoritma mencari akar-akar persamaan ax2 + bx + c = 0

32 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

33 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

34 OPERASI LOOP (PERULANGAN) Contoh

35 OPERASI PERULANGAN Struktur perulangan : FOR … TO … DO

36 B UAT F LOWCHART UNTUK MENENTUKAN ALGORITMA BERIKUT PR NO 6, 7, 8 Menentukan nilai 2 n (Gunakan while do) Buat flowchart untuk soal nomer 1 dan 3

37 ALGORITMA REKURSIF Rekursi Operasi rekursi adalah operasi yang didefinisikan dengan dirinya sendiri

38 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

39 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)

40 ALGORITMA REKURSIF Jadi untuk n! dapat didefinisikan sebuah algoritma Algoritma Rekursi(n) if n=0 then output 1 else output n*Rekursi(n-1)

41 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)

42 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)

43 A LGORITMA REKURSIF Buatlah Algoritma Rekursi untuk menentukan Deret … 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, ….


Download ppt "BAB I DASAR-DASAR ALGORITMA. ALGORITMA An algorithm is “a precise rule (or set of rules) specifying how to solve some problem.” (thefreedictionary.com)"

Presentasi serupa


Iklan oleh Google