ALGORITMA
1.
Apakah Itu Algoritma ?
Ditinjau dari asal-usul katanya, kata Algoritma
sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang
berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika
Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan
asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah
matematika menemukan asal kata tersebut yang berasal dari nama penulis buku
arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi.
Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi
menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang
artinya “Buku pemugaran dan pengurangan” (The book of restoration
and reduction). Dari judul buku itu kita juga memperoleh akar kata
“Aljabar” (Algebra).
Perubahan
kata dari algorism menjadi algorithm muncul
karena kata algorism sering dikelirukan denganarithmetic,
sehingga akhiran –sm berubah menjadi –thm. Karena
perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun
kataalgorithm 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
“Algoritma adalah urutan langkah-langkah logis
penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam
algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat
ditentukan bernilai salah atau benar. Dalam beberapa konteks,
algoritma adalah spesifikasi urutan langkah untuk melakukan
pekerjaan tertentu.
Pertimbangan dalam pemilihan algoritma adalah,
pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran
yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli
sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma
tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah
kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut.
Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang
memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma
yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang
sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi
algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun
algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita
harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut
biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu
juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah
algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma
yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan
dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika
terjadi demikian, carilah algoritma yang paling efisien dan cepat.
3. 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. Beberapa pakar memberi
formula bahwa :
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma
berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa
pemilihan struktur data yang tepat akan membuat program menjadi kurang baik,
demikian juga sebaliknya.
Pembuatan
algoritma mempunyai banyak keuntungan di antaranya :
·
Pembuatan
atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang melaksanakannya.
·
Notasi
algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
·
Apapun
bahasa pemrogramannya, output yang
akan dikeluarkan sama karena algoritmanya sama.
Beberapa
hal yang perlu diperhatikan dalam membuat algoritma :
·
Teks
algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami.
·
Tidak ada
notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.
·
Setiap
orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini
dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi
algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu,
maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.
·
Notasi
algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi
algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh
komputer, pseudocode dalam
notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi
bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program
sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang
menjalannya.
·
Algoritma
sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
·
Algoritma
merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer,
algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman
Ada beberapa hal yang harus
diperhatikan pada translasi tersebut, yaitu :
a.
Pendeklarasian variabel
Untuk
mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa
pemrograman apabila tidak semua bahasa pemrograman
membutuhkannya.
b.
Pemilihan tipe data
Apabila
bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka
perlu hal ini dipertimbangkan pada saat pemilihan tipe data.
c.
Pemakaian instruksi-instruksi
Beberapa
instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan
dan kekurangan yang berbeda.
d.
Aturan sintaksis
Pada
saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa
pemrograman yang akan digunakan.
e.
Tampilan hasil
Pada
saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan
disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi
program.
f.
Cara pengoperasian compiler atau interpreter.
Bahasa
pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter.
4. Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau
informatika. Banyak cabang ilmu komputer yang mengarah ke dalam terminologi
algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu
komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang
dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang
dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap
resep selalu ada urutan langkah-langkah membuat masakan. Bila
langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan.
Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu
langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai 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.
Algoritma adalah deskripsi dari suatu pola
tingkah laku yang dinyatakan secara primitif yaitu aksi-aksi yang didefenisikan
sebelumnya dan diberi nama, dan diasumsikan sebelumnya bahwa aksi-aksi tersebut
dapat kerjakan sehingga dapat menyebabkan kejadian.
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:
·
Mengerti
setiap langkah dalam algoritma.
·
Mengerjakan
operasi yang bersesuaian dengan langkah tersebut.
Berikut merupakan beberapa contoh simbol flowchart yang
disepakati oleh dunia pemrograman :
Untuk memahami lebih dalam mengenai flowchart ini,
akan diambil sebuah kasus sederhana.
Kasus : Buatlah sebuah rancangan program dengan menggunakan flowchart,
mencari luas persegi panjang.
Solusi : Perumusan untuk mencari luas persegi panjang adalah :
L = p
. l
di mana, L adalah Luas
persegi panjang, p adalah panjang persegi, dan l adalah
lebar persegi.
Keterangan
:
1.
Simbol
pertama menunjukkan dimulainya sebuah program.
2.
Simbol
kedua menunjukkan bahwa input data dari p dan l.
3.
Data
dari p dan l akan diproses pada simbol ketiga dengan menggunakan
perumusan L = p. l.
4.
Simbol
keempat menunjukkan hasil output dari proses dari simbol
ketiga.
5.
Simbol
kelima atau terakhir menunjukkan berakhirnya program dengan tanda End.
5. Struktur 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:
1.
Struktur
Runtunan
2.
Digunakan
untuk program yang pernyataannya sequential atau
urutan.
3.
Struktur
Pemilihan
4.
Digunakan
untuk program yang menggunakan pemilihan atau penyeleksian kondisi.
5.
Struktur
Perulangan
6.
Digunakan
untuk program yang pernyataannya akan dieksekusi berulang-ulang.