Anda di halaman 1dari 27

Algoritma dan Pemrograman

1. Apakah Itu 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. 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. Dalam beberapa konteks, algoritma adalah spesifikasi urutan
langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan
algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan
memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan.
Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah,
pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa
baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada
algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil
yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil
yang sedekat mungkin dengan nilai yang sebenarnya.

Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu
efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar
(paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan
keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang
menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar
memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam
kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk
menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun
algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian,
carilah algoritma yang paling efisien dan cepat.

3. Beda Algoritma dan Program

Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan


sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan
bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi
dari bahasa pemrograman. Beberapa pakar memberi formula bahwa :

Program = Algoritma + Bahasa (Struktur Data)


Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah
program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan
membuat program menjadi kurang baik, demikian juga sebaliknya.

Pembuatan algoritma mempunyai banyak keuntungan di antaranya :

Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman


manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang melaksanakannya.

Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.

Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena


algoritmanya sama.

Beberapa hal yang perlu diperhatikan dalam membuat algoritma :

Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi


tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.

Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.

Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini
dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi
algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka
sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.

Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam
notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh
komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau
diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat
bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan
spesifikasi mesin yang menjalannya.
Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.

Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh


komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada
beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :

a. Pendeklarasian variabel

Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa


pemrograman apabila tidak semua bahasa pemrograman membutuhkannya.

b. Pemilihan tipe data

Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian


variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.

c. Pemakaian instruksi-instruksi

Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki


kelebihan dan kekurangan yang berbeda.

d. Aturan sintaksis

Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa
pemrograman yang akan digunakan.

e. Tampilan hasil

Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan
disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi
program.

f. Cara pengoperasian compiler atau interpreter.

Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau


interpreter.

4. Algoritma Merupakan Jantung Ilmu Informatika

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu
komputer yang mengarah ke 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-langkah
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.

Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara
primitif yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan
diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat
menyebabkan kejadian.

Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma


tersebut. 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:

Mengerti setiap langkah dalam algoritma.

Mengerjakan operasi yang bersesuaian dengan langkah tersebut.

5. 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 pemrograman tertentu sehingga dapat dilaksanakan oleh
komputer.

Kata “algoritma” dan “program” seringkali dipertukarkan dalam penggunaannya.


Misalnya ada orang yang berkata seperti ini: “program pengurutan data menggunakan
algoritma selection sort”. Atau pertanyaan seperti ini: “bagaimana algoritma dan
program menggambarkan grafik tersebut?”. Jika Anda sudah memahami pengertian
algoritma yang sudah disebutkan sebelum ini, Anda dapat membedakan arti kata
algoritma dan program. Algoritma adalah langkah-langkah penyelesaikan masalah,
sedangkan program adalah realisasi algoritma dalam bahasa pemrograman. Program
ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat program disebut
pemrograman (programming). Orang yang menulis program disebut pemrogram
(programmer). Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi.
Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan,
maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan
komputer.

Secara garis besar komputer tersusun atas empat komponen utama yaitu, piranti
masukan, piranti keluaran, unit pemroses utama, dan memori. Unit pemroses utama
(Central Processing Unit – CPU) adalah “otak” komputer, yang berfungsi
mengerjakan operasi-operasi dasar seperti operasi perbandingan, operasi perhitungan,
operasi membaca, dan operasi menulis. Memori adalah komponen yang berfungsi
menyimpan atau mengingatingat.

Yang disimpan di dalam memori adalah program (berisi operasi-operasi yang akan
dikerjakan oleh CPU) dan data atau informasi (sesuatu yang diolah oleh operasi-
operasi). Piranti masukan dan keluaran (I/O devices) adalah alat yang memasukkan
data atau program ke dalam memori, dan alat yang digunakan komputer untuk
mengkomunikasikan hasil-hasil aktivitasnya. Contoh piranti masukan antara lain,
papan kunci (keyboard), pemindai (scanner), dan cakram (disk). Contoh piranti
keluaran adalah, layar peraga (monitor), pencetak (printer), dan cakram.

Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mula-
mula program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan
(execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke CPU.
CPU mengerjakan operasioperasi yang bersesuaian dengan instruksi tersebut. Bila
suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan di dalam
memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses
menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu
memori menuliskan keluaran tadi ke piranti keluaran (misalnya dengan
menampilkannya di layar monitor).

6. 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.
Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-
aturan tata bahasanya, pernyataan-pernyataannya, tata cara pengoperasian compiler-
nya, dan memanfaatkan pernyataan-pernyataan tersebut untuk membuat program
yang ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan bahasa
pemrogram, antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada, PL/I, Algol,
Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasabahasa simulasi seperti CSMP,
Simscript, GPSS, Dinamo. Berdasarkan terapannya, bahasa pemrograman dapat
digolongkan atas dua kelompok besar :

Bahasa pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah Cobol
(untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa
rakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-
bahasa simulasi, dan sebagainya.

Bahasa perograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi.
Yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C. Tentu saja
pembagian ini tidak kaku. Bahasabahasabertujuan khusus tidak berarti tidak bisa
digunakan untuk aplikasi lain. Cobol misalnya, dapat juga digunakan untuk terapan
ilmiah, hanya saja kemampuannya terbatas. Yang jelas, bahasabahasa pemrograman
yang berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula.

Berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke
bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua macam :
Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung
dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya
adalah bahasa mesin. CPU mengambil instruksi dari memori, langsung mengerti dan
langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangat
sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia. Sedangkan
bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai
dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya
masih perlu penerjemahan ke dalam bahasa mesin.

Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih
“manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja,
program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh
komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang
disebut kompilator atau compiler) 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.

Bahasa pemrograman bisa juga dikelompokkan berdasarkan pada tujuan dan


fungsinya. Di antaranya adalah :

7. Menilai Sebuah Algoritma

Ketika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan
untuk memecahkan masalah itu ada kemungkinan bisa banyak (tidak hanya satu).
Dan kita memilih mana yang terbaik di antara teknikteknik itu. Hal ini sama juga
dengan algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan
metode dan logika yang berlainan. Yang menjadi pertanyaan adalah bagaimana
mengukur mana algoritma yang terbaik?. Beberapa persyaratan untuk menjadi
algoritma yang baik adalah :

Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus
berakurasi tinggi dan benar.

Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin
dan frekuensi kalkulasi yang sependek mungkin.
Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja,
tapi juga untuk kasus lain yang lebih general.

Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan


lebih jauh berdasarkan perubahan requirement yang ada.

Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda.
Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).

Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di


berbagai platform komputer.

Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak
ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit
dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti.
Setiap langkah harus jelas dan pasti.

Contoh : Tambahkan 1 atau 2 pada x.

Instruksi di atas terdapat keraguan.

Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama
banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.

Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang
akan menjalankannya.

Contoh : Hitung akar 2 dengan presisi sempurna.

Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah.

Misal : Hitung akar 2 sampai lima digit di belakang koma.

Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah
apakah bila jumlah instruksinya berhingga maka pasti terminate?
Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti
dengan seksama maka dihasilkan output yang diinginkan.

Sedangkan kriteria Algoritma menurut Donald E. Knuth adalah :

Input: algoritma dapat memiliki nol atau lebih inputan dari luar.

Output: algoritma harus memiliki minimal satu buah output keluaran.

Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak


ambigu.

Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).

Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan
dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1

