PENGENALAN ALGORITMA & PEMROGRAMAN PENGANTAR TEKNOLOGI INFORMASI (TIF1101)
PENGENALAN ALGORITMA & PEMROGRAMAN • • • • • • •
Definisi Algoritma Sejarah Algoritma Perbedaan Algoritma & Program Langkah Pembuatan Program Menilai sebuah Algoritma Struktur dasar Algoritma Penyajian Algoritma
2
DEFINISI ALGORITMA (1) • Analogi: • Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah: • Langkah : 1) Menulis surat 2) Surat dimasukkan ke dalam amplop tertutup 3) Amplop diberikan alamat penerima dan pengirim 4) Amplop ditempelkan perangko secukupnya. 5) Pergi ke Kantor Pos terdekat untuk mengirimkannya 3
DEFINISI ALGORITMA (2) • Algoritma adalah urutan langka-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis (Anonymous). • Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah (Kamus Besar Bahasa Indonesia). • Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. (Microsoft Press Computer and Internet Dictionary) • Kata Logis merupakan kata kunci dalam Algoritma. 4
DEFINISI ALGORITMA (3) • Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis (Moh Sjukani) • Alur pemikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. • Tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.
• Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah. 5
SEJARAH ALGORITMA • Penemunya adalah seorang ahli matematika, astronomi, dan geografi dari Iran yang bernama Abu Abdullah Muhammad Ibn Musa Al-Khawarizmi (780-850M). • Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). • Di literatur barat lebih terkenal dengan sebutan AlKhawarizmi, Al-Goritmi, Al-Gorismi, dan beberapa ejaan lagi. Karya Al-Khawarizmi menjadi titik awal ilmu aljabar dan konsep algorithm. Dalam bahasa Indonesia kita kemudian menyebutkannya sebagai algoritma. 6
PERBEDAAN ALGORITMA & PROGRAM • Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan (P. Insap Santosa). • Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan yang mempunyai komponen-komponen : Input, Output, Proses, Percabangan dan Perulangan. • Sedangkan metode dan tahapan sistematis dalam program adalah Algoritma.
7
PERBEDAAN ALGORITMA & PROGRAM (2) • Beberapa pakar memberi formula bahwa: Program = Struktur data + Algoritma • Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. • Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya. 8
MENGAPA ALGORITMA? • Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun. • Notasi algoritma dapat diterjemahkan berbagai bahasa pemrograman.
ke
dalam
• Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
9
MENILAI SEBUAH ALGORITMA (1) Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
Pemrosesan yang efisien 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 general.
Bisa dikembangkan (expandable) Haruslah sesuatu yang dapat dikembangkan berdasarkan perubahan requirement yang ada.
lebih
jauh
(Murhada dan Yo Ceng, 2011) 10
MENILAI SEBUAH ALGORITMA (2) Mudah dimengerti Siapapun yang melihat, dia akan bisa memahami algoritma tersebut. 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)
(Murhada dan Yo Ceng, 2011) 11
ALGORITMA DALAM KEHIDUPAN SEHARI-HARI (1) • Dalam kehidupan sehari – hari banyak terdapat proses yang dinyatakan dalam suatu algoritma.
12
ALGORITMA DALAM KEHIDUPAN SEHARI-HARI (1) • Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses dapat berupa manusia, komputer, robot, atau alat – alat elektronik lainnya. • Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut. • Oleh karena itu, suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus: Mengerti setiap langkah dalam algoritma. Mengerjakan operasi yang bersesuaian dengan langkah tersebut. 13
LANGKAH PEMBUATAN PROGRAM (1) a. Mendefinisikan masalah Kondisi awal, yaitu input yang tersedia. Kondisi akhir, yaitu output yang diinginkan. Data lain yang tersedia. Syarat atau kendala yang harus dipenuhi. b. Buat Algoritma dan Struktur Cara Penyelesaian Jika masalahnya kompleks, maka dibagi ke dalam modul-modul. (Murhada dan Yo Ceng, 2011) 14
LANGKAH PEMBUATAN PROGRAM (2) c. Menulis program Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platform lainnya. d.Mencari Kesalahan Kesalahan sintaks (penulisan program) Kesalahan pelaksanaan: semantik, ketelitian
logika,
dan
(Murhada dan Yo Ceng, 2011) 15
LANGKAH PEMBUATAN PROGRAM (3) e. Uji dan Verifikasi Program f. Dokumentasi Program g. Pemeliharaan Program
(Murhada dan Yo Ceng, 2011) 16
STRUKTUR DASAR ALGORITMA (1) • Runtunan (Sequence) Sebuah runtunan terdiri dari satu atau lebih 'instruksi'. Tiap-tiap instruksi dilaksanakan secara berurutan sesuai dengan urutan penulisannya. Sebuah instruksi, baru bisa dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan. Urutan instruksi menentukan keadaan akhir algoritma. Kalau urutannya diubah, kemungkinan besar hasil akhirnya akan berubah.
(Murhada dan Yo Ceng, 2011) 17
STRUKTUR DASAR ALGORITMA (2) • Contoh – Algoritma tukar isi bejana: Misalkan ada dua buah bejana, A dan B. Bejana A berisi larutan kopi, bejana B berisi larutan susu. Pertukarkan kedua isi bejana itu, sehingga A berisi larutan susu, dan B berisi larutan kopi.
A
B (Murhada dan Yo Ceng, 2011) 18
STRUKTUR DASAR ALGORITMA (3) • Jawaban: Diperlukan tambahan sebuah bejana sebagai tempat penampungan sementara, misal bejana C. Maka Algoritma untuk menghasilkan pertukaran yang benar: 1. Tuangkan larutan dari bejana A ke dalam bejana C 2. Tuangkan larutan dari bejana B ke dalam bejana A 3. Tuangkan larutan dari bejana C ke dalam bejana B
(Murhada dan Yo Ceng, 2011) 19
STRUKTUR DASAR ALGORITMA (4) • Pemilihan (Selection) Kadangkala sebuah instruksi dikerjakan setelah 'kondisi' tertentu terpenuhi. Dalam bahasa pemrograman, ini dikenal dengan "if" dan "then". Kondisi adalah persyaratan yang dapat dinilai benar atau salah sehingga akan memunculkan 'aksi' yang berbeda dengan 'kondisi' yang berbeda. Contoh : 'if' Widi memperoleh juara kelas 'then' ayah akan membelikannya sepeda 'if' Mobilmu rusak 'then' pakai saja motorku (Murhada dan Yo Ceng, 2011) 20
STRUKTUR DASAR ALGORITMA (5) • Bentuk pemilihan yang lebih umum adalah memilih satu dari dua aksi bergantung pada nilai kondisinya, seperti: 'if' hari hujan 'then' pergilah dengan naik taxi 'else' pergilah dengan naik motor
(Murhada dan Yo Ceng, 2011) 21
STRUKTUR DASAR ALGORITMA (3) • Pengulangan (Repetition) salah satu kegunaan pemrograman adalah untuk memudahkan pekerjaan yang harus dilakukan secara berulang. Bentuk umum perulangan adalah:
'repeat‘ aksi 'until' kondisi Struktur 'repeat-until' hanya satu diantara beberapa struktur pengulangan yang ada. Terdapat beberapa struktur pengulangan lain seperti 'while-do', 'for' dan sebagainya. (Murhada dan Yo Ceng, 2011) 22
PENYAJIAN ALGORITMA (1) • Bentuk penyajian untuk algoritma dibagi menjadi 3 (tiga) bentuk penyajian, yaitu : 1. Algoritma dengan struktur Bahasa Natural 2. Algoritma dengan Pseudocode 3. Algoritma dengan Flowchart
(Murhada dan Yo Ceng, 2011) 23
PENYAJIAN ALGORITMA (2) 1. Dalam struktur Bahasa Natural (Bahasa Indonesia, Inggris, dan Bahasa manusia lainnya) Sifat Umum: • Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman. • Tidak tergantung pada suatu bahasa pemrograman. • Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun. • Komputer tidak dapat memahami. • Tapi terkadang membingungkan (Ambigu). (Murhada dan Yo Ceng, 2011) 24
PENYAJIAN ALGORITMA (3) Contoh : Menghitung rata-rata tiga buah data Algoritma dengan struktur bahasa Indonesia : 1) Start 2) Baca bilangan a, b, dan c 3) Jumlahkan ketiga bilangan tersebut 4) Bagi jumlah tersebut dengan 3 5) Tulis hasilnya 6) End (Murhada dan Yo Ceng, 2011) 25
PENYAJIAN ALGORITMA (4) Contoh 2: 1. Inisialisasi 2. Input sebuah bilangan, masukkan ke dalam sebuah variabel, misalkan saja bil. 3. Apakah bil modulus 2 sama dengan nol? - Jika ya, maka bilangan tersebut adalah bilangan genap. - Jika tidak, maka sudah dapat dipastikan bahwa bilangan tersebut adalah bilangan ganjil. 4. Tampilkan jenis bilangan (genap, atau ganjil) 5. Apakah ingin mengulang proses? - Jika ya, kembali ke langkah 2. - Jika tidak, langsung ke langkah 5 (selesai). 6. Selesai
(Murhada dan Yo Ceng, 2011) 26
PENYAJIAN ALGORITMA (5) Soal: 1. Buatlah algoritma menggunakan struktur bahasa natural untuk menghitung luas volume dari suatu balok. 2. Buatlah algoritma menggunakan struktur bahasa natural untuk menghitung total pembayaran dari pembelian seorang customer. Dengan ketentuan, apabila pembelian barang sama dengan atau melebihi Rp 500.000, maka pelanggan mendapat diskon 10%. Jika tidak, pelanggan tidak mendapatkan diskon. (Murhada dan Yo Ceng, 2011) 27
PENYAJIAN ALGORITMA (6) 2. Pseudo-Code Penyajian algoritma dengan pseudocode berarti menggunakan kode yang mirip dengan kode pemrograman yang sebenarnya. Pseudocode lebih rinci dari Struktur Bahasa Natural.
(Murhada dan Yo Ceng, 2011) 28
PENYAJIAN ALGORITMA (7) Contoh: Menghitung rata-rata tiga buah data Algoritma dengan struktur pseudo-code : 1. Start 2. Input (a, b, c) 3. Jml = a+b+c 4. Rerata = Jml/3 5. Output (Rerata) 6. End
(Murhada dan Yo Ceng, 2011) 29
PENYAJIAN ALGORITMA (8) 3. Menggunakan Flowchart (Diagram Alir) • Suatu bagan/diagram yang menggambarkan aliran proses yang dikerjakan suatu program dari awal sampai akhir. • Fungsi dari Flowchart adalah mendeskripsikan urutan pelaksanaan suatu proses (sama dengan fungsi dari algoritma). • Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. (Murhada dan Yo Ceng, 2011)
30
MENGAPA FLOWCHART? (1) • Relationship Memberikan gambaran yang efektif, jelas, dan ringkas tentang prosedur logic. Teknik penyajian yang bersifat grafis jelas akan lebih baik daripada uraian-uraian yang bersifat teks khususnya dalam menyajikan logika - logika yang bersifat kompleks.
• Analysis • Dengan adanya pengungkapan yang jelas dalam model atau chart, maka para pembaca dapat dengan mudah melihat permasalahan atau memfokuskan perhatian pada area-area tertentu sistem informasi. (Murhada dan Yo Ceng, 2011) 31
MENGAPA FLOWCHART? (2) • Communication Karena simbol-simbol yang digunakan mengikuti suatu standar tertentu yang sudah diakui secara umum, maka flowchart dapat merupakan alat bantu yang sangat efektif dalam mengkomunikasikan logika suatu masalah atau dalam mendokumentasikan logika tersebut.
(Murhada dan Yo Ceng, 2011) 32
SIMBOL FLOWCHART (1) • Simbol – simbol Flowchart (Diagram Alir)
(Murhada dan Yo Ceng, 2011) 33
SIMBOL FLOWCHART (2)
(Murhada dan Yo Ceng, 2011) 34
SIMBOL FLOWCHART (3)
(Murhada dan Yo Ceng, 2011) 35
SIMBOL FLOWCHART (4)
(Murhada dan Yo Ceng, 2011) 36
SIMBOL FLOWCHART (5)
(Murhada dan Yo Ceng, 2011) 37
SIMBOL FLOWCHART (6)
(Murhada dan Yo Ceng, 2011) 38
39
40