Algoritma dan Pemrograman

Definisi Algoritma

Istilah algoritma dapat diartikan sebagai urutan langkah-langkah logis dan sistematis untuk memecahkan suatu permasalahan. Kata logis pada definisi diatas merupakan kata kuncinya.

Sebuah algoritma dapat dimanfaatkan untuk merepresentasikan suatu urutan kejadian secara logis dan dapat diterapkan pada semua kejadian sehari-hari.

Menilik pada sejarahnya, istilah algoritma berasal dari nama seorang ilmuwan Persia Abu Ja'far Muhammad bin Musa Al-Khawarizmi. Nah, oleh orang barat, Al-Khawarizmi diucapkan sebagai algoritma.

Siapa beliau sebenarnya, dan mengapa sangat dikenal oleh kalangan ilmuwan barat? Al Khawarizmi merupakan penulis kitab Al Jabr w'la Muqobala (Rules of Restoration and Reduction) pada tahun 825M.

Ciri-Ciri Algoritma

  • Memiliki masukan (input), proses, dan keluaran (output)
  • Memiliki instruksi-instruksi yang jelas, tidak rancu, dan tidak ambigu
  • Tepat dan pasti (definite)
  • Memiliki kriteria berhenti (stopping criteria) alias berhingga.

Syarat Algoritma

  • Tidak bergantung kepada bahasa pemrograman tertentu
  • Tidak menggunakan simbol-simbol dan sintaksis dari bahasa pemrograman tertentu
  • Notasinya bisa dipakai oleh semua bahasa pemrograman

Notasi Algoritma

Algoritma memiliki notasi yaitu rancangan penyelesaian masalah yang disusun dengan cara penulisan khusus. Terdapat tiga macam notasi algoritma yang lazim dipakai yaitu notasi deskriptif, flow-chart, dan pseudo-code.

Notasi Deskriptif

Dengan notasi ini langkah-langkah penyelesaian masalah dituliskan dengan menggunakan kalimat-kalimat serta urutan-urutan yang jelas. Notasi deskriptif cocok untuk algoritma yang pendek, namun untuk algoritma yang panjang kurang cocok karena cenderung menyulitkan dalam mengkonversinya ke notasi bahasa pemrograman. Contoh notasi deskriptif:

  1. Mulai
  2. Panaskan minyak
  3. Jika sudah panas, masukkan onde-onde
  4. Tunggu hingga matang
  5. Angkat dan tiriskan
  6. Sajikan di piring
  7. Selesai

Flowchart

Disini langkah-langkah penyelesaian masalah disusun dan disajikan secara visual dalam bentuk gambar bagan dengan memakai elemen-elemen diagram alir. Notasi jenis ini cocok untuk algoritma yang tidak begitu panjang, namun masih mengandung kesulitan dalam mentransfernya ke notasi bahasa pemrograman.

Pseudo-Code

Disini perumusan langkah-langkah penyelesaian masalah mirip dengan notasi bahasa pemrograman tingkat tinggi, sehingga notasi pseudo-code lebih mudah ditransfer ke notasi bahasa pemrograman. Contoh notasi pseudo-code:

  • begin
  • input A
  • input B
  • if B<A then A←A/B
  • else B←B/A
  • end

Belajar pemrograman berarti belajar menyelesaikan masalah dan merumuskan algoritmanya, sedangkan belajar bahasa pemrograman berarti belajar menggunakan suatu bahasa pemrograman yang meliputi tata bahasa (sintax), kosakata (instruction) serta editornya.

Menguasai pemrograman akan menjadikan kita sebagai seorang system analyst, sedangkan menguasai bahasa pemrograman akan menjadikan kita sebagai seorang programmer. Seorang system analyst pada dasarnya juga merupakan seorang programmer.

Dalam belajar pemrograman terdapat proses coding, yaitu proses penulisan kode-kode sesuai dengan bahasa pemrograman yang digunakan. Intinya, bahasa pemrograman yang dipakai boleh apa saja tetapi penekanannya bukan pada bahasanya melainkan pada fungsinya sebagai alat bantu belajar algoritma dan pemrograman.

Top-Down Design

Top-down design merupakan pemecahan masalah dengan cara memecahnya menjadi beberapa bagian yang lebih sederhana (sub-masalah) dan memeriksa hubungan antara sub-sub masalah tersebut guna dikembangkan menjadi lebih terperinci. Setiap sub masalah (disebut modul) harus memenuhi kriteria:

  • Mengerjakan tugas spesifik.
  • Tidak terlalu panjang.

Masalah yang Programmable