Namun ada beberapa program yang memang dirancang untuk unterminatable : contoh
Sistem Operasi.

8. Penyajian Algoritma

Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan
dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa
tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode.
Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya
seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan
algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma
disajikan dengan gambar, misalnya dengan flowchart. Secara umum, pseudocode
mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah
satu cara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan
bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan.
Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan
digunakan telah diketahui sejak awal.
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan
antar proses 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 bagian-bagian yang terlupakan
dalam analisis masalah. Di

samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara
pemrogram yang bekerja dalam tim suatu proyek.

Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :

Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan


urutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media
lain, dalam suatu sistem pengolahan data. Beberapa contoh Flowchart sistem:

Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan


urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.

Kaidah-Kaidah Umum Pembuatan Flowchart Program

Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat
mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisis
suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi
antara satu pemrogram dengan yang lainnya. Namun secara garis besar setiap
pengolahan selalu terdiri atas 3 bagian utama, yaitu :

Input,

Proses pengolahan dan


Output

Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:

START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum


menangani pemecahan persoalan.

READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.

PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan
data yang dibaca.

WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.

END, mengakhiri kegiatan pengolahan.

Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun
ada beberapa anjuran :

Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga
jalannya proses menjadi singkat.

Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk
memperjelas.

Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia
pemrograman :

Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus
sederhana.

Kasus : Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari


luas persegi panjang.

Solusi : Perumusan untuk mencari luas persegi panjang adalah :

L=p.l
di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar
persegi.

Keterangan :

Simbol pertama menunjukkan dimulainya sebuah program.

Simbol kedua menunjukkan bahwa input data dari p dan l.

Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan
L = p. l.

Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.

Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End.

9. Struktur Dasar Algoritma

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah


tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection),
pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar
pembangunan algoritma ada tiga, yaitu:

Struktur Runtunan

Digunakan untuk program yang pernyataannya sequential atau urutan.

Struktur Pemilihan

Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.

Struktur Perulangan

Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.

Dalam Algoritma, tidak dipakai simbol-simbol / 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 manapun.
Definisi Pseudo-code

Kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara
menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia untuk
menuliskan algoritma.

Contoh kasus : mencari bilangan terbesar dari dua bilangan yang diinputkan

Solusi Pseudo-code :

Masukkan bilangan pertama

Masukkan bilangan kedua

Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan
langkah 5.

Tampilkan bilangan pertama

Tampilkan bilangan kedua

Solusi Algoritma :

Masukkan bilangan pertama (a)

Masukkan bilangan kedua (b)

if a > b then kerjakan langkah 4

print a

print b

Contoh Lain Algortima dan Pseudo-code :

10. Tahapan dalam Pemrograman

Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman


dengan komputer adalah :
Definisikan Masalah

Buat Algoritma dan Struktur Cara Penyelesaian

Menulis Program

Mencari Kesalahan

Uji dan Verifikasi Program

Dokumentasi Program

Pemeliharaan Program

Sumber :

http://lecturer.ukdw.ac.id/anton/download/strukdat1.pdf
http://usupress.usu.ac.id/file /Algoritma%20dan%20Pemrograman;%20Teori%20dan
%20Praktik%20dalam%20P

Diagram alur dari sebuah algoritme (Algoritme Euclid) untuk menghitung faktor
persekutuan terbesar (f.p.b.) dari dua angka a dan b dalam lokasi bernama A dan B.
Algoritme dijalankan dengan pengurangan berturut-turut dalam dua pengulangan:
JIKA pengujian B >= A menghasilkan "ya" (atau benar) (lebih akuratnya angka b
dalam lokasi B lebih besar atau sama dengan angka a dalam lokasi A) MAKA,
algoritme menentukan B ← B - A (artinya angka b - a menggantikan b sebelumnya).
Hal yang sama, JIKA A > B, MAKA A ← A - B. Proses tersebut berhenti saat (isi
dari) B adalah 0, menghasilkan f.p.k. dalam A. (Algoritme tersebut diambil dari Scott
2009:13; simbol dan gaya penggambaran dari Tausworthe 1977).

Dalam matematika dan ilmu komputer, algoritme adalah prosedur langkah-demi-


langkah untuk penghitungan. Algoritme digunakan untuk penghitungan, pemrosesan
data, dan penalaran otomatis.

Algoritme adalah metode efektif


diekspresikan sebagai rangkaian terbatas[1]
dari instruksi-instruksi yang telah
didefinisikan dengan baik[2] untuk
menghitung sebuah fungsi.[3] Dimulai
dari sebuah kondisi awal dan input awal
(mungkin kosong),[4] instruksi-instruksi
tersebut menjelaskan sebuah komputasi
yang, bila dieksekusi, diproses lewat
sejumlah urutan kondisi terbatas[5] yang
terdefinisi dengan baik, yang pada akhirnya
menghasilkan "keluaran"[6] dan
berhenti di kondisi akhir. Transisi dari satu
kondisi ke kondisi selanjutnya tidak
harus deterministik; beberapa algoritme,
dikenal dengan algoritme pengacakan,
menggunakan masukan acak.[7]
Walaupun algorism-nya al-Khawarizmi dirujuk sebagai aturan-aturan melakukan
aritmetika menggunakan bilangan Hindu-Arab dan solusi sistematis dan persamaan
kuadrat, sebagian formalisasi yang nantinya menjadi algoritme modern dimulai
dengan usaha untuk memecahkan permasalahan keputusan (Entscheidungsproblem)
yang diajukan oleh David Hilbert pada tahun 1928. Formalisasi selanjutnya dilihat
sebagai usaha untuk menentukan "penghitungan efektif" [8] atau "metode efektif"; [9]
formalisasi tersebut mengikutkan Godel-Herbrand-Kleene fungsi rekursif-nya Kurt
Godel - Jacques Herbrand - Stephen Cole Kleene pada tahun 1930, 1934, dan 1935,
kalkulus lambda-nya Alonzo Church pada tahun 1936, "Formulasi 1"-nya Emil Post
pada tahun 1936, dan Mesin Turing-nya Alan Turing pada tahun 1936-7 dan 1939.
Dari definisi formal dari algoritme di atas, berkaitan dengan konsep intuituf, masih
tetap ada masalah yang menantang. [10]

Dasar-dasar pemrograman komputer

PERTEMUAN I

Dasar-dasar pemrograman computer

Instruksi harus diberikan kepada komputer agar dapat memecahkan suatu masalah.
Langkah-langkah yang dilakukan untuk memberikan instruksi kepada komputer
untuk memecahkan masalah inilah yang dinamakan pemrograman komputer.
Pemrograman komputer bukanlah hal yang sederhana. Kegiatan ini memerlukan
ketelitian dan kemauan untuk bekerja dalam jangka waktu yang lama.

