
- 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
kata algorithm berangsur-angsur
dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan
makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap
menjadi algoritma.
- · 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.
- Bentuk Dasar Algoritma
Algoritma terdiri tiga 3 bentuk dasar,
yaitu :
1.
Algoritma
Sekuensial (Sequence Algorithm)
Sequence algorithm atau algoritma
sekuensial merupakan algoritma yang langkah-langkahnya secara urut dari awal
hingga akhir. Bentuk dari algoritma sekuensial ini salah satu contohnya seperti
algoritma memasak air. Langkah demi langkah yang dijalankan harus urut dari
atas sampai bawah.
2.
Algoritma Perulangan (Looping Algorithm)
Looping algorithm atau algoritma
perulangan merupakan suatu algoritma yang menjalankan beberapa langkah tertentu
secara berulang-ulang atau looping. Pada masalah yang kita hadapi, ada pula
sebuah langkah yang harus kita lakukan secara berulang-ulang. Contoh dari
algoritma looping ini adalah algoritma menjemur pakaian:
1) Siapkan jemuran.
2) Ambil satu pakaian yang nantinya akan dijemur.
3) Peras pakaian tersebut terlebih dahulu.
4) Letakkan pakaian tersebut pada tiang jemuran.
5) Ulangi langkah dari 2 sampai 4 hingga pakaian habis.
Dari algoritma di atas, dapat diketahui bahwa dari langkah 2 sampai 4 harus dilakukan secara berulang-ulang hingga pakaian habis.
1) Siapkan jemuran.
2) Ambil satu pakaian yang nantinya akan dijemur.
3) Peras pakaian tersebut terlebih dahulu.
4) Letakkan pakaian tersebut pada tiang jemuran.
5) Ulangi langkah dari 2 sampai 4 hingga pakaian habis.
Dari algoritma di atas, dapat diketahui bahwa dari langkah 2 sampai 4 harus dilakukan secara berulang-ulang hingga pakaian habis.
3.
Algoritma Percabangan atau Bersyarat (Conditional Algorithm)
Conditional algorithm atau algoritma
bersyarat merupakan algoritma yang menjalankan langkah berikutnya apabila
terdapat syarat yang sudah dapat dipenuhi. Berikut salah satu contoh dari
algoritma bersyarat :
1) Siapkan panci.
2) Masukkan air secukupnya ke dalam panci.
3) tutup panci tersebut.
4) letakkan panci tersebut di atas kompor.
5) Hidupkan kompor.
6) Apabila air sudah mendidih, lalu matikan kompor.
7) Angkat panci tersebut dari kompor.
Algoritma bersyarat atau contional algorithm terdapat pada langkah ke 6. Apabila air sudah mendidih, lalu matikan kompor. Sehingga apabila air tersebut belum mendidih, maka kompor tidak dimatikan.
1) Siapkan panci.
2) Masukkan air secukupnya ke dalam panci.
3) tutup panci tersebut.
4) letakkan panci tersebut di atas kompor.
5) Hidupkan kompor.
6) Apabila air sudah mendidih, lalu matikan kompor.
7) Angkat panci tersebut dari kompor.
Algoritma bersyarat atau contional algorithm terdapat pada langkah ke 6. Apabila air sudah mendidih, lalu matikan kompor. Sehingga apabila air tersebut belum mendidih, maka kompor tidak dimatikan.
- Merancang Algoritma yang Baik
Menurut Donald E. Knuth, dari pengertian algoritma diatas
dapat diketahui bahwa sebuah algoritma yang baik yaitu algoritma yang mempunyai
kriteria sebagai berikut :
- Masukan (Input)
Algoritma
mempunyai input 0 (nol) atau lebih.
- Keluaran (Output)
Algoritma harus menghasilkan atau mengeluarkan minimal 1
output.
- Terbatas (Finite)
Algoritma harus berhenti setelah melakukan
langkah-langkah yang diperlukan.
- Pasti (Definite)
Algoritma harus jelas kapan dimulai dan berakhir. Tujuan
dari algoritma harus jelas. Setiap langkah-langkah harus dijelaskan dengan
jelas.
- Efisien
Membuat sebuah algoritma haruslah efisien. Adanya langkah seperti
mencari hasil 1 + 0 tidak efisien. Hal ini karena bilangan apapun itu jika
ditambah dengan nol maka hasilnya ialah bilangan itu sendiri. Sehingga adanya
langkah seperti itu tidak perlu dimasukkan ke dalam sebuah algoritma.
Algoritma dapat disajikan ke dalam 2 bentuk, yaitu bentuk tulisan atau bahasa dan bentuk gambar. Penyajian algoritma dalam bentuk bahasa atau tulisan harus memakai sebuah bahasa yang dapat untuk dimengerti manusia dalam membuat langkah-langkah dari algoritma itu sendiri. Penyajian algoritma dalam bentuk tulisan/bahasa dapat dilakukan dengan memakai pseudocode. Pseudocode berasal dari "pseudo" aritnya "menyerupai atau mirip" dan "code" yaitu "kode program. Terdapat juga penyajian algoritma yang dalam bentuk gambar disebut flow chart.
- Klasifikasi Algoritma
1.
Rekursi atau iterasi
Algoritma rekursi ialah suatu algoritma
yang memanggil dirinya sendiri secara berulang kali (looping) hingga pada
kondisi tertentu dapat tercapai. Rekursi merupakan suatu metode umum dalam
pemrograman fungsional. Algoritma iteratif memakai konstruksi berulang seperti
pada pengulangan dan terkadang terdapat struktur data tambahan. Contohnya : Menara Hanoi yang dikenal dengan implementasi
rekursif. Pada setiap versi rekursif mempunyai adanya kesamaan (bisa lebih
ataupun kurang kompleks) dengan versi iteratif, ataupun sebaliknya.
2.
Logical
Algoritma dapat dilihat sebagai sebuah
logika deduksi terkontrol. Pernyataan ini dapat diekspresikan sebagai:
Algoritma = kontrol + logika. Komponen logika yang mengekspresikan aksioma
dapat digunakan dalam komputasi serta komponen kontrol dalam menentukan
cara-cara deduksi yang digunakan pada aksioma. Hal tersebut adalah dasar dari
paradigma pemrograman logika.
3.
Serial, paralel atau terdistribusi
Pada umumnya, suatu algoritma
menjalankan satu instruksi algoritma setiap waktu. Komputer tersebut dapat
disebut dengan komputer serial. Rancangan algoritma yang digunakan bagi
lingkungan tersebut ialah algoritma serial, terbalik dengan algoritma
terdistribusi atau algoritma paralel. Algoritma paralel menggunakan arsitektur
komputer yang mana terdapat prosesor-prosesor dapat mengerjakan masalah pada
waktu yang sama. Sedangkan algoritma terdistribusi menggunakan banyak mesin
yang terhubung ke jaringan. Algoritma terdistribusi atau paralel membagi
permasalahan ke banyak submasalah simetris maupun asimetris dan mengumpulkan
hasil yang didapat kembali. Konsumsi dari sumber pada algoritma tersebut tidak
hanya ada perputaran prosesor tapi juga terdapat daya komunikasi antara
prosesor. Algoritma pengurutan dapat untuk diparalelkan secara efisien, namun
terdapat biaya komunikasi yang sangat mahal. Algoritma iteratif pada umumnya
dapat untuk diparalelkan. Ada juga permasalah yang tidak ada algoritma
paralelnya, disebut dengan permasalahan serial lahiriah.
4.
Deterministik atau non-deterministik
Terdapat juga algoritma determministik
dan non-determenistik. Algoritma deterministik dapat menyelesaikan
masalah-masalah dengan keputusan tepat disetiap langkah-langkah dari sebuah
algoritma. Algoritma non-deterministik dapat menyelesaikan masalah-masalah
lewat adanya penerkaan walaupun penerkaan tersebut pada umumnya lebih akurat
dengan memakai heuristik.
5.
Tepat atau perkiraan
Jika terdapat banyak algoritma dapat
sampai ke solusi yang tepat, ada juga algoritma perkiraan yang mencari
perkiraan terdekat dengan solusi benarnya. Perkiraan tersebut dapat memakai
strategi deterministik ataupun acak. Algoritma yang seperti itu dapat mempunyai
nilai lebih untuk banyak permasalahan yang sulit.- 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.
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.
- Langkah-langkah dalam Pemrograman Komputer
Dalam
melakukan suatu kegiatan, tentu saja kita memerlukan langkah-langkah yang harus
dilalui. Orang tidur saja, menurut para dokter, melewati beberapa tahapan atau
fase. Dalam pemrograman komputer, kita juga memerlukan beberapa langkah.
Urutan
langkah-langkah yang saya sajikan dalam buku ini tidak bersifat mutlak, artinya
Anda tidak harus melakukannya dari langkah pertama, kedua, ketiga, dst. Ada
beberapa langkah yang harus atau mungkin diulang sampai berkali-kali. Lebih
jauh lagi, buku lain mungkin menyajikan langkah-langkah yang kelihatannya
berbeda tetapi pada intinya sama. Berikut ini adalah beberapa langkah yang
harus dilakukan dalam pemrograman komputer:
- Mendefinisikan masalah
- Menentukan solusi
- Memilih algoritma
- Menulis program
- Menguji program
- Menulis dokumentasi
- Merawat program
- · Tahapan dalam Pemrograman
Langkah-langkah yang dilakukan
dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah :
- Definisikan Masalah
- Buat Algoritma dan Struktur Cara Penyelesaian
- Menulis Program
- Mencari Kesalahan
- Uji dan Verifikasi Program
- Dokumentasi Program
- Pemeliharaan Program
Sumber :
http://algrountan.tripod.com/algo1.htm

Tidak ada komentar:
Posting Komentar