Anda di halaman 1dari 37

Darman, S.

Pd
Email: darman@umkendari.ac.id

ALGORITMA & PEMROGRAMAN DALAM BAHASA C


Tujuan Instruksi Umum (TIU):
Mampu memahami suatu masalah dan mampu mencari solusi pemecahannya dan
mampu menuangkan langkah-langkah pemecahan masalah tersebut dalam bentuk notasi
alami, flowchart ataupun psudocode.

Tujuan Instruksi Khusus (TIK):


Mengetahui pengertian umum tentang algoritma, flowchart, pseudocode dan program
Mengetahui struktur dasar Algoritma
Mampu membuat dan membaca algoritma sederhana.
Mampu menerangkan hubungan masalah-algoritma-program komputer
Mampu menganalisa masalah dan menerjemahkannya ke dalam bentuk pseudocode
dannotasi alami.

Pembahasan Materi:
Pengertian algoritma
Penulisan algoritma
Tahapan pelaksanaan pemrograman komputer
Implementasi algoritma menjadi program
Struktur dasar algoritma
1.1 Pendahuluan

Sebuah algoritma merupakan deskripsi pelaksanaan


suatu proses, dimana algoritma disusun oleh
sederetan langkah instruksi yang logis. Dengan kata
lain algoritma adalah urutan langkah-langkah atau
instruksi-instruksi logis yang harus dilaksanakan
untuk memecahkan masalah. Kata logis merupakan
kata kunci dalam sebuah algoritma. Langkah-langkah
di dalam algoritma harus logis, ini berarti hasil dari
urutan langkah-langkah tersebut harus dapat
ditentukan, benar atau salah. Langkah-langkah yang
tidak benar dapat memberikan hasil yang salah.
Sebagai contoh, tinjau persoalan mempertukarkan isi dua gelas, A dan B.
Gelas A berisi air kopi, sedangkan gelas B berisi air susu. Kita ingin
mempertukarkan isi kedua gelas itu sedemikian sehingga gelas A berisi air
susu dan gelas B berisi air kopi. Jika kita langsung menuangkan air kopi
yang ada di gelas A langsung ke gelas B maka yang didapatkan adalah
gelas A menjadi kosong dan gelas B menjadi air kopi susu, begitu juga
sebaliknya. Untuk mempertukarkan isi dua gelas tersebut, kita
memerlukan sebuah gelas tambahan yang diperlukan sebagai tempat
penampungan sementara. Sebut gelas tambahan tersebut gelas C. Dengan
menggunakan gelas bantu C ini, algoritmamempertukarkan isi dua buah
gelas yang benar adalah sebagai berikut ini:
Algoritma Tukar Isi Gelas:
Diberikan dua buah gelas, A dan B; gelas A berisi air kopi, gelas B
berisi air susu.
Pertukarkan isi kedua gelas itu sedemikian sehingga gelas A berisi
air susu dan gelas B berisi air kopi.

Deskripsi:
Tuangkan kopi dari gelas A ke dalam gelas C (gelas A menjadi
kosong).
Tuangkan susu dari gelas B ke dalam gelas A (gelas B menjadi
kosong).
Tuangkan kopi dari gelas C ke dalam gelas B.
Syarat algoritma yang baik menurut Donald E. Knuth
harus memenuhi lima hal berikut ini:
1. Finiteness
Algoritma yang baik harus ada akhir atau berhenti
setelah mengerjakan sederetan instruksi. Algoritma
yang tiada akhir atau tidak dapat berhenti bukan
merupakan algoritma yang baik.
2. Defineteness
Setiap langkah algoritma harus didefinisikan dengan
tepat dan jelas sehingga tidak menimbulkan makna
ganda(ambiguous). Sebagai contoh, pernyataan
“Lakukan langkah di bawah ini beberapa kali”,
pernyataan tersebut jelas akan membingungkan
karena tidak ada yang membatasi berapa banyak
perintah yang harus dijalankan.
Bandingkan dengan pernyataan berikut: “Lakukan
langkah di bawah ini sebanyak 10 kali”.
3. Input
Algoritma yang baik harus memiliki masukan data
untuk diolah. Masukan adalah besaran atau nilai
yang diberikan kepada algoritma, masukan biasanya
diberikan di awal penulisan. Sebagai contoh, untuk
menghitung luas segitiga kita membutuhkan nilai
alas dan nilai tinggi, sehingga luas segitiga dapat
dihitung.
4. Output
Algoritma yang baik adalah algoritma yang
menghasilkan output atau keluaran yang merupakan
hasil dari pengolahan data masukan.
5. Effectiveness
Algoritma yang baik adalah algoritma yang
mempunyai langkah-langkah atau instruksi yang
effektif yaitu algoritma yang memiliki langkah yang
paling sederhana, sehingga dapat dikerjakan dalam
waktu yang cukup wajar.
1.2 Penulisan Algoritma

