Ilmu Komputer adalah ilmu pengetahuan yang berhubungan dengan komputer dan komputasi. Di dalamnya terdapat teoritika, eksperimen, dan pendesainan komponen, serta termasuk didalamnya hal-hal yang berhubungan
dengan:
- Teori-teori untuk memahami komputer device, program, dan sistem
- Eksperimen untuk pengembangan dan pengetesan konsep
- Metodologi desain, algoritma, dan tool untuk merealisasikannya
- Metode analisa untuk melakukan pembuktian bahwa realisasi sudah sesuai dengan requirement yang diminta
Sejarah istilah “algoritma”
Kata algoritma juga berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Abu Ja`far Muhammad bin Musa al-Khwārizmī al-Majousi al-Katarbali yang lahir di Khawarizm (Kheva), kota yang berada di selatan Sungai Oxus (sekarang disebut Uzbekistan), yang biasa disebut al-Khwārizmī (770M-840M), orang barat menyebut Al-Khwarizmi dengan Algorism.
Pada saat itu, Al-Khwarizmi menulis buku dengan judul Al Jabar wal-Muqabala yang artinya `Buku Pemugaran dan Pengurangan` (The book of Restoration and Reduction). Dari judul buku tersebut, kita juga memperoleh kata “aljabar” atau biasa dikenal dengan algebra.
Al Khawarizmi merupakan salah satu ilmuan terkenal di zamannya. Ada beberapa cabang ilmu matematika yang berhasil ditemukannya, antara lain yang dikenal sebagai astronom dan geografer.
Awalnya, algoritma merupakan istilah yang merujuk kepada aturan-aturan aritmetis yang berguna untuk menyelesaikan persoalan dengan menggunakan bilangan numeric Arab.
Pada awalnya kata algorisma merupakan istilah yang akan merujuk kepada aturan-aturan aritmetis untuk dapat menyelesaikan persoalan dengan menggunakan bilangan numerik arab. Pada abad ke-18, istilah ini juga telah berkembang pesat menjadi algoritma, yang dimana akan mencakup semua prosedur atau juga urutan langkah yang jelas dan juga diperlukan untuk dapat menyelesaikan suatu permasalahan. Masalah ini akan timbul pada saat akan menuangkan bagaimana proses yang harus dilaluinya dalam suatu ataupun juga sebuah sistem (program) bagi komputer hingga pada saat eksekusinya, komputer dapat bekerja seperti yang akan diharapkan. Programer komputer ini akan lebih nyaman menuangkan prosedur komputasinya atau juga suatu urutan langkah proses dengan terlebih dahulu membuat gambaran.
Pengertian Algoritma
Algoritma merupakan suatu jantung dari ilmu komputer maupun juga informatika. Ada banyak cabang ilmu dari komputer yang dapat mengacu dalam terminologi algoritma. Akan tetapi, kita jangan beranggapan bahwa algoritma selalu di identikkan dengan ilmu komputer saja. Misalnya cara membuat kue maupun juga masakan yang akan dinyatakan dalam resep masakan, itu juga merupakan algoritma.
Algoritma merupakan suatu susunan langkah dimana penyelesaian suatu masalah secara sistematika dan logis. Terdapat dua kata yang menjadi titik perhatian kita yakni sistemati dan logis. Algoritma merupakan suatu langkah-langkah yang disusun secara tertulis dan juga akan berurutan untuk dapat menyelesaikan suatu masalah.
Algoritma adalah :
- Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas, tersusun secara logis dan sistematis.
- Suatu prosedure yang jelas untuk menyelesaikan suatu persoalan dengan menggunakan langkah-langkah tertentu dan terbatas jumlahnya.
Ada 3 cara dalam penyusunan algoritma (Notasi algoritma) yaitu :
- Dengan merumuskan langkah-langkah pemecahan masalah melewati kalimat yang terstruktur (kalimat deskriftif)
- Menggabungkan kalimat dengan penggalan stratements yang ada di suat bahasa pemrograman (misal C++). Biasanya ini juga disebut juga dengan Pseudo code
- Menggunakan diagram alir (Flow Chart).
Beda Algoritma dan Program?
- Program adalah kumpulan pernyataan komputer,
- sedangkan metode dan tahapan sistematis dalam program adalah algoritma.
- Program ditulis dengan menggunakan Bahasa pemrograman.
- Jadi bisa disebut bahwa program adalah suatu implementasi dari Bahasa pemrograman.
- Program = Algoritma + Bahasa (Struktur Data)
Ciri-ciri Algoritma
Donald E.Knuth, seorang penulis beberapa buku algoritma abad XX, menyatakan bahwa ada beberapa ciri algoritma, yaitu:
- Algoritma mempunyai awal dan akhir
- Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda (not ambigous)
- Memiliki masukan (input) atau kondisi awal
- Memiliki keluaran (output) atau kondisi akhir
- Algoritma harus efektif, bila diikuti benar-benar akan menyelesaikan persoalan
Struktur Algoritma
Agar algoritma dapat ditulis dengan teratur maka sebaiknya dibagi ke dalam beberapa bagian :
- Bagian Kepala (Header)
Memuat nama algoritma serta informasi atau keterangan tentang algoritma yang ditulis.
- Bagian Deklarasi
Memuat definisi tentang nama variable, nama tetapan, nama prosedur, nama fungsi, tipe data yang digunakan dalam algoritma.
- Bagian Deskripsi/Rincian Langkah
Memuat langkah-langkah penyelesaian masalah, termasuk Beberapa perintah seperti baca data, tampilkan, ulangi, yang mengubah data input menjadi output, dsb.
Berikut adalah contoh struktur sebuah contoh algoritma yg menerima dua buah angka bulat kemudian menampilkan angka yang lebih besar.
Bahasa Pemrograman
Sampai saat ini terdapat puluhan bahasa pemrograman, antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada, PL/I, algol, Pascal, C, C++, Basic, Prolog, LISP, PRG. Bahasa-bahasa simulasi seperti CSMP, Simscript, GPSS, Dinamo dan banyak lagi. Belakangan juga muncul bahasa pemrograman baru seperti Perl dan Java.
Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar:
1. Bahasa pemrograman bertujuan khusus
Yang termasuk kelompok ini adalah Cobol (untuk terapan bisnis dan administrasi), Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin) . Prolog (terapan kecerdasan buatan), bahasa simulasi, dsb.
2. Bahasa pemrograman bertujuan umum
Yang dapat digunakan untuk berbagai aplikasi, yang termasuk kelompok ini diantaranya adalah bahasa Pascal, Basic, C, C++ dan lain-lain.
Berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” kemesin atau ke bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua macam.
1. Bahasa tingkat rendah
Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin.
2. Bahasa tingkat tinggi
Yang membuat pemrograman lebih lebih mudah dipahami, lebih “manusiawi”, dan berorientasi ke bahasa manusia (bahasa inggris). Program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut compiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dsb.
Ada sumber yang mendefinisikan bahasa tingkat tinggi dari sudut pandang kemudahan pemakaiannya serta orientasinya yang lebih dekat ke bahasa manusia. Les Goldschager [GOL88] menuliskan spektrum bahasa mulai dari bahasa tingkat tinggi (Pascal, Ada, PL/I, Cobol), bahasa tingkat menengah (Bahasa menengah, Basic, Fortran), sampai bahasa tingkat rendah (Bahasa mesin).
Berikut adalah contoh dalam Bahasa Mesin untuk menambahkan register 1 dan 2 dan menempatkan hasilnya dalam register 6 dikodekan.
[Arsitektur MIPS]
rs, rt, and rd indicate register operands; shamt gives a shift amount; and the address or immediate fields contain an operand directly.
Langkah-langkah algoritma dengan untaian kalimat deskriptif
Langkah-langkah algoritma dengan Pseudo Code
Langkah-langkah algoritma dengan Flow Chart
- Mulai
- Masukkan A dan B
- Apakah A>B ?
- bila Ya, Cetak A, bila Tdk, Cetak B
- Selesai
Translasi Notasi Algoritma ke dalam Notasi Bahasa C dan C++
Contoh translasi dari algoritma menampilkan angka yang lebih besar ke dalam bahasa C++.
Setelah dicompile dan run haasilnya adalah :
Daftar Pustaka :
- Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Informatika Bandung, 2002
- Algoritma Pemrograman, Andi Yogyakarta
- Saniman dan Muhammad Fathoni: Pengantar Algoritma dan juga Pemrograman
- https://www.stebisigm.ac.id/berita223-Pengertian-dan-Sejarah-Algoritma.html
- https://pengajar.co.id/algoritma-adalah/
