Algoritma
“Algoritma
adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis dan logis serta dapat ditentukan bernilai salah atau benar”. 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.
Dalam
membuat sebuah program, ada beberapa hal penting, yaitu:
1. Tujuan
pembuatan program.
2. Algoritma.
3. Bahasa
pemrograman itu sendiri.
Ciri
– ciri dari algoritma seperti yang dipaparkan oleh Donald E. Knuth:
1. Algoritma
mempunyai awal dan akhir.
2. Setiap
langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda.
3. Memiliki
masukan (input) atau kondisi awal.
4. Memiliki
keluaran (output) atau kondisi akhir.
5. Algoritma
harus efektif, bila digunakan benar – benar menyelesaikan persoalan.
B.
Mekanisme Pelaksanaan 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.
Langkah-langkah
penyelesaian dalam algoritma dapat ditulis dalam notasi apapun, asalkan mudah
dibaca dan dimengerti, karena memang tidak ada notasi baku dalam penulisan
algoritma. Tiap orang dapat membuat aturan penulisan dan notasi algoritma
sendiri. Agar notasi algoritma mudah ditranslasi ke dalam notasi bahasa
pemrograman, maka sebaiknya notasi algoritma tersebut berkorespnden dengan
notasi bahasa pemrograman secara umum.
C.
Aturan Penulisan Algoritma
Setiap
Algoritma akan selalu terdiri dari tiga bagian yaitu:
1. Judul
(Header)
2. Kamus
3. Algoritma
Pada setiap bagian tersebut
apabila akan dituliskan komentar mengenai setiap bagian tersebut dituliskan
diantara tanda kurung kurawal contoh {Komentar}. Notasi algoritma yang
dituliskan diantara tanda ini tidak akan dieksekusi oleh program.
Judul (Header)
Judul adalah bagian teks
algoritma yang digunakan sebagai tempat mendefinisikan nama dengan menentukan
apakah teks tersebut adalah program, prosedur, fungsi. Setelah judul disarankan
untuk menuliskan spesifikasi singkat dari teks algoritma tersebut. Nama algoritma
sebaiknya singkat namun cukup menggambarkan apa yang akan dilakukan oleh
algoritma tersebut.
Contoh :
Kamus (Deklarasi)
Kamus adalah bagian teks algoritma sebagai tempat untuk
mendefinisikan : Nama type, Nama konstanta, Nama variable, Nama fungsi, Nama
prosedur
Semua nama tersebut baru
dapat dipakai di dalam algoritma jika telah didefinisikan terlebih dahulu
didalam kamus. Penulisan sekumpulan nama dalam kamus sebaiknya dikelompokan
menurut jenis nama tersebut. Nama variabel belum terdefinisi nilainya ketika
didefinisikan. Pendefinisian nama konstanta sekaligus memberikan harga
konstanta tersebut, pendefinisian nama fungsi dilakukan sekaligus dengan
domain/range serta spesifikasinya. Pendefinisian nama prosedur sekaligus dengan
pendefinisian parameter (jika ada) dan spesifikasi prosedur (kondisi awal “Initial
State”, Kondisi akhir “ Final State” dan proses yang dilakukan).
Algoritma (Deskripsi)
Merupakan bagian inti dari suatu algoritma yang berisi
instruksi atau pemanggilan aksi yang telah didefinisikan. Setiap langkah
algoritma dibaca dari “atas” ke “bawah”. Urutan deskripsi penulisan menentukan
urutan langkah pelaksanaan perintah.
Contoh :
Contoh Penyelesaian Masalah
dengan Algoritma
Mencetak String “Selamat
Belajar Algoritma dan Pemrograman” ke piranti Keluaran.
Menentukan nilai terbesar
dari bilangan bulat yang dibaca dari piranti masukan dan menuliskan hasilnya ke
piranti keluaran.
D.
Struktur Dasar Algoritma
Algoritma berisi langkah-langkah
penyelesaian suatu masalah, berupa urutan aksi (sequence), pemilihan
aksi (selection), pengulangan aksi (iteration) atau kombinasi
dari ketiganya. Jadi struktur dasar algoritma ada tiga, yaitu:
1. Struktur Runtunan: digunakan untuk program yang pernyataannya
sequential atau urutan.
2. Struktur Pemilihan: digunakan untuk program yang menggunakan
pemilihan kondisi.
3. Struktur Perulangan: digunakan untuk program yang
pernyataannya dieksekusi berulang-ulang.
E.
Pemrograman Prosedural
Algoritma merupakan proses
yang prosedural. Pada program prosedural, program dibedakan antara bagian data
dengan bagian instruksi. Bagian instruksi terdiri dari atas runtunan (sequence)
instruksi yang dilaksanakan satu per satu secara berurutan oleh sebuah
pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan
kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instruksi
secara beruntun. Kita katakan bahwa tahapan pelaksanaan program mengikuti pola
beruntun atau prosedural. Paradigma pemrograman seperti ini dinamakan
pemrograman prosedural. Bahasa-bahasa tingkat tinggi seperti Cobol, Basic,
Pascal, Fortran, dan C/C++ mendukung kegiatan pemrograman prosedural,
sehingga dinamakan bahasa prosedural.
Selain paradigma pemrograman
prosedural, ada lagi paradigma yang lain yaitu pemrograman berorientasi objek (Object
Oriented Programming atau OOP). Paradigma pemrograman ini merupakan trend
baru dan sangat populer akhir-akhir ini. Pada paradigma OOP, data dan
instruksi dibungkus (encapsulation) menjadi satu. Kesatuan ini disebut
kelas (class) dan instansiasi kelas pada saat run-time disebut
objek (object). Data di dalam objek hanya dapat diakses oleh instruksi
yang ada di dalam objek itu saja.
Paradigma pemrograman yang
lain adalah pemrograman fungsional, pemrograman deklaratif, dan pemrograman
konkuren. Penulis dalam modul ini hanya menyajikan paradigma pemrograman
prosedural saja.
F.
Flowchart
Flowchart adalah gambaran
dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang
menyatakan arah alur program tersebut. Flowchart digunakan dalam pengembangan
program aplikasi, merupakan cara tradisional untuk mengajukan tahapan atau
langkah-langkah penyelesaian dalam bentuk diagram atau grafis.
Contoh 1 : Kasus dan
Penyelesaian Algoritma
1.
Menghitung luas dan keliling lingkaran. Proses kerjanya
sebagai berikut:
Algoritma dengan struktur
bahasa Indonesia
a.
Baca jari-jari lingkaran
b.
Tentukan konstanta phi = 3.14
c.
Hitung luas dan keliling
L = phi*r*r
K = 2*phi*r
d.
Cetak luas dan keliling
2.
Algoritma konversi suhu dalam derajat Celcius ke derajat
Kelvin
Penyelesaian menggunakan pseudocode:
Input (Celcius)
Kelvin = Celcius + 273
Output (Kelvin)
3.
Menghitung rata-rata tiga buah data, menggunakan algoritma
dalam stuktur bahasa Indonesia dan Psedocode
a.
Algoritma dengan struktur bahasa Indonesia
Baca bilangan a, b, dan c
Jumlahkan ketiga bilangan
tersebut
Bagi jumlah tersebut dengan
3
Tulis hasilnya
b.
Algoritma dengan pseudocode
input (a, b, c)
Jml = a+b+c
Rata = Jml/3
Output (Rata)
Contoh 2 : Algoritma dan
Flowchart
Buatlah algoritma dan
flowchart untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau
bilangan genap.
Algoritma dalam struktur
bahasa Indonesia:
1.
Tentukan bilangan yang akan diinputkan.
2.
Hitung sisa bagi antara bilangan dengan 2.
3.
Bila sisa hasil bagi sama dengan 0, maka bilangan itu adalah
bilangan genap tetapi bila sisa hasil bagi sama dengan 1, maka bilangan itu
adalah bilangan ganjil.
Flowchart menentukan Bilangan Ganjil
atau Bilangan Genap, adalah sebagai berikut:
Contoh 3 : Algoritma dan
Flowchart
Berikut ini contoh algoritma
dan flowchart untuk mencari hasil perhitungan 1+3+5+7+9+11+13+15.
Langkah-Langkah Penyelesaian
(Algoritma)
1.
Tentukan nilai awal untuk N = -1 dan JML = 0.
2.
Tentukan nilai beda bilangan N.
N = N + 2
3.
Hitung hasil perhitungan jumlah bilangan.
JML = JML + N
4.
Bandingkan nilai N, apakah nilai N = 15.
5.
Jika N = 15, berarti perhitungan jumlah bilangan sudah
terpenuhi, goto 7.
6.
Jika N 15, berarti perhitungan jumlah bilangan belum
terpenuhi, goto 2.
7.
Cetak nilai JML, yaitu hasil perhitungan jumlah bilangan 1 +
3 + 5 + 7 + 9 + 11 + 13 + 15.
Flowchart
0 komentar:
Posting Komentar