1
BAB I PENGANTAR ALGORITMA
1.1 Kompetensi Dasar
Setelah mengikuti perkuliahan ini diharapkan mahasiswa akan dapat
1) memahami pengertian algoritma;
2) memahami arti penting algoritma dalam dunia pemrograman komputer;
3) memahami perbedaan antara belajar memrogram dengan belajar bahasa
pemrograman.
1.2 Dasar Teori
1.2.1 Pendahuluan
Komputer merupakan alat bantu untuk memudahkan kerja manusia dalam menyelesaikan
masalah. Masalah yang akan diselesaikan oleh komputer tidak dapat dengan serta merta
“disodorkan” begitu saja, akan tetapi masalah tersebut haruslah diformulasikan dalam
bentuk kode-kode atau kumpulan instruksi yang dapat dimengerti oleh komputer. Kode-
kode atau kumpulan instruksi disusun dalam bentuk program yang diimplementasikan
oleh programmer dan aktivitas ini dinamakan dengan aktivitas pemrograman.
Aktivitas pemrograman merupakan upaya untuk mengimplementasikan suatu
permasalahan nyata ke dalam suatu program. Permasalahan yang akan
diimplementasikan harus melalui beberapa tahapan penyelesaian masalah sehingga dalam
pengimplementasian masalah tersebut ke dalam bentuk program tidak terjadi kesalahan,
adapun tahapan penyelesaiannya masalah tersebut antara adalah sebagai berikut :
a. masalah yang akan diselesaikan diformulasikan tentang bagaimana logika
penyelesainnya masalahnya.
b. dari logika penyelesaian masalah selanjutnya disusunlah suatu algoritma yang berisi
urutan langkah untuk menyelesaikan masalah tersebut. algoritma dapat dituangkan
dengan menggunakan tool-tool standar seperti bentuk flowchart atau diagram alir,
structure english, dan atau pseudocode.
c. dari algoritma yang disusun selanjutnya diimplementasikan dengan menuliskan coding
program dengan bahasa pemrograman yang sesuai.
Pengantar Algoritma 2
d. program yang sudah dibuat dilakukan pengujian-pengujian sampai tidak terjadi
kesalahan, baik kesalahan secara sintaksis, semantiknya atau kesalahan secara logika.
e. dari rangkaian tahap 1 sampai dengan tahap 4 dilakukan evaluasi sejauh mana telah
diimplementasikan, bila masih ada kesalahan atau kekurangan maka kembali
dilakukan pengecekan mulai tahap pertama ke tahap berikutnya.
Bila langkah tersebut dikerjakan secara urut maka kemungkinan terjadinya
ketidaksingkronan permasalahan dengan hasil implementasi dalam bentuk program dapat
diminimalisir. Tetapi sebelum semua hal yang telah dijelaskan tersebut pemrogram harus
belajar dulu tentang dasar-dasar yang terkait dengan algoritma dan pemrograman.
1.2.2 Istilah-istilah Dasar
A. Bahasa pemrograman
Bahasa pemrograman merupakan prosedur atau tata cara penulisan program.Ada dua
faktor penting dalam bahasa pemrograman yaitu :
1) sintax, yaitu aturan-aturan gramatikal yang mengatur tata cara penulisan kata,
ekspresi dan pernyataan.
2) semantik, yaitu aturan-aturan yang menyatakan suatu arti.
B. Program
Program merupakan kata, ekspresi, pernyataan atau kombinasi yang disusun dan
dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk
menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa
pemrograman sehingga dapat dieksekusi oleh komputer.
C. Pemrograman
Pemrograman merupakan proses mengimplementasikan urutan langkah untuk
menyelesaikan masalah dengan menggunakan bahasa pemrograman.
D. Pemrograman terstruktur
Pemrograman terstruktur merupakan proses mengimplementasikan urutan langkah untuk
menyelesaikan masalah dalam bentuk program yang memiliki rancang bangun yang
terstruktur dan tidak berbelit-belit sehingga mudah ditelusuri, dipahami, dan
dikembangkan oleh siapa saja.
Pengantar Algoritma 3
E. Ciri Teknik Pemrograman Terstruktur
Ciri-ciri atau karakteristik pemrograman terstruktur adalah
1) mengandung teknik pemecahan masalah yang tepat dan benar;
2) memiliki algoritma pemecahan masalah yang bersifat sederhana, standar dan efektif
dalam memecahkan masalah;
3) teknik penulisan program memiliki struktur logika yang benar dan mudah dipahami;
4) program semata-mata terdiri dari tiga struktur dasar, yaitu sequence structure, looping
structure, dan selection structure.
5) menghindari penggunaan instruksi GOTO(peralihan proses tanpa syarat tertentu)
yang menjadi program tidak terstruktur dengan baik;
6) membutuhkan biaya testing yang rendah;
7) memiliki dokumentasi yang baik;
8) membutuhkan perawatan dan pengembangan yang rendah.
F. Standar Program Yang Baik
Untuk menentukan standar program yang baik dibutuhkan beberapa standar sebagai dasar
penilaian, yaitu
1) pemecahan masalah;
2) penyusunan program;
3) perawatan program;
4) standar prosedur.
1.2.3 Standar Teknik Pemecahan Masalah
A. Teknik Top-Down
Teknik Top-Down merupakan teknik pemecahan masalah yang paling umum digunakan.
Pada teknik ini, suatu masalah yang kompleks dibagi-bagi ke dalam beberapa kelompok
masalah yang lebih kecil. Dari kelompok masalah yang kecil tersebut dianalisis. Apabila
dimungkinkan maka masalah tersebut akan dipilih lagi menjadi subbagian dan setelah itu
disusun langkah untuk menyelesaikannya secara detail.
B. Tenik Button-Up
Tenik Button-Up merupakan teknik pemecahan masalah yang mulai ditinggalkan, karena
sulit untuk melakukan standarisasi proses dari prosedur-prosedur yang sudah terbentuk
yang akan digabungkan. Pada teknik ini, bila ada masalah yang akan diselesaikan, maka
Pengantar Algoritma 4
pemecahan masalah dilakukan dengan menggabungkan prosedur-prosedur yang ada
menjadi satu kesatuan program guna menyelesaikan masalah tersebut.
C. Apa 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.
Menurut Kamus Besar Bahasa Indonesia terbitan Balai Pustaka tahun 1988 algoritma
diartikan sebagai urutan logis pengambilan putusan untuk menyelesaikan masalah. Pada
tahun 1950 algoritma sering dihubungkan dengan “algoritma Euclidean” (Euclid’s
algorithm), yaitu proses untuk menemukan pembagi bersama terbesar (common greatest
devisor) dari dua bilangan bulat.
Algoritma Euclidean. Diberikan dua buah bilangan positif m dan n (dalam hal ini m 
n), carilah pembagi bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu bilangan
posistif terbesar yang habis membagi m dan n.
D. 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.
Pengantar Algoritma 5
Menurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer
Programming, algoritma harus mempunyai lima ciri penting berikut
1) algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai
contoh dalam algoritma Euclidean diatas, pada langkah E2 jika r = 0, algoritma
berhenti. Jika r  0 , maka nilai n selalu berkurang sebagai akibat langkah E3. Dan
E1, dan pada akhirnya nilai r = 0. Program yang tidak pernah berhenti adalah program
yang berisi algoritma yang salah.
2) setiap langkah harus didefinisikan dengan tepat dan tidak berarti dua (ambiguous),
pembaca harus mengerti apa itu m dan n adalah bilangan bulat positif, maka setiap
kali E1 dikerjakan maka kita harus menjamin bahwa nilai m dan n selalu positif.
3) algoritma memiliki nol aatau lebih masukan (input). Masukan ialah besaran yang
diberikan kepada algoritma sebelum algoritma mulai bekerja.
4) algoritma mempunyai satu atau lebih keluaran (output). Keluaran adalah besaran yang
memiliki hubungan dengan masukan.
5) algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat
dikerjakanm dalam waktu yang masuk akal.
1.2.4 Pemrograman Prosedural
Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti Algoritma
adalah proses yang prosedural.
Definisi Prosedural menurut Kamus Besar Bahasa Indonesia yaitu
1) tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas;
2) metode langkah demi langkah secara eksak dalam memecahkan suatu masalah.
Pada pemrograman prosedural, program dibedakan antara bagian data dengan bagian
instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan
satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah
karena adanya pencabangan kondisional. Data yang disimpan di dalam memori
dimanipulasi oleh instrusi secara beruntun atau prosedural. Paradigma pemrograman
seperti ini dinamakan pemrograman prosedural. Bahasa-bahasa tingkat tinggi seperti
Cobol, Basic, Pascal, Fortran dan C mendukung kegiatan pemrograman prosedural,
karena itu mereka dinamakan juga bahasa prosedural. Selain paradigma pemrograman
prosedural, ada lagi paradigma yang lain yaitu pemrograman berorientasi objek (Object
Oriented Programming). Paradigma pemrograman ini merupakan trend baru dan sangat
Pengantar Algoritma 6
populer akhir-akhir ini. Paradigma pemrograman yang lain adalah pemrograman
fungsional, pemrogramn deklaratif dan pemrograman konkuren. Pada kesempatan
ini penulis hanya menyajikan paradigma pemrograman prosedural saja.
A. Penggolongan Bahasa Pemrograman
Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok
berikut
1) 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.
2) bahasa pemrograman bertujuan umum, yang digunakan untuk berbagai aplikasi,
misal bahasa Pascal, Basic, C, HTML. WML, XHTML, PHP, ASP, VB.Net, bahasa-
bahasa yang berbasis visual dan sebagainya.
Berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke
manusia, dikelompokkan atas empat macam bahasa berikut
1) bahasa tingkat rendah ( Low level language ), bahasa jenis ini orientasinya lebih
dekat dengan mesin, sehingga bahasa ini lebih bersifat primitif, dan sangat sederhana.
Dalam bahasa ini tidak diperlukan lagi translator (penerjemah). Misal Turbo
Assembler.
2) bahasa tingkat menengah( Midle level language ), bahasa pemrograman jenis ini
merupakan jembatan antara bahasa aras rendah dan aras tinggi, karena dalam bahasa
jenis ini pengguna dapat melakukan pendifinisian program untuk jenis coding bahasa
aras rendah ataupun aras tinggi atau kombinasi antara keduanya, sehingga dalam
bahasa ini diperlukan suatu kompiler untuk menterjemahkannya ke dalam bahasa aras
rendah. Bahasa jenis ini biasanya digunakan untuk membangun suatu sistem operasi
atau pengendalian suatu peralatan dengan menggunakan komputer ( interfacing ).
Misal Bahasa C, Pascal.
3) bahasa tingkat tinggi ( Hight level language ), dalam bahasa ini program lebih
mudah dipahami, lebih “manusiawi”, dan lebih berorientasi pada bahasa manusia
(bahasa Inggris). Program dalam bahasa ini perlu penerjemah untuk nantinya dapat
dieksekusi oleh CPU. Misal Bahasa C, Pascal, Basic, Fortran, Cobol, dBase, Foxpro.
4) bahasa visual ( Visual language ), bahasa jenis ini menggunakan pendekatan
pemrograman dengan menggunakan objek-objek visual sebagai antarmuka program
Pengantar Algoritma 7
dengan pengguna (user) dengan aktivitas coding yang seminimal mungkin dan
mempunyai sifat penyembunyian (encapsulation) kerumitan proses pemrograman.
Misal Visual Basic, Visual Delphi, Visual dBase, Visual Foxpro.
1.3. Contoh Soal
Contoh algoritma dalam kehidupan sehari-hari
Aksi :
1) kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan berakhir pada
saat T1)
2) menghasilkan efek netto yang terdefinisi dengan baik dan direncanakan
Contoh :
1) Ibu Nanny mengupas kentang untuk mempersiapkan makan malam..(luas ruang
lingkupnya)
2) Karena ruang lingkup luas, maka harus didefinisikan keadaan awal dan efek netto
yang direncanakan ( Initial State dan Final State)
3) Initial State (keadaan awal) : T0 kentang sudah ada dikantong kentang, dan ditaruh
di rak dapur dimana ibu Nanny akan mengupasnya
4) Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di panci, siap
untuk dimasak dan kantong kertasnya harus dikembalikan ke rak lagi.
5) Kejadian : urut-urutan dari beberapa aksi yang terjadi secara berurutan.
6) Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari kejadian
7) Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung dari sudut
pandang.
Contoh mengupas kentang dapat dijelaskan :
1) Ambil kantong kentang dari rak
2) Ambil panci dari almari
3) Kupas kentang
4) Kembalikan kantong kentang ke rak
 Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong kentang diambil
