Sunday, 14 August 2016

Algoritma sebagai sebuah teknologi


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:

  1. Teks algoritma berisi langkah-langkah  penyelesaian masalah. Deskripsi tersebut seharusnya di tullis dalam sebuah algoritma yang mudah di pahami.

  1. Notasi yang di buat yang di buat dalam  penulisan algoritma berbeda dengan notasi pada bahasa pemrograman. Setiap algoritma biasanya di tulis dalam bentuk pseudocode.

  1. 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).

  1. 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.

  1. 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.

  1. 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.

  1. Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama, tatapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.

  1. Aturan siintaksis
Pada saat menuliskan program, ketika terikat dengan urutan sintaksis dalam bahasa pemrograman yang akan di gunakan.

  1. 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.

  1. Cara pengoperasian compiler dan interpreter
Bahasa pemrograman yang di gunakan termasuk kelompok compiler atau interpreter.

No comments:

Post a Comment