1. Pemrograman komputer

Dalam komunikasi sehari-hari seorang harus berbicara dalam bahasa yang sama
dengan orang tersebut. Hal ini berlaku juga untuk berkomunikasi dengan komputer.
Kita harus menggunakan bahasa yang dimengerti oleh komputer untuk memberikan
suatu instruksi. Pada dasarnya komputer adalah sebuah mesin digital, artinya
komputer hanya mengenal kondisi adanya arus (dilambangkan sebagai angka 1) atau
tiadanya arus (dilambangkan sebagai angka 0). Dengan kata lain sandi 1 dan 0 harus
digunakan untuk melakukan pemrograman. Sandi tersebut dikenal sebagai bahasa
mesin. Kita dapat membayangkan bagaimana sulitnya menggunakan bahasa mesin
sebagai bahasa pemrograman..

Karena bahasa mesin sangat sulit maka muncul ide untuk melambangkan untaian
sandi 1 dan 0 dengan singkatan kata yang mudah dipahami manusia. Sebagai contoh
dalam prosesor Intel terdapat perintah 0011 1010 0000 1011. Perintah dalam bahasa
mesin ini artinya sama dengan perintah assembly CMP AL, 0D yang artinya
bandingkan nilai register AL dengan 0D. CMP sebenarnya adalah singkatan dari
compare. Dapat dilihat disini bahwa perintah tersebut lebih mudah dipahami
dibandingkan dengan urut-urutan bilangan biner seperti tersebut diatas.

Pemrograman dengan basa assembly untuk banyak orang masih dirasakan terlalu
sulit. Karena hal tersebut akhirnya dikembangkan suatu bahasa pemrograman yang
lebih yang lebih mudah digunakan. Bahasa pemrograman ini menggunakan bahasa
generasi ketiga atau disingkat 3GL, biasa juga disebut sebagai high-level language.
Contoh dari bahasa ini adalah bahasa Basic, Pascal, C, C++, COBOL, dsb.

Bahasa generasi ketiga biasanya menggunakan kata-kata dalam bahasa Inggris karena
bahasa inggris merupakan bahasa internasional. Sebagai contoh anda dapat
menuliskan perintah berikut dalam bahasa Pascal . Sebagai contoh :

writeln(‘Hallo’); {Pascal}

printf(“Hallo”); // C

cout << “Hallo” << endl; // C++

ketiga pernyataan diatas bertujuan sama yaitu menuliskan teks “Hallo” ke keluaran
standar biasanya ke layar komputer.

Ketiga perintah sederhana diatas sebenarnya terdiri dari puluhan atau mungkin
ratusan pernyataan assembly. Perangkat lunak yang menterjemahkan program dalam
bahasa yang mudah dipahami manusia ke dalam bahasa mesin dapat digolongkan
menjadi dua jenis yaitu compiler atau interpreter.

Interpreter menerjemahkan program baris per baris, artinya jika suatu baris akan
dieksekusi maka baris tersebut harus diterjemahkan terlebih dahulu kedalam bahasa
mesin. Apabila baris berikutnya akan dieksekusi maka baris tersebut baru
diterjemahkan ke dalam bahasa mesin. Contoh bahasa pemrograman yang
menggunakan interpreter adalah Basic.

Compiler akan menterjemahkan menterjemahkan semua perintah kedalam bahasa


mesin kemudian menjalankan hasil terjemahannya. Hasil terjemahan, untuk
selanjutnya disebut sebagai binary file, ini disimpan dalam file atau memori. Contoh
bahasa pemrograman yang menggunakan compiler adalah adalah Pascal, C, dan C++

Perkembangan bahasa pemrograman tidak hanya sampai pada generasi ketiga saja.
Ada generasi lanjutan bahasa pemrograman yaitu 4GL (fourth generation language).
Bahasa ini banyak digunakan untuk pengembangan aplikasi database. Salah satu
contohnya adalah SQL (structured query language). Pada bahasa ini perintah yang
diberikan lebih manusiawi misalnya : “Select Name, Address from Employee” untuk
mengambil data Nama dan Alamat dari tabel Karyawan.

2. Langkah-langkah dalam pemrograman komputer

Dalam melakukan suatu kegiatan, siapapun memerlukan langkah-langkah yang harus


dilalui. Demikian juga dengan pemrograman komputer. Urut-urutan langkah yang
disajikan disini tidak bersifat mutlak artinya tidak harus melakukan dari langkah
pertama, kedua dan selanjutnya. Ada beberapa langkah yang mungkin atau harus
diulang sampai beberapa kali. Berikut ini adalah langkah-langkah yang harus
dilakukan dalam pemrograman komputer :

