Algoritma dan Struktur Data

Daftar Pustaka
  • Antony Pranata, Algoritma dan Pemrograman, Graha Ilmu, Yogyakarta.
  • Jogiyanto HM, Turbo Pascal, Andi Offset, Yogyakarta.
  • Rinaldi Munir, Algoritma dan Pemrograman dengan Pascal dan C, Informatika, Bandung.
Komputer sebagai alat bantu untuk menyelesaikan masalah.
Dalam menyelesaian masalah dengan komputer perlu merumuskan langkah-langkah penyelesaian masalah dengan sekumpulan instruksi.
Sekumpulan instruksi yang dimengerti oleh komputer disebut dengan program.

Bahasa Pemrograman
Program harus ditulis dalam suatu bahasa yang dimengerti oleh komputer yaitu dalam Bahasa pemrograman , dibedakan menjadi :
a. Bahasa tingkat rendah (low level language) :
Bahasa yang berorientasi ke mesin.
b. Bahasa tingkat tinggi (high level language) :
bahasa yang berorientasi ke manusia (seperti bahasa inggris)
contoh : Bahasa Pascal, bahasa C dll.
Program yang ditulis dalam bahasa pemrograman akan diterjemahkan kedalam bahasa mesin dengan menggunakan penterjemah.
Penterjemah :
Interpreter : menterjemahkan baris per baris instruksi. Contoh bahasa Basic.
Compiler : menterjamahkan setelah seluruh instruksi ditulis. Contoh bahasa Pascal, C, Ada ,C++

Algoritma
Definisi Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
Berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-huwarizmi.
Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction).

Notasi Algoritma
Notasi algoritma bukan merupakan notasi bahasa pemrograman. Namun notasi ini dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Penotasian algoritma harus dilakukan sedemikian hingga mudah dibaca dan dimengerti. Meskipun notasi algoritma tidak berbentuk baku seperti notasi bahasa pemrograman, namun konsistensi terhadap notasi perlu diperhatikan untuk menghindari terjadinya kekeliruan.
Bentuk notasi algoritma :
  • Uraian deskriptif
  • Diagram-alir (flowchart)
  • Pseudocode
Uraian Deskriptif
Dengan notasi bergaya uraian, deskripsi setiap langkah dijelaskan dengan bahasa yang gamblang. Proses diawali dengan kata kerja seperti ‘baca’ atau ‘membaca’, ’hitung’ atau ‘menghitung’, ‘bagi’ atau ‘membagi’, ‘ganti’ atau ‘mengganti’, dan sebagainya, sedangkan pernyataan kondisional dinyatakan dengan ‘jika ... maka ...’.
Contoh : menyelesaikan permasalahan menghitung luas dan keliling suatu lingkaran
Algoritma Hitung_Luas_dan_Keliling_Lingkaran
DESKRIPSI:
  1. Masukkan jari-jari lingkaran (r)
  2. Hitung luas lingkaran dengan rumus L = phi * r * r
  3. Hitung keliling lingkaran dengan rumus K = 2 * phi * r
  4. Tampilkan luas lingkaran
  5. Tampilkan keliling lingkaran
Diagram Alir (Flowchart)
Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan arah alur program tersebut.
Contoh: menghitung luas dan keliling lingkaran yang algoritmanya dinotasikan dalam bentuk diagram alir.


Pseudocode
Notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi, khususnya Bahasa Pascal dan C.
Umumnya mempunyai notasi yang hampir mirip untuk beberapa instruksi dalam beberapa bahasa pemrograman, seperti notasi if-then-else, while-do, repeat-until, read, write, dan sebagainya.
Contoh menyelesaikan permasalahan menghitung luas dan keliling suatu lingkaran dengan menggunakan bentuk pseudocode :
Algoritma Hitung_Luas_dan_Keliling_Lingkaran
{ Dimasukkan nilai jari-jari lingkaran (r). Carilah dan cetak luas dan keliling lingkaran tersebut dengan menggunakan rumus L=phi*r*r dan K=2*phi*r }
DEKLARASI:
const phi = 3.14
r, L, K = real
DESKRIPSI:
read(r)
L <--  phi * r * r
K <--  2 * phi * r
write(‘Luas lingkaran = ‘,L)
write(‘Keliling lingkaran = ‘,K)

Ciri Penting Algoritma
  • Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
  • Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).
  • Algoritma memiliki nol atau lebih masukkan.
  • Algoritma memiliki nol atau lebih keluaran.
  • Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).

Posting Komentar