Difference between revisions of "Algoritma"
Line 13: | Line 13: | ||
# Memiliki keluaran (output) atau kondisi akhir. | # Memiliki keluaran (output) atau kondisi akhir. | ||
# Algoritma harus efektif, bila diikuti benar-benar maka akan menyelesaikan masalah. | # Algoritma harus efektif, bila diikuti benar-benar maka akan menyelesaikan masalah. | ||
+ | |||
Beberapa skema dasar pada algoritma diantaranya adalah: | Beberapa skema dasar pada algoritma diantaranya adalah: | ||
Line 18: | Line 19: | ||
* ''selection'' | * ''selection'' | ||
* ''looping'' | * ''looping'' | ||
+ | |||
Algoritma dapat dituliskan dalam bentuk | Algoritma dapat dituliskan dalam bentuk | ||
− | * Uraian deskriptif | + | * '''Uraian deskriptif''' |
** Dengan notasi bergaya uraian, deskripsi setiap langkah dijelaskan dengan bahasa yang gamblang. | ** 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 ‘membagi’, dan sebagainya. | ** Proses diawali dengan kata kerja seperti baca’ atau ‘membaca’, ’hitung’ atau ‘menghitung’, ‘bagi’ atau ‘membagi’, ‘ganti’ atau ‘membagi’, dan sebagainya. | ||
Line 26: | Line 28: | ||
** Perulangan dengan ‘Ulangi .. Selama …’ | ** Perulangan dengan ‘Ulangi .. Selama …’ | ||
− | * ''Flowchart'' | + | * '''''Flowchart''''' |
** Penulisan algoritma dilakukan dengan menggunakan diagram-diagram. | ** Penulisan algoritma dilakukan dengan menggunakan diagram-diagram. | ||
** Setiap diagram mewakili satu instruksi/perintah tertentu. | ** Setiap diagram mewakili satu instruksi/perintah tertentu. | ||
Line 34: | Line 36: | ||
** Sejak tahun 1980-an penulisan dengan diagram alir mulai ditinggalkan, kecuali untuk menuliskan langkah-langkah global sebuah algoritma. | ** Sejak tahun 1980-an penulisan dengan diagram alir mulai ditinggalkan, kecuali untuk menuliskan langkah-langkah global sebuah algoritma. | ||
− | * ''Pseudocode'' | + | * '''''Pseudocode''''' |
** Notasi yang menyerupai notasi Bahasa pemrograman tingkat tinggi, misalnya Bahasa Pascal dan C. | ** Notasi yang menyerupai notasi Bahasa pemrograman tingkat tinggi, misalnya 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 | ** 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 | ||
+ | |||
: Struktur ''Pseudocode'' | : Struktur ''Pseudocode'' | ||
::* Bagian kepala (header) : memuat nama algoritma serta informasi atau keterangan tentang algoritma yang ditulis | ::* Bagian kepala (header) : memuat nama algoritma serta informasi atau keterangan tentang algoritma yang ditulis |
Revision as of 14:44, 30 January 2021
Algoritma berasal dari kata al-khawarizmi (Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi) yang merupakan ahli matematika dan astronomi dari Persia, dan juga merupakan penulis buku “Aljabar wal Muqobala”. Beliau dianggap sebagai pencetus pertama algoritma karena di dalam buku tersebut Abu Ja’far menjelaskan langkah-langkah dalam menyelesaikan berbagai persoalan aritmatika (aljabar).
Algoritma biasanya didefinisikan sebagai rangkaian terurut langkah-langkah yang logis dan sistematis yang disusun untuk menyelesaikan suatu masalah. Algoritma dapat dikatakan sebagai jantung ilmu komputer atau informatika, namun pemakaiannya tidak cuma dalam ilmu komputer/informatika saja, tetapi juga dalam bidang lain (kehidupan sehari-hari).
Tujuan
Algoritma dibuat dengan tujuan agar dapat memberikan petunjuk tentang langkah-langkah logika penyelesaian masalah dalam bentuk yang mudah dipahami nalar manusia sebagai acuan yang membantu dalam mengembangkan program komputer. Pemahaman terhadap algoritma akan mencegah sejak dini kemungkinan terjadinya kesalahan logika pada program komputer yang dikembangkan.
Beberapa ciri dari algoritma menurut Donald E. Knuth adalah:
- Algoritma mempunyai awal dan akhir, suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas. Dengan kata lain, suatu algoritma memiliki langkah yang terbatas.
- Setiap langkah harus didefinisikan dengan tepat, sehingga tidak memiliki arti ganda, tidak membingungkan (not ambiguous).
- Memiliki masukan (input) atau kondisi awal.
- Memiliki keluaran (output) atau kondisi akhir.
- Algoritma harus efektif, bila diikuti benar-benar maka akan menyelesaikan masalah.
Beberapa skema dasar pada algoritma diantaranya adalah:
- sequence
- selection
- looping
Algoritma dapat dituliskan dalam bentuk
- 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 ‘membagi’, dan sebagainya.
- Pernyataan kondisional dinyatakan dengan ‘jika ... maka ...’.
- Perulangan dengan ‘Ulangi .. Selama …’
- Flowchart
- Penulisan algoritma dilakukan dengan menggunakan diagram-diagram.
- Setiap diagram mewakili satu instruksi/perintah tertentu.
- Urutan perintah dalam suatu algoritma digambarkan dengan anak panah (dari suatu diagram ke diagram lain ).
- Tidak cocok untuk penulisan algoritma yang panjang karena menimbulkan kerumitan.
- Dari segi struktur pemograman tidak dianjurkan untuk dipakai karena bentuk penulisannya jauh berbeda dengan implementasinya pada bahasa pemrograman tertentu.
- Sejak tahun 1980-an penulisan dengan diagram alir mulai ditinggalkan, kecuali untuk menuliskan langkah-langkah global sebuah algoritma.
- Pseudocode
- Notasi yang menyerupai notasi Bahasa pemrograman tingkat tinggi, misalnya 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
- Struktur Pseudocode
- Bagian kepala (header) : memuat nama algoritma serta informasi atau keterangan tentang algoritma yang ditulis
- Bagian Deklarasi (definisi variable ) : memuat definisi nama variable, nama tetapan, nama prosedur, nama fungsi, tipe data yang akan digunakan dalam algoritma.
- Bagian Deskripsi (rincian langkah) : memuat langkah-langkah penyelesaian masalah, termasuk beberapa perintah seperti baca data, tampilkan, ulangi, yang mengubah data input menjadi output.