Jika berandai-andai memiliki sebuah computer dengan
kecepatan dan memori yang tidak terbatas,masihkan kita memerlukan sebuah
algoritma? Jawabannya pasti “ya” karena dengan algoritma yang baik, ita bisa
mendokumentasikan dan merancang sebuah program agar dapat di pahami oleh orang
lain (sebuah program sebaiknya tidak hanya di pahami oleh pemrogramnya, namun
juga oleh pengguna program).
Permasalahannya sekarang adalah bahwa computer
tidak mempunyai kecepatan dan memori yang tidak terbatas, terlepas dari
harganya yang sudah semakin murah.penggunaan algoritma dalam hal ini sekali
lagi sangat di perlukan. Dengan algoritma yang baik kita dapat menghasilkan
program yang efisien dari segi waktu dan hasil yang ingin di capai. Sebagai
contoh sederhana, di umpamakan ada dua computer dengan sepesifikasi yang
berbeda. Computer A dapat mengeksekusi 1 milyar perdetik. Sementara computer B
dapat mengeksekusi 10juta instruksi per
detik. Kedua computer tersebut digunakan untuk mengurutkan 10juta angka dengan
algoritma yang berbeda. Computer A menggunakan algoritma insertion sort dengan kemamuan 2N kuadrat untuk mengurutkan
data N ,sedangjan computer B menggunakan algoritma merge sort yang kemampuan
untuk mengurutkan datanya 50N . maka untuk mengurutkan 10 juta angka computer A
akan memerlukan waktu :
2(107)2
instruksi / 109 instruksi per detik = 200.000 detik
Sementara computer
B memerlukan waktu :
50.107.log7
instruksi/107 instruksi = 350 detik.
Dari perhitungan di atas dapat di ketahui bahwa computer B
dapat mengurutkan angka lebih cepat dari computer A. meskipun memilliki
komputasi yang lebih tinggi , namun jika menggunakan algoritma yang kurang
efisien, (dalam hal ini di bandingkan dengan merge sort) computer A akan
membbutuhkan waktu lebih lama. Jadi kata kunci di sini adalah bahwa untuk
memecahkan sebuah masalahdi perlkan sebuah algoritma yang efektif dan efisien
sehingga persoalan komputasi serta terbatasnya alokasi memori dapat diatasi.
berikut adalah beberapa hal yang perlu di perhatikan untuk
merancang sebuah algoritma:
- Teks algoritma berisi
langkah-langkah penyelesaian
masalah. Deskripsi tersebut seharusnya di tullis dalam sebuah algoritma
yang mudah di pahami.
- Notasi yang di buat yang di buat
dalam penulisan algoritma berbeda
dengan notasi pada bahasa pemrograman. Setiap algoritma biasanya di tulis
dalam bentuk pseudocode.
- Walaupun notasinya berbeda dengan
bentuk pemrograman asli, pseudocode yang di buat haruslah mempunyai
kemiripan dengan bahasa pemrograman umum (seperti penggunaan while dan for
pada bahasa pemrograman).
- Notasi algoritmik bukan notasi
bahasa pemrograman. Oleh karena itu notasi pada pseudocode tidak dapat di
jalankan oleh computer. Agar dapat di jalankan oleh computer, pseudocode
dalam bahasa algoritmik harus di terjemahkan ke dalam notasi bahasa
pemrograman yang di pilih.
- Algoritma merupakan hasil
pemikiran konseptual, supaya dapat dilaksanakan oleh computer, algoritma
harus di translasikan ke dalam bahsa pemrograman. Ada beberapa hal yang
harus di perhaitan dalam translasi tersebut, yaitu pendeklarasian variable
dan pemilihan tipe data, pemakaina instrksi-instruksi, aturan sintaksis,
tampilan hasil, cara pengoperasian interpreter atau compiler.
- Pendeklarasian variable dan tipe
data
Pemillihan
variable dan tipe data merupakan hal penting ketika mengaplikasian sebuah
algoritma ke dalam bahasa pemrograman karena akan berkaitan dengan ke akuratan
sebuah hasil perhitungan dalam sebuah algoritma.
- Pemakaian instruksi-instruksi
Beberapa instruksi
mempunyai kegunaan yang sama, tatapi masing-masing memiliki kelebihan dan
kekurangan yang berbeda.
- Aturan siintaksis
Pada saat
menuliskan program, ketika terikat dengan urutan sintaksis dalam bahasa
pemrograman yang akan di gunakan.
- Tampilan hasil
Pada saat membuat
algoritma, kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal
teknis ini di perhatikan ketika ia mengonversikannya menjadi program.
- Cara pengoperasian compiler dan
interpreter
Bahasa pemrograman
yang di gunakan termasuk kelompok compiler atau interpreter.
No comments:
Post a Comment