Sebelumnya perkenalkan nama saya rachmadani choirunisa, disini saya akan memulai menulis artikel yang berhubungan dengan hobby saya yaitu teknologi, dan artikel pertama yang akan saya tulis yaitu mengenai pembelajaran dasar algoritma.
pada era teknologi informasi ini pemrograman komputer sudah menjadi kebutuhan penting bagi sebagian orang. Meskipun saat ini juga banyak sekali software ataupun aplikasi yang dapat membantu dalam mempermudah penyelesaian code-code komputer. Di era saat ini banyak sekali programmer menciptakan sesuatu untuk mempermudah/memecahkan masalah yang ada seperti: gojek (ojek online), olx(jual-beli barang baru/bekas online), dan lain-lain. Lalu apakah aplikasi yang mereka buat hanyalah sekedar aplikasi yang dibuat dengan drag and drop? tidak! aplikasi tersebut membutuhkan struktur koding yang kompleks dan algoritma yang tersusun secara benar. Maka dari itu disini saya akan menjelaskan tentang Algoritma dan Pemrograman.
Pengertian Algoritma sendiri adalah urutan langkah-langkah dalam memecahkan suatu masalah. Dengan algoritma tersebut program dapat menemukan jalan keluar dan menjalankan perintah dari user dengan sempurna.
Sejarah Algoritma
Kata “Algoritma” sendiri mempunyai sejarah yang cukup aneh. Kata ini tidak muncul di dalam kamus Webster sampai akhir tahun 1957. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menggunakan angka Arab. Para ahli bahasa berusaha menemukan asal kata algorism ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal mula kata tersebut. Kata algorism berasal dari nama penulis buku Arab yang terkenal, yaitu Abu Ja’far 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 dari kata algorismmenjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran -sm berubah menjadi -thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang sudah biasa/ lumrah, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi “algoritma” pada tahun 1950, kata algoritma pertama kali digunakan pada “algoritma Euclidean”(Euclid’s algorithm) yaitu seorang matematikawan Yunani (lahir pada tahun 350 M), dalam bukunya yang berjudul Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar, dari dua buah bilangan bulat, x dan y. Pembagi bersama terbesar dari dua buah bilangan bulat tak-negatif adalah bilangan bulat positif terbesar yang habis membagi kedua bilangan tersebut.
Belajar Memprogram dan Belajar Bahasa Pemrograman
Saat ini terdapat banyak sekali bahasa pemrograman yang kita ketahui seperti Fortran, Cobol, Ada, PL/I, Algol, Pascal, C, C#, C++, Basic, Prolog, LISP, PRG, java, dan yang lainnya.Bahasa pemrograman tersebut bermacam-macam kegunaannya, lalu apakah bahasa pemrograman hanya sekedar itu saja dan tidak ada pembagiannya? Ada, bahasa pemrograman dapat dibagi menjadi dua kelompok yaitu:
- Bahasa pemrograman bertujuan khusus. Yaitu bahasa pemrograman termasuk kelompok ini adalah Cobol (untuk bisnis dan administrasi), Fortran (aplikasi komputasi ilmiah), Prolog (aplikasi kecerdasan buatan), bahasa-bahasa simulasi (Simscript), dan sebagainya.
- Bahasa pemrograman bertujuan umum. Yaitu bahasa pemrograman yang digunakan untuk berbagai macam aplikasi. Kelompok bahasa ini adalah Pascal, Basic, C, dan C++
Lalu berdasarkan “kedekatan” bahasa pemrograman apakah lebih condong ke bahasa mesin atau ke bahasa manusia, maka bahasa pemrograman juga dapat dikelompokkan atas dua macam:
- Bahasa tingkat rendah. Bahasa pemrograman ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin (machine language). Bahasa mesin adalah sekumpulan kode biner (0 dan 1). setiap perintah dalam bahasa mesin langsung “dimengerti” oleh mesin dan langsung dikerjakan. Bahasa tingkat rendah merupakan bahasa pemrograman generasi pertama yang pernah ditulis orang.
- Bahasa tingkat tinggi. Bahasa jenis ini membuat program menjadi lebih mudah dipahami karena lebih dekat dengan bahasa manusia (Bahasa Inggris terutama). Kelemahannya, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer, ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan sebagainya.
Notasi Algoritmik
- Notasi yang menyatakan langkah-langkah algoritma dengan untaian kalimat deskriptif:
Program Euclidean
Diberikan dua buah bilangan bulat tak-negatif m dan n (m ≥ n). Algoritma Euclidean mencari pembagi bersama terbesar, gcd, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.
ALGORITMA:
- Jika n = 0
maka m adalah jawabannya;
Stop.
tetapi jika n ≠ 0,
lanjutkan ke langkah 2.
2. Bagilah m dengan n dan misalkan r adalah hasilnya.
3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langka 1.
Dengan notasi diatas, maka deskripsi setiap langkah dijelaskan dengan bahasa yang gamblang. Proses diawali dengan kata keja seperti ‘baca’, ‘hitung’, ‘bagi’, ‘ganti’ dan sebagainya, sedangkan pernyataan kondisional dinyatakan dengan ‘jika … maka …’ . Notasi ini baik buat orang yang awam, tetapi terdapat kesukaran menerjemahkannya langsung ke dalam notasi bahasa pemrograman.
2. Menggunakan bagan-alir (flowchart)
Keterangan:
- MOD adalah operator pembagian bilangan bulat yang menghasilkan sisa hasil pembagian. Contohnya, 9 MOD 2 = 1 karena 9 dibagi menjad 2 = 4 dan memberikan sisa = 1.
- Di dalam diagram alir di atas ditambahkan instruksi pembacaan nlai m dan n.
3. Notasi menggunakan pseudo-code
PROGRAM Euclidean
Program untuk mencari gcd dari dua buah bilangan bulat tak-negatif m dan n ( m ≥ n). gcd dari m dan n adalah bilangan bulat positif terbesar yang habis membagi m dan n.
DEKLARASI:
m, n : integer { bilangan bulat yang akan dicari pbt-nya}
r : integer { sisa hasil bagi }
ALGORITMA:
read (m, n) { m ≥ n}
while n ≠ 0 do
r <- m MOD n {hitung sisa hasil pembagian}
m <- n
n <- r
endwhile
{kondisi selesai pengulangan: n = 0, maka gcd(m,n) = m}
write(m)
Kata-kata yang digaris bawahi pada program di atas menyatakan kata-kata penting yang nantinya berpadanan dengan kata penting pada bahasa komputer yang dipilih untuk mentranslasikan algoritma tersebut. Kalimat yang diapit dengan pasangan kurung kurawal ({ dan }) menyatakan komentar. komentar berfungsi memperjelas instruksi yang ditulis oleh programmer. Perubahan yang digunakan di dalam algoritma dituliskan pada bagian Deklarasi, sedangkan langkah-langkah penyelesaian masalah dinyatakan pada bagian Algoritma. Untuk perintah keluaran ditulis dengan perintah output. Dan untuk karakter “<-” menyatakan bahwa nilai di sebelah kanannya diisikan ke dalam peubah di sebelah kirinya.
Pemrograman Prosedural
Nah untuk yang terakhir ini yaitu membahas algoritma berisi urutan langkah-langkah penyelesaian masalah. ini berarti langkah-langkah di dalam algoritma menyatakan proses yaag prosedural. Pada pemrograman prosedural, program dibedakan antara bagian data dengan bagian instruksi. Pemrograman yang mendukung kegiatan prosedural yaitu seperti Cobol, Basic, Pascal, Fortran, dan C.
Selain pemrograman prosedural, pemrograman lain yang populer saat ini adalah pemrograman berorientasi objek (Object Oriented Programming atau OOP). Contoh bahasa pemrograman yang mendukung OOP adalah Java, Pascal, C++, Microsoft Visual Basic.Net, PHP, C#, Delphi, dan yang lainnya.
Masih penasaran dengan kelanjutan Algoritma dan pemrograman? pantengin terus kodingin.com
sumber: Buku Algoritma & Pemrograman Dalam Bahasa Pascal dan C
Komentar
Posting Komentar