Selasa, 26 Maret 2013

Algoritma



ALGORITMA

Algoritma secara sederhana merupakan urutan langkah-langkah logis untuk menyelesaikan masalah yang disusun secara sistematis. Misalkan saja “algoritma aktifitas pagi hari ini sebelum berangkat kerja” yaitu turun dari tempat tidur, melepas piama, mandi, berpakaian, makan pagi, pergi kerja.
Istilah algoritma berasal dari nama seorang pedagang berkebangsaan arab bernama Ja’fat Mohammed bin Musa al Khowarizmi (tahun 790 – 840), yang sangat terkenal dengan sebutan bapak Aljabar.

A.    DEFINISI ALGORITMA
Terdapat beberapa definisi mengenai kata Algoritma :
1.      Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis (Rinaldi Munir :2002).
2.      Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah (KBBI :1988).
3.      Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma :1988).

B.     CIRI ALGORITMA
Menurut Donald E. Knuth, algoritma mempunyai lima ciri penting :
1.      Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
2.      Setiap langkah harus didefinisikan secara tepat dan tidak berarti dua.
3.      Algoritma memiliki nol atau lebih masukan (input).
4.      Algoritma mempunyai nol atau lebih keluaran (output).
5.      Algoritma harus efektifitas dan efisiensi.

C.    ANALISIS SUATU ALGORITMA
Untuk melihat faktor efisiensi & efektifitas dari algoritma tersebut, dapat dilakukan terhadap suatu algoritma dengan melihat pada:
1.      Waktu tempu (Running Time) dari suatu algoritma: adalah satuan waktu yang ditempuh atau diperlukan oleh suatu algoritma dalam menyelesaikan suatu masalah. Hal-hal yang dapat mempengaruhi dari pada waktu tempuh adalah:
a.       Banyaknya langkah: Makin banyak langkah atau instruksi yang digunakan dalam menyelesaikan masalah, maka makin lama waktu tempuh yang dibutuhkan dalam proses tersebut.
b.      Besar dan jenis input data: Besar dan jenis input data pada suatu algoritma akan sangat berpengaruh pada proses perhitugan yang terjadi. Jika jenis data adalah tingkat ketelitian tunggal (Single precision), maka waktu tempuh akan menjadi relatif lebih cepat dibandingkan dengan tingkat ketelitian ganda (double precesion).
c.       Jenis operasi: Waktu tempuh juga dipengaruhi oleh jenis operasi yang digunakan. Jenis operasi tersebut meliputi operasi matematika, nalar atau logika, atau yang lainnya. Sebagai contoh, operasi perkalian atau pembagian akan memakan waktu lebih lama dibandingkan operasi penjumlahan atau pengurangan.
d.      Komputer dan kompilator: hal terakhir yang mempengaruhi waktu tempuh suatu proses algoritma adalah komputer dan kompilatornya, walaupun sebenarnya faktor ini diluar tahap rancangan atau tahap pembuatan algoritma yang efisien. Algoritma dibuat untuk mencapai waktu tempuh yang seefektif dan seefisien mungkin, tetapi kesemuanya itu akan sangat bergantung pada kemampuan komputer yang tentunya harus sesuai dengan jumlah program atau langkah yang diperlukan oleh algoritma, begitu juga dengan kompilator tersebut, misalnya PC XT 8086 akan kalah cepat dibandingkan 8088 atau dengan AT 80286 atau 80386 atau 80486 dan seterusnya.
2.      Jumlah Memori Yang digunakan: banyaknya langkah yang digunakan dan jenis variabel data yang dipakai dalam suatu algoritma akan sangat mempengaruhi penggunaan memori. Dalm hal ini, diharapkan dapat memperkirakan seberapa banyak kebutuhan memori yang diperlukan selama proses berlangsung hingga proses selesai dikerjakan. Dengan demikian, dapat disiapkan storage yang memadai agar proses suatu algoritma berjalan tanpa ada hambatan atau kekurangan memori.

D.    SIFAT-SIFAT ALGORITMA
1.      Banyaknya langkah instruksi harus berhingga: pelaksanaan sebuah algoritma yang terprogram haruslah dapat diakhiri atau diselesaikan melalui sejumlah langkah operasional yang berhingga. Jika tidak demikian, kita tidak akan dapat mengharapkan bahwa pelaksaan algoritma tersebut dapat menghasilkan suatu solusi yang baik.
2.      Langkah atau instruksi harus jelas: artinya bahwa penulisa setiap langkah yang terdapat didalam sebuah algoritma harus memiliki arti yang khusus atau spesifik sehingga dapat dibedakan antara penulisan langkah untuk computer (program/pemrograman) dengan penulisan langkah bagi manusia (pesudocode). Manusia akan lebih mudah memahami algoritma yang terdiri atas simbol-simbol (Contoh: pembuatan algoritma dengan diagram alur/flowchart) sedangkan komputer hanya membutuhkan sebuah penulisan algoritma dengan kode-kode yang dituangkan dalam bahasa yang dimengerti oleh komputer itu sendiri (bahasa pemrograman).
3.      Proses harus jelas dan mempunyai batasan: rangkaian suatu proses yang berisi langkah-langkah instruksi dari suatu algoritma yang akan dilaksanakn harus ditetapkan dengna jelas, baik dan pasti sebab sebuah algoritma harus memiliki instruksi dasar tertentu dimana setiap instruksi harus memiliki unsur pelaksana yang berfungsi sebagai pemroses data yang akan dimasukkan dalam sebuah komputer. Dengan demikian, sebuah algoritma harus ditulis dengan jelas tentang batasa-batasan proses yang akan dilaksanakan oleh komputer.
4.      Efektifitas: instruksi yang diberikan pada komputer agar hanya menjalankan atau melaksanakan proses yang mampu dilaksanakannya. Yang dimaksud mampu adalah bahwa suatu algoritma atau instruksi-instruksi dalam sebuah program hanya akan dapat dilaksanakan jika informasi yang diberikan oleh instruksi-instruksi tersebut lengkap, benar dan jelas.
5.      Adanya batasan ruang lingkup, sebuah algoritma yang baik adalah hanya ditujukan bagi suatu masalah tertentu saja. Susunana input harus ditentukan lebih dulu sebab susunan tersebut enentukan sifat umum dari algoritma yang bersangkutan.






