Bab 2 Definisi Algoritma
Bab 2 Definisi Algoritma
II
DEFINISI ALGORITMA
Kompetensi Dasar :
1. Mahasiswa mampu memahami algoritma dan flowchart
2. Mahasiswa mengenal Turbo Pascal For Win 1.5
Indikator :
1. Mahasiswa mampu menyelesaikan masalah dengan
solusi yang terstruktur dan runtut.
2. Mahasiswa mampu membuat algoritma dari sebuah
kasus.
3. Mahasiswa mampu membuat flowchart berdasarkan
algoritma yang ada.
4. Mahasiswa mampu menggunakan Turbo Pascal For Win
1.5 sebagai compiler bahasa Pascal.
5. Mahasiswa mampu melakukan kompilasi dan
menjalankan program dengan bahsa Pascal sampai
tampil output program menggunakan Turbo Pascal For
Win 1.5.
4
A. Pemrograman Komputer
Dalam kehidupan sehari–hari, untuk
berkomunikasi dengan orang lain, kita harus
menggunakan bahasa yang sama dengan orang tersebut.
Apabila kita menggunakan Bahasa Indonesia, lawan
bicara kita harus mengerti Bahasa Indonesia. Kalau
lawan bicara kita tidak mengerti Bahasa Indonesia,
kita masih bisa berkomunikasi dengannya melalui
penerjemah.
Dalam pemograman komputer, berlaku juga hal
seperti di atas. Kita harus menggunakan bahasa yang
dimengerti oleh komputer untuk memberikan suatu
instruksi. Pada dasarnya, komputer adalah mesin
digital, artinya komputer hanya mengenal kondisi ada
arus listrik (biasanya dilambangkan dengan 1) dan
tidak ada arus listrik (dilambangkan dengan 0).
Dengan kata lain kita harus menggunakan sandi 0 dan
1 untuk melakukan pemrograman komputer. Bahasa
pemrograman yang menggunakan sandi 0 dan 1 ini
disebut bahasa mesin (assembly). Sebagai contoh,
dalam prosesor Intel, terdapat perintah 0011 1010
0000 1011. Perintah dalam bahasa mesin ini sama
artinya dengan perintah assembly CMP AL, 0D, yang
artinya bandingkan nilai register AL dengan 0D. CMP
di sini sebenarnya adalah singkatan dari CoMPare.
Untuk membantu manusia dalam mengkonversi bahasa
mesin diperlukan perangkat lunak yang disebut
assembler.
Pemrograman dengan bahasa assembly masih terasa
sulit bagi kebanyakan orang sehingga dikembangkan
bahasa pemrograman yang lebih mudah digunakan.
5
Bahasa pemrograman yang dikembangkan ini lebih
condong ke bahasa manusia dan disebut bahasa
generasi ketiga / 3GL (Third-Generation Language)
atau juga dikenal dengan bahasa tingkat tinggi/ HLL
(High-Level Language). Sebagai contoh Basic, Pascal,
C, C++, Cobol, dsb.
Bahasa generasi ketiga menggunakan kata-kata
dalam bahasa Inggris karena bahasa tersebut adalah
bahasa internasional, misal ;
Pascal:
writeln (‘Algoritma’);
Atau perintah dalam bahasa C:
printf (“Algoritma\n\r”):
Atau perintah dalambahasa C++:
cout << “Algoritma” << endl;
Ketiga pernyataan di atas bertujuan sama yaitu
menuliskan teks ‘algoritma’ ke keluaran standar
(Standard Output), ke layar monitor. Ketiga perintah
sederhana di atas sebenarnya terdiri dari puluhan
atau bahkan ratusan pernyataan assembly. Perangkat
lunak yang menerjemahkan program dalam bahasa
manusiawi ke dalam bahasa assembly atau mesin ada
dua macam, yaitu interpreter dan kompiler.
Interpreter menerjemahkan program baris
perbaris artinya jika suatu baris akan diekskusi
maka baris tersebut diterjemahkan terlebih dahulu ke
bahasa mesin. Apabila baris berikutnya akan
diekskusi maka baris tersebut baru diterjemahkan
kedalam bahasa mesin. Contoh bahasa pemograman yang
menggunakan interpreter adalah basic.
6
Kompiler menerjemahkan semua perintah kedalam
bahasa mesin kemudian menjalankan hasil
penerjemahan. Hasil penerjemahan ini bisa disimpan
dalam file atau memori. Contoh bahasa pemrograman
yang menggunakan kompiler adalah Pascal, C, dan C++.
Khusus untuk Pascal, Kompiler Pascal
yang banyak digunakan adalah Turbo Pascal, sehingga
pada modul ini juga digunakan Turbo Pascal sebagai
acuannya.
Perkembangan bahasa pemrograman setelah bahasa
generasi ketiga adalah bahasa generasi keempat atau
yang disingkat 4GL (fourth-generation language).
Bahasa ini banyak digunakan sebagai aplikasi basis
data (database), salah satu contohnya adalah SQL
(Structured Query Language). Pada bahasa ini,
perintah-perintah yang digunakan lebih manusiawi,
misalnya “SELECT Nama,Nilai FROM Mahasiswa”, untuk
mengambil data Nama dan Nilai dari basis data
Mahasiswa.
B. Langkah-langkah dalam Pemrograman Komputer
Dalam pemrograman komputer, diperlukan beberapa
langkah dan langkah-langkah yang disajikan pada
modul ini tidak bersifat mutlak. Artinya Anda tidak
harus melakukan dari langkah pertama, kedua, ketiga,
dst. Ada beberapa langkah yang harus atau mungkin
2. Menentukan Solusi.
Setelah masalah didefinisikan dengan jelas,
masukan yang diberikan sudah jelas, keluaran yang
diinginkan sudah jelas, maka langkah selanjutnya
adalah mencari jalan penyelesaian masalah. Jika
permasalahan terlalu kompleks, biasanya kita harus
membaginya ke dalam beberapa modul kecil agar
lebih mudah diselesaikan. Sebagai contoh, program
untuk menghitung gaji pegawai,dapatdibagi
menjadi beberapa modul kecil. Modul pertama adalah
meminta masukan dari pengguna berupa matriks bujur
sangkar. Modul kedua adalah mencari invers matriks
yang dimasukkan pengguna. Modul terakhir adalah
menampilkan hasilnya pada pengguna.
3. Memilih Algoritma.
Langkah ini merupakan salah satu langkah yang
penting dalam pemrograman komputer karena
pemilihan algoritma yang salah akan menyebabkan
program memiliki unjuk kerja yang kurang baik.
4. Menulis Program.
Pada langkah ini dimulai penulisan program
komputer untuk memecahkan masalah yang diberikan.
Untuk menulis program dapat digunakan salah satu
bahasa generasi ketiga. Ada beberapa hal yang
harus diperhitungkan sebelum memilih bahasa
pemrograman, antara lain masalah yang dihadapi,
bahasa pemrograman yang Anda kuasai, dsb.
5. Menguji Program.
Setelah program selesai ditulis dilakukan
pengujian. Pengujian pertama adalah; Apakah
program berhasil dikompilasi dengan baik?
Pengujian berikutnya; Apakah program dapat
menampilkan keluaran yang diinginkan? Lebih jauh
lagi program harus diuji dengan banyak kasus.
Sering terjadi, suatu program berjalan baik untuk
kasus A, B, C; tetapi menghasilkan sesuatu yang
tidak diinginkan untuk kasus X,Y, dan Z. Langkah
ini bisa dilakukan berulang-ulang sampai program
diyakini benar-benar berjalan sesuai dengan yang
diharapkan.
6. Menulis Dokumentasi.
Merupakan hal sepele yang sering dilupakan, karena
tidak ada fungsinya pada saat pembuatan program,
namun pada masa mendatang akan sangat diperlukan,
apalagi bagi orang lain yang mempelajari program
kita. Dokumentasi ada dua, yaitu di atas kertas
dan menjadi satu dalam program (komentar pendek
yang menerangkan fungsi perintah-perintah yang ada
dalam program tersebut.
7. Merawat program
Setelah program selesai dan digunakan oleh user,
maka sering kali muncul bug / kesalahan yang
sebelumnya tidak terdeteksi, atau juga user ingin
menambahkan fasilitas baru, sehingga program harus
direvisi.
C. Definisi Algoritma
1. Pengertian
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 –
10
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.
3. Aturan Penulisan Algoritma
Pada setiap bagian algoritma apabila akan
dituliskan komentar mengenai setiap bagian
tersebut dituliskan di antara tanda kurung
kurawal, contoh { Komentar }. Notasi algoritmis
yang dituliskan diantara tanda ini tidak akan
dieksekusi oleh program.
Contoh :
11
Catatan :
Untuk memisahkan antara kata dalam judul
algoritma menggunakan tanda “_” bukanlah
suatu keharusan. Anda dapat menuliskan
LuasLingkaran atau Luas_Lingkaran. Tetapi
12
sebaiknya anda tidak menggunakan spasi “ “
untuk memisahkan antara kata di dalam nama
algoritma.
b. Kamus (Deklarasi)
Kamus adalah bagian teks algoritma sebagai
tempat untuk mendefinisikan :
1) Nama type
2) Nama konstanta
3) Nama variable
4) Nama fungsi
5) 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 ariable 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).
Contoh :
13
c. Algoritma
Algoritma adalah bagian inti dari suatu
algoritma yang berisi instruksi atau
pemanggilan aksi yang telah didefinisikan.
Komponen teks algoritma dalam pemrograman
procedural dapat berupa :
1) Instruksi dasar seperti input/output,
assignment
2) Sequence (runtutan)
14
3) Analisa kasus
4) Perulangan
Setiap langkah algoritma dibaca dari “atas”
ke “bawah”. Urutan deskripsi penulisan
menentuan urutan langkah pelaksanaan
perintah.
Contoh :
15
Nilai awal/
7.
Inisialisasi
16
Contoh : Flowchart untuk menjumlahkan dua bilangan
bulat.
mulai
bil1, bil2
Aritmatika Pascal Arti
+ + Penjumlahan
jumlah =
- - Pengurangan
bil1 + bil2
Divide Div Pembagian bilangan
bulat
jumlah
1. Operator Aritmatika
Rumus-rumus aljabar biasanya melibatkan operator
aritmatika, di antaranya:
Pernyataan Algoritmik Bahasa
Pascal
Input Read read atau
2. Pemrograman
Dalam bahasa Pascal, pernyataan yang berkaitan
dengan operasi dasar adalah sebagai berikut:
readln
Output Write write atau
writeln
Penugasan ← :=
17
Akhir ;
pernyataan
Fungsi Arti
Sqr kuadrat
Sqrt akar kuadrat
Ln logaritma
alami
Exp eksponensial
Fungsi yang sering digunakan yaitu :
E. Turbo Pascal For Windows 1.5
18
19
6. Menu Options memberikan keleluasaan bagi user
untuk melakukan konfigurasi yang berbeda dengan
bawaan / default dari Turbo Pascal For Win 1.5.
7. Menu Windows untuk pengaturan tampilan jendela
/ windows kerja sehingga enak untuk di lihat.
8. Menu Help untuk bantuan bagaimana penggunaan
Turbo Pascal For Win 1.5 dan berbagai tutorial
lainnya yang berkenaan dengannya.
F. Rangkuman
1. Pemrograman komputer merupakan suatu aktivitas
untuk membuat program yang mampu dimengerti oleh
komputer dan dibantu dengan compiler untuk
penterjemah dan bahasa pemrograman.
2. Ada beberapa langkah dalam pemrograman komputer
a. Mendefinisikan masalah
b. Menentukan solusi
c. Memilih algoritma
d. Menulis program
e. Menguji program
f. Menulis dokumentasi
g. Merawat program
3. “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.
4. Flowchart adalah gambaran program secara runtut
yang digambarkan menggunakan simbol-simbol yang
telah ditetapkan.
20
G. Tugas Praktikum (dikumpul akhir sesi)
Buatlah algoritma dan flowchart untuk menyelesaikan
kasus-kasus berikut ini :
1. Menghitung luas segitiga.
2. Menghitung luas lingkaran.
H. Tugas Rumah (dikumpulkan pada pertemuan berikutnya)
Berdasarkan algoritma dan flow chart yang anda buat,
susun program untuk mencari luas segitiga dan luas
lingkaran dalam bahasa Pascal.
21
Daftar Pustaka
Pranata, Anthony., Algoritma Pemrograman, J&J Learning,
Yogyakarta
Budiyanto, Alex, Pengantar Algoritma dan Pemrograman,
2003, www.ilmukomputer.com
22