Mendefinisikan masalah. Langkah pertama ini sering kali tidak dilakukan oleh
banyak pemrogram. Begitu mendapat perintah untuk membuat suatu program,
mereka langsung menulis programnya tanpa mendefinisikan masalahnya terlebih
dahulu.

Menentukan solusi. Setelah masalah didefinisikan dengan jelas, masukan apa yang
diberikan sudah jelas, keluaran apa yang diinginkan sudah jelas, langkah selanjutnya
adalah mencari jalan bagaimana masalah tersebut diselesaikan. Apabila permasalahan
terlalu kompleks, biasanya kita harus membaginya ke dalam beberapa modul kecil
agar lebih mudah diselesaikan.
Sebagi contoh, program untuk menghitung invers matriks, dapat dibagai menjadi
beberapa modul kecil. Modul pertama adalah meminta masukan dari pengguna
berupa matriks bujursangkar. Modul kedua adalah mencari invers matrik yang
dimasukkan pengguna. Modul terakhir adalah menampilkan hasilnya kepada
pengguna. Modul-modul tersebut dikenal juga segai sub routine.

Memilih algoritma. Langkah ini merupakan salah satu langkah penting dalam
pemrograman komputer. Pemilihan algoritama yang salah akan menyebabkan
program tidak dapat berjalan dengan baik.

Menulis program. Pada langkah ini program harus benar-benar dituliskan pada
komputer untuk memecahkan masalah yang diberikan. Untuk menulis program
sangat disarankan untuk menggunakan bahasa generasi ketiga atau keempat.
Penulisan program dengan menggunakan bilangan biner atau dengan assembly akan
sangat sulit.

Menguji program. Setelah program selesai ditulis, program tersebut harus diuji.
Pengujian meliputi : keberhasilan kompilasi, keberhasilan output dan keberhasilan
pemecahan kasus.

Menulis dokumentasi. Hal ini biasanya dilakukan bersamaan dengan menulis


program. Artinya pada setiap baris program , atau setiap beberapa baris program
dilakukan penulisan komentar. Dokumentasi merupakan hal yang sangat
penting.Dokumentasi diperlukan terutama pada saaat akan melakukan perubahan
program atau membaca program yang sudah ada. Komentar-komentar oendek pada
program biasanya sudah cukup. Namun akan lebih baik jika dituliskan pada file
terpisah untuk kemudian dicetak diatas kertas bilamana perlu.

Perawatan. Langkah ini dilakukan setelah program selesai dibuat dan sudah
digunakan oleh pengguna. Hal yang paling sering terjadi disini adalah munculnya bug
yang sebelumnya tidak terdeteksi. Atau mungkin juga pengguna ingin menambahkan
fisilitas baru. Apabila hal seperti ini terjadi harus dilakukan revisi terhadap program.

3. Algoritma

Meskipun pada penjelasan diatas algoritma hanyalah bagian dari 7 langkah dalam
pembuatan program, namun ia memiliki posisi yang teramat penting. Algoritma
adalah urutan langkah berhingga untuk memecahkan masalah logika atau
matematika. Dalam kehidupan sehari-hari sebenarnya kita juga menggunakan
algoritma untuk melakukan sesuatu. Sebagai contoh untuk menulis surat diperlukan
langkah-langkah sebagai berikut :

Mempersiapkan kertas dan amplop

Mempersiapkan alat tulis

Mulai menulis.

Memasukkan kertas ke dalam amplop.

Pergi ke kantor pos untuk mengeposkan surat tersebut.

Langkah-langkah dari nomor 1 sampai dengan nomor 5 di atas itulah yang disebut
dengan algoritma. Jadi sebenarnya kita menggunakan algoritma baik dengan sadar
maupun tanpa kita sadar.

Dalam banyak kasus, algoritma yang dilakukan tidak selalu berutan seperti diatas.
Kadang-kadang harus memilih dua atau beberapa pilihan. Sebagai contoh jika kita
ingin makan, kita harus menentukan akan memasak sendiri atau dirumah makan. Jika
kita memilih untuk makan dirumah makan kita akan menjalankan algoritma yang
berbeda jika kita ingin memasak sendiri. Didalam pemrograman hal tersebut dikenal
sebagai percabangan.

Dalam kasus lain lagi mungkin kita harus melakukan langkah-langkah tertentu
beberapa kali Sebagai contoh, saat kita menulis surat, sebelum memasukkan kertas ke
dalam amplop, mungkin kita harus memeriksa apakah surat tersebut sudah benar atau
belum. Jika belum benar berarti kita harus menyisihkan kertas baru untuk
memperbaiki surat tersebut. Demikian seterusnya sampai surat yang dibuat sesuai
dengan yang diharapkan. Hal seperti ini disebut sebagai pengulangan.

