ALGORITMA Matakuliah : T0974 / Algoritma dan Metode Object Oriented Programming I Tahun : 2008 Versi : 1/0
Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Menjelaskan definisi algoritma Menerapkan algoritma Bina Nusantara
Program dan Bahasa Pemrograman Pengekspresian Algoritma Pseudocode Outline Materi Definisi Algoritma Kriteria Algoritma Program dan Bahasa Pemrograman Pengekspresian Algoritma Pseudocode Diagram Alur (Flowchart) NS Diagram Bina Nusantara
Algoritma Prosedur (langkah-langkah logis) komputasi yang terdefinisi dengan baik (dari initial state ke terminal state) yang menerima (himpunan) input untuk menyelesaikan suatu tugas/masalah dan menghasilkan (himpunan) output Dikatakan benar jika dari (himpunan) input menghasilkan (himpunan) output yang benar Langkah logis berarti algoritma tidak harus mengikuti urutan tertentu, dan tidak melompati langkah yang lain Bina Nusantara
Contoh: algoritma pengurutan angka (sorting) memiliki: Input : Himpunan n bilangan (a1, a2, a3, …, an) seperti: 5, 3, 4, 2, 1 Output : Himpunan n bilangan terurut (a’1, a’2, a’3, …, a’n) seperti: 1, 2, 3, 4, 5 Contoh permasalahan yang diselesaikan algoritma: Human Genome Project mengidentifikasi 100,000 gen DNA manusia yang menentukan 3 miliar pasang kimia pembentuk DNA. Data tersebut disimpan dalam database dan memerlukan aplikasi analisis data. Algoritma melakukan penyimpanan dan analisis yang cepat. Bina Nusantara
Algoritma Internet untuk pencarian informasi melalui mesin pencarian (search engines). Algoritma membantu pencarian informasi yang cepat dan cerdas. Peta perjalanan terdapat tempat tujuan yang ingin dicapai dari tempat asal. Algoritma memberikan solusi pencarian jalan terpendek dan tercepat untuk menampilkan rute dari tempat asal ke tempat tujuan tersebut. Bina Nusantara
Kriteria Algoritma Input: algoritma dapat memiliki nol atau lebih inputan dari luar. Output: algoritma harus memiliki minimal satu buah output/keluaran. Definiteness (pasti): algoritma memiliki instruksi-instruksi 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 Catatan: Namun ada beberapa program yang dirancang unterminatable, contoh Sistem Operasi Bina Nusantara
Program Kumpulan instruksi-instruksi (source code) yang dibuat oleh programmer (pembuat program) untuk menyelesaikan suatu masalah pada komputer. Instruksi: sintaks (cara pengkodean) sesuai bahasa pemrograman yang dipakai dan mengandung komponen input, output, proses, seleksi, dan perulangan yang menugaskan komputer untuk mengeksekusi suatu perintah tertentu. Algoritma menempati posisi di bagian implementasi pemrogram melakukan proses coding (pembuatan program). Bina Nusantara
Alat untuk membuat program. Perbedaan: cara memberikan instruksi. Bahasa Pemrograman Alat untuk membuat program. Perbedaan: cara memberikan instruksi. Persamaan: output/pemecahan masalah yang dicapai. Bina Nusantara
Contoh bahasa pemrograman: COBOL (Common Business Oriented Language) FORTRAN (FORmula TRANslation) BASIC (Beginner All-purpose Symbolic Instructional Code) Pascal (dinamakan untuk Blaise Pascal) Ada (dinamakan untuk Ada Lovelace) C (pengembang bahasa B) Visual Basic (mirip BASIC, buatan Microsoft) Delphi (mirip Pascal, buatan Borland) C++ (bahasa berorientasi object, berbasiskan C) C# (mirip Java, buatan Microsoft) Java Bina Nusantara
Pengekspresian Algoritma Alur pengekspresian algoritma dituangkan secara tertulis Alur pengekspresian: alur pemikiran, sehingga algoritma setiap orang berbeda Tertulis: algoritma berupa tulisan/kalimat, gambar, atau tabel Algoritma dapat melalui beberapa metode: Tulisan/kalimat: pseudocode Gambar: Flowchart Tabel: NS Diagram Bina Nusantara
Berasal dari kata pseudo dan code, berarti kode yang tidak sebenarnya Pseudocode Berasal dari kata pseudo dan code, berarti kode yang tidak sebenarnya Deskripsi informal untuk algoritma pada pemrograman komputer Tujuan: memudahkan manusia untuk membaca bahasa pemrograman konvensional Tidak ada standar untuk pseudocode karena bukan program yang dapat dieksekusi Bina Nusantara
Umumnya dimulai dengan kata “BEGIN” dan diakhiri “END” Pseudocode Umumnya dimulai dengan kata “BEGIN” dan diakhiri “END” IF-THEN dan ELSE digunakan untuk operasi percabangan/seleksi WHILE dan DO-WHILE digunakan untuk operasi perulangan Bina Nusantara
Pseudocode Contoh pseudocode untuk melakukan panggilan melalui telepon: BEGIN Hold up the phone WHILE not dial Press dial button WHILE not connected Waiting dial IF connected THEN WHILE not finish Talking Hold down the phone END Bina Nusantara
Pseudocode Contoh pseudocode untuk mengecek apakah bilangan genap atau ganjil: BEGIN Number = Input Number Result = Number % 2 IF Result = 0 THEN Print “The number is even number” ELSE THEN Print “The number is odd number” END Bina Nusantara
Diagram Alur (Flowchart) Representasi skematik dari suatu algoritma atau proses. Skematik: penggunaan diagram untuk merepresentasikan elemen suatu sistem menggunakan simbol-simbol abstrak yang bukan sesungguhnya. Contoh: bangunan pada peta disimbolkan dengan titik, gunung disimbolkan dengan segitiga Bina Nusantara
Diagram Alur (Flowchart) Notasi Proses, Entri data, Aritmatika: Notasi Seleksi: Notasi Arah/alur (Flowlines): Notasi Input/Output: Notasi Berhenti Umumnya dimulai dengan dan diakhiri dengan RECTANGLE DIAMOND PARALLELOGRAM CIRCLE Start END Bina Nusantara
Diagram Alur (Flowchart) Contoh flowchart untuk melakukan panggilan melalui telepon: Hold up the phone Press dial button Waiting Start Dialing No Yes Connected Talking Finish Hold down the phone END Bina Nusantara
Diagram Alur (Flowchart) Contoh flowchart untuk mengecek apakah bilangan genap atau ganjil: Start Input Number Number % 2 Print “Odd Number” Print “Even Number” 1 END Bina Nusantara
Did You Know? Algoritma berasal dari nama seorang ahli astronomi dan matematik Persia (Iran), Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, dalam sebuah tulisan Arab berjudul “al jabr w’al-muqabala” (“Rules of Restoration and Reduction” atau “On Calculation with Hindu Numerals”) pada tahun 825 M. Tulisan tersebut diterjemahkan dalam bahasa latin pada abad ke-12 berjudul “Algoritmi de numero Indorum“ atau “Algoritmus on the numbers of the Indians“ Kata “Algoritmi” merujuk pada nama penulisnya, tetapi masyarakat menyalahartikan sebagai “calculation method”. Bina Nusantara
Nassi-Shneiderman (NS Diagram) Advanced Learning Nassi-Shneiderman (NS Diagram) representasi desain grafikal untuk pemrograman terstruktur NS Diagram: metode penulisan algoritma menggunakan tabel secara top-down Dikembangkan tahun 1972 Isaac Nassi dan Ben Shneiderman NS Diagram dikenal dengan structograms Bina Nusantara
Advanced Learning Notasi process: Notasi seleksi: Notasi perulangan WHILE DO-WHILE Proses Kondisi Betul Salah Kondisi Belum Terpenuhi Proses Kondisi Belum Terpenuhi Proses Bina Nusantara
Advanced Learning Contoh NS Diagram untuk melakukan panggilan melalui telepon: Hold up the phone Dialing? Press dial button Finish? Talking Hold down the phone Bina Nusantara
Advanced Learning Contoh NS Diagram untuk mengecek apakah bilangan genap atau ganjil: Insert number Print “Even Number” Number % 2 Equal to 0 Equal to 1 Print “Odd Bina Nusantara
Referensi Introduction to Algorithms. 2ed. Cormen. 2002. p5-13 Introduction to Java Programming. 7ed. Liang. 2009. p33-34 Algorithm. http://en.wikipedia.org/wiki/Algorithm Pseudocode. http://en.wikipedia.org/wiki/Pseudocode Flowchart. http://en.wikipedia.org/wiki/Flowchart NS Diagram. http://en.wikipedia.org/wiki/NS_Diagram Bina Nusantara