dari rak sebelum ambil panci) :
1) Ambil kantong kentang dari rak dan ambil panci dari almari
2) Kupas kentang
3) Kembalikan kantong kentang ke rak
Pengantar Algoritma 8
Jika esok hari ibu Nanny mengupas kentang lagi untuk makan malam juga, dan kita
mengamati hal-hal yang sama, apakah hal tersebut bisa disebut sama ?
Ini tergantung jawabannya bisa sama bisa tidak. Tidak karena ibu Nanny tidak mungkin
mengupas kentang yang sama dengan kemarin Sama karena kemiripan pola yang
dilakukan
1.4 Rangkuman
Komputer adalah hanya sebuah alat yang digunakan untuk membantu menyelesaikan atau
mempermudah penyelesaian masalah manusia. Agar antara manusia dan komputer dapat
saling berkomunikasi maka antara keduanya haruslah dapat berkomunikasi dengan
bahasa yang dapat saling dimengerti keduanya. Bahasa yang dimaksud adalah bahasa
pemrograman. Suatu bahasa pemrograman akan menuntun manusia untuk
memformulasikan permasalahan yang henda diselesaikan dalam bentuk kode-kode
program atau kumpulan instruksi. Sebelum suatu kode program disusun maka perlu
dilakukan proses analisa mengenai bagaimana logika penyelesaian masalah. Selanjutnya
dari logika tersebut disusunlan algoritma dengan menggunakan tool-tool standar. Hal ini
dilakukan agar masalah yang diselesaikan dapat berhasil dengan baik atau juga untuk
mempermudah bila suatu saat ada proses pengembangan sistem.
Algoritma bersifat independen, artinya suatu algoritma yang disusun tidak ada hubungan
atau spesifikasi dengan bahasa pemrograman yang digunakan untuk
mengimplementasikannya.
1.5 Soal Latihan
Latihan soal yang dapat dikerjakan dalam bab ini adalah sebagai berikut
1) Apa yang anda ketahui tentang algoritma dan apa pentingnya suatu algoritma dalam
proses pemrograman ?
2) Sebutkan sifat-sifat atau ciri algoritma yang baik.
3) Sebutkan struktur proses pemrograman yang anda ketahui dan gambarkan pula
ilustrasinya dalam bentuk flowchart.
4) Sama atau tidakkah antara belajar memprogram dengan belajar bahasa pemrograman
dan apa produk dari keduanya ?
5) Sebut dan jelaskan penggolongan bahasa pemrograman yang anda ketahui.

