T0616 ALGORITMA DAN PEMROGRAMAN (1) SUBANDIJO UNIVERSITAS BINA NUSANTARA FAKULTAS ILMU KOMPUTER JAKARTA, 2005 7/11/2017 T0616 - Algoritma dan Pemrograman 1 RUJUKAN • Deitel, H.M. and Deitel, P.J. (2001). C HOW TO PROGRAM. 3rd edition. Prentice Hall, NJ. • Gottfried, B.S. (1996). Schaum’s Outline Series. Theory and Problems of Programming with C. McGraw Hill, NY. • Ngoen. Th. S. (2004). Pengantar Algoritma dengan Bahasa C. Penerbit Salemba Teknika. • Sedgewick, R. (1992). Algorithms in C++. Addison Wesley. • Hubbard, J. (1996). Schaum’s Outline Series. Theory and Problems of Programming with C++. McGraw Hill, NY. 7/11/2017 T0616 - Algoritma dan Pemrograman 2 ALGORITMA • • • • • • • ASAL-USUL DAN DEFINISI ALGORITMA. TAHAPAN PENGEMBANGAN ALGORITMA. KRITERIA ALGORITMA YANG BAIK KLASIFIKASI ALGORITMA PENYAJIAN ALGORITMA. DAFTAR ALGORITMA SEDERHANA DAN LANJUT. CONTOH ALGORITMA: E(UCLIDEAN), BABYLONIA. 7/11/2017 T0616 - Algoritma dan Pemrograman 3 DEFINISI • ALGORITMA ADALAH SEKUMPULAN LANGKAHLANGKAH TERBATAS UNTUK MENCARI SOLUSI SUATU MASALAH. • BERASAL DARI KATA ALGORIS DAN RITMIS. AWALNYA DIUNGKAPKAN OLEH ABU JA’FAR MOHAMMED IBN MUSA AL KHOWARIZMI DALAM BUKU AL JABR W’AL MUQABALA. • DI PEMROGRAMAN, ALGORITMA DIDEFINISIKAN SEBAGAI METODE YANG TERDIRI DARI LANGKAH-LANGKAH TERSTUKTUR UNTUK MENCARI SOLUSI SUATU MASALAH DENGAN BANTUAN KOMPUTER. 7/11/2017 T0616 - Algoritma dan Pemrograman 4 TAHAPAN PENGEMBANGAN ALGORITMA MULAI BATASAN MASALAH DESAIN MODEL DESAIN ALGORITMA PEMROGRAMAN KOREKSI ALGORITMA UJI DAN ANALISIS DOKUMENTASI 7/11/2017 T0616 - Algoritma dan Pemrograman SELESAI 5 KRITERIA ALGORITMA YANG BAIK • MEMPUNYAI LOGIKA YANG TEPAT UNTUK MEMECAHKAN MASALAH. • MENGHASILKAN OUTPUT YANG BENAR DALAM WAKTU YANG SINGKAT. • DITULIS DENGAN BAHASA BAKU TERSTRUKTUR SEHINGGA TIDAK MENIMBULKAN ARTI GANDA. • DITULIS DENGAN FORMAT BAKU SEHINGGA MUDAH DIIMPLEMENTASIKAN KEDALAM BAHASA PEMROGRAMAN. • SEMUA OPERASI DIDEFINISIKAN DENGAN JELAS DAN BERAKHIR SESUDAH SEJUMLAH LANGKAH. 7/11/2017 T0616 - Algoritma dan Pemrograman 6 KLASIFIKASI ALGORITMA • PARADIGMA / METODOLOGI DIVIDE AND CONQUER DYNAMIC PROGRAMMING THE GREEDY METHOD LINEAR PROGRAMMING SEARCH AND ENUMERATION THE PROBABILISTIC AND HEURISTIC • IMPLEMENTASI RECURSIVE ALGORITHM SERIAL AND PARALLEL ALGORITHM 7/11/2017 T0616 - Algoritma dan Pemrograman 7 PENYAJIAN ALGORITMA • • • • NARASI (URAIAN) TERSTRUKTUR, e.g. STRUCTURED ENGLISH PSEUDOCODE FLOW CHART 7/11/2017 T0616 - Algoritma dan Pemrograman 8 DAFTAR ALGORITMA • DASAR • LANJUT – TUKAR DUA PEUBAH – LOOP UNTUK MENGHITUNG FAKTORIAL – PENCARIAN LINEAR – MENGHITUNG RATARATA ELEMEN ARRAY – MENCARI NILAI MAKSIMUM – AKUMULATOR UNTUK MENGHITUNG TOTAL – BUBBLE SORT 7/11/2017 – MENGHITUNG AMORTIZED INTEREST – ALGORITMA BABYLONIA – ALGORITMA EUCLIDEAN – PENCARIAN INTERPOLASI – HEAP SORT – PARALLEL ALGORITHM T0616 - Algoritma dan Pemrograman 9 ALGORITMA EUCLIDEAN : NARASI • ALGORITMA E(UCLIDEAN) MENTRANSFORM PASANGAN INTEGER POSITIF (M,N) MENJADI (R,0) DENGAN MEMBAGI SECARA BERULANG INTEGER YANG LEBIH BESAR DENGAN INTEGER YANG LEBIH KECIL DAN MENGGANTI INTEGER BESAR DENGAN INTEGER KECIL DAN INTEGER KECIL DENGAN SISA HASIL BAGI. JIKA SISA HASIL BAGI = 0 MAKA INTEGER LAIN DALAM PASANGAN TERSEBUT ADALAH GCD DARI PASANGAN ASLI. SEBAGAI CONTOH, JIKA M=532 DAN N=112 MAKA ALGO-RITMA E AKAN MEREDUKSI (532,112) MENJADI (28,0) SBB: (532,112) (112,84) (84,28) (28,0). 7/11/2017 T0616 - Algoritma dan Pemrograman 10 ALGORITMA EUCLIDEAN: TERSTRUKTUR • • • • E1: R ADALAH SISA HASIL BAGI M DAN N E2: JIKA R = 0, SELESAI. GCD = N E3: JIKA TIDAK, M N, N R E4: ULANGI E1 - E3 SAMPAI R = 0. 7/11/2017 T0616 - Algoritma dan Pemrograman 11 ALGORITMA EUCLIDEAN: VISUALISASI M N R= M%N 532 112 84 112 84 28 84 28 0 28 0 7/11/2017 T0616 - Algoritma dan Pemrograman 12 ALGORITMA BABILONIA (NARASI) • ALGORITMA BABILONIA UNTUK MENGHITUNG 2 DENGAN METODE SECARA BERULANG MENGGANTI SUATU NILAI ESTIMASI X DENGAN NILAI ESTIMASI YANG LEBIH DEKAT YAITU (X + 2/X) / 2 YANG TIDAK LAIN ADALAH RATA-RATA X DAN 2/X. 7/11/2017 T0616 - Algoritma dan Pemrograman 13 ALGORITMA BABILONIA (PSEUDO CODE) Let e be your tolerance; e.g. e = 5E-12 Let x0 = 0.0 Let x1 = 1.0 Repeat while absolute (x0-x1) < e Let x0 = x1 Let x1 = (x0 + 2/x1) / 2 Return x1 7/11/2017 T0616 - Algoritma dan Pemrograman 14 ALGORITMA BABILONIA (PROGRAM) • MENGHITUNG 2 DENGAN CARA MENGGANTI NILAI ESTIMASI X DENGAN NILAI ESTIMASI YANG LEBIH DEKA (X + 2/X)/2 SAMPAI SUATU KONDISI DIPENUHI. #include<stdio.h> #include<math.h> main() { const double tol = 5e-08; double x = 2.0; while(fabs(x*x-2.0)>tol) { BAGAIMANA MENGHIprintf(“\n%f”,x); TUNG N, UNTUK N = 3, 4, 5, …? ADAKAH x=(x+2.0/x)/2.0; RUMUS UNTUK MENG} HITUNG AKAR TIGA printf(“\nx = %f, x^2 = %f”,x, x*x); SUATU BILANGAN? } 7/11/2017 T0616 - Algoritma dan Pemrograman 15 THE END “...ALL YOU NEED IS LOVE…” 7/11/2017 T0616 - Algoritma dan Pemrograman 16
© Copyright 2024 Paperzz