Apa Itu Algoritma ? - Definisi Algoritma

Berikut ini ada beberapa Definisi dari algoritma dan pemograman terstruktur yang saya himpun dari materi perkuliahan saya. untuk mendokumentasikannya , maka kali ini akan saya tulis di blog saya yang unyu-unyu ini, monggo di simak untuk contekkan :v :
 

1. Konsep Algoritma
    Algoritma berasal dari kata algoris dan ritmis yang pertama kali diungkapkan oleh Abu Ja’far Mohammad Ibn Musa Al Khowarizmi (825M) dalam buku Al-Jabr Wa-al Muqobla. Dalam pemrograman algortima berarti suatu metode khusus yang tepat dan terdiri dari serangkaian langkah-langkah yang terstruktur dan dituliskan secara sistematis yang akan dikerjakan untuk menyelesaikan masalah dengan bantuan komputer.
Secara sederhanya algoritma dapat didefinisikan urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
Kata logis berarti bahwa nilai kebenarannya harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.
Contoh :
Misalkan terdapat dua buah gelas, gelas A dan gelas B. Gelas A berisi air berwarna merah dan gelas B berisi air berwarna biru, kita ingin menukartan isi air kedua gelas tersebut, sehingga gelas A berisi air berwarna biru dan gelas B berisi air berwarna merah.

Algoritma Tukar_Isi_Gelas
1. Tuangkan air dari gelas A ke gelas B
2. Tuangkan air dari gelas B ke gelas A




 Algoritma diatas tidak menghasilkan pertukaran yang benar, langkah-langkahnya tidak logis, karena yang terjadi bukan pertukaran tetapi percampuran antara air di gelas A dengan air di gelas B. Sehingga algoritma Tukar_Isi_Gelas diatas salah.
Dari permasalahan diatas algoritma yang benar adalah bahwa untuk menukarkan isi air pada gelas A dengan isi air pada gelas B maka dibutuhkan sebuah gelas bantuan yang dipakai untuk menampung salah satu air dalam gelas tersebut misalkan gelas C. Sehingga algoritma yang benar dari permasalah diatas adalah :

Algoritma Tukar_Isi_Gelas
1. Tuangkan air dari gelas A ke gelas C
2. Tuangkan air dari gelas B ke gelas A
3. Tuangkan air dari gelas C ke gelas B


Keadaan awal sebelum pertukaran

        A               B                         C
Proses pertukaran :
1. Tuangkan air dari gelas A ke gelas C

     A                    B                    C
2. Tuangkan air dari gelas B ke gelas A

      A                   B                   C
3. Tuangkan air dari gelas C ke gelas B

     A               B                    C
Keadaan setelah pertukaran








Sekarang algoritma Tukar_Isi_Gelas diatas sudah diperbaiki, sehingga isi air pada
gelas A dan isi air pada gelas B dapat dipertukarkan dengan benar.
Hubungan antara algoritma, masalah dan solusi dapat digambarkan sebagai
berikut :

 Tahap pemecahan masalah adalah Proses dari masalah hingga terbentuk suatu
algoritma. Tahap implementasi adalah proses penerapan algoritma hingga
menghasilkan solusi. Solusi yang dimaksud adalah suatu program yang
merupakan implementasi dari algoritma yang disusun.
Ciri algoritma yang baik adalah :
a. Algoritma memiliki logika perhitungan atau metode yang tepat dalam
menyelesaikan masalah.
 b. Menghasilkan output yang tepat dan benar dalam waktu yang singkat.
c. Algortima ditulis dengan bahasa yang standar secara sistematis dan rapi sehingga tidak menimbulkan arti ganda (ambiguous).
d. Algortima ditulis dengan format yang mudah dipahami dan mudah diimplementasikan ke dalam bahasa pemrograman.
e. Semua operasi yang dibutuhkan terdefinisi dengan jelas.
f. Semua proses dalam algoritma harus berakhir setelah sejumlah langkah dilakukan.
2. Konsep Pemrograman Terstruktur
Pemrograman terstruktur merupakan suatu tindakan untuk mengorganisasikan dan membuat kode-kode program supaya mudah dimengerti, mudah dites, dan mudah dimodifikasi.
Ciri-ciri teknik pemrograman terstruktur :
a. Mengandung teknik pemecahan masalah yang tepat dan benar.
b. Memiliki algoritma pemecahan masalah yang bersifat sederhana, standar dan efektif dalam menyelesaikan masalah.
c. Teknik penulisan program memiliki struktur logika yang benar dan mudah dipahami.
d. Program semata-mata terdiri dari tiga struktur yaitu sequence structure, looping structure dan selection structure.
e. Menghindarkan penggunaan instruksi GOTO (peralihan proses tanpa syarat tertentu) yang menjadikan program tidak terstruktur lagi.
f. Membutuhkan biaya testing yang rendah.
g. Memiliki dokumentasi yang baik.
h. Membutuhkan biaya perawatan dan pengembangan yang rendah