MAKALAH PENGERTIAN, DASAR-DASAR DAN NOTASI ALGORTIMA Disusun Guna Memenuhi Tugas 1 Mata Kuliah Pemrograman Komputer Dosen Pengampu: Drs. Dindin Sobiruddin, M.Kom Disusun Oleh: Marta Dilla Indah Sari (11180170000050) Program Studi Pendidikan Matematika Fakultas Tarbiyah dan Keguruan UIN Syarif Hidayatullah Jakarta 2020 A. Pengertian Algoritma Semakin majunya perkembangan zaman membuat manusia mampu menghasilkan karya yang semakin canggih. Kemajuan teknologi saat ini hampir memenuhi seluruh aspek kehidupan manusia. Komputer tidak otomatis mampu menyelesaikan masalah begitu saja. Ada urutan langkah yang dimulai dari analisa masalah, penyusunan langkah penyelesaiian (Algoritma) oleh analisis, kemudian diterjemahkan/menuliskan langkahlangkah ke dalam bahasa program komputer tertentu oleh programmer, kemudian dikompilasi dan dijalankan sehingga menemukan output yang diinginkan.1 Asal-usul kata Algoritma mempunyai sejarah yang unik. Para ahli sejarah matematika menemukan bahwa rupanya kata Algoritma berasal dari nama seorang ahli metematika dari Uzbekistan yang hidup di masa tahun 770-840 masehi yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi menulis buku berjudul Kitab Al Jabar Wal Muwabla yang memili arti “Buku Pemugaran dan Pengurangan”. Perubahan dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan menjadi Arithmetic, sehingga akhiran –sm berubah menjadi –thm. Perhitungan dengan menggunakan angka Arab sudah menjadi hal yang biasa, maka kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.2 Definisi Algoritma menurut beberapa pakar adalah sebagai berikut:3 1. Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi: Algoritma adalah suatu metode khusus untuk menyelesaikan suatu masalah. 2. Donald E. Knuth: Algoritma adalah sekumpulan aturan-aturan berhingga yang memberikan sederetan proses-proses untuk menyelesaikan suatu masalah yang khusus. 3. David Bolton: Algoritma adalah deskripsi dari suatu prosedur yang berakhir dengan waktu yang terbatas. 4. Stone dan Knuth: Algoritma adalah suatu seperangkat aturan yang tepat mendefinisikan urutan operasi hingga sedemikian rupa sehingga setiap aturan yang Kani, “Pengantar Algoritma dan Pemograman”, http://www.pustaka.ut.ac.id/reader/index.php?subfolder=MSIM4203/&doc=M1.pdf hlm 1.2 (Diakses pada 2 September 2020) 2 A Aziz Nur Farhana, https://eprints.sinus.ac.id/412/2/BAB_II.pdf (Diakses pada 4 September) 3 Kani, Op. Cit.hlm 1.3 1 efektif, jelas hingga sedemikian rupa sehingga urutan berakhir dalam waktu yang terbatas. 5. Andrey Andreyevich Markov: Algoritma adalah hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan. Salah satu alasan utama mempelajari algoritma dilihat dari kacamata disiplin ilmu adalah bahwa algoritma adalah sebuah keterampilan yang memberi potensi untuk memecahkan masalah serumit apapun dengan waktu penyelesaian proses/eksekusi singkat, bahkan mungkin bisa meringkas langkah kerja yang tidak efesien menjadi otomatis. Algoritma yang tepat akan memberikan efek yang signifikan terhadap waktu dan tenaga.4 B. Dasar-dasar Algoritma Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu: 5 1. Struktur Runtunan Digunakan untuk program yang pernyataannya sequential atau urutan. 2. Struktur Pemilihan Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi. 3. Struktur Perulangan Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang. Ciri-ciri dari algoritma adalah sebagai berikut:6 1. Ada input/masukan dan output/keluaran 2. Memiliki proses tertentu. 3. Prosesnya merupakan pola pikir dan logis dalam menghasilkan output. 4. Prosesnya memiliki intruksi yang jelas dan tidak ambiguitas. 4 Ibid.hlm 1.5 Kadek bagus, 2018, “PENERAPAN KOMPONEN DAN STRUKTUR ALGORITMA PADA ALGORITMA DAN PEMROGRAMAN DASAR”, http://download.garuda.ristekdikti.go.id/article.php?article=905612&val=14237&title=Penerapan%20Kompon en%20dan%20Struktur%20Algoritma%20pada%20Algoritma%20dan%20Pemrograman%20Dasar (Diakses pada 7 September) 6 Kani.Op. Cit. hlm 1.14 5 5. Memiliki stopping role atau jika pada keadaan tertentu mengalami proses iterasi yang berlebihan maka ada proses pemberhentian. Menurut Ellis Horowitz dan Sartaj Sahni dalam bukunya berjudul “Fundamentals of Data Structures”, syarat ketercapaian suatu algoritma adalah apabila memenuhi syarat berikut:7 1. Input: boleh nol atau lebih masukan dalam satu algoritma; 2. Output: dalam satu algoritma, dipesyaratkan memiliki satu keluaran, boleh lebih; 3. Definiteness: setiap intruksi harus jelas, tidak boleh ambigu 4. Finiteness: menyatakan bahwa setelah melakukan proses maka apapun kondisinya suatu algoritma harus memiliki akhir 5. Effectiveness: algoritma bekerja secara efektif, yaitu semua operasi yang dilakukan bersifat sederhana dan dapat diselesaikan dengan waktu yang singkat. C. Notasi Algoritma Agar algoritma mudah ditranslasikan ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algpmotmik tersebut berkoresponden dengan notasi bahasa pemrograman secara umum.8 Misalkan kita menulis perintah: tulis nilai x dan y Dalam notasi algoritmik ditulis menjadi: write (x,y) No. Notasi biasa Notasi algoritmik Notasi T. Pascal 1 Masukan nilai x readln(x) ReadLn(x) 2 Isikan nilai 5 kedalam x x 5 X:=5 3 Isikan nilai x kedalam min minx Min:=x 4 Tambahkan nilai 1 ke X itulah X X x+1 X:=x+1 5 Tulis nilai x dan y write(x,y) Write(x,y) 6 Jika a lebih besar dari b maka if a>b then If a>b Then Tabel 1. Notasi Algoritmik 7 Ibid. Muhammad Fathoni dan Saniman, 2008, “Pengantar Algoritma dan Pemrograman”, https://prpm.trigunadharma.ac.id/public/fileJurnal/6BEB3-OK-Jurnal13-Sani-MF-Algo1-1.pdf hlm 126 (diakses pada 7 September 2020) 8 Aturan diatas tidak baku, hanya penyesuaian dengan bahasa pemrograman Turbo Pascal. Pada dasarnya teks algoritma tersusun dari 3 bagian (blok) yaitu: 1. Kepala Algoritma atau judul (header) 2. Bagian deklarasi. 3. Bagian deskripsi (uraian) algoritma. Algoritma dapat disajikan dengan menggunakan banyak cara, diantaranya:9 a. Bahasa alamiah Penyajian algoritma dengan bahasa alamiah dilakukan dengan menyusun uraian katayang menggunakan bahasa Inggris atau dengan bahasa lain, misalnya bahasa Indonesia.Algoritma dengan bahasa alamiah dapat ditulis dengan menggunakan huruf besar di awalkalimat dan selanjutnya dengan huruf kecil, atau dengan menggunakan huruf besar seluruhnya. Untuk memperjelas dapat ditambahkan nomor urut untuk setiap langkahyang ada. Karena menggunakan bahasa yang sehari-hari digunakan manusia, maka penyajian algoritma dengan bahasa alamiah dapat dipahami oleh pembaca yang belummemahami bahasa pemrograman, misalnya pemakai sistem. b. Pseudocode (sandi semu) Penulisan sandi semu menggunakan simbol-simbol perintah yang mirip dengan yang menggunakan di dalam bahasa pemrograman. Pseudocode berasal dari kata pseudo yang berarti mirip atau menyerupai, dan code yang berarti program. Pseudocode ditulis denganmenggunakan huruf besar, sedangkan variabel atau komentar ditulis denganmenggunakan huruf kecil. Untuk memperjelas struktur algoritma, digunakan tabulasiyang berbeda untuk penulisan sandi semu yang berada dalam kalang (loop) atau struktur kondisional. Dengan penulisan sandi semu mirip dengan penulisan program, makaalgoritma yang ditulis dengan sandi semu lebih tepat digunakan untuk mengkomunikasikan algoritma kepada pemrogram. 9 Arief Wijaya, “dasar-dasar algoritma” https://www.academia.edu/4400025/03_Dasar_dasar_Algoritma (Diakses pada 5 September) c. Bagan atau gambar Salah satu bagan yang digunakan untuk menyatakan algoritma ialah yang disebut dengan bagan alir (flowchart). Bagan alir terdiri atas sekumpulan gambar yang digunakan menyatakan simbol-simbol tertentu. Simbol-simbol yang sering digunakan untuk pembuatan bagan alir diberikan pada Gambar 1. Gambar 1. Contoh Gambar untuk Bagan Alir/Flowchart Apapun cara yang dipilih untuk menyajikan algoritma, satu hal yang perlu diperhatikan ialah bahwa algoritma tidak berhubungan dengan satu bahasa pemrograman ataupun komputer jenis tertentu yang akan mengeksekusinya. Algoritma dapat diterjemahkan ke bahasa pemrograman apapun sesuai pilihan dari pemrograman. D. Contoh Algoritma Untuk memperluas pemahaman kita tentang konsep algoritma dengan cara yang lebih baik, kita cermati kasus berikut: katakan Anda ingin melakukan sebuah perjalanan dari Tangerang ke Bogor, Anda dihadapkan dengan berbagai pilihan untuk mencapai tujuan, misalnya naik kereta, naik angkot atau naik taksi. Ketiga pilihan yang ada mempunyai kelebihan dan kelemahan baik dari sisi waktu dan biaya.10 Naik Kereta 10 Ke stasiun terdekat Membeli tiket kartu Tangerang – Bogor Gesek kartu untuk membuka pintu masuk Menunggu keberangkatan kereta Jika kursi penuh maka berdiri Sampai tujuan Bogor Kani, Op. CIt hlm 1.3 Naik Taksi Memesan taksi lewat Android atau telepon langsung Menunggu taksi untuk menjemput Naik taksi Lewat jalur biasa atau lewat jalan tol Sampai tujuan Bayar taksi sesuai argo Naik Angkot Ke terminal atau pangkalan angkot Menunggu angkot penuh Melalui jalur biasa Sampai Bogor Bayar sesuai tarif angkot Ketiga algoritma di atas mencapai tujuan yang sama, namun masing-masing algoritma melakukannya dengan cara yang berbeda. Setiap algortima juga memiliki biaya dan waktu perjalanan yang berbeda. Dengan naik taksi misalnya, adalah cara tercepat, tapi juga yang paling mahal. Naik angkot, jauh lebih murah tetapi memakan waktu lebih banyak dari naik taksi, begitu juga dengan naik kereta, menunggu jadwal kereta, singgah di setiap stasiun dan walaupn bebas hambatan. Jadi setiap algoritma perjalanan dari Tangerang ke Bogor memiliki kelebihan dan kekurangan masingmasing. DAFTAR PUSTAKA Bagus, Kadek. 2018. PENERAPAN KOMPONEN DAN STRUKTUR ALGORITMA PADA ALGORITMA DAN PEMROGRAMAN DASAR. http://download.garuda.ristekdikti.go.id/article.php?article=905612&val=1423 7&title=Penerapan%20Komponen%20dan%20Struktur%20Algoritma%20pad a%20Algoritma%20dan%20Pemrograman%20Dasar (Diakses pada 7 September 2020) Farhana, A Aziz Nur. 2015. https://eprints.sinus.ac.id/412/2/BAB_II.pdf . (Diakses pada 4 September 2020) Fathoni, Muhammad dan Saniman, 2008, Pengantar Algoritma dan Pemrograman, https://prpm.trigunadharma.ac.id/public/fileJurnal/6BEB3-OK-Jurnal13-Sani-MFAlgo1-1.pdf (diakses pada 7 September 2020) Kani. Pengantar Algoritma dan Pemograman. http://www.pustaka.ut.ac.id/reader/index.php?subfolder=MSIM4203/&doc=M 1.pdf (Diakses pada 3 September 2020) Wijaya, Arief. 2020. https://www.academia.edu/4400025/03_Dasar_dasar_Algoritma . (Diakses pada 5 September 2020)