Algoritma bersifat programming language


independent, yang maksudnya adalah
penulisan algoritma tidak terikat dengan
bahasa pemrograman tertentu, tetapi
algoritma dapat diterapkan untuk berbagai
bahasa pemrograman.
Algoritma dapat dituliskan dalam 3 bentuk/ notasi, yaitu:
1) Flowchart, penggunaan flowchart lebih menggambarkan
urutan instruksi secara visual sehingga memudahkan
orang awam dalam membaca urutan instruksi tersebut.
2) Bahasa/ notasi alami, contohnya menggunakan Bahasa
Indonesia Terstruktur (BIT). Dengan menggunakan bahasa
alami maka akan memudahkan pengguna dalam
memahami algoritma tersebut, tetapi untuk masalah yang
cukup kompleks penggunaan notasi alami tidak disarankan
karena akan menyulitkan saat pengkonversian ke dalam
bahasa pemrograman. Supaya tidak menyulitkan dalam
pembuatan maupun pembacaan algoritma,
maka BIT menggunakan beberapa istilah seperti berikut ini:
 Untuk mendapatkan data masukan, dapat menggunakan kata berikut: isi,
baca,
 masukkan, baca data, baca file.
 Untuk menyatakan proses penghitungan, dapat menggunakan kata berikut:
hitung,
 jumlahkan, kurangi, dan sebagainya.
 Untuk menyatakan proses pemilihan, dapat menggunakan kata berikut:
 jika...maka....sebaliknya....akhir jika.
 Untuk menyatakan proses pengulangan, dapat menggunakan kata berikut:
 ulangi....sampai...., selama......lakukan,.
 Untuk menyatakan hasil keluaran, dapat menggunakan pernyataan berikut:
tulis,
 cetak, tampilkan, rekam.
