Minggu, 21 Februari 2010

KOMPUTER DAN ALGORITMA

0 komentar
Untuk membuat komputer melakukan sesuatu, anda perlu untuk menulis program komputer. Dalam menulis suatu program komputer, kita perlu memberitahukan kepada komputer, langkah-langkah persis apa yang harus ia lakukan. Ketika komputer
menjalankan program tersebut, ia akan melakukan setiap langkah secara mesin untuk mencapai tujuan akhir.

Ketika anda memberitahu kepada komputer apa yang harus dilakukan, anda perlu memilih bagaimana hal tersebut dilakukan. Dari sinilah Algoritma Komputer muncul. Algoritma adalah teknik dasar untuk menyelesaikan suatu pekerjaan. Perhatikan contoh berikut untuk membantu pengertian anda tentang konsep dari algoritma.

Katakanlah misalnya anda mempunyai teman yang baru tiba di airport, dan teman anda ingin berangkat dari airport ke rumah anda. Berikut ini adalah empat algoritma yang berbeda yang mungkin dilakukan teman anda:

Algoritma taxi:
Pergi ke pemberhentian taxi.
Masuk ke taxi.
Berikan alamat rumah anda.

Algoritma Telepon untuk dijemput:
Ketempat pemberhentian, telepon ke handphone anda.
Menunggu saja ditempat pengambilan bagasi.

Algoritma Bus:
Keluar dari tempat pengambilan bagasi, naik bus nomor 70.
Turun dan naik bus nomor 14 pada jalan utama.
Turun di jalan pada jalan AB.
Jalan kaki dua blok arah utara ke rumah anda.

Ketiga algoritma diatas memiliki tujuan yang sama, tetapi masing-masing melakukannya dengan cara yang berbeda. Masing-masing algoritma diatas juga menghabiskan waktu dan biaya yang berbeda. Naik taxi, adalah contoh yang paling cepat, tetapi paling mahal. Naik bus mungkin adalah paling hemat, tetapi lambat. Tentu saja anda perlu memilih algortima sesuai dengan situasi dan kondisi.

Dalam pemrograman komputer, juga terdapat banyak cara algoritma yang berbeda. Masing-masing algoritma memiliki keuntungan dan kerugian untuk situasi yang berbeda.

Catatan :
Kata algoritma (algorithm) berasal dari nama matematikawan Persia pada abad 9 Abu Abdullah Muhammad bin Musa al-Khwarizmi. Kata aslinya algorism mengacu pada aturan dari melakukan aritmetika menggunakan bilangan Arab dan berkembang menjadi algoritma pada abad 18. Kata ini sekarang berevolusi untuk mencantumkan semua prosedur-prosedur khusus untuk memecahkan masalah atau mengerjakan tugas
Kasus pertama dari algoritma yang ditulis untuk komputer adalah catatan Ada Byron's notes pada analytical engine yang ditulis pada tahun 1842, yang mana diyakini banyak orang sebagai programmer pertama didunia. Bagaimanapun, sejak Charles Babbage tidak pernah menyelesaikan analytical engine-nya, dan algoritma tersebut tidak pernah diimplementasi padanya.

Tahapan Pengembangan Program

Permasalahan dalam pembuatan program yang besar tentu saja berbeda dengan program yang kecil, pada program yang kecil umumnya dikembangkan untuk sekali pakai dan meliputi suatu detail yang kecil, sedangkan program yang besar umumnya dikembangkan atas permintaan dan dipakai oleh orang lain. Oleh karena itu program tersebut harus ditulis dengan lebih hati-hati untuk mencegah segala bentuk pemakaian yang menyimpang, serta harus disertai dengan dokumentasi dan petunjuk pemakaian.

Hal lain yang harus dinyakini adalah keterbatasan memori manusia, kebanyakan orang dengan mudah dapat memahami program dibawah 10 baris dalam beberapa detik, dan mereka tetap dapat mengingatnya pada saat perubahan dibutuhkan. Pada program yang besar, programmer harus memiliki semua informasi yang tertulis untuk memahami atau mengubah program.

Oleh karena itu, penulisan program yang besar adalah tidak mudah, bahkan untuk
programmer yang profesional. Kita sering mendengar bahwa berbagai program besar
memiliki banyak bug maupun menyebabkan crash ketika dioperasikan pada kondisi
tertentu dan beberapa lama setelah dijalankan.

Adalah tidak mungkin untuk menghasilkan program yang bebas dari kesalahan, kita sering tidak mengetahui dengan persis. Tetapi banyak cara yang dapat kita lakukan untuk menghasilkan program dengan bug yang lebih sedikit. Salah satunya adalah memahami langkah-langkah pengembangan suatu program yang besar, langkah-langkah ini dikenal sebagai Software Development Life Cycle.