4. Contoh algoritma untuk memecahkan masalah matematika


Misalkan kita ingin menghitung luas lingkaran dari masukan berupa jari-jari
lingkaran Rumus luas lingkaran adalah :

Luas = R2

Maka algoritma untuk menghitung luas lingkaran adalah :

Masukkan R

Pi = 3.14

Luas = Pi * R * R

Tulis Luas

Perhatikanlah bahwa tanda = berarti merupakan pemberian nilai kepada variabel-


variable yang berada disebelah kiri. Sebagai contoh untuk baris kedua, nilai 3.14
diberikan pada variable Pi. Berikutnya nilai Pi * R * R diberikan kepada variabel
Luas.

Baris pertama dari algoritma diatas meminta masukkan dari pengguna berupa jari-jari
lingkaran yang disimpan pada variabel R. pada baris kedua nilai disimpan pada
variabel dengan nama Pi. Baris ketiga menghitung luas lingkaran dengan rumus R2
atau yang dituliskan Pi * R * R. Luas lingkaran ini disimpan pada variabel Luas.
Baris terakhir menuliskan luas lingkaran tersebut.

5. Urut-urutan (Sequence)

Urut-urutan atau sequence adalah rangkaian tindakan yang dilakukan secara berurut.
Contoh algoritma yang diperlihatkan diatas menunjukkan program yang berurut.
Untuk memudahkan memahami algoritma, diagram alur akan sangat membantu.
Contoh dari diagram tersebut terdapat pada gambar

6. Pseudocode
Pseudocode adalah penulisan program dengan menggunakan bahasa yang kita
pergunakan sehari hari. Bahasa yang digunakan bisa saja bahasa Indonesia, Bahasa
Inggris, C-like, Pascal-like ataupun bentuk bentuk yang lainnya. Contoh pseudococde
dari algoritma diatas adalah :

Program : Menghitung Luas Lingkaran

Mulai

Masukkan nilai jari-jari kedalam variabel R

Masukkan 3.14 kedalam variabel Pi

Masukkan hasil perkalian Pi dengan R kuadrat kedalam variabel Luas

Tampilkan nilai variabel luas

Selesai

Apapun bentuk tampilan algoritma anda yang terpenting adalah logika dari program
yang anda buat.

7. Percabangan dan Pengulangan


Tidak setiap program memiliki algoritma yang hanya terdiri dari urut-urutan saja.
Pada kenyataannya hal tersebut tidak mungkin terjadi pada pemrograman didunia
sains atau bisnis. Sebuah program selalu terdiri dari urut-urutan(sequence),
percabangan (condition), dan pengulangan (repetition) . Percabangan dan
pengulangan selalu dilakukan terhadap pernyataan-pernyataan program yang
berbentuk urut-urutan.

Percabangan adalah pemilihan kondisi untuk menentukan pernyataan mana yang akan
dieksekusi selanjutnya. Sedangkan pengulangan adalah penentuan apakah suatu
kondisi sudah terpenuhi untuk mengulangi atau menghentikan pengulangan eksekusi
sebuah pernyataan program atau sebuah urut-urutan pernyataan program.

Pengantar Algoritma 7 1.4 BENTUK-BENTUK DASAR ALGORITMA

Algoritma secara umum memiliki beberapa bentuk dasar, yaitu: 1. Algoritma


Sekuensial Algoritma sekuensial banyak dijumpai pada kehidupan sehari-hari,
misalnya pada kasus “mengirimkan surat”. Pada kasus tersebut terdapat langkah-
langkah yang harus dilakukan, yaitu: a. Membeli amplop b. Membeli perangko c.
Memasang perangko ke amplop d. Menuliskan alamat pengirim dan alamat tujuan e.
Pergi ke kantor pos atau memasukkan surat itu ke dalam kotak surat f. Surat
terkirim Pada contoh di atas dapat dilihat bahwa langkah harus dilakukan secara
runtut dan ada yang tidak boleh dibolak-balik urutannya. Misalnya, amplop
harus dipasangi perangko terlebih dahulu baru kemudian dikirim ke kantor pos.
Surat tidak dapat dikirimkan terlebih dahulu tanpa dimasukkan ke amplop yang
berperangko terlebih dahulu. Algoritma sekuensial juga muncul pada kasus Ibu
Titin yang hendak memasak kentang. Langkah-langkah yang dilakukannya adalah
sebagai berikut: a. Ibu Titin mengambil kantong kentang dari dalam rak. b. Ibu Titin
mengambil panci dari almari. c. Ibu Titin mengupas kentang. d. Ibu Titin
mengembalikan sisa kentang dalam kantong ke dalam rak. e. Ibu Titin memasak
kentang. f. Ibu Titin menghidangkan kentang yang sudah masak. Pada prinsipnya
algoritma sekuensial adalah alur pemikiran yang terstruktur, terurut, pasti, dan
jelas untuk menyelesaikan masalah.