3) Pseudocode; adalah notasi yang menyerupai bahasa
pemrograman tingkat tinggi, umunya menyerupai
bahasa Pascal atau C.
Pseudocode menggunakan beberapa istilah seperti:
Untuk mendapatkan data masukan: input, read, get,
key-in.
Untuk menyatakan proses pemilihan: if...then....;
if....then...else....end if.
Untuk menyatakan proses pengulangan:
repeat...until...; while...do...;
for...do....end for; do....while....;
Untuk menyatakan hasil keluaran: print, write, display.
Contoh:
Buatlah algoritma untuk mencari luas sebuah
lingkaran. Berdasarkan permasalahan tersebut kita
ketahui untuk mencari luas segitiga dapat dihitung
dengan menggunakan rumus matematis: Luas
Segitiga = Л. R2
1.3 Tahapan Pelaksanaan Pemrograman Komputer
Setelah kita mengetahui apa yang dimaksud dengan algoritma dan
bagaimana membuat sebuah algoritma, tahapan selanjutnya
adalah bagaimana kita menerapkannya dalam bahasa
pemrograman. Tetapi sebelum itu kita harus melihat secara
keseluruhan tahapan dalam pemrograman komputer. Berikut ini
adalah tahapan yang harus dilakukan dalam pembuatan program
komputer:
Mendefinisikan Masalah. Pendefinisian atau pemahaman
masalah adalah tahapan pertama yang penting karena pada
tahap ini kita menentukan masalahnya, kemudian apa saja yang
dapat dipecahkan dengan program komputer dan selanjutnya
kita menentukan juga masukan seperti apa yang diperlukan dan
keluaran yang bagaimana yang diinginkan.
Menentukan solusi. Pada tahap ini yang harus dilakukan adalah
mencari jalan bagaimana masalah tersebut diselesaikan.
Memilih algoritma. Pemilihan algoritma merupakan
tahap yang cukup penting karena jika salah
menentukan algoritma yang dipilih maka akan
menyebabkan program menghasilkan unjuk kerja atau
performa yang kurang optimal.
Menulis program. Tahap penulisan program dalam
sebuah bahasa pemrograman atau biasa disebut tahap
coding. Pada tahap ini algoritma diterjemahkan ke
dalam bahasa pemrograman tertentu, yang kemudian
akan diproses oleh komputer. Untuk memahami proses
yang terjadi pada tahap coding dapat dilihat dari
gambar berikut ini:
Keterangan:
Algoritma di translasikan
menjadi program dalam bahasa
tingkat tinggi. Selanjutnya,
program dikompilasi dan
diterjemahkan menjadi
program dalam bahasa mesin
dan delink dengan berkas
library. Instruksi dalam bahasa
mesin diinterpretasikan oleh
CPU. Operasi yang bersesuaian
dengan setiap instruksi
dilaksanakan.
Menguji program. Setelah program selesai ditulis, dapat
dilakukan pengujian untuk melihat apakah program yang sudah
dibuat berhasil di kompilasi dengan baik, kemudian program diuji
kembali untuk melihat apakah program menghasilkan keluaran
yang diinginkan.
Menulis dokumentasi. Tahap ini dapat dilakukan bersamaan
dengan tahap penulisan program, contohnya memberikan
komentar pada program untuk menjelaskan program tersebut.
Tahap ini terkadang dianggap tidak penting dan seringkali
diabaikan, sesungguhnya dokumentasi sangat penting terlebih
untuk program yang cukup kompleks dimana pembuatan program
dilakukan oleh lebih dari satu orang,dokumentasi dapat
memberikan penjelasan tentang algoritma yang digunakan oleh si
pembuat program.
Merawat program. Tahap ini dapat dilakukan setelah program
selesai dibuat dan telah digunakan.
1.4 Implementasi Algoritma Menjadi Program

Seperti telah dibahas pada sub bab sebelumnya, setelah


algoritma dibuat maka tahap selanjutnya adalah meng-
implementasikannya ke dalam program komputer yang dapat
dituliskan dalam bahasa pemrograman tertentu. Sebagai
contoh apabila algoritma dituliskan dalam bahasa C, maka
diperlukan compiler C untuk menerjemahkan program
tersebut menjadi instruksi bahasa mesin yang kemudian
diproses oleh komputer.
Program dapat didefinisikan sebagai sederetan instruksi atau
perintah (dalam bahasa yang di mengerti oleh komputer)
untuk melaksanakan tugas-tugas tertentu, sehingga
menghasilkan suatu keluaran / output yang diharapkan.
Sedangkan bahasa pemrograman dapat didefinisikan sebagai
program yang berisikan instruksi-instruksi yang dimengerti
oleh komputer.
Dalam pembuatan program komputer umumnya
menggunakan bahasa pemrograman tingkat tinggi,
seperti Bahasa Pascal, C ataupun C++. Suatu program
komputer pada umumnya berisi 3 hal, yaitu:
1) Pembacaan/ pemasukan data ke dalam komputer
(Input),
2) Melakukan penghitungan terhadap data tersebut
(Proses), dan
3) Mengeluarkan/ mencetak hasilnya (Output).
Bahasa pemrograman dapat diklasifikasikan menjadi
dua:
1. Low level language / bahasa tingkat rendah yang
berorientasi pada mesin, contohnya: bahasa mesin /
machine language dan bahasa rakitan / assembly
language.
2. High level language/bahasa tingkat tinggi adalah
bahasa pemrograman yang berorientasi pada
manusia. Bahasa pemrograman ini disebut juga
bahasa generasi ketiga atau 3GL. Contohnya : BASIC,
PASCAL, COBOL, FORTRAN, C, C++.
Perintah-perintah yang digunakan dalam
bahasa tingkat tinggi (bahasa generasi ke- 3)
umumnya menggunakan bahasa Inggris.
Sebagai contoh:
Dalam C: printf (“Belajar Algoritma\n”);
Dalam C++: cout<< “Belajar Algoritma \n”;
Dalam Pascal: Writeln(‘Belajar Algoritma’);
Ketiga perintah di atas adalah perintah yang dituliskan
dalam bahasa C, bahasa C++ dan bahasa Pascal. Ketiganya
menghasilkan keluaran yang sama yaitu menampilkan
kalimat Belajar Algoritma.
Ketiga perintah tersebut sebelum diproses oleh computer
sesungguhnya harus diterjemahkan terlebih dahulu agar
perintah-perintah tersebut dimengerti oleh mesin
komputer. Untuk menerjemahkannya dibutuhkan perangkat
lunak yang disebut interpreter dan compiler. Interpreter
merupakan perangkat lunak yang digunakan untuk
menerjemahkan program baris per baris, maksudnya adalah
jika baris pertama yang akan diekseskusi maka baris
pertama dari sebuah program akan diterjemahkan terlebih
dahulu ke dalam bahasa mesin, kemudian jika baris kedua
yang akan dieksekusi baru baris kedua yang akan
diterjemahkan, dan seterusnya.
1.5 Struktur Dasar Algoritma

