Tuesday, March 14, 2017

ALGORITMA DAN PEMOGRAMAN



A.    Asal Usul Algoritma
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. Alkhuwarizmi dibaca orang barat menjadi algorism. Al-Khuwarizmi menulis buku berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku Pemugaran dan Pengurangan” (The Book Restoration and Reduction). Dari buku itu memperoleh kata Aljabar (Algebra) biasa disebut Arithmetic, dalam bahasa indonesia diserap menjadi Algoritma.

B.     Definisi Algoritma
·         Prosedur :
Himpunan hingga instruksi, yg bersifat diskrit dan jelas, serta dapat dijalankan secara mekanik. Secara mekanik maksudnya dapat dibuat program komputer.
·         Semi- Algoritma :
Adalah prosedur yang mampu menghasilkan pemecahan atau solusi masalah, bila solusi memang ada, dan kemudian berhenti.
·         Algoritma :
Semi algoritma yang mampu mendeteksi tidak adanya solusi, bila solusi memang tidak ada, dan mampu untuk berhenti, suatu susunan langkah-langkah instruksi untuk menyelesaikan masalah.

Dari definisi diatas bisa diambil kesimpulan bahwa :
“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.

Sedangkan Pemrograman
Segala kegiatan  pembuatan program komputer. Bahasa pemrograman  yang berarti bahasa yang digunakan dalam pembuatan program komputer.
Definisi Pemrograman : Adalah kumpulan instruksi-instruksi tersendiri biasanya disebut source code yang dibuat oleh programmer (pembuat program).

Struktur Dasar Dari Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:
·         Struktur Runtunan, Digunakan untuk program yang pernyataannya sequential atau urutan.
·         Struktur Pemilihan, Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.
·         Struktur Perulangan, Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.

Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun.

C.    KRITERIA ALGORITMA
Terdapat 5 (lima) kriteria untuk algoritma dapat dikatakan baik (knuth), yaitu meliputi:
  • Masukan(input)
tanpa ada input maka proses dalam algoritma tidak akan jalan, artinya sebuah algoritma harus memiliki data untuk sebuah proses sebagai masukan.
  • Keluaran (Output)
ditinjau dari pengertian algoritma di atas maka sebuah algoritma harus memiliki minimal keluaran sebagai tujuan, tanpa ada keluaran yang pasti tujuan dari algoritma tidak bisa dicapai untuk digunakan sebagai solusi permasalahan.
  • Batasan
karena orientasi algoritma pada tujuan maka harus ada batasan dalam mencari solusi, jika hal ini diabaikan maka algoritma akan berpeluang untuk tidak mencapai pada tujuan berupa keluaran yang diinginkan. Untuk algoritma terbuka artinya tanpa adanya batasan maka akan tampak berupa algoritma yang tidak logis dan tidak sistematis serta sulit untuk dimengerti.
  • Arah
algoritma harus memiliki kejelasan arah guna mencapai tujuan yang diinginkan, arah dari sebuah algoritma harus diawali dan harus diakhiri, memiliki kejelasan logika dan tahapan sekuensial sehingga didapatkan sebuah hasil berupa keluaran algoritma terkait dengan tujuan.
  • Efisiensi
algoritma harus memiliki efisiensi yang tinggi, artinya tidak merupakan penyelesaian yang abstrak (imajiner) atau bukan angan-angan tetapi lebih merupakan solusi riil guna menyelesaikan suatu masalah. Disini mengandung pengertian untuk tidak melakukan hal-hal yang tidak perlu atau cara memutar-mutar tanpa mengarah pada keluaran sebagai tujuan yang diharapkan.

D.    PENULISAN ALGORITMA
Untuk menyajikan Algoritma terdapat kesepakatan dalam bidang pemrograman peralatan elektronik, yaitu dapat dinyatakan dalam bentuk:
Menggunakan bahasa natural dalam bentuk narasi seperti contoh di atas.
Menggunakan diagram alir (flow chart)

Adapun cara penyajian algoritma, adalah sebagai berikut:

  • Penulisan Algoritma Menggunakan Bahasa Natural
Untuk penyajian algoritma menggunakan bahasa natural dalam bentuk narasi, dan sebagai contoh penulisannya dapat dilihat pada contoh permasalahan di atas.
  • Diagram Alir (Flow Chart)
