PENDAHULUAN
A. Asal Usul Kata Algoritma
Kata algoritma TIDAK berasal dari kata Yunani (Greek) seperti algos yang berarti kesakitan akan tetapi merupakan pemelesetan (corruption) dari nama ahli matematika berkebangsaan Persia yaitu “Abu „Abd Allah Muhammad ibn Musa al-Khawariezmi” yang diterjemahkan sebagai “Mohammad, bapak dari Adbdulla, anak dari Musa, si Kwarizmian” (Kwarizm merupakan sebuah kota tua yang sekarang terletak di Provinsi Xorazm, Uzbekistan). Al-Khawarizmi dikenal sebagai penulis terkenal risalah Kitab al-jabr wa’l-Muqabala dimana kata aljabar moderen diturunkan.
Orang barat membaca Al-Khuwarizmi menjadi Algorism yang sebenarnya tidak berhubungan dengan kata Yunani arithmos yaitu angka akan tetapi dulunya digunakan untuk menerangkan sistem desimal moderen untuk menulis dan memanipulasi angka-angka khususnya dalam angka-angka arab.
Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dipelesetkan (corrupted) dengan Arithmetic, sehingga akhiran -sm berubah menjadi -thm. Mengingat perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Istilah Algorithm dalam Bahasa Indonesia disebut menjadi Algoritma.
B. Definisi Algoritma
“Algoritma merupakan suatu urutan langkah-langkah (steps) yang disusun secara logis dan sistematis untuk menyelesaikan suatu masalah dan dapat dieksekusi. “
Dalam defenisi diatas istilah “komputer” tidak terlihat sehingga sebuah algoritma tidak selalu berhubungan dengan komputer. Dalam kehidupan sehari-hari banyak terdapat proses yang dinyatakan dalam suatu algoritma. Contohnya, cara membuat masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai sebuah algoritma. Pada setiap resep selalu ada urutan langkah-langkah membuat masakan. Bila langkah-langkahnya tidak logis, maka tidak akan dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca (mengikuti) satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses itu sesuai dengan yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
Kata logis merupakan kata kunci dalam sebuah Algoritma karena setiap langkah dalam Algoritma harus logis (jelas dan pasti) dan harus dapat ditentukan bernilai salah atau benar. Sebuah algoritma diperbolehkan tanpa ada input tetapi minimal harus ada 1 output. Jumlah langkah (steps) dalam sebuah algoritma harus berhingga atau dengan kata lain harus ada akhir proses.
Umumnya sebuah algoritma sering dikaitkan dengan perhitungan dan mengingat proses perhitungan dilakukan dengan cepat oleh sebuah komputer maka secara umum sekarang ini sebuah algoritma menjadi selalu berkaitan dengan komputer. Komputer merupakan suatu alat elektronika yang mempunyai kemampuan untuk melakukan perhitungan dan membuat keputusan logika dengan jumlah waktu yang jauh lebih cepat dari kemampuan manusia. Pada saat ini, sebuah PC (personal computer) dapat melakukan puluhan juta penjumlahan dalam waktu satu detik. Sebuah output kadang-kadang memerlukan lebih dari satu algoritma khususnya dalam Penginderaan Jarak Jauh yang umumnya memerlukan banyak algoritma untuk menghasilkan sebuah output sehingga untuk menghasilkan sebuah output yang benar dan cepat maka algoritma dalam Penginderaan Jarak Jauh selalu berhubungan dengan komputer.
Komputer memproses data dengan menggunakan kumpulan instruksi (langkah) yang disebut program. Program ini memandu komputer untuk melaksanakan kerja (mengeksekusi perintah) yang secara sistematis dan berstruktur disusun oleh seseorang yang disebut programmer. Program yang disusun secara sistematis dan logis dan dapat menyelesaikan masalah (menghasilkan output) adalah merupakan sebuah algoritma. Secara umum, ada tiga elemen penting yang harus dimiliki mulai dari pembuatan sebuah algoritma (brainware), program untuk menjalankan algoritma (software), dan alat untuk pemrosesan algoritma (hardware) yang secara struktural dapat digambarkan pada Gambar 1.1. dibawah ini.
Perangkat keras (hardware) merupakan berbagai peralatan yang terdapat di dalam suatu sistem komputer seperti papan ketik (keyboard), layar (monitor), disk, memori, dan unit pemroses (CPU=Central Processing Unit). Perangkat keras sebuah komputer terdiri dari enam unit (logika) yang saling berhubungan membentuk suatu organisasi komputer yaitu:
(i) Unit input, yang digunakan untuk menerima masukan data dan/atau program komputer dari berbagai alat masukan (input devices) dan menempatkannya ke unit lain sedemikian rupa sehingga dapat diproses.
(ii) Unit output, yang digunakan untuk menyimpan data atau informasi yang telah diproses oleh komputer dan menempatkannya pada berbagai alat output (output devices) sehingga dapat digunakan oleh pengguna.
(iii) Unit memori, yang sering disebut sebagai memori utama digunakan untuk menyimpan atau menampung masukan dari unit input, sehingga data (informasi) tersebut selalu tersedia untuk diproses pada saat dibutuhkan.Unit ini juga menampung hasil proses komputer sampai diperlukan oleh unit output.
(iv) ALU(Arithmetic and Logic Unit), yang bertugas untuk melakukan operasi aritmetika (perhitungan) seperti penjumlahan, pengurangan, perkalian, dan pembagian. Disamping itu, ALU juga bertugas untuk melakukan keputusan dari suatu operasi logika dasar maupun operasi boolean sesuai dengan instruksi program seperti sama dengan (=), tidak sama dengan (≠), kurang dari (<), kurang atau sama dengan (), dan lebih besar atau sama dengan (>), dan lain-lain.
(v) CPU (Central Processing Unit) merupakan ”brain” atau ”processor” dari sebuah komputer yang merupakan koordinator dan penanggung jawab bagi operasi unit-unit lainnya. Unit ini menyampaikan informasi pada unit input, menentukan kapan informasi harus dibaca ke dalam unit memori, dan pada unit output, kapan harus mengirim informasi dari memori ke alat-alat output.
(vi) Secondary storage unit, yaitu media penyimpan data dan/atau program yang non-volatile berupa Flash Drive, Optical Disc, Magnetic Disk, Magnetic Tape. Media ini biasanya daya tampungnya cukup besar dengan harga yang relatif murah.
Program untuk menjalankan suatu komputer disebut dengan perangkat lunak (software). Dalam perangkat lunak termasuk sistem operasi, bahasa pemrograman, dan program aplikasi. Sistem operasi (operating system) atau OS adalah perangkat lunak sistem yang bertugas untuk melakukan layanan inti dan umum maupun kontrol dan manajemen perangkat keras (hardware) serta operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah kata dan browser web. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan kernel suatu Sistem Operasi.
Sistem Operasi bisa juga berfungsi sebagai penghubung antara lapisan hardware dan lapisan software. Sistem Operasi ini melakukan semua tugas-tugas penting dalam komputer, menjamin aplikasi-aplikasi yang berbeda dapat berjalan secara bersamaan dengan lancar, menjamin aplikasi software lainnya dapat menggunakan memori, melakukan input dan output terhadap peralatan lain, dan memiliki akses kepada sistem file. Bilamana beberapa program aplikasi berjalan secara bersamaan, maka
Sistem Operasi akan mengatur jadwal yang tepat, sehingga sedapat mungkin semua proses yang menggunakan prosesor (CPU) akan berjalan dengan lancar dan tidak saling mengganggu. Dalam banyak kasus, Sistem Operasi menyediakan suatu pustaka dari fungsi-fungsi standar, dimana aplikasi lain dapat memanggil fungsi-fungsi itu, sehingga dalam setiap pembuatan program baru, tidak perlu membuat fungsi-fungsi tersebut dari awal.
Secara umum sebuah Sistem Operasi terdiri dari 5 (lima) bagian:
(1) Mekanisme boot yaitu meletakkan kernel ke dalam memory
(2) Kernel yaitu inti dari sebuah Sistem Operasi
(3) Command Interpreter atau shell yang bertugas membaca input dari pengguna
(4) Library (pustaka) yang menyediakan kumpulan fungsi dasar dan standar yang
dapat dipanggil oleh aplikasi lain
(5) Driver untuk berinteraksi
Dewasa ini, sebagian besar Sistem Operasi membolehkan beberapa aplikasi berjalan secara simultan pada waktu yang bersamaan yang disebut sebagai Multi-tasking Operating System. Beberapa contoh Sistem Operasi yang berkembang saat ini adalah MS-DOS, Microsoft Windows, Unix, Linux, dan Mac-OS. Dalam kuliah ini akan dipelajari Sistem Operasi MS-DOS, Microsoft Windows, dan Linux. Sedangkan bahasa pemrograman akan digunakan Interactive Data Language (IDL) software yang dikeluarkan oleh ITTS Inc. Software ini akan dipelajari dan dikembangkan untuk menghasilkan sebuah algoritma untuk aplikasi penginderaan jarak jauh.
C. Tipe-tipe Algoritma Berdasarkan Format Penulisan
Algoritma adalah independen terhadap bahasa pemrograman tertentu, artinya algoritma yang telah dibuat tidak boleh hanya dapat diterapkan pada bahasa pemrograman tertentu. Penulisan algoritma tidak terikat pada suatu aturan tertentu, tetapi harus jelas maksudnya untuk tiap langkah algoritmanya. Namun pada dasarnya algoritma dibagi menjadi beberapa macam berdasarkan format penulisannya, yaitu:
1. Deskriptif
Algoritma bertipe deskriptif maksudnya adalah algoritma yang ditulis dalam bahasa manusia sehari-hari (misalnya bahasa Indonesia atau bahasa Inggris) dan dalam bentuk kalimat. Setiap langkah algoritmanya diterangkan dalam satu atau beberapa kalimat.
Sebagai contoh misalnya algoritma menentukan bilangan terbesar dari 3 bilangan berikut ini:
2. Flow Chart (Diagram Alir)
Selain dalam bentuk tulisan, algoritma juga dapat ditulis dalam bentuk diagram-diagram dengan anak panah sebagai penunjuk urutan langkah algoritmanya. Algoritma yang ditulis dengan simbol-simbol demikian yang dinamakan flow chart. Contoh algoritma menentukan bilangan terbesar dari 3 bilangan seperti yang dicontohkan sebelumnya, tetapi ditulis dalam bentuk flow chart.
Berikut simbol – simbol Flow Chart yang sering digunakan :
D. Pseudocode
Pseudo berarti imitasi dan code berarti kode yang dihubungkan dengan instruksi yang ditulis dalam bahasa komputer (kode bahasa pemrograman). Apabila diterjemahkan secara bebas, maka pseudocode berarti tiruan atau imitasi dari kode bahasa pemrograman.
Pada dasarnya, pseudocode merupakan suatu bahasa yang memungkinkan programmer untuk berpikir terhadap permasalahan yang harus dipecahkan tanpa harus memikirkan syntax dari bahasa pemrograman yang tertentu. Tidak ada aturan penulisan syntax di dalam pseudocode. Jadi pseudocode digunakan untuk menggambarkan logika urut-urutan dari program tanpa memandang bagaimana bahasa pemrogramannya.
Walaupun pseudocode tidak ada aturan penulisan syntax, di dalam buku ini akan diberikan suatu aturan-aturan penulisan syntax yang cukup sederhana agar pembaca dapat lebih mudah dalam mempelajari algoritma-algoritma yang ada di dalam buku ini. Pseudocode yang ditulis di dalam buku ini akan menyerupai (meniru) syntax-syntax dalam bahasa Pascal. Namun dibuat sesederhana mungkin sehingga tidak akan ada kesulitan bagi pembaca untuk memahami algoritma-algoritma dalam buku ini walaupun pembaca belum pernah mempelajari bahasa Pascal.
Contoh algoritma menentukan bilangan terbesar dari tiga bilangan yang ditulis dalam bentuk pseudocode bergaya buku ini.