Algoritma dan FlowChart KONSEP PEMROGRAMAN Algoritma dan FlowChart
How To Become A Good Programmer Learn To Program Belajar cara memrogram Learn The Language Belajar bahasa komputer Learn The Tools Belajar alatnya (aplikasi dan komputernya)
Learn To Program Memiliki dasar logika yang benar Menguasai cara memecahkan suatu masalah ke dalam alur-alur kerja Mampu menuliskan alur program Mampu membaca alur program Mampu menjelaskan berbagai istilah dalam pemrograman, seperti : identifier, variable, constant, statement, loop, subroutine, dll
Learn The Language Menguasai sintaks dan semantik bahasa pemrograman yang dipakai Mampu membaca kode program Mampu menulis kode program dengan baik dan benar Mampu mengkoreksi kesalahan pada kode program
Learn The Tools Menguasai alat (software) yang dipakai untuk menuliskan program Mampu menjalankan software dengan baik Mampu mengatasi kesalahan yang timbul selama penggunaan software Mengerti arti setiap fungsi yang ditawarkan dalam software
Definisi Algoritma Kata algoritma (algorithm) diambil dari nama ilmuwan muslim Abu Ja’far Muhammad bin Musa Al-Khwarizmi (780 – 846 M) Definisi Algoritma : Urutan langkah-langkah yang dinyatakan dengan jelas dan tidak rancu yang harus dijalankan atau dilakukan untuk memecahkan atau menyelesaikan masalah (jika ada pemecahannya) dalam rentang waktu tertentu Pemrograman komputer merupakan penerapan algoritma ke dalam kode-kode bahasa komputer
Contoh Algoritma Urutan langkah menelepon di telepon umum : Angkat gagang telepon Masukkan koin Tekan nomor yang akan dihubungi Bicara Letakkan gagang telpon Langkah-langkah tersebut jika dalam kondisi normal
Contoh Algoritma (2) Jika dalam keadaan tidak normal Telepon dalam keadaan rusak Yang dihubungi tidak ada yang mengangkat Langkah-langkahnya menjadi : Angkat gagang telepon Jika : ada nada panggil, masukkan koin tidak ada nada panggil, ke langkah 5 Tekan nomor yang akan dihubungi ada yang mengangkat, bicara tidak ada yang mengangkat, ke langkah 5 Letakkan gagang telepon
Contoh Algoritma (3) Algoritma menelepon seseorang dari HP: Ambil dan Pegang HP Jika Pulsa habis, selesai Jika HP tidak OK, selesai Jika tombol HP terkunci, buka dulu Mencari nomor di daftar panggilan Jika tidak ada, cari di kontak (phone book) Jika tidak ada juga, Jika tahu nomernya, ketik langsung Jika tidak tahu, selesai Tekan Ok/Yes dan tempelkan HP di telinga Jika tidak ada nada sambung, ulangi dari no 5 Jika ada yang mengangkat, mulai bicara Selesai
Karakteristik atau Syarat Algoritma Algoritma tidak boleh ambigu (unambiguous) Deskripsi langkah-langkah dalam algoritma harus dan hanya memiliki tafsiran tunggal Algoritma harus tepat (precise) Urutan langkah harus dinyatakan dengan jelas Algoritma harus pasti (definite) Jika serangkaian langkah yang sama dilakukan dua kali maka hasilnya harus sama Algoritma harus berhingga (finite) Harus ada batasan atau rentang waktunya
Top-Down Design Dekomposisi (memecah) suatu masalah menjadi masalah-masalah yang lebih sederhana (subproblem) dan memeriksa hubungan antara masalah-masalah tersebut sebelum dikembangkan dalam spesifikasi yang lebih rinci Submasalah-submasalah hasil dekomposisi tersebut dinamakan modul Karakteristik modul : harus mengerjakan tugas-tugas spesifik harus tidak terlalu panjang
Cara Penulisan Algoritma Uraian Deskriptif Menggunakan bahasa yang biasa dipakai sehari-hari Pseudocode Dituliskan menggunakan kode-kode yang disepakati dan memiliki arti tertentu Bagan / diagram alir (flow chart) Dituliskan menggunakan notasi grafik yang mempunyai arti tertentu
Uraian Deskriptif Contoh : diberikan bilangan bulat non negatif b, jumlahkan semua bilangan genap mulai dari 0 sampai dengan b Algoritma : Baca nilai batas, b Isi i dan j dengan 0 Jika i<b Tambahkan i pada j jika i genap Naikkan harga i Ulangi langkah 3 Tampilkan nilai j
Pseudocode Dari contoh yang sama : masukkan(b) i 0 j 0 selama (i <= b) lakukan jika (i mod 2 = 0) maka j j + i i i + 1 tampilkan(j)
Flow Chart Notasi yang sering dipakai : Mulai atau Selesai Input atau Output Data Proses Percabangan/Seleksi
Struktur di Flowchart Macamnya: Struktur Sekuensial Struktur Seleksi Struktur Pengulangan Sebuah Struktur dapat berada di dalam struktur lain yang relatif lebih besar
Struktur Sekuensial
Struktur Seleksi
Struktur Pengulangan
Jenis Struktur Seleksi Struktur Seleksi Satu Alternatif Struktur Seleksi Dua Alternatif Struktur Seleksi Multi Alternatif
Struktur Seleksi Satu Alternatif
Struktur Seleksi Dua Alternatif
Struktur Seleksi Multi Alternatif
Contoh Flow Chart START i mod 2 = 0 ? Y INPUT b j j + i T i 0 i i + 1 i <= b ? Y T OUTPUT j END
Keterbatasan Flow Chart Hanya cocok untuk masalah yang kecil. Untuk masalah yang besar penggunaannya menjadi tidak efisien Memerlukan kemampuan menggambar yang baik sehingga modifikasi juga lebih sulit Hanya dipakai untuk pengajaran
Langkah-Langkah Pemrograman Mendefinisikan masalah Memilih garis besar (outline) pemecahan Menerjemahkan outline menjadi langkah-langkah yang lebih rinci, hasilnya adalah algoritma Menerjemahkan algoritma ke dalam bahasa pemrograman yang dipilih, disebut sebagai pengkodean (coding) Menguji program yang telah dibuat untuk menemukan kesalahan, dinamakan debugging atau proses pencarian bug (kesalahan logika)
Kriteria Program yang Baik Benar (correct) Kebenaran program harus dipenuhi agar output yang dihasilkan benar Jelas (clear) Kejelasan untuk dibaca menjadi suatu keharusan agar program mudah diteliti ulang dan dimodifikasi Efisien (efficient) Efisiensi program terkait dengan waktu eksekusi dan ruang penyimpanan yang dibutuhkan