PENGANTAR ALGORITMA PEMROGRAMAN (IS1313) Ir. Roedi Goernida, MT. (roedig@yahoo.com) Program Studi Sistem Informasi Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 2011 1 Struktur Sistem Komputer Sistem Komputer terdiri dari:. Brainware user Hardware Software monitor, keyboard, motherboard, memory, processor, harddisk, add. peripheral etc O/S, programming language, database, application program etc Product Life Cycle: Analysis Design Development Testing Implementation Maintenance EOL - Scooping - Identifikasi - Blue print - SpekTek - Unit - Functional - Flow graph - Performance - Security - Integration - Instalasi - Pelatihan - Perbaikan bugs - Reinstalasi - Backup data - Perbaikan Hand-out: Algoritma Pemrograman IS1313-01 Hal. 1 / 25 2
Pengertian Algoritma (1/3) Algoritma. Urutan atau rentetan langkah-langkah logis tertentu untuk menyelesaikan atau memecahkan suatu masalah yang disusun secara sistematis & logis. Mengoperasikan perangkat komputer, menjalankan motor/mobil, membuat kue dll Algoritma merupakan cetak-biru dari suatu program & sebaiknya disusun sebelum program dibuat. Kriteria suatu algoritma: Memiliki masukan & keluaran Efektifitas & efisien Terstruktur Hand-out: Algoritma Pemrograman IS1313-01 Hal. 2 / 25 3 Pengertian Algoritma (2/3) Sifat suatu algoritma: Tidak menggunakan simbol-simbol (sintax) dari suatu bahasa pemrograman. Tidak tergantung pada suatu bahasa pemrograman. Notasi dapat dipergunakan pada seluruh bahasa pemrograman. Contoh: Algoritma menghitung luas persegi panjang: Masukan panjang (P) Masukan lebar (L) Luas P x L Tulis Luas Hand-out: Algoritma Pemrograman IS1313-01 Hal. 3 / 25 4
Pengertian Algoritma (3/3) Jenis proses algoritma. Sequence process. Selection process. Iteration process. Concurrent process. Ciri algoritma. Algoritma memiliki nol atau lebih masukan. Algoritma memiliki nol atau lebih keluaran. Setiap langkah harus didefinisikan dengan tepat & tidak berarti-dua (Ambiguitas) Definiteness / kepastian. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas Finiteness / ada batas. Algoritma harus efektif sederhana Hand-out: Algoritma Pemrograman IS1313-01 Hal. 4 / 25 5 Pseudo-code Kode atau tanda yang menyerupai (pseudo) program atau merupakan penjelasan cara menyelesaikan suatu masalah. Contoh: mencari bilangan terbesar dari dua bilangan yang diinputkan. Algoritma 1. Masukkan bilangan pertama 1. Input a 2. Masukkan bilangan kedua 2. Input b 3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5. 4. Tampilkan bilangan pertama 4. print a 5.Tampilkan bilangan kedua Pseudo-code 3. If a > b then kerjakan langkah 4 5. print b Nilai A ditambah dengan 5 A A + 5 Cetak nilai A bila lebih besar dari 10 Dari dua bilangan A dan B, cari bilangan yang terbesar IF A > 10 THEN PRINT A IF A > B THEN PRINT A ELSE PRINT B Hand-out: Algoritma Pemrograman IS1313-01 Hal. 5 / 25 6
Aturan penulisan Algoritma Judul Algoritma. Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh algoritma tersebut Deklarasi. Bagian untuk mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedur dan fungsi. Deskripsi. Merupakan kumpulan instruksi yang berisi uraian langkahlangkah penyelesaian masalah yang ditulis dengan menggunakan suatu notasi. Hand-out: Algoritma Pemrograman IS1313-01 Hal. 6 / 25 7 Contoh penulisan Algoritma + Pseudo-code (1/3) 1. Kelulusan Mahasiswa Algoritma Kelulusan_mhs {diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 56, maka mahasiswa tersebut dinyatakan lulus, jika tidak maka dinyatakan tidak lulus} DEKLARASI: Nama : string Nilai : integer Keterangan : string DESKRIPSI: read (nama, nilai) if nilai >= 56 then keterangan = lulus else keterangan = tidak lulus write (nama, keterangan) endif Hand-out: Algoritma Pemrograman IS1313-01 Hal. 7 / 25 8
Contoh penulisan Algoritma + Pseudo-code (2/3) 2. Luas & keliling lingkaran Algoritma Luas_Kell_Lingkaran {judul algoritma} {menghitung luas dan keliling lingkaran untuk ukuran jari-jari tertentu. Algoritma menerima input jari-jari lingkaran, menghitung luas dan kelilingnya serta mencetak luas lingkaran ke piranti keluaran - spesifikasi algoritma} DEKLARASI: Const phi = 3.14 {nilai} R : real {jari-jari lingkaran} Luas : real {luas lingkaran} Keliling : real {keliling lingkaran} DESKRIPSI: read(r) luas phi*r*r keliling 2*phi*R write(luas, keliling) Hand-out: Algoritma Pemrograman IS1313-01 Hal. 8 / 25 9 Contoh penulisan Algoritma + Pseudo-code (3/3) 3. Komisi Salesman Algoritma Komisi_Salesmen {baca nama dan hasil penjualan salesman, kemudian hitung besarnya komisi sebesar 15% dari hasil penjualan dan tampilkan nama dan komisinya ke layar} DEKLARASI: Nama : string NilaiPenjualan : real Komisi : real DESKRIPSI: read(nama, NilaiPenjualan) Komisi 0.15 * NilaiPenjualan write(nama, Komisi) Hand-out: Algoritma Pemrograman IS1313-01 Hal. 9 / 25 10
Pengertian Pemrograman (1/3) Program komputer. Sekumpulan instruksi (statement) yang dimengerti oleh komputer. Bagian Program Suatu program pada dasarnya terdiri dari 3 bagian: Masukan : bisa ada, bisa tidak Proses Keluaran : min. satu ouput. Hand-out: Algoritma Pemrograman IS1313-01 Hal. 10 / 25 11 Pengertian Pemrograman (2/3) Pemrograman. Suatu kumpulan instruksi-instruksi atau source code yang dibuat oleh seorang programmer. Pemrograman Prosedural/Terstruktur --> Pascal, C Pemrograman Fungsional fungsi matematika. Pemrograman Modular, Pemrograman Object-oriented C ++, Java Pemrograman Functional-oriented SQL, HTML Pemrograman Declaratif Hand-out: Algoritma Pemrograman IS1313-01 Hal. 11 / 25 12
Pengertian Pemrograman (3/3) Bahasa pemrograman. Alat atau tools yang dipergunakan untuk membuat suatu program. Contoh: Basic, Pascal, Cobol, C, C++, PHP, Java etc Langkah dalam pemrograman, Pendefinisian permasalahan. Menemukan solusi Memilih algoritma Menulis program Menguji program Dokumentasi Pemeliharaan program Hand-out: Algoritma Pemrograman IS1313-01 Hal. 12 / 25 13 Bahasa Pemrograman & Translator (1/3) Bahasa tingkat rendah (low level language). Bahasa mesin Berisi kode-kode mesin yang hanya dapat diinterpretasikan langsung oleh mesin komputer berupa kode numerik 0 dan 1. Bahasa tingkat tinggi (high level language). Merupakan Bahasa Pemrograman Generasi ke-3. Bahasa manusia Banyak ragam Java, Pascal, C, C++, Cobol dll. Memberi banyak fasilitas kemudahan dalam programming variabel, tipe data, konstanta, loop, struktur kontrol, prosedur, dll. Hand-out: Algoritma Pemrograman IS1313-01 Hal. 13 / 25 14
Bahasa Pemrograman & Translator (2/3) Source code Translator - Target code - Object code - Object program Program yang ditulis dalam bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin biner digit dengan menggunakan penterjemah. Translator: Interpreter menterjemahkan baris per baris instruksi. Contoh: Basic Compiler menterjemahkan setelah seluruh instruksi ditulis. Contoh: Java, Pascal, Cobol Hand-out: Algoritma Pemrograman IS1313-01 Hal. 14 / 25 15 Bahasa Pemrograman & Translator (3/3) Input source code Output Interpreter - Basic, PHP, ASP dll - Program dari user - Tidak ada object code - Translasi dilakukan internal Compiler Pascal, C, C++, Cobol - Bahasa Assembly - Exe - INTERPRETER Source code Input data Interpreter Result - COMPILER Source code Compiler Object code Linker Exe Result Preprocessor Libraries Input data Hand-out: Algoritma Pemrograman IS1313-01 Hal. 15 / 25 16
Flowchart (1/3) Definisi: Merupakan bagan yang menggunakan simbol-simbol tertentu dalam menunjukkan alir di dalam suatu program atau prosedur sistem secara logika. Bagan yang mempunyai alir yang menggambarkan langkah-langkah penyelesaian suatu masalah yang juga merupakan cara penyajian dari suatu algoritma. Macam-macam flowchart System flowchart Document / Paperwork / Form flowchart Schematic flowchart Program flowchart Process flowchart Hand-out: Algoritma Pemrograman IS1313-01 Hal. 16 / 25 17 Flowchart (2/3) System flowchart. Bagan alir yang menggambarkan arus / alur pekerjaan secara keseluruhan dari suatu sistem dengan menjelaskan urut-urutan dari prosedur yang terdapat di dalam sistem tersebut. Deskripsi dilakukan secara grafik dari urutan prosedurprosedur yang terkombinasi yang membentuk suatu sistem Document / Paperwork / Form flowchart. Digunakan untuk menelusuri alur form dan laporan sistem dari satu bagian ke bagian lain baik bagaimana alur form dan laporan diproses, dicatat dan disimpan. Hand-out: Algoritma Pemrograman IS1313-01 Hal. 17 / 25 18
Flowchart (3/3) Schematic flowchart. Menggambarkan suatu sistem atau prosedur dengan menggunakan gambar-gambar komputer, peripheral, form-form atau peralatan lain yang digunakan dalam menggunakan suatu sistem selain simbol-simbol flowchart standar. Program flowchart. Flowchart yang dihasil dari System Flowchart yang akan memberikan keterangan yang lebih rinci pada setiap langkah program atau prosedur yang sesungguhnya dilaksanakan dalam urutan yang tepat saat terjadi. Process flowchart. Teknik penggambaran rekayasa industrial yang memecah dan menganalisis langkah-langkah dalam suatu prosedur atau sistem Hand-out: Algoritma Pemrograman IS1313-01 Hal. 18 / 25 19 Pembuatan Flowcart Merupakan gambaran hasil analisa suatu permasalahan Tidak ada kaidah yang baku Bervariasi antara satu pemrogram dengan pemrogram lainnya Terdiri dari bagian utama: input proses output Hindari pengulangan proses yang tidak perlu dan logika yang berbelit, sehingga jalannya proses menjadi singkat. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas. Sebuah flowchart diawali dari satu titik START / MULAI dan diakhiri dengan END / SELESAI. Hand-out: Algoritma Pemrograman IS1313-01 Hal. 19 / 25 20
Simbol-simbol Flowcart Proses Proses Dokumen Keputusan Data Altenatif Input/Output Persiapan Operasi Masukan Disk storage Sub-program/ nilai awal manual manual Sub-proses Konektor Terminator I/O Display Aliran Manual Disket data Operasi Perpindahan / Inspeksi Penundaan Penyimpanan / transportasi File Hand-out: Algoritma Pemrograman IS1313-01 Hal. 20 / 25 21 Contoh Flowcart (1/3) Mulai 1 Mulai 1 Beri nilai awal TOTAL Hitung Rata-rata Total= 0 I = 0 Rata = Total / N Baca data Hitung TOTAL Tampilkan hasil Total & Rata-rata Selesai Read N Read X Print Total, Rata Selesai Data sudah habis? Ya 1 Tidak Total= Total + X I = I + 1 1 Y I = N T Hand-out: Algoritma Pemrograman IS1313-01 Hal. 21 / 25 22
Contoh Flowcart (2/3) Hand-out: Algoritma Pemrograman IS1313-01 Hal. 22 / 25 23 Contoh Flowcart (3/3) Hand-out: Algoritma Pemrograman IS1313-01 Hal. 23 / 25 24
Flowcart vs Java Mulai Total= 0 I = 0 int Total = 0; int I = 0; Scanner s = new Scanner(System.in); 1 Read N int N; System.out.println ( Nilai N = ; N = s.nextint(); Rata = Total / N Rata = Total / N Read X int X; System.out.println ( Nilai X = ; X = s.nextint(); Print Total, Rata System.out.println ( Total = + Total; System.out.println ( Rata = + Rata; Total= Total + X Total:=Total+ X Selesai I = I + 1 I = I + 1 1 Y I = N T Hand-out: Algoritma Pemrograman IS1313-01 Hal. 24 / 25 25 Contoh-contoh Kelulusan Mahasiswa Mulai Luas lingkaran: Mulai Baca Nama, Nilai Input R Nilai >= 56 Ya Keterangan = Lulus Phi=3.14 Tidak Keterangan = Tidak Lulus L 3.14*R*R Tulis Nama, Keterangan Tulis L Selesai Selesai Hand-out: Algoritma Pemrograman IS1313-01 Hal. 25 / 25 26
Selesai 27