Langkah-langkah dasar menyelesaikan masalah pada komputer: 1. Mendefinisikan masalah 2. Menganalisa masalah 3. Mendesain algoritma dan representasi atau penyajian (Pseudocode atau flowchart) 4. Coding dan debugging 5. Testing Jalannya program 6. Implementasi program Perbedaan algoritma dengan program: Algoritma Program Setelah mendapatkan desain, perlu Algoritma adalah desain sebelum mengimplementasikan kode untuk membangun mesin dalam rekayasa membangun mesin dalam rekayasa perangkat lunak. perangkat lunak. Untuk menulis suatu algoritma, dibutuhkan Untuk menulis kode pemrograman, seseorang dengan pengetahuan domain dibutuhkan seorang programmer. tertentu. Algoritma tidak tergantung pada perangkat Program sepenuhnya bergantung pada keras dan sistem operasi. perangkat keras dan sistem operasi. Program dapat ditulis dalam bahasa Algoritma dapat ditulis dalam bahasa apapun pemrograman apa pun seperti C, C++, Java, seperti Inggris, Hindi, Prancis, Cina, dll. C#, PHP, Python, dll. Untuk memeriksa logika (bug atau Untuk memeriksa bug atau kesalahan dalam kesalahan) dalam algoritma digunakan teknik bahasa pemrograman digunakan teknik analisis. pengujian/testing techniques. Algoritma Definisi : urutan langkah-langkah untuk memecahkan masalah yang disusun secara sistematis dan logis. Algoritma adalah langkah-langkah yang disusun secara tertulis dan berurutan untuk menyelesaikan suatu masalah. Menurut Kamus Besar Bahasa Indonesia : algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah. Algoritma dibutuhkan untuk memerintah komputer mengambil langkah langkah tertentu dalam menyelesaikan masalah. Sedangkan Algoritma Pemrograman adalah langkah- langkah yang ditulis secara berurutan untuk menyelesaikan masalah pemrograman komputer. Logika adalah hasil pertimbangan akal pikiran yang diutarakan lewat kata dan dinyatakan dalam bahasa. Syarat Algoritma Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada. Mudah dimengerti Syarat Algoritma Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di- maintenance (kelola). Portabilitas yang tinggi (portability) Bisa dengan mudah diimplementasikan di berbagai platform komputer. Precise (tepat, betul, teliti) Efektif Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya. Harus terminate Jalannya algoritma harus ada kriteria berhenti. Output yang dihasilkan tepat. Komponen Utama dalam Algoritma Finiteness (keterbatasan) Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas, dengan kata lain ada tujuan akhir yang dicapai, sehingga suatu program akan berhenti ketika tujuan akhir telah tercapai. Program yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah. Definiteness (kepastian) Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous). Ada intruksi- intruksi yang jelas dan juga tidak ambigu, sehingga tidak terjadi kesalahan di dalam menghasilkan output. Input (masukan) Input ini merupakan suatu permasalahan yang dihadapi serta akan dicarikan solusinya. Algoritma ini mempunyai nol atau lebih input, yaitu besaran yang diberikan kepada algoritma untuk diproses. Output (keluaran) Algoritma memiliki nilai nol atau lebih keluaran (output). Output ini tentunya harus berupa solusi atau penyelesaian dari suatu masalah. Output dapat berupa pesan atau besaran yang berhubungan dengan input. Effectiveness (keefektivitasan) Algoritma harus sangkil (effective), setiap urutan atau langkah harus sesederhana mungkin, sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal. Komponen yang harus ada dalam merancang algoritma: Komponen masukan : terdiri dari pemilihan variable, jenis variable, tipe variable, konstanta dan parameter (dalam fungsi). Komponen keluaran: merupakan tujuan dari perancangan algoritma dan program. Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan dalam komponen keluaran. Karakteristik keluaran yang baik adalah menjawab permasalahan dan tampilan yang ramah Komponen proses : merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah, logika algoritma (sintaksis dan semantik), rumusan, metode (rekursi, perbandingan, penggabungan, pengurangan dll). Fungsi Algoritma Pemrograman Memecahkan masalah yang rumit Dengan menggunakan algoritma pemrograman mampu memecahkan masalah yang rumit, karena algoritma ini mampu mengatasi segala masalah secara urut dengan logika yang tepat. Menyederhanakan program Algoritma pemrograman juga mampu menyederhanakan program, dari program yang besar menjadi program yang lebih sederhana, sehingga penggunaannya lebih efektif dan efisien. Dapat digunakan secara berulang-ulang Sebagaimana fungsinya yang bukan merupakan sekali pakai, artinya dapat digunakan secara berulang- ulang ini memberikan kamu keuntungan dalam meminimalisir penulisan program yang berulang-ulang. Mampu merapikan program yang ada Dengan menggunakan algoritma pemrograman dapat memberikan keuntungan berupa tampilan program-program yang sudah ada menjadi lebih raphi dan terstruktur, sehingga mudah dalam pencarian dan penemuan saat sedang dibutuhkan. Mudah menemukan kesalahan Dengan adanya alur yang jelas yang dimiliki oleh algoritma pemrograman, dapat dengan mudah mencari kesalahan jika terjadi kesalahan. Mudah dalam pendokumentasian Pendokumentasian dengan menggunakan algoritma pemrograman, karena algoritma ini bersifat independen atau dengan kata lain tidak bergantung pada bahasa pemrograman lainnya. Struktur Penulisan Algoritma Algoritma memiliki tiga struktur dasar yaitu sequence(runtutan langkah-langkah), selection (proses seleksi atau pemilihan solusi), dan repetition(pengulangan). Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu : Judul (Header) Judul adalah bagian teks algoritma yang digunakan sebagai tempat mendefinisikan nama dengan menentukan apakah teks tersebut adalah program, prosedur, fungsi. Kamus Kamus adalah bagian teks algoritma sebagai tempat untuk mendefinisikan : Nama type Nama konstanta Nama variabel Nama fungsi Nama prosedur Contoh : Struktur Penulisan Algorithma Penyajian Algoritma Algoritma dapat disajikan dalam dua bentuk, yaitu : tulisan dan gambar/simbol. Penyajian algoritma dalam bentuk tulisan biasanya menggunakan Metode Structure Language dan Pseudocode Bentuk penyajian algortima ini berdasarkan struktur bahasa yang dipakai dalam sehari-hari tanpa melihat aturan-aturan yang berlaku di algortima. Pseudocode : kode yang mirip dengan instruksi kode program yang sebenarnya. Panyajian dalam bentuk gambar biasanya menggunakan metode : Flowchart, HIPO, dan lain-lain. Contoh languange Stucture Program Menghitung luas persegi panjang : 1. Mulai 2. Deklarasi panjang, lebar dan luas dengan tipe data bilangan desimal 3. Input panjang 4. Input lebar 5. Kalikan panjang dan lebar simpan dalam luas 6. Cetak luas 7. Selesai Contoh : Pseudocode Program Menghitung luas persegi panjang : 1. start 2. double panjang, lebar, luas 3. input (panjang, lebar) 4. luas=panjang*lebar 5. System.out.print(luas) 6. end Flowchart Algoritma ini menggunakan sejumlah simbol untuk menyatakan kegiatan-kegiatan secara keseluruhan. Tujuan utama dari penggunaan flowchart adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhana, terurai, rapi dan jelas dengan menggunakan simbol-simbol standart. Ada 2 macam Flowchart : System Flowchart -> urutan proses dalam system dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data. Program Flowchart -> urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan masalah dalam suatu program. Simbol Flowchart Program Algoritma : Luas persegi panjang Tentukan variabel dan tipe data yang digunakan. Misalnya untuk panjang, lebar dan luas bertipe integer. Masukkan input yaitu panjang dan lebar. Lakukan proses perhitungan luas. Luas = panjang * lebar Tampilkan luas Flowchart dengan software flowgorithm Software Flowgorithm Untuk membuat Flowchart dapat dilakukan dengan menggambar secara manual sesuai simbol-simbol yang benar. Untuk merancang flowchart dan langsung mengujinya dapat menggunakan aplikasi Flowgorithm. Flowgorithm ini merupakan aplikasi gratis yang dapat digunakan untuk mempelajari algoritma pemrograman komputer melalui diagram alir (flowchart). Aplikasi Flowgorithm dapat diunduh di website resminya : http://flowgorithm.org/download/index.html Website Flowgorithm Tampilan Aplikasi Flowgorithm
Klik untuk memilih
symbol flowchart Symbol yang ada di flowgorithm Contoh Menghitung luas Output Flowgorithm Contoh Kasus: Tulislah algoritma untuk menghitung gaji bersih yang diterima oleh seorang karyawan, jika diketahui gaji pokok, besar tunjangan penghasilannya adalah 12,5% dari gaji pokok, dan pajaknya 5% dari gaji kotor. Gaji Kotor = gaji pokok + tunjangan penghasilan Gaji bersih = Gaji kotor - pajak Penyajian language struktur Penyelesaian: Algoritma untuk menentukan gaji bersih karyawan: Struktur bahasa Indonesia 1. Mulai 2. Deklarasi bil desimal untuk gajipokok, tunjangan, gajikotor, pajak, gajibersih 3. Masukkan gaji pokoknya (gajipokok) 4. Hitung tunjangan (tunj=12,5%*gajipokok) 5. Hitung gaji kotor (gajikotor= gajipokok + tunj) 6. Hitung pajak (pajak=5%*gajikotor) 7. Hitung gaji bersih (gajibersih= gajikotor – pajak) 8. Tampilkan gaji bersihnya 9. Selesai Penyajian Pseuducode 1. Start 2. double gajipokok, tunj, gajikotor, pajak, gajibersih 3. Input (gajipokok) 4. tunj = 0.125*gajipokok 5. gajikotor = gajipokok + tunj 6. pajak =0.05*gajikotor 7. gajibersih = gajikotor – pajak 8. Output (gajibersih) 9. End Flowchart dengan Flowgorithm Studi kasus Program menghitung total bayar dari pembelian 2 item barang (1 item barang dapat dibeli lebih dari 1) Dengan barang A harga 1500 diskon 7 % dan barang B harga 5000 diskon 4 % Buat algorithma, flowchart