2. PENGERTIAN DAN KONSEP ALGORTIMA
Perangko dari Rusia pada Gambar di samping ini bergambar seorang pria dengan nama
Muhammad bin Musa al-Khwarizmi ia adalah seorang ahli dalam bidang matematika,
astronomi, astrologi, dan geografi yang berasal dari Persia. Lahir sekitar tahun 780 di
Khwārizm (sekarang Khiva, Uzbekistan) dan wafat sekitar tahun 850 di Baghdad. Hampir
sepanjang hidupnya, ia bekerja sebagai dosen di Sekolah Kehormatan di Baghdad.
Bagi kalian yang sedang berkecimpung dalam dunia komputer maka seharusnya mengetahui
siapa orang di samping ini. Dan dari namanya istilah yang akan kita pelajari dalam bab ini
muncul. Dari Al-Khawarizmi kemudian berubah menjadi algorithm dalam Bahasa Inggris dan
diterjemahkan menjadi algoritma dalam bahasa Indonesia.
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis. Syarat utama membuat sebuah algoritma:
1. Algoritma harus benar
2. Algoritma harus berhenti
3. Algoritma memberikan hasil yang benar
3. MASALAH DAPAT BERUPA APA SAJA, DENGAN CATATAN UNTUK SETIAP MASALAH, ADA SYARAT KONDISI AWAL YANG
HARUS DIPENUHI SEBELUM MENJALANKAN ALGORITMA. KONSEP ALGORITMA SERING KALI DISETARAKAN DENGAN
SEBUAH RESEP. SEBUAH RESEP BIASANYA MEMILIKI DAFTAR BAHAN ATAU BUMBU YANG AKAN DIGUNAKAN, URUTAN
PENGERJAAN DAN BAGAIMANA HASIL DARI URUTAN PENGERJAAN TERSEBUT. APABILA BAHAN YANG DIGUNAKAN TIDAK
TERTERA (TIDAK TERSEDIA) MAKA RESEP TERSEBUT TIDAK AKAN DAPAT DIKERJAKAN. DEMIKIAN JUGA JIKA URUTAN
PENGERJAANNYA TIDAK BERATURAN, MAKA HASIL YANG DIHARAPKAN TIDAK AKAN DAPAT DIPEROLEH.
ALGORITMA YANG BERBEDA DAPAT DITERAPKAN PADA SUATU MASALAH DENGAN SYARAT YANG SAMA. TINGKAT
KERUMITAN DARI SUATU ALGORITMA MERUPAKAN UKURAN SEBERAPA BANYAK KOMPUTASI YANG DIBUTUHKAN
ALGORITMA TERSEBUT UNTUK MENYELESAIKAN MASALAH. UMUMNYA, ALGORITMA YANG DAPAT MENYELESAIKAN
SUATU PERMASALAHAN DALAM WAKTU YANG SINGKAT MEMILIKI TINGKAT KERUMITAN YANG RENDAH, SEMENTARA
ALGORITMA YANG MEMBUTUHKAN WAKTU LAMA UNTUK MENYELESAIKAN SUATU MASALAH MEMBUTUHKAN TINGKAT
KERUMITAN YANG TINGGI.
LANGKAH-LANGKAH UMUM DALAM PEMBUATAN SUATU PROGRAM YAITU:
• Mendefinisikan masalah
• Mencari solusinya
• Menentukan algoritma
• Menulis program
• Menguji program
• Mendokumentasikan program
• Merawat program
4. STRUKTUR ALGORTIMA
1. Struktur Sekuensial (Runtunan)
Struktur Sekuensial merupakan struktur dasar algoritma terdiri dari satu atau lebih instruksi, yang
setiap instruksinya dikerjakan secara berurutan sesuai dengan urutan penulisan algoritma tersebut.
Sebuah instruksi dikerjakan setelah instruksi sebelumnya dikerjakan. Akhir dari instruksi terakhir
merupakan akhir algoritma.
5. 2. Struktur Pemilihan/Keputusan/Percabangan (Branching)
Yang perlu diperhatikan pada algoritma ini adalah solusi pemilihan akan dilakukan jika kondisinya
terpenuhi, dalam arti kondisinya menghasilkan nilai benar (TRUE). Jika solusi benar maka akan
dijalankan, dan bila salah maka tidak akan dijalankan tapi bisa jadi menjalankan solusi lain atau
tidak sama sekali. Berikut beberapa struktur algortima branching:
6. a. If-Else
Pernyataan if mempunyai pengertian ,”jika kondisi bernilai benar, maka perintah-1 akan dikerjakan
dan jika tidak memenuhi syarat maka akan mengerjakan perintah default” (perintah setelah else).
If digunakan untuk menyeleksi satu atau lebih kondisi untuk melakukan sebuah perintah. If juga
bisa berupa seleksi tanpa pernyataan default (dibawah else), artinya apabila kondisi tidak
terpenuhi, maka tidak ada juga perintah yang dikerjakan.
7. b. Switch Case
Bentuk switch-case merupakan pernyataan yang dirancang khusus untuk menangani pengambilan
keputusan yang melibatkan sejumlah atau banyak alternatif. Pernyataan switch-case ini memiliki
kegunaan yang sama seperti if-else bertingkat, tetapi untuk memeeriksa data yang bertipe karakter
atau integer.
8. c. Struktur Pengulangan (Looping)
Struktur perulangan adalah instruksi yang dapat mengulang sederetan instruksi secara berulang-
ulang sesuai intruksi yang ditetapkan.
Struktur perulangan pada dasarnya terdiri atas:
1. Kondisi perulangan : suatu kondisi yang harus dipenuhi agar perulangan dapat terjadi.
2. Badan (body) perulangan : deretan instruksi yang akan diulang-ulang pelaksanaannya.
3. Pencacahan (counter) perulangan : suatu variabel yang nilainya harus berubah agar
perulangan dapat terjadi dan pada akhirnya membatasi jumlah perulangan yang dapat
dilaksanakan.
9. PENGENALAN VARIABEL
Variabel adalah tempat dimana kita dapat mengisi atau mengosongkan nilainya dan memanggil
kembali apabila dibutuhkan. Setiap variabel akan mempunyai nama (identifier) dan nilai. Contoh
Nama variabel dan nilai.
• username = “joni”
• Nama = “Al-Khawarizmi”
• Harga = 2500
• HargaTotal = 34000
username, Nama, harga dan HargaTotal adalah nama dari variabel, sedangkan “joni”, “Al-
Khawarizmi”, 2500 dan 34000 adalah nilai dari masing-masing variabel. Nilai-nilai ini akan
tersimpan di dalam nama variabel masing-masing sepanjang tidak kita rubah.
10. Pada sebagian besar bahasa pemrograman, variabel harus dideklarasikan lebih dulu untuk
mempermudah compiler bekerja. Apabila variabel tidak dideklarasikan maka setiap kali
compiler bertemu dengan variabel baru pada kode program akan terjadi waktu tunda
karena compiler harus membuat variabel baru. Hal ini memperlambat proses kerja
compiler. Bahkan pada beberapa bahasa pemrograman, compiler akan menolak untuk
melanjutkan proses kompilasi. Pemberian nama variabel harus mengikuti aturan yang
ditetapkan oleh bahasa pemrograman yang kita gunakan. Namun secara umum ada aturan
yang berlaku untuk hampir semua bahasa pemrograman.
Aturan-aturan tersebut yaitu:
11. 1. Nama variabel harus diawali dengan huruf.
2. Tidak boleh menggunakan spasi pada satu nama variabel. Spasi bisa diganti dengan
karakter underscore (_).
3. nama variabel tidak boleh mengandung karakter-karakter khusus, seperti : .,+, -, *, /, <, >,
&, (, ) dan lain-lain.
4. Nama variabel tidak boleh menggunakan kata-kata kunci d bahasa pemrograman
Penamaan yang benar Penamaan yang salah
namasiswa nama siswa (salah karena
menggunakan spasi)
XY12 12x (salah karena memulai dengan
angka)
harga_total harga.total (salah karena
menggunakan karakter . )
JenisMotor
Jenis Motor (salah karena
menggunakan spasi)
alamatrumah
for (salah karena menggunakan
kata kunci bahasa pemrograman)
12. Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa diubah. Jadi
konstanta adalah juga variabel bedanya adalah pada nilai yang disimpannya. Jika nilai datanya
sepanjang program berjalan tidak berubahubah, maka sebuah varibel lebih baik diperlakukan
sebagai konstanta. Pada sebuah kode program, biasanya nilai data dari konstanta diberikan
langsung di bagian deklarasi konstanta. Sedangkan untuk variabel biasanya hanya ditentukan
nama variabel dan tipe datanya tanpa isian nilai data. Aturan penamaan variabel juga berlaku
untuk penamaan konstanta. Demikian juga aturan penetapan tipe data. Konstanta dibagi
menjadi 4:
1. Konstanta integer, berupa integer biasa, integer panjang (long int) dan integer tak bertanda
(unsigned integer). Nilainya dapat berupa desimal, oktal atau hexadesimal.
2. Konstanta floating point, dapat mengandung nilai pecahan, yang biasa ditulis dalam bentuk
pecahan biasa maupun bentuk eksponensial dan selalu dinyatakan dalam double, kecuali
jika diakhiri dengan F atau f (menyatakan konstanta float).
3. Konstanta string, merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik
ganda (“…“). juga dapat mengandung karakter yang menggunakan tanda yang disebut
karakter escape (escape sequence).
4. Konstanta karakter, selalu diawali dan diakhiri dengan tanda petik tunggal (‘…’). beberapa
konstanta karakter dapat diawali dengan tanda (penempatannya setelah tanda petik
tunggal).
13. Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan
dalam pemrograman komputer. Setiap variabel atau konstanta yang ada dalam kode program,
sebaiknya kita tentukan dengan pasti tipe datanya. Ketepatan pemilihan tipe data pada
variabel atau konstanta akan sangat menentukan pemakaian sumberdaya komputer
(terutama memori komputer). Salah satu tugas penting seorang programmer adalah memilih
tipe data yang sesuai untuk menghasilkan program yang efisien dan berkinerja tinggi. Tipe
data dikelompokkan menjadi dua yaitu primitive dan composite:
Tipe data composite : Tipe Data Primitif
1. array 1. numeric
2. record 2. character
3. image 3. boolean
4. date time
5. lainya (subrange, enumerasi, dll)
14. Tipe data primitive
tipe data dasar yang tersedia secara langsung pada suatu bahasa pemrograman. Sedangkan
tipe data composite adalah tipe data bentukan yang terdiri dari dua atau lebih tipe data
primitive
Tipe data numeric
digunakan pada variabel atau konstanta untuk menyimpan nilai dalam bentuk bilangan atau
angka. Semua bahasa pemrograman menyediakan tipe data numeric, hanya berbeda dalam
jenis numeric yang diakomodasi
15. ALGORITMA MENGGUNAKAN BAHASA
NATURAL
Algortima yang disusun menggunakan bahasa natural/bahasa sehari-hari.
Contoh : Algoritma menghitung luas segitiga
• Start
• Baca data alas dan tinggi.
• Luas adalah alas kali tinggi kali 0.5
• Tampilkan Luas
• Stop
Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah. Pada algoritma
ini tidak dijumpai perulangan ataupun pemilihan. Semua langkah dilakukan hanya satu kali. Sekilas
algoritma di atas benar, namun apabila dicermati maka algoritma ini mengandung kesalahan yang
mendasar, yaitu tidak ada pembatasan pada nilai data untuk alas dan tinggi.
16. Hasil perbaikan algoritma perhitungan luas segitiga :
• Start
• Baca data alas dan tinggi.
• Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih besar dari nol maka lanjutkan ke
langkah ke 4 jika tidak maka stop 4. Luas adalah alas kali tinggi kali 0.5
• Tampilkan Luas
• Stop
Dari penjelasan di atas dapat diambil kesimpulan pokok tentang algoritma. Pertama, algoritma
harus benar. Kedua algoritma harus berhenti, dan setelah berhenti, algoritma memberikan hasil
yang benar.
17. 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.
18. Beberapa hal yang perlu diperhatikan dalam membuat algoritma:
a. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.Deskripsi tersebut dapat
ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
b. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman.
Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
c. 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.
19. d. 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. Pseudocode
adalah kode yang mirip dengan instruksi kode program sebenarnya.
e. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
f. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer,
algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman.
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.