Bab 1 pengantar algoritma

  • 1.
    1 BAB I PENGANTARALGORITMA 1.1 Kompetensi Dasar Setelah mengikuti perkuliahan ini diharapkan mahasiswa akan dapat 1) memahami pengertian algoritma; 2) memahami arti penting algoritma dalam dunia pemrograman komputer; 3) memahami perbedaan antara belajar memrogram dengan belajar bahasa pemrograman. 1.2 Dasar Teori 1.2.1 Pendahuluan Komputer merupakan alat bantu untuk memudahkan kerja manusia dalam menyelesaikan masalah. Masalah yang akan diselesaikan oleh komputer tidak dapat dengan serta merta “disodorkan” begitu saja, akan tetapi masalah tersebut haruslah diformulasikan dalam bentuk kode-kode atau kumpulan instruksi yang dapat dimengerti oleh komputer. Kode- kode atau kumpulan instruksi disusun dalam bentuk program yang diimplementasikan oleh programmer dan aktivitas ini dinamakan dengan aktivitas pemrograman. Aktivitas pemrograman merupakan upaya untuk mengimplementasikan suatu permasalahan nyata ke dalam suatu program. Permasalahan yang akan diimplementasikan harus melalui beberapa tahapan penyelesaian masalah sehingga dalam pengimplementasian masalah tersebut ke dalam bentuk program tidak terjadi kesalahan, adapun tahapan penyelesaiannya masalah tersebut antara adalah sebagai berikut : a. masalah yang akan diselesaikan diformulasikan tentang bagaimana logika penyelesainnya masalahnya. b. dari logika penyelesaian masalah selanjutnya disusunlah suatu algoritma yang berisi urutan langkah untuk menyelesaikan masalah tersebut. algoritma dapat dituangkan dengan menggunakan tool-tool standar seperti bentuk flowchart atau diagram alir, structure english, dan atau pseudocode. c. dari algoritma yang disusun selanjutnya diimplementasikan dengan menuliskan coding program dengan bahasa pemrograman yang sesuai.
  • 2.
    Pengantar Algoritma 2 d.program yang sudah dibuat dilakukan pengujian-pengujian sampai tidak terjadi kesalahan, baik kesalahan secara sintaksis, semantiknya atau kesalahan secara logika. e. dari rangkaian tahap 1 sampai dengan tahap 4 dilakukan evaluasi sejauh mana telah diimplementasikan, bila masih ada kesalahan atau kekurangan maka kembali dilakukan pengecekan mulai tahap pertama ke tahap berikutnya. Bila langkah tersebut dikerjakan secara urut maka kemungkinan terjadinya ketidaksingkronan permasalahan dengan hasil implementasi dalam bentuk program dapat diminimalisir. Tetapi sebelum semua hal yang telah dijelaskan tersebut pemrogram harus belajar dulu tentang dasar-dasar yang terkait dengan algoritma dan pemrograman. 1.2.2 Istilah-istilah Dasar A. Bahasa pemrograman Bahasa pemrograman merupakan prosedur atau tata cara penulisan program.Ada dua faktor penting dalam bahasa pemrograman yaitu : 1) sintax, yaitu aturan-aturan gramatikal yang mengatur tata cara penulisan kata, ekspresi dan pernyataan. 2) semantik, yaitu aturan-aturan yang menyatakan suatu arti. B. Program Program merupakan kata, ekspresi, pernyataan atau kombinasi yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa pemrograman sehingga dapat dieksekusi oleh komputer. C. Pemrograman Pemrograman merupakan proses mengimplementasikan urutan langkah untuk menyelesaikan masalah dengan menggunakan bahasa pemrograman. D. Pemrograman terstruktur Pemrograman terstruktur merupakan proses mengimplementasikan urutan langkah untuk menyelesaikan masalah dalam bentuk program yang memiliki rancang bangun yang terstruktur dan tidak berbelit-belit sehingga mudah ditelusuri, dipahami, dan dikembangkan oleh siapa saja.
  • 3.
    Pengantar Algoritma 3 E.Ciri Teknik Pemrograman Terstruktur Ciri-ciri atau karakteristik pemrograman terstruktur adalah 1) mengandung teknik pemecahan masalah yang tepat dan benar; 2) memiliki algoritma pemecahan masalah yang bersifat sederhana, standar dan efektif dalam memecahkan masalah; 3) teknik penulisan program memiliki struktur logika yang benar dan mudah dipahami; 4) program semata-mata terdiri dari tiga struktur dasar, yaitu sequence structure, looping structure, dan selection structure. 5) menghindari penggunaan instruksi GOTO(peralihan proses tanpa syarat tertentu) yang menjadi program tidak terstruktur dengan baik; 6) membutuhkan biaya testing yang rendah; 7) memiliki dokumentasi yang baik; 8) membutuhkan perawatan dan pengembangan yang rendah. F. Standar Program Yang Baik Untuk menentukan standar program yang baik dibutuhkan beberapa standar sebagai dasar penilaian, yaitu 1) pemecahan masalah; 2) penyusunan program; 3) perawatan program; 4) standar prosedur. 1.2.3 Standar Teknik Pemecahan Masalah A. Teknik Top-Down Teknik Top-Down merupakan teknik pemecahan masalah yang paling umum digunakan. Pada teknik ini, suatu masalah yang kompleks dibagi-bagi ke dalam beberapa kelompok masalah yang lebih kecil. Dari kelompok masalah yang kecil tersebut dianalisis. Apabila dimungkinkan maka masalah tersebut akan dipilih lagi menjadi subbagian dan setelah itu disusun langkah untuk menyelesaikannya secara detail. B. Tenik Button-Up Tenik Button-Up merupakan teknik pemecahan masalah yang mulai ditinggalkan, karena sulit untuk melakukan standarisasi proses dari prosedur-prosedur yang sudah terbentuk yang akan digabungkan. Pada teknik ini, bila ada masalah yang akan diselesaikan, maka
  • 4.
    Pengantar Algoritma 4 pemecahanmasalah dilakukan dengan menggabungkan prosedur-prosedur yang ada menjadi satu kesatuan program guna menyelesaikan masalah tersebut. C. Apa 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. Menurut Kamus Besar Bahasa Indonesia terbitan Balai Pustaka tahun 1988 algoritma diartikan sebagai urutan logis pengambilan putusan untuk menyelesaikan masalah. Pada tahun 1950 algoritma sering dihubungkan dengan “algoritma Euclidean” (Euclid’s algorithm), yaitu proses untuk menemukan pembagi bersama terbesar (common greatest devisor) dari dua bilangan bulat. Algoritma Euclidean. Diberikan dua buah bilangan positif m dan n (dalam hal ini m  n), carilah pembagi bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu bilangan posistif terbesar yang habis membagi m dan n. D. 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.
  • 5.
    Pengantar Algoritma 5 MenurutDonald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming, algoritma harus mempunyai lima ciri penting berikut 1) algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh dalam algoritma Euclidean diatas, pada langkah E2 jika r = 0, algoritma berhenti. Jika r  0 , maka nilai n selalu berkurang sebagai akibat langkah E3. Dan E1, dan pada akhirnya nilai r = 0. Program yang tidak pernah berhenti adalah program yang berisi algoritma yang salah. 2) setiap langkah harus didefinisikan dengan tepat dan tidak berarti dua (ambiguous), pembaca harus mengerti apa itu m dan n adalah bilangan bulat positif, maka setiap kali E1 dikerjakan maka kita harus menjamin bahwa nilai m dan n selalu positif. 3) algoritma memiliki nol aatau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma sebelum algoritma mulai bekerja. 4) algoritma mempunyai satu atau lebih keluaran (output). Keluaran adalah besaran yang memiliki hubungan dengan masukan. 5) algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat dikerjakanm dalam waktu yang masuk akal. 1.2.4 Pemrograman Prosedural Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti Algoritma adalah proses yang prosedural. Definisi Prosedural menurut Kamus Besar Bahasa Indonesia yaitu 1) tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas; 2) metode langkah demi langkah secara eksak dalam memecahkan suatu masalah. Pada pemrograman prosedural, program dibedakan antara bagian data dengan bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instrusi secara beruntun atau prosedural. Paradigma pemrograman seperti ini dinamakan pemrograman prosedural. Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C mendukung kegiatan pemrograman prosedural, karena itu mereka dinamakan juga bahasa prosedural. Selain paradigma pemrograman prosedural, ada lagi paradigma yang lain yaitu pemrograman berorientasi objek (Object Oriented Programming). Paradigma pemrograman ini merupakan trend baru dan sangat
  • 6.
    Pengantar Algoritma 6 populerakhir-akhir ini. Paradigma pemrograman yang lain adalah pemrograman fungsional, pemrogramn deklaratif dan pemrograman konkuren. Pada kesempatan ini penulis hanya menyajikan paradigma pemrograman prosedural saja. A. Penggolongan Bahasa Pemrograman Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok berikut 1) 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. 2) bahasa pemrograman bertujuan umum, yang digunakan untuk berbagai aplikasi, misal bahasa Pascal, Basic, C, HTML. WML, XHTML, PHP, ASP, VB.Net, bahasa- bahasa yang berbasis visual dan sebagainya. Berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke manusia, dikelompokkan atas empat macam bahasa berikut 1) bahasa tingkat rendah ( Low level language ), bahasa jenis ini orientasinya lebih dekat dengan mesin, sehingga bahasa ini lebih bersifat primitif, dan sangat sederhana. Dalam bahasa ini tidak diperlukan lagi translator (penerjemah). Misal Turbo Assembler. 2) bahasa tingkat menengah( Midle level language ), bahasa pemrograman jenis ini merupakan jembatan antara bahasa aras rendah dan aras tinggi, karena dalam bahasa jenis ini pengguna dapat melakukan pendifinisian program untuk jenis coding bahasa aras rendah ataupun aras tinggi atau kombinasi antara keduanya, sehingga dalam bahasa ini diperlukan suatu kompiler untuk menterjemahkannya ke dalam bahasa aras rendah. Bahasa jenis ini biasanya digunakan untuk membangun suatu sistem operasi atau pengendalian suatu peralatan dengan menggunakan komputer ( interfacing ). Misal Bahasa C, Pascal. 3) bahasa tingkat tinggi ( Hight level language ), dalam bahasa ini program lebih mudah dipahami, lebih “manusiawi”, dan lebih berorientasi pada bahasa manusia (bahasa Inggris). Program dalam bahasa ini perlu penerjemah untuk nantinya dapat dieksekusi oleh CPU. Misal Bahasa C, Pascal, Basic, Fortran, Cobol, dBase, Foxpro. 4) bahasa visual ( Visual language ), bahasa jenis ini menggunakan pendekatan pemrograman dengan menggunakan objek-objek visual sebagai antarmuka program
  • 7.
    Pengantar Algoritma 7 denganpengguna (user) dengan aktivitas coding yang seminimal mungkin dan mempunyai sifat penyembunyian (encapsulation) kerumitan proses pemrograman. Misal Visual Basic, Visual Delphi, Visual dBase, Visual Foxpro. 1.3. Contoh Soal Contoh algoritma dalam kehidupan sehari-hari Aksi : 1) kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan berakhir pada saat T1) 2) menghasilkan efek netto yang terdefinisi dengan baik dan direncanakan Contoh : 1) Ibu Nanny mengupas kentang untuk mempersiapkan makan malam..(luas ruang lingkupnya) 2) Karena ruang lingkup luas, maka harus didefinisikan keadaan awal dan efek netto yang direncanakan ( Initial State dan Final State) 3) Initial State (keadaan awal) : T0 kentang sudah ada dikantong kentang, dan ditaruh di rak dapur dimana ibu Nanny akan mengupasnya 4) Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di panci, siap untuk dimasak dan kantong kertasnya harus dikembalikan ke rak lagi. 5) Kejadian : urut-urutan dari beberapa aksi yang terjadi secara berurutan. 6) Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari kejadian 7) Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung dari sudut pandang. Contoh mengupas kentang dapat dijelaskan : 1) Ambil kantong kentang dari rak 2) Ambil panci dari almari 3) Kupas kentang 4) Kembalikan kantong kentang ke rak  Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong kentang diambil dari rak sebelum ambil panci) : 1) Ambil kantong kentang dari rak dan ambil panci dari almari 2) Kupas kentang 3) Kembalikan kantong kentang ke rak
  • 8.
    Pengantar Algoritma 8 Jikaesok hari ibu Nanny mengupas kentang lagi untuk makan malam juga, dan kita mengamati hal-hal yang sama, apakah hal tersebut bisa disebut sama ? Ini tergantung jawabannya bisa sama bisa tidak. Tidak karena ibu Nanny tidak mungkin mengupas kentang yang sama dengan kemarin Sama karena kemiripan pola yang dilakukan 1.4 Rangkuman Komputer adalah hanya sebuah alat yang digunakan untuk membantu menyelesaikan atau mempermudah penyelesaian masalah manusia. Agar antara manusia dan komputer dapat saling berkomunikasi maka antara keduanya haruslah dapat berkomunikasi dengan bahasa yang dapat saling dimengerti keduanya. Bahasa yang dimaksud adalah bahasa pemrograman. Suatu bahasa pemrograman akan menuntun manusia untuk memformulasikan permasalahan yang henda diselesaikan dalam bentuk kode-kode program atau kumpulan instruksi. Sebelum suatu kode program disusun maka perlu dilakukan proses analisa mengenai bagaimana logika penyelesaian masalah. Selanjutnya dari logika tersebut disusunlan algoritma dengan menggunakan tool-tool standar. Hal ini dilakukan agar masalah yang diselesaikan dapat berhasil dengan baik atau juga untuk mempermudah bila suatu saat ada proses pengembangan sistem. Algoritma bersifat independen, artinya suatu algoritma yang disusun tidak ada hubungan atau spesifikasi dengan bahasa pemrograman yang digunakan untuk mengimplementasikannya. 1.5 Soal Latihan Latihan soal yang dapat dikerjakan dalam bab ini adalah sebagai berikut 1) Apa yang anda ketahui tentang algoritma dan apa pentingnya suatu algoritma dalam proses pemrograman ? 2) Sebutkan sifat-sifat atau ciri algoritma yang baik. 3) Sebutkan struktur proses pemrograman yang anda ketahui dan gambarkan pula ilustrasinya dalam bentuk flowchart. 4) Sama atau tidakkah antara belajar memprogram dengan belajar bahasa pemrograman dan apa produk dari keduanya ? 5) Sebut dan jelaskan penggolongan bahasa pemrograman yang anda ketahui.