8 Algoritma dan Pemrograman dengan Bahasa C Dalam algoritma ini kadang ada
langkah-langkah yang tidak boleh ditukar urutannya. 2. Algoritma Percabangan
Pada contoh kasus algoritma sekuensial “mengirimkan surat” dapat dilihat
bahwa pada langkah ke-5, yang mana surat yang sudah siap dikirim dapat
dikirimkan dengan pergi ke kantor pos atau dengan memasukkannya ke dalam
kotak pos. Pada langkah tersebut terdapat kata ATAU, yang berarti pemilihan
solusi. Ada dua solusi yang bisa dipilih, tetapi tidak keduanya. Algoritma untuk
memilih salah satu dari beberapa pilihan yang ada disebut algoritma
percabangan/pemilihan. Yang perlu diperhatikan pada algoritma ini adalah solusi
pilihan akan dilakukan jika kondisinya terpenuhi, dalam arti kondisinya
menghasilkan nilai benar (TRUE). Jika kondisi benar maka solusi akan
dijalankan, dan jika salah maka tidak akan dijalankan; bisa jadi menjalankan
solusi lain atau tidak bertindak sama sekali. Pada contoh kedua tentang Ibu Titin,
jika kita tambahkan langkah berikut: a. Ibu Titin mengambil kantong kentang dari
dalam rak. b. Ibu Titin mengambil panci dari almari. c. Menurut kebiasaan Ibu
Titin, pada hari biasa Ibu Titin menggunakan baju warna cerah sehingga dia harus
menggunakan celemek. Pada hari Sabtu dan Minggu dia menggunakan baju warna
hitam. Maka perlu diperhatikan, sebelum mengupas kentang, apakah Ibu Titin
memakai celemek atau tidak, bergantung pada hari apa saat itu. d. Ibu Titin
mengupas kentang. e. Ibu Titin mengembalikan sisa kentang dalam kantong ke
dalam rak. f. Ibu Titin memasak kentang. g. Ibu Titin menghidangkan kentang yang
sudah masak. Pada langkah ke-3 (c) di atas juga terdapat algoritma pemilihan:
jika hari Senin – Jumat, sebelum langkah mengupas kentang, Ibu Titin harus
memakai celemek untuk melindungi bajunya. Selain itu, jika hari Sabtu dan
Minggu, Ibu Titin tidak perlu menggunakan celemek karena warna bajunya tidak
mudah kotor. Berarti algoritma percabangan adalah

Pengantar Algoritma 9 algoritma di mana programmer harus memilih langkah


yang harus dia lakukan berdasarkan kondisi tertentu. 3. Algoritma Perulangan
Berdasarkan contoh Ibu Titin sebelumnya akan ditambahkan kasus baru, yaitu
Ibu Titin mendapatkan pesanan masak untuk katering kentang, sehingga dia
wajib mengupas kentang cukup banyak. Jumlah kentang harus disesuaikan dengan
jumlah pesanan, misalnya 50 buah kentang. Berdasarkan kasus baru ini akan
diformulasikan kembali langkah-langkah yang harus dilakukan Ibu Titin, yaitu: a.
Ibu Titin mengambil kantong kentang dari dalam rak. b. Ibu Titin mengambil panci
dari almari. c. Menurut kebiasaan Ibu Titin, pada hari biasa Ibu Titin menggunakan
baju warna cerah sehingga dia harus menggunakan celemek, sedangkan pada
hari Sabtu dan Minggu dia menggunakan baju warna hitam. Oleh sebab itu
perlu diperhatikan apakah sebelum mengupas kentang, Ibu Titin harus memakai
celemek atau tidak, yang bergantung pada hari apa saat itu. d. Ibu Titin mengupas
kentang. Karena harus mengupas sebanyak 50 buah kentang maka langkah ini akan
diulangi sebanyak 50 kali. e. Setelah 50 kali mengupas kentang, Ibu Titin
mengembalikan sisa kentang dalam kantong ke dalam rak. f. Ibu Titin memasak
kentang. g. Ibu Titin menghidangkan kentang yang sudah masak. Algoritma
perulangan berarti terdapat satu atau lebih kejadian/tindak-an yang harus diulang
terus-menerus sampai kondisinya tidak terpenuhi lagi. Pada contoh di atas Ibu Titin
harus mengulang mengupas kentang secara terus-menerus sampai kondisi tercapai,
yaitu kondisi di mana kentang mencapai 50 buah. Dari ketiga algoritma di atas,
sangat mungkin terjadi kombinasi, misal-nya kita lihat pada contoh Ibu Titin lagi.
Pada saat Ibu Titin mengupas kentang sebanyak 50 buah, bisa jadi tidak semua
kentang yang dikupas baik mutunya, mungkin ada yang busuk. Jika kentang busuk
maka tidak ikut dihitung dan dibuang. Namun jika kentangnya baik dan
bermutu,

