Jumat, 18 Maret 2011

NOTASI ALGORITMA


Meskipun pada postingan terdahulu algoritma hanyalah bagian dari 7 langkah dalam pembuatan program, namun ia memiliki posisi yang teramat penting. Algoritma adalah urutan langkah berhingga untuk memecahkan masalah logika atau matematika. Dalam kehidupan sehari-hari sebenarnya kita juga menggunakan algoritma untuk melakukan sesuatu. Sebagai contoh untuk menulis surat diperlukan langkah-langkah sebagai berikut :
  1. Mempersiapkan kertas dan amplop
  2. Mempersiapkan alat tulis
  3. Mulai menulis
  4. Memasukkan kertas ke dalam amplop
  5. Pergi ke kantor pos untuk mengeposkan surat tersebut.
Langkah-langkah dari nomor 1 sampai dengan nomor 5 di atas itulah yang disebut dengan algoritma. Jadi sebenarnya kita menggunakan algoritma baik dengan sadar maupun tanpa kita sadar.
Sebelum mebahas lebih jauh, mari terlebih dahulu kita pahami pengertian-pengertian dan konsep dasar seperti di bawah ini:
Algoritma : urutan langkah-langkah atau instruksi-instruksi yang harus dilaksanakan untuk memecahkan masalah.
Flowchart : (Diagram alur) adalah urutan instruksi-instruksi program yang digambarkan dalam bentuk suatu diagram.
Program : sederetan instruksi atau perintah (dalam bahasa yang di mengerti oleh komputer)     untuk melaksanakan tugas-tugas tertentu, sehingga menghasilkan suatu keluaran/output yang diharapkan.
Bahasa pemrograman : program yang berisikan instruksi-instruksi yang dimengerti oleh komputer. Ada 2 klasifikasi dalam bahasa pemrograman, yaitu;
  1. Low level language/bahasa tingkat rendah yang berorientasi pada mesin, contohnya: bahasa mesin/machine language dan bahasa rakitan/assembly language.
  2. High level language/bahasa tingkat tinggi adalah bahasa pemrograman yang berorientasi pada manusia. Contohnya : BASIC, PASCAL, COBOL, FORTRAN, C.
Sebuah algoritma merupakan deskripsi pelaksanaan suatu proses, dimana algoritma disusun oleh sederetan langkah instruksi yang logis.
Kata logis merupakan kata kunci dalam sebuah algoritma. Langkah-langkah di dalam algoritma harus logis, ini berarti hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.

Sebagai contoh, tinjau persoalan mempertukarkan isi dua bejana, A dan B. Bejana A berisi larutan yang berwarna merah, sedangkan bejana B berisi air berwarna biru. Kita ingin mempertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah. Untuk mempertukarkan isi dua bejana, kita memerlukan sebuah bejana tambahan yang diperlukan sebagai tempat penampungan sementara. Sebut bejana tambahan tersebut bejana C. Dengan menggunakan bejana bantu C ini, algoritma mempertukarkan isi dua buah bejana yang benar adalah sebagai berikut ini:
Deskripsi Algoritma Tukar Isi Bejana:
  1. Tuangkan larutan dari bejana A ke dalam bejana C.
  2. Tuangkan larutan dari bejana B ke dalam bejana A.
  3. Tuangkan larutan dari bejana C ke dalam bejana B.
Dengan cara tersebut maka bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.
Oke…seteleh deskripsi tersebut mari kita langsung masuk ke materinya…..
Seperti disebutkan diatas, bahwa algoritma adalah urutan langkah-langkah atau instruksi-instruksi yang harus dilaksanakan untuk memecahkan masalah. Algoritma ini dituliskan dalam sebuah notasi yang disebut Notasi Algoritma. Notasi algoritma merupakan hal dasar yang harus diketahui oleh setiap orang yang ingin membuat suatu pogram, karena dalam notasi algoritma inilah terdapat kerangka-kerangka suatu program. Ciri notasi algoritma yang baik yaitu dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti. Meskipun demikian untuk menghindari kekeliriuan, ketaatan terhadap notasi perlu diperhatikan. Di bawah ini ada 3 notasi yang umum digunakan dalam penulisan algoritma, yaitu :
  1. Notasi Alami
  2. Flowchart/Diagram Alur
  3. Pseudo-Code (seperti kode)