Pemrograman dalam pengertian luas meliputi seluruh kegiatan yang tercakup dalam
Pembuatann program, termasuk analisis kebutuhan (requirement's analysis) dan keseluruhan tahapan dalam perencanaan (planning), perancangan (design) dan pewujudannya (implementation). Dalam pengertian yang lebih sempit, pemrograman merupakan pengkodean (coding atau program writing = penulisan program) danpengujiannya (testing) berdasarkan rancangan tertentu. Pemahaman yang lebih sempit ini sering digunakan dalam pembuatan program-program terapan komersial yang membedakan antara system analyst yang bertanggung jawab dalam menganalisa kebutuhan, perencanaan dan perancangan program dengan pemrogram (programmer) yang bertugas membuat kode program dan menguji kebenaran program.

Aturan Penulisan Logaritma
Tidak ada notasi yang baku dalam penulisan teks algoritma. Algoritma bukanlah program yang harus mengikuti aturan-aturan tertentu. Meski demikian, algoritma dituliskan mendekati gaya bahasa pemrograman umumnya. Misal, tulis nilai X dan Y, dituliskan dalam algoritma sebagai write(X,Y). Perhatikan dalam notasi write(X,Y) ini hanya memerintahkan penyajian nilai X ke piranti keluaran (output). Dalam notasi itu juga tidak memasalahkan format ataupun bentuk-bentuk tampilan lainnya, seperti dicetak dalam satu baris X dan Y, pemakaian pemisah antara X dan Y menggunakan koma atau spasi. Hal-hal yang bersifat teknis ini baru dipikirkan waktu penulisan program. Algoritma adalah bebas bahasa pemrograman.

Teks Algoritma

Mengikuti alur konsep pemrograman prosedural, suatu teks algoritma disusun dalam tiga bagian, yaitu:

1. Bagian kepala algoritma,
2. Bagian deklarasi, dan
3. Bagian deskripsi algoritma.

Setiap bagian disertai dengan penjelasan atau dokumentasi tentang maksud pembuatan teks. Bagian penjelasan diawali dan diakhiri dengan simbol { dan }.
Algoritma NAMA_ALGORITMA { Penjelasan tentang algoritma yang menguraikan secara singkat hal-hal yang dilakukan oleh algoritma }
DEKLARASI { Semua nama yang digunakan, meliputi nama-nama: tipe, konstanta, variabel. Juga nama sub-program dinyatakan di sini }
DESKRIPSI { Semua langkah atau aksi algoritma dituliskan di sini }

Contoh:

1). Kepala algoritma: Algoritma Luas_Lingkaran { Menghitung luas lingkaran dengan ukuran jejari tertentu. Algoritma menerima masukan jejari lingkaran, menghitung luasnya, dan menyajikan hasilnya ke piranti keluaran } Perhatian, dalam menulis nama-nama dalam algoritma harus mempunyai makna yang mencerminkan proses, sifat atau identitas lainnya yang melekat dengan suatu proses, tipe, konstanta, variabel, sub-program dan lain- lainnya. Nama-nama yang bermakna disebut mnemonic.

2) Deklarasi algoritma:
DEKLARASI { nama konstanta }
const PHI = 3.14; { Nilai phi = 22/7 }
{ nama peubah } var R : real; { input jejari lingkaran bilangan riil }
l_Lingkaran : real; { luas lingkaran bilangan riil }
{ nama sub program }
procedure TUKAR(input/output A:integer, input/output B:integer)
{ Mempertukankan nilai A dan B.Parameter A dan B sudah terdefinisi nilainya. Setelah pertukaran, A berisi nilai B dan B berisi nilai A }

3)Deskripsi algoritma: Bagian ini merupakan bagian inti algoritma yang berisikan uraian langkah-langkah penyelesaian suatu masalah. Setiap langkah algoritma dibaca dari atas ke bawah. Urutan penulisan menentukan urutan pelaksanaan perintah. { Baca data jejari lingkaran R.Jika R <= 0 tulis pesan data salah, selain itu hitung luas ingkaran. Tampilkan luas lingkaran. }

baca(R);
jika R <= 0 then tulis("Data salah !")
selain itu l_Lingkaran = PHI x R x R;
tulis(l_Lingkaran);

Flowchart

Flowchart adalah alat untuk menganalisa proses. Hal tersebut memungkinkan anda untuk memecah proses menjadi kejadian-kejadian individual atau aktifitas untuk menunjukan secara singkat hubungan diantaranya. Konstruksi flowchart memungkinkan pengertian yang lebih baik kepada proses, dan pengertian yang lebih baik terhadap proses akan membawa kepada perbaikan dan pengembangan.

Berbagai jenis flowchart telah dikembangkan pada berbagai bidang seperti pada sistem produksi, maupun pada sistem design dan pemrograman.

REFERENSI : kuliah.stikom-bali.ac.id/410207/ModulAlgo&struk_Cpp_.pdf,
www.indowebster.com/Pengantar_Algoritma_Pemrograman_Komputer.html,
usupress.usu.ac.id/files/Algoritma%20dan%20Pemrograman;...Final.pdf,
ugpedia.gunadarma.ac.id/pdf.php?cat=18&id=245&lang=id.
 
footer