PEMROGRAMAN
Buku Modul Pembelajaran
Alhamdulillah, segala puji bagi Allah SWT yang telah melimpahkan rahmat dan rahim-nya
sehingga buku modul pembelajaran “Algoritma Pemrograman” ini pada akhirnya dapat
diselesaikan.
Sebagai suatu tulisan yang baru pertama kali diterbitkan sebagai buku ajar maka tentu tulisan ini
tidak terlepas dari kesalahan dan kekurangan oleh seModul itu saran untuk perbaikan sangat
penulis harapkan dari para pembaca dan para pengguna terutama dari kalangan staf pengajar dan
mahasiswa.
Saya ucapkan terima kasih yang sebesar-besarnya kepada pihak yang bersedia menerbitkan
tulisan ini sehingga dapat disebar luaskan kepada para pengguna terutama kalangan mahasiswa,
sebagai satu bagian dari usaha dalam mencerdaskan kehidupan bangsa. Terima kasih saya
ucapkan pula untuk siapa saja yang mau menggunakan buku ini sebagai acuan dalam
mempelajari pembuatan algoritma, dengan demikian jerih payah penulis dalam menyusun buku
ini tidaklah sia-sia.
Walaupun beberapa contoh dan soal latihan telah disertakan dalam buku, namun penulis tetap
mengharapkan agar para pengajar dapat memperkaya khasanah latihan melalui soal-soal
tambahan yang diambil dari berbagai sumber lain. Bagi para mahasiswa saya pesankan bahwa
dalam pembuatan algoritma dan program “latihan adalah guru yang terbaik”.
Modul-2 : Flowcharting
Modul-16 : UAS
Referensi -
MODUL 1
Pendahuluan Algoritma
Penyusun Modul
DR. SUARGA. MSc, M.Math, Ph.D
STMIK DIPANEGARA
MAKASSAR
Suarga,PhD, Modul-1 Algoritma Pemrograman Page 4
PETA MODUL
Pendahuluan
Solusi Masalah:
Algoritma
Flowchart, Algoritma, Teknik
Program C/C++ Pencarian
Flowcharting
Struktur Data
Instruksi : Prosedur
Input & Output, dan Fungsi
If/then/else
Orientasi Objek
KERANGKA TOPIK :
PRASYARAT BELAJAR:
DESKRIPSI SINGKAT:
Selain itu akan diberikan pula sejarah dari bahasa program C/C++, dan
kemudian hubungan antara algoritma dan C/C++.
3. Tulislah algoritma untuk menyelesaikan masalah sebuah mobil yang ban belakangnya
bocor.
Algoritma merupakan fondasi yang harus dikuasai oleh setiap mahasiswa yang ingin
menyelesaikan suatu masalah secara berstruktur, effektif, dan effisien, teristimewa lagi bagi
mahasiswa yang ingin menyusun program komputer untuk menyelesaikan suatu persoalan.
Konsep dan dasar-dasar penysunan algoritma akan dibahas dalam bab ini.
Definisi :
• Algoritma : teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk
kalimat dengan jumlah kata terbatas tetapi tersusun secara logis dan sistematis.
• Algoritma : suatu prosedur yang jelas untuk menyelesaikan suatu persoalan dengan
menggunakan langkah-langkah tertentu dan terbatas jumlahnya.
• Algoritma : susunan langkah yang pasti, bila diikuti maka akan mentransformasi data
input menjadi informasi output.
Catatan Sejarah :
• Abu Ja’far Muhammad Ibnu Musa Al-Kwarizmi : Matematisi dan Astronomer
Persia, penulis buku “Aljabar wal muqabala” beberapa abad yang lalu (diperkirakan
wafat pada tahun 850), dianggap sebagai pencetus pertama dari Algoritma, karena
didalam buku tersebut Abu Ja’far menjelaskan langkah-langkah dalam menyelesaikan
berbagai persoalan aritmetika (aljabar). Kemungkinan besar kata “Algoritma” diambil
dari kata “Al-Kwarizmi” yang kemudian berubah menjadi “Algorism”, selanjutnya
menjadi “Algorithm”.
Ciri Algoritma :
• Donald E.Knuth : seorang penulis beberapa buku algoritma abad XX, menyatakan
bahwa ada beberapa ciri algoritma, yaitu:
Ketika suatu pekerjaan akan dilakukan maka tanpa sadar otak sudah merencanakan bagaimana
pekerjaan tersebut akan dilaksanakan, misalkan ketika anda berfikir akan makan siang disuatu
kedai siap saji maka didalam benak anda mulai timbul suatu rencana, antara lain mungkin
sebagai berikut:
Langkah rinci yang anda lakukan ini tidak lain adalah algoritma untuk menyelesaikan suatu
permasalahan anda, makan siang.
Sifat Algoritma :
Berdasarkan ciri dari algoritma yang dipaparkan oleh Donald Knuth dan definisi Algoritma maka
dapat disimpulkan sifat utama suatu algortima, yaitu sebagai berikut:
input : suatu algoritma memiliki input atau kondisi awal sebelum algoritma dilaksanakan
dan bisa berupa nilai-nilai peubah yang diambil dari himpunan khusus.
output : suatu algoritma akan menghasilkan output setelah dilaksanakan, atau algoritma
akan mengubah kondisi awal menjadi kondisi akhir, dimana nilai output diperoleh dari
nilai input yang telah diproses melalui algoritma.
definiteness : langkah-langkah yang dituliskan dalam algoritma ter-definisi dengan jelas
sehingga mudah dilaksanakan oleh pengguna algoritma
finiteness : suatu algoritma harus memberi kondisi akhir atau output setelah melakukan
sejumlah langkah yang terbatas jumlahnya untuk setiap kondisi awal atau input yang
diberikan
effectiveness : setiap langkah dalam algoritma bisa dilaksanakan dalam suatu selang
waktu tertentu sehingga pada akhirnya memberi solusi sesuai dengan yang diharapkan.
generality : langkah-langkah algoritma berlaku untuk setiap himpunan input yang sesuai
dengan persoalan yang akan diberikan, tidak hanya untuk himpunan tertentu.
Agar bentuk algoritma dan proses penyusunannya dapat mulai dipahami maka berikut ini akan
diuraikan proses pembuatan algoritma mulai dari bentuk yang menggunakan bahasa sehari-hari,
disusul penjelasan format algoritma yang dapat dijadikan acuan, dan beberapa contoh pembuatan
algoritma yang mengikuti format tersebut.
1. Ambil satu angka pertama dan aggaplah angka pertama dalam kumpulan ini sebagai yang
terbesar (maksimum).
2. Bandingkan angka maksimum ini dengan angka berikutnya dalam kumpulan, bila angka
berikut tersebut lebih besar maka jadikanlah ia maksimum.
3. Ulangi langkah 2 ini sehingga tidak ada lagi angka yang tersisa dalam himpunan
4. Hentikan pembandingan setelah semua angka selesai dibandingkan, maka angka terbesar
dalam himpunan tersebut adalah angka maksimum terakhir.
Solusi tersebut dalam bentuk simbol instruksi atau “pseudo-code” adalah sbb:
Suatu algoritma tentu dapat ditulis dengan menggunakan bahasa sehari-hari seperti contoh diatas
namun algoritma seperti ini masih sulit untuk langsung diterjemahkan apabila akan di-
implementasi ke dalam suatu bahasa pemrograman komputer. Setiap algoritma tentu saja
memerlukan suatu langkah “peralihan” ke suatu bahasa program ketika akan dilaksanakan
dengan menggunakan komputer, sehingga semakin dekat bentuk algoritma ini ke bentuk
program komputer maka semakin mudah diterjemahkan. Suatu algoritma juga dapat ditulis
langsung dalam bentuk “bahasa program” namun algoritma seperti ini hanya bisa digunakan
untuk bahasa program tertentu dan terpaksa diubah kembali untuk disesuaikan apabila akan di-
implementasi dengan bahasa program yang lain. Suatu struktur tertentu yang dikenal sebagai
“pseudo-code” akan diperkenalkan dalam modul ini agar algoritma dapat diterima secara umum
dan cukup effisien apabila akan diterjemahkan ke dalam bahasa program.
• Struktur Algoritma : agar algoritma dapat ditulis lebih teratur maka sebaiknya dibagi ke
dalam beberapa bagian. Salah struktur yang sering dijadikan patokan adalah sebagai berikut:
o Bagian Kepala (Header) : memuat nama algoritma serta informasi atau keterangan
tentang algoritma yang ditulis.
o Bagian Deklarasi / Definisi Variabel : memuat defenisi tentang nama variable,
nama tetapan, nama prosedur, nama fungsi, tipe data yang akan digunakan dalam
algoritma.
Algoritma Luas_lingkaran
{ menghitung luas sebuah lingkaran apabila jari-jari lingkaran tersebut diberikan }
Deklarasi
{ Definisi nama tetapan }
const phi = 3.14;
Deskripsi
read(jari_jari); { membaca nilai jari-jari lingkaran }
luas = phi * jari_jari * jari_jari; { menghitung luas lingkaran }
write(luas); { menampilkan luas lingkaran }
• Contoh 2: Contoh berikut ini adalah algoritma untuk menghitung nilai rata sejumlah
angka yang dimasukkan lewat keyboard.
Algoritma Nilai_Rata
{menghitung nilai rata sejumlah bilangan yang dimasukkan lewat keyboard }
Definisi Variabel
integer x, N, k, jumlah;
real nilai_rata;
Rincian Langkah
{ masukkan jumlah data }
read(N); { membaca banyaknya data }
k 1; { memulai pencacah k=1 }
jumlah 0; { menolkan jumlah nilai data}
while (k <= N) do { perulangan untuk mengambil data }
{ baca data }
read(x); { baca data satu persatu }
jumlah jumlah + x; { menjumlahkan data }
k k + 1; { menaikkan angka pencacahan }
endwhile
Algoritma Lebih_besar
{ menerima dua angka kemudian menampilkan angka yang lebih besar }
Definisi Variable
integer angka1, angka2;
Rincian Langkah
{ memasukkan angka }
write (“Masukkan angka 1 : “);
read (angka1);
write (“Masukkan angka 2 : “);
read (angka2);
{ periksa yang lebih besar }
if (angka1 > angka2)
then write(“yang lebih besar = “, angka1);
else write(“yang lebih besar= “, angka2);
endif.
Contoh 4 : algoritma berikut ini mencari angka terbesar dari suatu himpunan angka.
Algoritma Terbesar
{ membentuk himpunan angka, kemudian mencari angka terbesar }
Definisi Variabel
integer N=25, max, indeks;
integer Angka[N];
Rincian Langkah
{ memasukkan anggota himpunan angka }
for ( i = 1 to N step 1)
write ( “Masukkan angka ke : “, i );
read ( Angka[ i ] );
endfor.
{ max adalah angka pertama }
max Angka[ 1 ];
indeks 1;
{ bandingkan max dengan setiap angka dalam himpunan }
while ( indeks < N ) do
indeks indeks + 1;
if ( Angka[indeks] > max )
then max Angka[indeks];
enddo.
write ( “Angka terbesar = “, max );
Ada banyak sekali bahasa komputer yang telah diciptakan, namun yang populer tidak terlalu
banyak, antara lain seperti BASIC, Visual BASIC (VB), Pascal, Delphi, C, C++, Visual C++,
C#, Java, Python, PHP, dan sebagainya.
Machine-language adalah bahasa yang paling rendah biasanya dalam format bit (binary digit)
yang hanya dikenal oleh komputer dan sangat sulit untuk manusia. Bahasa ini yang paling sesuai
dengan perangkat keras komputer, bahkan instruksi harus diubah menjadi bahasa mesin agar
dapat dilaksanakan. Komputer adalah perangkat elektronik digital yang bekerja berdasarkan
rentetan pulsa listrik, setiap pulsa adalah disebut bit (binary digit).
Bahasa tingkat rendah (Low Level Language), ditulis dalam simbol-simbol instruksi, seperti:
ADD (menjumlah), SUB (mengurang), MUL (mengalikan) dsb. Setiap simbol instruksi ini
merupakan representasi dari instruksi dalam format bit/biner/hexa, agar lebih mendekati bahasa
manusia. Namun pada hakekatnya setiap perangkat keras memiliki kumpulan instruksi yang
berbeda, atau konstruksi bahasa bergantung pada jenis mikroprosessor yang digunakan oleh
hardware dan disebut bahasa Assembly (Rakitan), walaupun sedikit sulit namun banyak
programmer yang gemar memakai-nya karena dengan memakai assembler programmer bisa
langsung memberi perintah ke hardware (register, ram, dsb).
Bahasa tingkat tinggi (High Level Language), menggunakan perintah dalam bahasa Inggris
sehingga mudah di-ingat dan dimengerti oleh programmer, namun bahasa ini tidak dimengerti
oleh hardware, baris instruksi harus diterjemahkan ke dalam bahasa mesin sebelum dijalankan
oleh komputer. Ada dua macam penterjemahan bahasa tingkat tinggi yaitu: Compiler dan
Interpreter.
Compiler adalah proses mengubah bahasa tingkat tinggi menjadi bahasa tingkat rendah,
kemudian disatukan dengan instruksi-instruksi dasar (instruksi rutin) yang dimiliki
mikroprosessor menjadi bahasa mesin agar dapat dilaksanakan oleh komputer. Pada saat
kompilasi berlangsung, sintaks dari instruksi diperiksa dahulu, kalau ada kesalahan harus
diperbaiki dahulu, bila bebas kesalahan barulah diterjemahkan ke dalam bahasa mesin. Baris-
baris program dalam bahasa program disebut “source-code”, hasil kompilasi-nya disebut
“object-code”.
Sebenarnya yang biasa disebut middle-level language adalah bahasa yang memiliki instruksi
yang bersifat highlevel dan juga memiliki kemampuan yang bersifat lowlevel. Contoh-nya
Bahasa tingkat menengah (Middle level language) : beberapa bahasa dikenal sebagai bahasa
tingkat menengah seperti bahasa C, karena bahasa ini dapat menggunakan perintah-perintah
bahasa tingkat rendah seperti assembly, disamping instruksi-instruksi dalam bahasa tingkat
tinggi.
Very High Level Language adalah bahasa yang tingkatan-nya sangat tinggi, pada bahasa ini
tersedia selain instruksi pemrograman yang umum digunakan (bahasa tingkat tinggi) tersedia
juga berbagai modul fungsi (pustaka fungsi) yang langsung bisa digunakan oleh programmer
untuk berbagai keperluan, misalnya untuk struktur data, untuk pengurutan data, dan sebagainya.
Contoh bahasa pada tingkatan ini adalah Java dan Python.
Program adalah “implementasi” dari algoritma dalam satu bahasa komputer yang dipilih
sehingga program dapat dilaksanakan oleh komputer. Program adalah susunan instruksi dalam
bahasa komputer yang disusun sesuai dengan algoritma. Sebelum program dilaksanakan oleh
komputer maka program (source) tersebut harus di-terjemahkan dulu ke bahasa mesin (object).
Bahasa C kemudian digunakan untuk menciptakan sistem operasi UNIX yang menjadi induk dari
semua sistem operasi modern dewasa ini. C memiliki set instruksi yang lengkap seperti bahasa
program lainnya (high level language) tetapi juga menyediakan fasilitas untuk mengakses
langsung unit-unit perangkat keras sebagaimana bahasa Assembly (low level language),
sehingga bahasa C sering dikenal sebagai bahasa Middle-Level-Language
Bahasa C kemudian diumumkan oleh Brian Kernighan dan Dennis Ritchie sebagai bahasa
pemrograman baru pada tahun 1972. Bahasa ini segera mendapat sambutan dari para
pemrogram, dan berhasil digunakan untuk menciptakan software-software baru yang muncul
antara tahun 70-an hingga 80-an, seperti VisiCalc, WordStar, Lotus, dan dBase. Bahkan
Microsoft kemudian mengadopsi bahasa C untuk digunakan membuat sistem operasi Windows
pada tahun 80-an. Bahasa ini kemudian di-standarisasi oleh ANSI pada tahun 1982.
• Seorang programmer ulung yang bekerja pada AT&T Bell Laboratories bernama Bjarne
Stroustrup pada tahun 1980-an memiliki proyek software yang cukup besar, beliau
merasa bahwa bahasa C memiliki keterbatasan untuk proyek pemrograman berskala besar
(misalnya program diatas 25 ribu baris).
• Sistem operasi Windows dari MicroSoft kemudian ditulis kembali memakai C++ sebagai
bahasa utama.
• Berbagai software baru yang muncul setelah tahun 1985 telah dikembangkan memakai
C++ hingga saat ini.
• Bahkan berbagai versi compiler muncul, ada yang gratis ada yang berbayar dan
dilengkapi dengan editor (Intgrated Development Environment / IDE), seperti Visual
C++, C-Builder, dan Developer C++ (Dev Cpp).
Lakukan instalasi dengan meng-klik installer dan ketika selesai coba aktifkan compiler tersebut,
anda akan melihat jendela developer C++ sebagaimana gambar berikut ini.
1. Setelah meng-aktifkan editor, klik menu File / New / Source File, dan sebuah jendela baru
terbentuk
2. Ketik-lah program anda pada jendela baru tersebut
3. Setelah semua baris program selesai di-ketik maka simpan dulu melalui menu: File / Save
As, kemudian berikan nama pada kolom yang disediakan dan klik OK.
4. Periksa kebenaran sintaks dari program anda dengan memilih menu : Execute / Compile
5. Apabila ada kesalahan (error) lakukan perbaikan, jangan lupa untuk menyimpan program
yang sudah dikoreksi melalui menu: File / Save
6. Apabila sudah tidak ada lagi error, maka coba jalankan program melalui menu : Execute /
Run
int main()
{
cout << “Hello World! “;
cout << “I’m a C++ program”;
return 0;
}
Setelah diketik, maka coba lakukan kompilasi, lalu eksekusi. Bagaimana hasilnya?
Program yang ditulis dalam bahasa C++ pada hakekatnya merupakan implementasi dari
algoritma untuk menyelesaikan suatu permasalahan. Langkah-nya digambarkan sebagai berikut:
Kunci utama dalam penyelesaian masalah adalah “mengerti permasalahan”, suatu persoalan
harus didefinisikan dahulu, apa yang diketahui dari persoalaan ini, apa yang ditanyakan, dan
bagaimana mengubah yang diketahui menjadi hasil yang ditanyakan. Sebagai contoh bagaimana
Suarga,PhD, Modul-1 Algoritma Pemrograman Page 21
menghitung luas suatu lingkaran. Definisi masalah adalah yang diketahui biasanya jari-jari
lingkaran, kemudian yang ditanyakan adalah luas-lingkaran dimana cara menghitung-nya adalah:
Luas lingkaran = π r2 .
Deklarasi
{ Definisi nama tetapan } // definisi nama tetapan
const phi = 3.14; #define phi 3.14
{ definisi nama peubah / variable } // definisi nama peubah / variabel
real jari_jari, luas; float jari_jari, luas;
Menterjemahkan suatu algoritma ke bahasa C++ pada dasarnya tidak terlalu sulit, hanya
diperlukan pengertian bagaimana cara mendeklarasi variabel, bagaimana input/output, dan
bagaimana instruksi lainnya ditulis dalam C++.
TUGAS:
Hubungkan komputer anda ke internet kemudian aktifkan Web-browser anda. Kemudian
lakukan pencarian situs yang menyediakan installer dev-cpp melalui google search engine.
Download installer dev-cpp pada komputer anda, dan selanjutnya install compiler tersebut.
Compiler dev-cpp akan anda gunakan dalam modul-modul selanjutnya.
POST-TEST:
Dapatkah anda menjawab dengan benar semua pertanyaan pada Pre-Test?