Masalah yang programmable artinya masalah itu dapat diterjemahkan ke dalam bahasa pemrograman komputer dan dapat dieksekusi/dijalankan. Berikut langkah-langkah memecahkan sebuah masalah yang programmable:

  1. Lakukan dekomposisi, yaitu menguraikan masalah utama menjadi sub-sub masalah secara tepat.
  2. Memeriksa setiap sub-masalah apakah dapat dipecahkan secara tepat.
  3. Menggabungkan pemecahan semua sub-masalah dengan cara tertentu sehingga masalah utama terpecahkan.
  4. Ulangi langkah (1) hingga (3) sehingga sub-masalah terbagi menjadi sub-sub masalah paling sederhana dan dapat diterjemahkan dalam bahasa pemrograman yang singkat.

Tahapan Pemrograman

Pemrograman merupakan implementasi dari bahasa pemrograman dan algoritma. Pemrograman meliputi tahap-tahap yang terdiri dari:

  1. Pendefinisan masalah.
  2. Pemilihan garis besar pemecahan.
  3. Dekomposisi langkah (2).
  4. Terjemahkan ke dalam bahasa pemrograman tertentu (coding).
  5. Pengujian (debugging).

Kriteria Program yang Baik

  • Benar, yaitu bebas dari kesalahan baik kesalahan sintaksis, logika, dan runtime.
  • Jelas, baik dari sisi visual dan pemakaian.
  • Efisien, baik dari sisi cara pemecahan masalah, waktu eksekusi, dan ruang penyimpanan.

Pemrograman Python

Python nama salah satu bahasa pemrograman tingkat tinggi yang dikembangkan oleh Guido van Rossum asal negeri Belanda. Pengembangan Python dimulai pada tahun 1990 di Stichting Mathematisch Centrum (CWI), Amsterdam sebagai kelanjutan dari bahasa pemrograman ABC. Versi terakhir yang dikeluarkan CWI adalah Python versi 1.2.

Tahun 1995, Guido pindah ke CNRI di Virginia Amerika sambil terus melanjutkan pengembangan Python. Versi terakhir yang dikeluarkan adalah 1.6. Tahun 2000, Guido dan para pengembang inti Python pindah ke BeOpen.com yang merupakan sebuah perusahaan komersial dan membentuk BeOpen PythonLabs. Python 2.0 dikeluarkan oleh BeOpen. Setelah mengeluarkan Python 2.0, Guido dan beberapa anggota tim PythonLabs pindah ke Digital Creations.

Saat ini pengembangan Python terus dilakukan oleh sekumpulan pemrogram yang dikoordinir Guido dan Python Software Foundation. Ini adalah organisasi non-profit yang dibentuk sebagai pemegang hak cipta intelektual Python sejak versi 2.1 dan dengan demikian mencegah Python dimiliki oleh perusahaan komersial.

Blok Kode

Blok kode adalah sejumlah pernyataan/statement yang dijadikan sebagai sebuah kelompok tunggal. Blok kode program dalam Python bersifat terstruktur dan mudah dibaca karena memakai sistim indentasi. Antara blok kode satu dengan blok kode lainnya dapat dikenali dengan jelas batas-batasnya berdasarkan indentasinya. Perhatikan ilustrasi blok kode berikut ini.

Baris Perintah

Perintah-perintah dalam bahasa Python dapat diberikan secara langsung dengan memakai sintaksis sederhana yang nyaris mirip dengan bahasa sehari-hari. Perhatikan contoh baris perintah dalam Python berikut ini:

  • print “Salam Python!!!”

Bandingkan baris perintah pada Python diatas dengan baris perintah pada Java berikut ini:

  • class salam Python{
  • public static void main(String argsp[]){
  • System.out.println(“Salam Python!!!”)}
  • }

Serta bandingkan pula dengan C++ berikut ini:

  • #include <iostream.h>
  • int main() {
  • cout « (“Salam Python!!!”);
  • }

Ketika dieksekusi, perintah print pada Python, Java, maupun C++ seperti yang telah dicontohkan diatas akan memberikan hasil yang sama yaitu mencetak teks di layar:

  • Salam Python!!!

Namun ketiganya memiliki perbedaan yang sangat jelas dimana penulisan baris perintah pada Python jauh lebih sederhana, bukan?

Komentar

Proses coding melibatkan penulisan baris-baris perintah yang panjang dan seringkali kompleks. Guna mempermudah pembacaan suatu code kita dapat membubuhkan komentar singkat di bagian-bagian tertentu sebagai penjelasan. Perhatikan contoh penulisan komentar berikut ini:

  • #Contoh mencetak di layar
  • print “Salam Python!!!”

Komentar diawali dengan tanda #. Apapun yang ada setelah tanda ini merupakan komentar yang tidak akan ikut dieksekusi oleh program. Sekarang, bagaimana halnya jika ingin membubuhkan komentar yang terdiri lebih dari satu baris? Cermati contoh berikut ini.

  • “”“Inilah program pertamaku
  • ditulis memakai bahasa Python
  • saya senang belajar Python”“”
  • print “Salam Python!!!”
  • start.txt
  • Terakhir diubah: 2019/04/26 02:02
  • oleh admin