Algoritma berisi langkah-langkah penyelesaian


masalah. Langkah-langkah tersebut dapat berupa
runtunan aksi, pemilihan aksi, dan pengulangan aksi.
Ketiga jenis langkah tersebut membentuk konstruksi
suatu algoritma. Jadi, sebuah algoritma dapat
dibangun dari tiga buah struktur dasar, yaitu:
Runtunan (sequence), Pemilihan (selection),
danPengulangan (repetition).
Sebenarnya dalam kehidupan sehari-haripun kita
sudah menggunakan algoritma dalam menjalani
rutinitas kehidupan. Sebagai contoh, saat mengikuti
ujian semester ada langkah-langkah yang harus
dilaksanakan antara lain:
Mempersiapkan kartu ujian.
Menempati tempat duduk sesuai nomer ujian.
Menandatangani form kehadiran.
Mendapatkan lembar soal dan lembar jawaban.
Mengerjakan ujian dengan tertib.
Keluar ruangan ujian saat waktu ujian telah habis.
Dalam banyak hal terkadang algoritma yang dilakukan tidak
berurutan seperti di atas, terkadang akan ada beberapa langkah
yang harus dipilih tergantung pada kondisi. Sebagai contoh, dari
pengembangan algoritma di atas, saat peserta ujian telah selesai
mengerjakan ujian tetapi waktu ujian masih ada, apa yang
selanjutnya harus dilakukan?
Apakah keluar ruangan atau tetap menunggu di ruangan hingga
waktu ujian habis.Keadaan seperti ini dalam algoritma di sebut
percabangan atau selection.

Pada permasalahan lain, ada keadaan dimana suatu langkah atau


sebuah perintah dilaksanakan lebih dari satu kali. Contohnya,
seorang mahasiswa akan mengambil mata kuliah yang sama selama
mata kuliah tersebut belum bernilai minimal C. Keadaan ini dalam
algoritma dinamakan perulangan atau looping.
Contoh:
1. Buatlah algoritma deskriptif untuk masalah berikut:
Tiga orang pemburu membawa tiga orang kanibal dari sebuah pulau
terpencil menuju desa terdekat. Antara pulau terpencil dengan desa
terdekat dibatasi oleh sebuah sungai yang memiliki arus yang deras.
Untuk menyeberangi sungai, mereka hanya dapat menggunakan
sebuah perahu kecil. Perahu tersebut dapat digunakan untuk bolak
balik tetapi minimal harus ada satu orang untuk mengendarai
perahu dan perahu hanya dapat menampung maksimal dua orang
sekali jalan. Hal yang penting dalam permasalahan ini adalah bahwa
jumlah pemburu tidak boleh lebih sedikit dibandingkan dengan
jumlah kanibal, baik di sisi pulau maupun di sisi desa karena jika
jumlah kanibal lebih banyak dibandingkan jumlah pemburu maka
kanibal dapat memakan pemburu. Buatlah algoritma untuk
menyebrangkan tiga orang kanibal dan tiga orang pemburu
selurunya selamat tiba desa.
Pemahaman masalah:
Hasil yang diharapkan : seluruh pemburu dan kanibal
selamat menyebrangi sungai