10 Algoritma dan Pemrograman dengan Bahasa C maka akan dihitung dan


digunakan untuk dimasak. Karena itu akan dilakukan pengubahan algoritma
sebagai berikut: a. Ibu Titin mengambil kantong kentang dari dalam rak. b. Ibu Titin
mengambil panci dari almari. c. Menurut kebiasaan Ibu Titin, pada hari biasa Ibu
Titin menggunakan baju warna cerah sehingga dia harus menggunakan celemek,
sedangkan pada hari sabtu dan minggu dia menggunakan baju warna hitam.
Maka sebelum mengupas kentang perlu diperhatikan apakah Ibu Titin harus
memakai celemek atau tidak, yang bergantung pada hari apa saat itu. d. Ibu Titin
mengupas kentang. Karena harus mengupas sebanyak 50 buah maka langkah ini
akan diulangi 50 kali. e. Periksa kentang: jika mutunya baik maka akan dihitung,
tetapi jika tidak maka akan dibuang dan tidak dihitung. f. Setelah selesai mengupas
50 kentang, Ibu Titin mengembalikan sisa kentang dalam kantong ke dalam rak. g.
Ibu Titin memasak kentang. h. Ibu Titin menghidangkan kentang yang sudah masak.
Pada contoh terakhir ini dapat dilihat bahwa algoritma Ibu Titin mengandung
semua bentuk algoritma, yaitu sekuensial, percabangan dan penggandaan

KRITERIA ALGORITMA Menurut Donald E. Knuth, algoritma yang baik


memiliki kriteria sebagai berikut: 1. Input Dari sisi input, minimal program harus
memiliki nol input atau lebih dari pengguna. Program pasti memiliki input. Yang
dimaksud memiliki nol input berarti program tidak mendapatkan masukan data dari
pengguna secara langsung, namun semua data yang akan digunakan oleh program
sudah dideklarasikan di dalam kode program yang akan dieksekusi. Jadi tidak perlu
di-input-kan dari luar. Sedangkan jika mendapat input dari pengguna, data bisa
dimasukkan melalui tampilan program, misalnya melalui textbox, ataupun melalui
file/basis data yang terdapat di suatu tempat/server tertentu.

6 Algoritma dan Pemrograman dengan Bahasa C 2. Output Dari sisi output,


minimal program harus memiliki 1 output. Program pasti menghasilkan output
karena program dibuat untuk tujuan tertentu. Tujuan itulah output-nya. Ouput
program bisa ditampilkan ke layar (screen), ditulis ke file, atau disimpan di clipboard
untuk kemudian dipakai di program lain atau disimpan dalam basis data. 3. Finite
(Terbatas) Program harus pasti dan berhenti, bukan tak terhingga. Suatu program
yang dieksekusi haruslah berhenti dan selesai, bukan berjalan terus-menerus
hingga hang up atau not responding, dan akhirnya harus di-kill (dimatikan) dengan
paksa. Suatu program dapat mengalami infinite (tak pernah berhenti) karena
kesalahan programmer, mungkin karena kurang teliti atau karena tidak ada
kondisi yang bisa membuatnya berhenti, atau mungkin karena ada error yang
tidak terduga/tidak tertangani dengan baik, misalnya file tidak ada namun
program mencarinya terus-menerus. Memang ada program yang seolah-olah tidak
pernah mati (terminate), misalnya sistem operasi, namun sebenarnya sistem
operasi juga pasti akan berhenti, yaitu ketika sistem operasi tersebut di-shutdown. 4.
Definite (Pasti) Program harus jelas arah dan tujuannya. Suatu program harus
jelas kapan mulai dan kapan berakhir, apa tujuannya, dan memiliki logika yang
jelas agar dapat menghasilkan output yang sesuai dengan yang diharapkan. 5.
Efisien Artinya, program harus efisien, tidak memakan banyak memori, tidak
melakukan hal-hal yang tidak perlu. Suatu operasi/kegiatan yang tidak perlu,
misalnya adalah x = 5 + 0 atau y = 100 * 0. Mengapa operasi tersebut tidak
efisien, karena setiap operasi pasti membutuhkan waktu eksekusi, padahal operasi
tersebut jelas tidak berguna, karena berapapun bilangan yang ditambah dengan
nol pasti bilangan itu sendiri dan bilangan apa pun dikalikan dengan nol pasti
nol. Nah, mengapa harus dihitung lagi? Berarti program tidak efisien

Anda mungkin juga menyukai