Logika dan Algoritma
Logika dan Algoritma
Saat pertama mempelajari bahasa pemrograman, mendapatkan kesan bahwa bagian sulit
dari menyelesaikan masalah di komputer adalah menerjemahkan ide-ide ke dalam bahasa
spesifik yang akan dimasukkan ke dalam komputer. Bagian tersulit dalam menyelesaikan
masalah di komputer adalah menemukan metode solusinya. Setelah menemukan metode
solusi, kemudian menerjemahkan metode ke dalam bahasa yang diperlukan, baik itu C ++
atau bahasa pemrograman lainnya. Oleh karena itu sangat membantu untuk mengabaikan
sementara waktu bahasa pemrograman dan berkonsentrasi pada merumuskan langkahlangkah solusi dan menuliskannya dalam bahasa yang sederhana. Seolah-olah instruksi harus
diberikan kepada manusia bukan ke komputer. Urutan instruksi yang dinyatakan dengan
cara ini sering disebut algoritma.
Istilah algoritma berasal dari seorang ilmuwan terkenal dari Persia yaitu Abu Ja’far
Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism.
Al-Khuwarizmi menulis kitab atau buku yang berjudul Al Jabr Wal-Muqabala atau The Book
of Restoration and Reduction. Dari buku tersebut diperoleh akar kata “Aljabar” (Algebra).
Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering
dikelirukan dengan arithmetic, sehingga akhiran –ism berubah menjadi –ithm.
Algoritma merupakan suatu prosedur, urutan langkah-langkah atau tahapan-tahapan
sistematis, jelas, dan logis untuk menyelesaikan permasalahan. Langkah logis dalam algoritma
harus dapat ditentukan, bernilai salah atau benar.Algoritma merupakan alur pemikiran dalam
menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. (Moh Sjukani, “Algoritma
dan Struktur Data dengan C, C++, dan Java”).
B. Aspek Penting dalamAlgoritma
Beberapa hal yang harus diperhatikan dalam membuat algoritma antara lain algoritma
harus mengikuti suatu urutan aturan tertentu dan tidak boleh melompat-lompat. Algoritma
seseorang dengan orang yang lain dapat berbeda-beda karena mempunyai alur pikir yang
berbeda-beda pula, meskipun untuk menyelesaikan permasalahan yang sama. Langkah demi
langkah secara eksak harus dapat memecahkan suatu masalah. Algoritma dapat diwujudkan
dalam berupa kalimat, gambar atau tabel tertentu. Menurut Donald E. Knuth, algoritma harus
mempunyai lima ciri penting, yaitu sebagai berikut.
1. Finiteness. Algoritma harus berhenti setelah mengerjakan sejumlah langkah tertentu
atau terbatas.
2. Definiteness. Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan
(ambiguous).
3. Input. Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma
sebelum dijalankan.
4. Output. Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung
kepada Input.
5. Effectiveness. Setiap algoritma diharapkan miliki sifat efektif. Setiap langkah harus
sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
C. Ragam Struktur Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut
dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration
atau looping), atau kombinasi dari ketiganya. Struktur dasar penyajian algoritma dibedakan
menjadi tiga, yaitu sebagai berikut.
1. Struktur runtunan (sequence), struktur algoritma yang mempunyai pernyataan secara
berurutan atau sequential.
2. Struktur pemilihan atau percabangan (selection), struktur algoritma atau program yang
menggunakan pemilihan atau penyeleksian kondisi.
3. Struktur perulangan, struktur algoritma atau program yang pernyataannya akan
dieksekusi berulang-ulang sampai kondisi tertentu.
Pada algoritma, tidak dipakai simbol-simbol atau sintaks dari suatu bahasa pemrograman
tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman
apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman
mana pun.
D. Metode Penyajian Algoritma
Penyajian algoritma secara garis besar dapat dibedakan menjadi dua, yaitu berbentuk
tulisan dan berbentuk gambar. Algoritma yang disajikan dengan bentuk tulisan dapat
menggunakan aturan bahasa natural (alami) dan pseudocode. Bahasa natural menggunakan
struktur bahasa tertentu (misalnya struktur bahasa Indonesia atau bahasa Inggris). Pseudocode
adalah kode-kode tertentu dan mirip dengan kode bahasa pemrograman (misal bahasa
Pascal, C, C++) sehingga lebih tepat digunakan untuk menggambarkan algoritma yang
akan dikomunikasikan kepada pemrogram (programmer). Sedangkan algoritma yang
disajikan dengan gambar dapat berbentuk diagram alur (flowchart) atau struktogram (Nassi
Schneiderman chart).
1. Penyajian Algoritma Menggunakan Bahasa Natural (Alami)
Notasi penulisan algoritma dengan menggunakan bahasa deskriptif bisa juga
disebut dengan notasi alami. Dilakukan dengan cara menuliskan instruksi-instuksi yang
harus dilaksanakan dalam bentuk untaian kalimat deskriptif dengan menggunakan
bahasa yang jelas. Dasar dari notasi bahasa deskriptif adalah bahasa Inggris, tetapi
dapat dimodifikasi dengan bahasa sehari-hari termasuk Bahasa Indonesia. Karena
tidak ada aturan baku dalam menuliskan algoritma dengan notasi deskriptif maka tiap
orang dapat membuat aturan penulisan dan notasi algoritma sendiri. Hal ini dapat
dimengerti karena teks algoritma tidak sama dengan teks program. Program adalah
implementasi algoritma dalam notasi bahasa pemrograman tertentu. Tetapi, agar notasi
algoritma mudah ditranslasi ke dalam notasi bahasa pemrograman, maka sebaiknya
notasi algoritma tersebut berkoresponden dengan notasi bahasa pemrograman pada
umumnya. Kata kerja adalah jenis kata yang biasa digunakan dalam penulisan bahasa
deskriptif, contohnya tulis, baca, hitung, tampilkan, ulangi, bandingkan, dan lain-lain.
Notasi jenis ini cocok untuk algoritma yang pendek. Tapi untuk masalah algoritma
yang panjang, notasi ini kurang efektif. Cara penulisan algoritma dengan notasi bahasa
deskriptif paling mudah dibuat, tetapi demikian cara ini paling sulit untuk diterjemahkan
ke dalam bahasa pemrograman. Pada dasarnya teks algoritma dengan bahasa deskriptif
disusun oleh tiga bagian utama yaitu: bagian judul (header) , bagian deklarasi (kamus)
dan bagian deskripsi.
Setiap bagian disertai dengan komentar untuk memperjelas maksud teks yang
dituliskan. Komentar adalah kalimat yang diapit oleh pasangan tanda kurung kurawal
(‘{’ dan ‘}’).
a. Judul Algoritma
Judul algoritma merupakan bagian yang terdiri atas nama algoritma dan
penjelasan (spesifikasi) tentang algoritma tersebut. Di bagian ini juga digunakan
untuk menentukan apakah teks algoritma yang dibuat tersebut adalah
program, prosedur, atau fungsi. Nama algoritma sebaiknya singkat tetapi cukup
menggambarkan apa yang dilakukan oleh algoritma tersebut.Di bawah nama
algoritma disertai dengan penjelasan singkat (intisari) tentang apa yang dilakukan
oleh algoritma. Penjelasan di bawah nama algoritma sering dinamakan juga
spesifikasi algoritma yang dituliskan dalam kurung kurawal ({}). Algoritma harus
ditulis sesuai dengan spesifikasi yang didefinisikan. Gambar 2.1 adalah contoh judul
algoritma menghitung luas lingkaran yang disertai dengan penjelasan singkat.
b. Bagian deklarasi
Di dalam algoritma, deklarasi atau kamus adalah bagian untuk mendefinisikan
semua nama yang dipakai di dalam algoritma. Nama tersebut dapat berupa nama
variabel, nama konstanta, nama tipe, nama prosedur atau nama fungsi. Semua
nama tersebut baru dapat digunakan di dalam algoritma jika telah didefinisikan
terlebih dahulu didalam bagian deklarasi. Penulisan sekumpulan nama dalam
bagian deklarasi sebaiknya dikelompokkan menurut jenisnya. Pendefinisian nama
konstanta sekaligus memberikan nilai konstanta. Pendefinisian nama fungsi atau prosedur sekaligus dengan pendefinisian spesifikasi dan parameternya.
Deklarasi:
radius = real {tipe data bilangan pecahan}
luas = real {tipe data bilangan pecahan}
PHI = 3.14
c. Bagian Deskripsi
Deskripsi adalah bagian inti dari struktur algoritma. Bagian ini berisi uraian langkah
-langkah penyelesaian masalah. Langkah-langkah ini dituliskan dengan notasi yang
lazim dalam penulisan algoritma. Setiap langkah algoritma dibaca dari langkah
paling atas hingga langkah paling bawah. Urutan penulisan menentukan urutan
pelaksanaan perintah. Seperti yang telah dijelaskan bahwa penyusun atau struktur
dasar algoritma adalah langkah-langkah. Suatu Algoritma dapat terdiri atas tiga
struktur dasar, yaitu runtunan, pemilihan dan pengulangan. Ketiga jenis langkah
tersebut membentuk konstruksi suatu algoritma. Pada bagian deskripsi inilah letak
tiga struktur algoritma tersebut.
Deskripsi:
1. Baca radius
2. Hitung luas = radius * radius * PHI
3. Tampilkan luas ke layar
4. Selesai
Bentuk contoh lengkap penyajian algoritma dengan bahasa natural sebagi berikut.
2. Penyajian Algoritma Menggunakan Pseudocode
Pseudocode adalah cara penulisan algoritma yang menyerupai bahasa pemrograman
tingkat tinggi. Pseudocode menggunakan bahasa yang hampir menyerupai bahasa
pemrograman. Biasanya pseudo code menggunakan bahasa yang mudah dipahami
secara universal dan juga lebih ringkas daripada algoritma. Pseudocode berisi deskripsi
dari algoritma pemrograman komputer yang menggunakan struktur sederhana dari
beberapa bahasa pemrograman tetapi bahasa tersebut hanya ditujukan agar dapat
dibaca manusia. Sehingga pseudocode tidak dapat dipahami oleh komputer. Supaya notasi pseudocode bisa dipahami oleh komputer maka harus diterjemahkan terlebih
dahulu menjadi sintaks bahasa pemrograman komputer tertentu.
Dalam pseudocode, tidak ada sintaks standar yang resmi. Oleh karena itu,
pseudocode ini dapat diterapkan dalam berbagai bahasa pemograman. Disarankan untuk
menggunakan keyword yang umum digunakan seperti if, then, else, while, do, repeat,
for, dan lainnya Keuntungan menggunakan notasi pseudocode adalah kemudahan
mentranslasi ke notasi bahasa pemrograman, karena terdapat korespondensi antara
setiap pseudocode dengan notasi bahasa pemrograman. Tabel 2.1. menunjukkan
perbandingan beberapa kata yang biasa digunakan dalam penulisan algoritma dengan
menggunakan kalimat deskriptif dan pseudocode.
Tabel 1.1 Perbandingan kata dalam penulisan algoritma dengan kalimat deskriptif
dan pseudocode
3. Penyajian Algoritma Menggunakan Flowchart
Flowchart adalah cara penulisan algoritma dengan menggunakan notasi grafis.
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan atau langkahlangkah dari suatu program dan hubungan antarproses beserta pernyataannya. Gambaran
ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses
tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan
menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagianbagian yang terlupakan dalam analisis masalah. Di samping itu, flowchart juga berguna
sebagai fasilitas untuk berkomunikasiantara pemrogram yang bekerja dalam tim suatu
proyek. Flowchart menolong analis dan programmer untuk memecahkan masalah ke
dalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif
lain dalam pengoperasian.
Pada dasarnya terdapat berbagai macam flowchart, di antaranya yaitu Flowchart
Sistem (System Flowchart), Flowchart Paperwork/Flowchart Dokumen (Document
Flowchart), Flowchart Skematik (Schematic Flowchart), Flowchart Program (Program
Flowchart), Flowchart Proses (Process Flowchart). Untuk keperluan pembuatan program
maka digunakan Flowchart Program.
Flowchart program menggambarkan urutan instruksi yang digambarkan dengan
simbol tertentu untuk memecahkan masalah dalam suatu program. Dalam flowchart
program mengandung keterangan yang lebih rinci tentang bagaimana setiap langkah
program atau prosedur seharusnya dilaksanakan. Flowchart ini menunjukkan setiap
langkah program atau prosedur dalam urutan yang tepat saat terjadi. Programer
menggunakan flowchart program untuk menggambarkan urutan instruksi dari program
komputer. Analis Sistem menggunakan flowchart program untuk menggambarkan
urutan tugas-tugas pekerjaan dalam suatu prosedur atau operasi.
Tabel 1.2 Ragam simbol yang sering dipakai dalam Program Flowchart
Untuk hari ini dipahami saja dulu materi yang ada ya, jika ada pertanyaan bisa bertanya melalui google class room ya...
Komentar