Permasalahan:
Hanya dapat menggunakan perahu untuk menyebrangi
sungai.
perahu minimal berisi 1 orang, maksimal berisi 2 orang.
Jumlah pemburu harus lebih banyak dari jumlah
kanibal.
Algoritma
penyeberangan
sungai ini
adalah salah
satu contoh
algoritma
runtunan,
karena jika
langkah yang
dilaksanakan
tidak berurutan
maka tidak akan
memecahkan
masalah.
2. Buatlah algoritma untuk menuliskan nilai mutlak
dari nilai yang dimasukkan oleh pengguna.

Pemahaman masalah:
Nilai mutlak x □| x| adalah sbb: | x | = x, jika x ≥ 0
| x | = -x, jika x < 0
Penjelasan algoritma:
 Baris pertama meminta masukkan bilangan yang disimpan pada variabel x.
 Baris kedua mengecek apakah nilai yang dimasukkan lebih kecil dari nol atau tidak, jika lebih kecil
maka kerjakan perintah nomer 3 jika tidak lebih kecil maka kerjakan perintah nomer 4.
 Baris ketiga membuat nilai x menjadi positif (baris ini hanya dilakukan jika nilai x lebih kecil dari nol)
 Baris keempat mencetak nilai x. Algoritma mencari nilai mutlak merupakan algoritma bentuk
percabangan, karena pada algoritma di atas kita dihadapkan pada sebuah kondisi yang akan
membuat program mempunyai dua arah (lihat baris kedua).
3. Buatlah algoritma untuk mencetak sebuah kata
yang diinput oleh pengguna sebanyak 5 kali.
Pemahaman masalah:
Meminta masukan berupa sebuah kata, kemudian
kata tersebut tercetak sebanyak 5 kali.
Penjelasan algoritma:
 Langkah pertama meminta masukan sebuah kata yang disimpan pada variabel
Kt
 Langkah kedua memberi nilai awal m=1, variabel M digunakan untuk
menyimpan hasil pengulangan (pencacah).
 Langkah ketiga memberikan perintah untuk mengulangi langkah ketiga hingga
langkah kelima selama nilai M masih bernilai lebih kecil atau sama dengan 5.
 Langkah keempat merupakan perintah untuk mencetak Kt.
 Langkah kelima menambahkan variabel M dengan 1. variabel M harus
ditambah dengan nilai 1 agar kondisi pada langkah ketiga ada saatnya bernilai
salah, dalam hal ini digunakan untuk membatasi perulangan.
 Algoritma mencetak kata yang yang dimasukkan oleh pengguna merupakan
bentuk algoritma pengulangan.
TUGAS MANDIRI
1. Buatlah algoritma untuk mencetak kalimat ”Algoritma
Pemrograman” sebanyak 50 kali.
2. Tulislah algoritma untuk meminta pengguna memasukkan
tiga buah bilangan bulat, kemudian menampilkan bilangan
terkecil dari ketiga bilangan tersebut.
3. Buatlah algoritma untuk menghitung akar persamaan
kuadrat. Akar persamaan kuadrat dapat dicari dengan
terlebih dahulu menghitung nilai determinan dengan rumus
D = B2 – 4 A C.
Jika nilai D < 0 maka didapat akar tidak nyata.
Jika nilai D = 0 maka X1 = X2, untuk menghitung nilai X didapat dari
rumus: –B / ( 2 A).
Jika nilai D > 0 maka terdapat dua akar X1= (-B + √D / 2A) dan X2= (-B -
√D / 2A).

Anda mungkin juga menyukai