Flowchart adalah algoritma penyelesaian suatu masalah yang diwujudkan dalam bentuk penggambaran bagan, dimana dalam bagan tersebut memiliki kandungan aliran data yang lebih menggambarkan langkah-langkah penyelesaian suatu masalah. Terdapat 2(dua) penggambaran Flowchart yaitu System Flowchart dan Program Flowchart.
Flowchart dapat digunakan untuk menggambarkan perilaku suatu algoritma (dengan menggunakan gambar-gambar atau tanda-tanda yang sesuai) Bila suatu flowchart lengkap telah selesai dikerjakan, gambaran lengkap tentang proses pemikiran seorang programmer dalam memecahkan suatu masalah dapatlah diikuti. Peranan flowchart sangat penting terutama pada pemeriksaan program. Flowchart yang merupakan bagian penting dalam suatu program yang telah selesai juga dapat membantu orang lain dalam memahami algoritma yang tepat yang dibuat programmer.
Ada dua jenis flowchart, yaitu:
  • Flowchart sistem : menunjukkan jalannya program secara umum.
  • Flowchart terperinci : rincian (detail) yang dibutuhkan programer.

Biasanya suatu program yang rumit didahului dengan flowchart sistem, lalu dilengkapi pula dengan. flowchart terperinci. Keuntungan dari flowchart ialah dapat menunjukkan urutan langkah-langkah dengan menggunakan simbol anak panah.

  1. Flowchart Sistem
Digunakan untuk menggambarkan aliran data atau informasi secara garis besarnya yang melewati suatu tahapan proses dalam sebuah sistem dengan menunjukkan media yang digunakan dalam sistem. Seperti media input, output maupun media penyimpanan dalam proses pengolahan data.
Adapun simbol yang digunakan meliputi:
Gambar 1. Simbol flowchart sistem

2. Flowchart Program
Digunakan untuk menggambarkan aliran data atau informasi secara rinci yang melewati suatu tahapan proses dengan menunjukkan tahapan penyelesaian permasalahan untuk mendapatkan hasil sesuai tujuan yang diharapkan.
Adapun simbol yang digunakan adalah sebagai berikut:
Gambar 2. Simbol Flowchart Umum

Sebuah flowchart minimal umumnya terdiiri dari simbol mulai yang menggambarkan bahwa sebuah algoritma dimulai, dilanjutkan dengan masukan data, selanjutnya data diproses kemudian hasil proses dikeluarkan dan diakhiri dengan simbol akhir dari aliran program.
Gambar 3 adalah contoh flowchart sederhana penyelesaian bertahap untuk menghitung luas sebuah bangun segi empat, dimana bangun tersebut memiki panjang = p dan lebar = l, dimana luas = p x l :
Menghitung luas bangun ternyata tidak hanya sebuah bangun yang bisa dilakukan dalam program, dengan menambahkan menu pilihan ternyata dapat dipilih untuk menghitung beberapa luas bangun dari bidang tertentu.
Jika sebuah algoritma membutuhkan alternatip pilihan maka dibutuhkan simbol percabangan, sebagai contoh sebuah sistem program harus melakukan layanan perhitungan luas bangun segi empat, luas bangun segi tiga dan luas bangun lingkaran.

Gambar 3. Flowchart Sederhana (menghitung luas)
Dengan demikian maka terdapat pilihan alternatip (gambar 4), jika dipilih 1 maka digunakan untuk menghitung luas bidang segi empat, untuk pilihan 2 digunakan menghitung luas bangun segi tiga dan untuk pilihan 3 digunakan untuk menghitung luas bangun lingkaran, maka flowchart-nya dapat digambarkan sebagai berikut:
Gambar 4 Simbol Flowchart Program Pilihan
Aliran program dimulai, kemudian memberi kesempatan pada user untuk memberikan masukan berupa angka 1 atau angka 2 atau angka 3, jika angka tersebut adalah 1 maka akan diteruskan pada proses menghitung luas bangun segi empat.
Jika ternyata angka yang diberikan adalah 2 maka akan diteruskan pada proses menghitung luas bangun segi tiga, dan juika ternyata angka yang diberikan adalah 3 maka akan diteruskan pada proses menghitung luas bangun lingkaran.
Suatu saat dibutuhkan sebuah algoritma untuk menggambarkan suatu proses yang berulang, misal pada suatu program dibutuhkan sebuah rutin yang berfungsi sebagai penghitung (counter). Untuk itu flowchartnya dapat digambarkan sebagai berikut:

Gambar 5. Flowchart Untuk Proses Diulang

Dalam membuat algoritma untuk pemrograman mikroprosesor dalam bahasa asembler biasanya notasi yang digunakan dalam flowchart menggunakan kode-kode, berikut contoh flowchart dengan notasi kode:

Gambar 6. Flowchart Dengan Notasi Kode Program.

Sumber Referensi :