By: Vilia Eka Meyana, M.Kom Institute Bisnis dan Informatika Indonesia Email: vilia.meyana@ftumj.ac.id Website: http://viliaekameyana.blogspot.com Absensi : 10% UTS : 30% UAS : 40% Tugas & Kuis : 20% 1
Selama kuliah. Ajukan pertanyaan dan berikan feedback Jika Anda merasa saya terlalu cepat, silakan interupsi There s no point in giving classes if nobody understands me Do Exercise! You re deluding yourself if you think you can learn the material without doing the exercises Pendahuluan LOGIKA DAN ALGORITMA Diperkenalkan Oleh Ahli Matematika : Abu Ja far Muhammad Ibnu Musa Al Khawarizmi. Definisi Algoritma 1. Langkah- langkah yg dilakukan agar solusi masalah dapat diperoleh. 2. Suatu prosedur yg merupakan urutan langkah-langkah yg berintegrasi. 3. Suatu metode khusus yg digunakan untuk menyelesaikan suatu masalah yg nyata.(webster Dictionary) 4. Urutan langkah atau kegiatan untuk memecahkan masalah TAHAP PENYELESAIAN MASALAH Masalah Analisis Model Algoritma Analisis Analisis Program Eksekusi Hasil Data 2
Kriteria Pemilihan Algoritma 1. Ada Output, 2. Efektifitas dan Efesiensi, 3. Jumlah Langkahnya Berhingga, 4. Berakhir, ( SEMI ALGORITMA ) 5. Terstruktur, Suatu Algoritma yg terbaik (The Best) : Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan dip oleh suatu solusi ataupun tdk ada solusinya. Kriteria Algoritma (Donald E. Knuth) Input: algoritma dapat memiliki nol atau lebih inputan dari luar. Output: algoritma harus memiliki minimal satu buah output keluaran. Definiteness (pasti): algoritma memiliki instruksiinstruksi yang jelas dan tidak ambigu. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role). Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1 Pernyataan dan Aksi langkah penyelesaian pernyataan (Statement) aksi (action) dieksekusi operasi dikerjakan oleh pemroses 3
Contoh Pernyataan dan Aksi : Pernyataan pada algoritma : Tulis Hello, world menggambarkan aksi menuliskan Hello, world ke piranti keluaran (layar). efek dari aksi ini, dilayar akan tertera tulisan Hello, world Struktur Dasar Algoritma 1. Runtunan (Sequence) instruksi dikerjakan secara sekuensial, berurutan. 2. Pemilihan (Selection) instruksi dikerjakan jika memenuhi kriteria tertentu 3. Pengulangan (Repetition) instruksi dikerjakan selama memenuhi suatu kondisi tertentu. Runtunan (Sequence) Algoritma merupakan runtunan (sequence) satu atau lebih instruksi/pernyataan, setiap pernyataan dikerjakan secara berurutan sesuai dengan urutan penulisannya. Sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan. Urutan instruksi menentukan keadaan akhir algoritma 4
Contoh 1 (Runtunan) : Diberikan 2 buah gelas, A dan B; gelas A berisi air berwarna merah, gelas B berisi air berwarna biru. Pertukarkan isi kedua gelas itu sedemikian sehingga gelas A berisi air berwarna biru dan gelas B berisi air berwarna merah. A B A B ALGORITMA: Tuangkan air dari gelas A kedalam gelas B Tuangkan air dari gelas B kedalam gelas A Caranya : Kita siapkan satu buah gelas C untuk menampung sementara air dari gelas A sebelum dipindah ke gelas B ilustrasi B A B A A C A C 5
ilustrasi C A B B C Program Tukar_isi Diberikan 2 buah gelas, A dan B; gelas A berisi air berwarna merah, gelas B berisi air berwarna biru. Isi kedua gelas A dan B ditukar sedemikian sehingga gelas A berisi air berwarna biru dan gelas B berisi air berwarna merah. KAMUS : gelas A,gelas B, gelas C : air ALGORITMA: Tuangkan air dari gelas A kedalam gelas C Tuangkan air dari gelas B kedalam gelas A Tuangkan air dari gelas C kedalam gelas B Hasil akhir algoritma adalah: gelas A berisi air dari gelas B, dan gelas B berisi air dari gelas A semula Contoh 2 (runtunan): Misal nilai A=8, B=5. Tukarkan nilai A dan B, sehingga menjadi A=5, B=8. Algoritma : B A A B Algoritma : C A A B B C 6
Pemilihan (Selection) If kondisi then aksi endif If kondisi then aksi1 else aksi2 endif Contoh (Pemilihan) : If A>B then Max A endif If B>A then Max B endif If A>B then Max A Else Max B endif Pengulangan (Repetition) for var awal to akhir do aksi Endfor repeat aksi until kondisi_stop while kondisi_ulang do aksi endwhile 7
Contoh (Pengulangan) : For i 1 to 5 do output( MAAF ) EndFor i 1 Repeat output( MAAF ) i i+1 Until (i>5) i 1 While (i<=5) do output( MAAF ) i i+1 endwhile ATURAN PENULISAN TEKS ALGORITMA 1. KEPALA ALGORITMA Kepala algoritma adalah bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut. 2. DEKLARASI bagian untuk mendefinisikan semua nama yang dipakai didalam algoritma. 3. DESKRIPSI Bagian ini berisi uraian langkahlangkah penyelesaian masalah. Flowchart Bentuk gambar/diagram yang mempunyai aliran satu atau dua arah secara sekuensial Simbol-simbol dalam flowchart 8
Lanjutan Flowchart Pseudo Code Adalah Kode atau tanda yang menyerupai (pseudo) program atau merupakan pejelasan cara menyelesaikan suatu masalah. Contoh Algortima Problem: mencari bilangan terbesar dari dua bilangan yang diinputkan Contoh Algoritma: 1. Masukkan bilangan pertama 2. Masukkan bilangan kedua 3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5. 4. Tampilkan bilangan pertama 5. Tampilkan bilangan kedua 9
Contoh Pseudo-code Contoh Pseudo-code: Input a Input b If a > b then kerjakan langkah 4 print a print b TAHAPAN ANALISA ALGORITMA 1. Bagaimana merencanakan suatu algoritma. 2. Bagaimana menyatakan suatu algoritma Dengan bahasa semu (pseudocode), Contoh : Hitung konversi jam Deklarasi jam, mnt, dtk, jum_dtk; Deskripsi 1. input jam, mnt, dtk 2. Jum_dtk (jam * 3600) + (mnt * 60) + dtk 3. Cetak jum_dtk Dengan diagram alur atau flowchart start input Jam,mnt,dtk scanf ( %d %d %d,&jam, &mnt, &dtk); Jum_dtk := (jam* 3600) +(mnt * 60) + dtk Printf ( %d, jum_dtk) Jum_dtk =(jam * 3600) +(mnt* 60) + detik write jum_dtk end 10
1. Buatlah Algoritma untuk mencari luas persegi panjang disertai flowchart dan pseudocodenya 2. Buatlah Algoritma untuk menampilkan NIM dan Nama Anda disertai flowchart dan Psudocodenya 11