Makalah Algoritma
BAB I
PENDAHULUAN
Pada saat kita membuat sebuah program sering kali kita menghadapi permasalahan yang memerlukan pengrutan suatu nilai baik secara langsung atau pun tidak. Misalnya kita melakukan mencari sebuah nilai pada suatu list, permasalahan akan lebih mudah diselesaikan jika kita mengurutkan terlebih dahulu list tersebut dari kecil ke besar, kita tinggal melakukan pencarian nilai tersebut selama nilai tersebut lebih kecil atau sama dengan nilai yang ditelusuri pada list. Jika nilai dari dalam list sudah lebih besar dari nilai yang kita cari berarti sudah pasti nilai yang dicari tersebut tidak ada. Ini jauh lebih efektif dibandingkan mengecek semua nilai pada list tersebut dari awal sampai akhir jika nilai itu tidak ada, ini sangat tidak efektif/ bayangkan jika kita harus mencari satu nilai dalam data yang jumlahnya mencapai jutaan atau milyaran.
Sadar atau tidak manusia sering melakukan pengurutan dengan teknik-teknik tertentu dalam kehidupan sehari-hari. Misalnya saat kita bermain kartu remi, kita akan mengambil kartu tersebut dan mengurutkannya dengan cara-cara tertentu. Bila kita mengambil kartu tersebut satu-per-satu dari tumpukannya dan setiap mengambil kita langsung mengurutkannya dalam algoritma pengurutan, cara tersebut adalah implementasi dari insertion sort. Namun bila kartu dibagikan semuanya terlebih dahulu kemudian baru kita kelompokan menurut jenisnya. Kemudian barulah kita urutkan dari paling kecil ke paling besar maka itulah yang disebut selection sort.
BAB II
PENGANTAR ALGORITMA
2.1. Sejarah Ilmu Algoritma
Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya 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. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.
2.2. Definisi Algoritma
“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.
2.3. Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca.
Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut. Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
2.4. Mekanisme Pelaksanan Algoritma Oleh Pemroses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.
2.5. Belajar Memprogram Dan Belajar Bahasa Pemrograman
Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangakan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan bahasa pemrogram. Yang dapat dibedakan berdasarkan tujuan dan fungsinya. Diantaranya adalah :
2.6. Belajar Memprogram
1. Belajar memprogram ≠ belajar bahasa pemrograman
2. Belajar memprogram : belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati bersama
3. Belajar memprogram : bersifat pemahaman persoalan, analisis dan sintesis
4. Belajar memprogram, titik berat : designer program
2.7. Belajar Bahasa Pemrograman
1. Belajar bahasa pemrograman : belajar memakai suatu bahasa pemrograman, aturan
2. sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa
3. Belajar bahasa pemrograman , titik berat : coder
2.8. Produk yang dihasilkan pemrogram :
1. Program dengan rancangan yang baik (metodologis, sistematis)
2. Dapat dieksekusi oleh mesin
3. Berfungsi dengan benar
4. Sanggup melayani segala kemungkinan masukan
5. Disertai dokumentasi
2.9. Pemrograman Prosedural
Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti Algoritma adalah proses yang procedural.
Definisi Prosedural menurut Kamus Besar Bahasa Indonesia :
1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
2. Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah.
Pada pemrograman procedural, program dibedakan antara bagian data dengan bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instrusi secara beruntun atau procedural. Paradigma pemrograman seperti ini dinamakan pemrograman procedural. Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal dan Fortran mendukung kegiatan pemrograman procedural, karena itu mereka dinamakan juga bahasa procedural. Selain paradigma pemrograman procedural, ada lagi paradigma yang lain yaitu pemrograman berorientasi objek (Object Oriented Programming). Paradigma pemrograman yang lain adalah pemrograman fungsional, pemrogramn deklaratif dan pemrograman konkuren. Pada kesempatan ini penulis hanya menyajikan paradigma pemrograman procedural saja.
Makalah Algoritma