1. NOTASI ALAMI
Penulisan algoritma dengan notasi alami adalah dengan cara menuliskan instruksi-instuksi yang harus dilaksanakan untuk memecahkan masalah dalam bentuk untaian kalimat deskriptif.
Dengan notasi bergaya kalimat ini, deskripsi setiap langkah dijelaskan dengan bahasa yang gamblang. Proses diawali dengan kata kerja seperti ‘baca’, ‘hitung’, ‘bagi’, ‘ganti’, dan sebagainya, sedangkan pernyataan kondisional dinyatakan dengan ‘jika…maka…’. Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman cenderung relative sukar.
2. FLOWCHART / DIAGRAM ALUR
Ada 2 jenis Flowchart :
1. flowchart sistem, adalah suatu gambar yang menjelaskan :
-          file-file yang diproses oleh program
-          jenis piranti yang digunakan oleh file
-          operasi terhadap file (masukan ataupun keluaran).
2. flowchart program (biasa disebut flowchart saja), adalah suatu gambar yang menjelaskan   urutan :
-          Pembacaan data
-          Pemrosesan data
-          Pengambilan keputusan terhadap data
-          Penyajian hasil pemrosesan data
Nah….yang kita bahas disini adalah flowchart program atau biasa disebut flowchart saja.
Flowchart/Diagram Alur popular pada awal-awal era pemrograman dengan komputer  (terutama dengan bahasa Basic, Fortran, dan Cobol). Diagram alur lebih menggambarkan aliran instruksi di dalam program secara visual dibanding memperlihatkan struktur program. Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif sukar.
Simbol-simbol pada flowchart
Untuk mulai/akhir:
terminatorSimbol ini dinamakan terminator, digunakan untuk menyatakan MULAI (START) dan SELESAI (END) suatu algoritma.
Untuk input:
manualinputManual input merupakan KOTAK MASUKAN yang digunakan untuk membaca data yang diberikan oleh usernya. Jadi user mengimput suatu harga/variable/nilai.
dataData merupakan KOTAK DATA yang digunakan untuk membaca dan menampilkan data. Contoh aplikasinya yaitu jika kita ingin kita ingin mengetahui saldo tabungan kita pada mesin ATM, ATM hanya tinggal membaca data yang ada.
Untuk proses:
prosesProses merupakan KOTAK PENUGASAN untuk melakukan perhitungan matematika yang hasilnya diberikan sebagai suatu variable.
decisionDecision merupakan KOTAK KEPUTUSAN untuk memutuskan arah atau percabangan yang diambil sesuai dengan kondisi yang saat itu terjadi. Hanya ada 2 keputusan yaitu BENAR atau SALAH.
Untuk output:
dataKotak ini selain untuk input, digunakan juga untuk output. Digunakan untuk menampilkan data.
dokumenDokumen merupakan KOTAK KELUARAN untuk menampilkan / mencetak / menyimpan hasil(keluaran).
Simbol-simbol lain yang digunakan antara lain:
panahSimbol Aliran Panah.
connectoorConnector merupakan SIMBOL PENGHUBUNG, untuk penghubung bila diagram alur terputus tapi masih dalam halaman yang sama.
offpageconnectorOff-page connector merupakan SIMBOL PENGHUBUNG, untuk penghubung bila diagram alur terputus disebabkan misalnya oleh pergantian halaman (tak cukup digambar 1 halaman).
3. PSEUDO-CODE
Pseudo-code adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi, khususnya Pascal dan C. Bahasa pemrograman umumnya mempunyai notasi yang hampir mirip untuk beberapa instruksi seperti notasi if-then-else, while-do, repeat-until, read, write, dan sebagainya. Namun tidak seperti bahasa pemrograman yang direpotkan dengan tanda titik koma, indeks, format keluaran, kata-kata khusus, dan sebagainya, sembarang versi Pseudo-code dapat diterima asalakan perintahnya tidak membingungkan pembaca. Keuntungan menggunakan notasi Pseudo-code adalah kemudahan mentranslasi ke notasi bahasa pemrograman, karena terdapat korespodensi antara setiap Pseudo-code dengan notasi bahasa pemrograman. Sehingga Pseudo-code cocok untuk algoritma yang rumit.
CONTOH KASUS
Buatlah algoritma untuk menghitung luas persegi panjang dengan ketiga notasi algoritma diatas?
Jawab.
1. Notasi Alami
- Dapatkan nilai panjang
- Dapatkan nilai lebar
- Kalikan nilai panjang dengan nilai lebar dan berikan nilainya kehasil
- Tampilkan nilai hasil
2. Flowchart
flowchart
3. Pseudo-code
p, l, ls : numeric
begin
read (p, l)
ls : p x l
print (ls)
end.

Related Posts Plugin for WordPress, Blogger...