Belajar memrogram : belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi yang mudah dipahami Belajar bahasa pemrograman : belajar memakai suatu bahasa pemrograman, aturan tatabahasanya (syntaxis), instruksi, tatacara pengoperasian compiler
Algoritma :
adalah urutan logis pengambilan keputusan untuk pemecahan masalah (KBBI Kamus Besar Bahasa Indonesia , Balai Pustaka, 1988) urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis
Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut pemroses harus mengerti setiap langkah dalam algoritma Bila pemrosesnya adalah komputer, maka algoritma harus ditulis dalam notasi bahasa pemrograman disebut sebagai program komputer Jadi : * algoritma adalah urutan langkah-langkah penyelesaian masalah * program komputer adalah realisasi algoritma dalam bahasa pemrograman
Pendefinisian masalah : - masukan (input) : bejana A berisi larutan berwarna merah bejana B berisi larutan berwarna biru - keluaran (output) : bejana A berisi larutan berwarna biru bejana B berisi larutan berwarna merah * Algoritma : 1) tuangkan larutan dari bejana A ke dalam bejana B 2) tuangkan larutan dari bejana B ke dalam bejana A
Algoritma di muka tidak memberikan hasil seperti yang diharapkan hasil akhir yang diperoleh adalah bejana A berisi campuran dari larutan berwarna merah dan biru, sedangkan bejana B kosong. Seharusnya : 1) tuangkan larutan dari bejana A ke dalam bejana kosong C 2) tuangkan larutan dari bejana B ke dalam bejana A 3) tuangkan larutan dari bejana C ke dalam bejana B
Contoh persoalan (2) : diberikan 5 buah bilangan bulat positif, sebut saja bilangan A, B, C, D, dan E. Carilah bilangan terkecil diantara kelima bilangan tersebut ! * Pendefinisian masalah : - input : bilang bulat positif A, B, C, D, E - output : bilangan terkecil diantara kelima bilangan tersebut
Algoritma :
1. ambil X = A 2. bila X > B , maka X = B bila X <= B , maka X tetap 3. bila X > C , maka X = C bila X <= C , maka X tetap 4. bila X > D , maka X = D bila X <= D , maka X tetap 5. bila X > E , maka X = E bila X <= E , maka X tetap 6. bilangan terkecil adalah X
Contoh persoalan (3) : Diberikan 2 buah bilangan bulat positif m dan n, dimana m > n. Carilah bilangan pembagi bersama terbesar (PBT) dari kedua bilangan tersebut (PBT = bilangan bulat positif terbesar yang membagi habis bilangan m dan n) * Pendefinisian masalah : - input : bilangan bulat positif m dan n, m>n - output : bilangan pembagi bersama terbesar untuk bilangan m dan n
Algoritma :
1) bagilah bilangan m dengan n, sebut saja sisanya adalah s 2) jika s = 0, maka PBT = n, selesai jika s 0, maka lanjutkan ke langkah 3 3) ganti nilai m dengan n, ganti nilai n dengan s 4) kembali ke langkah 1
Misalnya :
A = 10 B = 15 C= 5 D = 17 E= 2
Putaran ke-1 :
10 15 5 17 2
Cari elemen terkecil dari elemen ke-1 sampai ke-5 Elemen ke-5, nilai 2
2 15 5 17 10
Cari elemen terkecil dari elemen ke-2 sampai ke-5 Elemen ke-3, nilai 5
2 5 15 17 10
Putaran ke-3 :
2 5 15 17 10
Cari elemen terkecil dari elemen ke-3 sampai ke-5 Elemen ke-5, nilai 10
2 5 10 17 15
Cari elemen terkecil dari elemen ke-4 sampai ke-5 Elemen ke-5, nilai 15
2 5 10 15 17
Algoritma dari penyelesaian masalah pengurutan data : T0 : kumpulan data ke-1 sampai ke-n belum terurut membesar
algoritma pengurutan data
Algoritma pengurutan data : diberikan N buah data yang tersusun secara acak, urutkan kumpulan data tersebut sehingga : data ke-1 data ke-2 data ke-N * Deskripsi : untuk putaran K=1,2, .. ,N-1, lakukan : 1) cari data dengan nilai terkecil mulai dari data ke-K sampai data ke-N 2) pertukarkan data dengan nilai terkecil dengan data ke-K
1.1 Data ke-K dianggap data terkecil (min) 1.2 Bandingkan min dengan data ke-J=K+1,K+2, .. ,N 1.2.1 untuk J=K+1,K+2, .. , N lakukan : jika data ke-J lebih kecil dari min , maka isikan data ke-J sebagai min yang baru 2.1 Tempatkan data ke-K disebuah tempat sementara (temp) 2.2 Tempatkan min di tempat data ke-k (ini akan berakibat nilai lama terhapus) 2.3 Tempatkan nilai yang tersimpan di temp di tempat min yang lama
Pengurutan data metode Bubble sort (pengurutan gelembung) : untuk setiap putaran ke-I=1,2,..,N-1 , lakukan : mulai dari elemen K=N,N-1, . , I+1 lakukan : 1. Bandingkan L(K) dengan L(K-1) 2. Pertukarkan L(K) dengan L(K-1) jika L(K)<L(K-1) Contoh : N=6 25 , 27 , 10 , 8 , 76 , 21 Putaran ke-1 : K=6 : 25 K=5 : 25 K=4 : 25 K=3 : 25 K=2 : 8
27 27 27 8 25
10 10 8 27 27
8 21 8 21 10 21 10 21 10 21
76 76 76 76 76
25 25 25 10
27 27 10 25
10 10 27 27
21 21 21 21
76 76 76 76
Putaran ke-3 : K=6 : 8 10 25 27 21 76 K=5 : 8 10 25 21 27 76 K=4 : 8 10 21 25 27 76 Putaran ke-4 : K=6 : 8 10 21 25 27 76 K=5 : 8 10 21 25 27 76 Putaran ke-5 : K=6 : 8 10 21 25 27 76
Contoh : N=6 25 , 27 , 10 , 8 , 76 , 21 D(1) D(2) D(3) D(4) D(5) D(6) banyak putaran adalah 5 kali
Putaran ke-1 (N=6) : elemen terbesar D(5) = 76 pertukarkan dengan elemen ke-6 : 25 27 10 8 21 76 Putaran ke-2 (N=5) : elemen terbesar D(2) = 27 pertukarkan dengan elemen ke-5 : 25 21 10 8 27 76 Putaran ke-3 (N=4) : elemen terbesar D(1) = 25 pertukarkan dengan elemen ke-4 : 8 21 10 25 27 76 Putaran ke-4 (N=3) : elemen terbesar D(2) = 21 pertukarkan dengan elemen ke-3 : 8 10 21 25 27 76 Putaran ke-5 (N=2) : elemen terbesar D(2) = 10 pertukarkan dengan elemen ke-2 : 8 10 21 25 27 76
Tinjauan :
metode Bubble sort : * tidak efisien karena banyaknya operasi pertukaran yang dilakukan pada setiap langkah pencarian elemen terbesar memerlukan waktu yang (relatif) lebih lama dibandingkan metode lain * sederhana dan mudah dipahami metode Selection sort : * dibandingkan dengan metode Bubble sort, metode ini memiliki kinerja lebih baik operasi pertukaran hanya satu kali pada setiap putaran waktu yang diperlukan lebih singkat metode Insertion sort : * diperlukan banyak operasi pergeseran untuk mencari posisi yang tepat untuk data yang banyak, jumlah operasi pergeseran meningkat secara kuadratik tidak praktis untuk data yang banyak
Mulai
Jdat = 0 Jum = 0 ya
Selesai
Input D(I)
ya
Jdat=Jdat+1 Jum=Jum+1
I=1
Mulai Selesai
Jdat = 0 Jum = 0