
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.
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.
(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.
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
(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.
"TERIMAKASIH ATAS KUNJUNGANNYA"