E.     TEKS ALGORITMA
Pada dasarnya, teks algoritma disusun atas tiga bagian (blok) : bagian judul (header) agoritma, bagian deklarasi, dan bagian deskripsi. Setiap bagian dapat diberi komentar untuk memperjelas maksud teks yang dituliskan. Komentar biasanya ditulis menggunakan kurung kurawal.
1)      Judul Algoritma
Judul algoritma adalah bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut. Nama algoritma sebaiknya singkat, namun cukup menggambarkan apa yang akan dilakukan oleh algoritma tersebut. Di bawah nama algoritma disertai dengan penjelasan singkat (intisari) tentang apa yang dilakukan oleh algoritma. Penjelasan di bawah nama algoritma sering dinamakan juga spesifikasi algoritma. Algoritma harus ditulis sesuai dengan spesifikasi yang didefinisikan.
Contoh :
Algoritma Luas_Lingkaran
{ Menghitung luas lingkaran untuk ukuran jari-jari tertentu. Algoritma menerima masukan jari-jari lingkaran, menghitung luasnya, lalu cetak luasnya ke piranti keluaran }

2)      Deklarasi
Di dalam algoritma, deklarasi nama adalah bagian untuk mendefinisikan semua nama yang dipakai di dalam algoritma. Nama tersebut dapat berupa nama terapan, nama peubah, nama tipe, nama prosedur dan nama fungsi.
Contoh Deklarasi :
Panjang = integer {tipe data bilangan bulat}
Lebar    = integer
Luas     = real    {tipe data bilangan pecahan}

3)      Deskripsi
Deskripsi adalah bagian terpenting dari struktur algoritma. Bagian ini berisi uraian langkah-langkah penyelesaian masalah. Langkah-langkah ini dituliskan dengan notasi yang lazim dalam penulisan algoritma. Setiap langkah algoritma dibaca dari langkah paling atas hingga langkah paling bawah. Urutan penulisan menentukan urutan pelaksanaan perintah.
Contoh Deskripsi :
Read (nama)
Read (NIM)
Read (nilai)
If (nilai < 45) then
Grade = E
Else if (nilai >= 45) and (nilai < 60) then
Grade = D
Else if (nilai >= 60) and (nilai < 70) then
Grade = C
Else if (nilai >= 70) and (nilai < 80) then
Grade = B

Else
Grade = A
Write (nama)
Write (NIM)
Write (nilai)

F.     STRUKTUR DASAR ALGORITMA
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah langkah tersebut dapat berupa runtunan aksi, pemilihan aksi, dan pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi, sebuah algoritma dapat dibangun dari tiga buah struktur dasar, yaitu :
1)      Runtunan (sequence)
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dikerjakan.

2)      Pemilihan (selection)
Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Tiap–tiap instruksi akan diseleksi oleh kondisi, apabila instruksi memenuhi kondisi yang diminta, maka instruksi akan dijalankan.

3)      Pengulangan (repetition)
Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan yang sama berulang kali tanpa mengenal lelah. Kita tidak perlu menulis instruksi yang sama berulang kali, tetapi cukup melakukan pengulangan dengan instruksi yang tersedia.

Algoritma Konversi
{ Terdapat tiga sub bagian (menu) dari program konversi. Pertama, konversi nilai dolar ke rupiah. Nilai tukar dan jumlah dolar diinput dari piranti masukan. Kedua, konversi Kilo meter (KM) ke meter (m). Nilai kilometer diinput dari piranti masukan. Ketiga, konversi Celcius ke Fahrenheit. Nilai celcius diinput dari piranti masukan. Ketiga nilai diolah dengan masing-masing rumus yang berbeda. Hasilnya dicetak ke piranti keluaran }

Deklarasi :
Pilih, Tukar, Dolar, KM  = Integer
Nilai1, Nilai2, Celcius = Integer
Nilai3                   = Real
Lagi                     = Char

Deskripsi :
Cetak (judul program)
Cetak (pilihan)
Baca (Pilih)
If (Pilih=1) then
Baca (Tukar)
Baca (Dolar)
Nilai1 = Tukar * Dolar
Cetak (Nilai1)
ElseIf (Pilih=2) then
Baca (KM)
Nilai2 = KM * 1000
Cetak (Nilai2)
Else
Cetak (Peringatan)
Endif
Baca (Lagi)
If (Lagi = ‘Y’) then goto (x,y)
Cetak (selesai)




0 komentar:

Posting Komentar