Anda di halaman 1dari 28

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/263820517

Algoritma dan Pemrograman dengan Bahasa C: Konsep,


Teori, dan Implementasi

Book · August 2011

CITATIONS READS

10 51,007

1 author:

Antonius Rachmat
Universitas Kristen Duta Wacana
114 PUBLICATIONS   232 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Publications View project

Pengabdian 2018 View project

All content following this page was uploaded by Antonius Rachmat on 14 November 2016.

The user has requested enhancement of the downloaded file.


ALGORITMA PEMROGRAMAN
DENGAN BAHASA C
Konsep, Teori, dan Implementasi

Antonius Rachmat C

PENERBIT ANDI YOGYAKARTA


ii Algoritma dan Pemrograman dengan Bahasa C

KATA PENGANTAR

Buku algoritma dan pemrograman memang sudah banyak tersedia di pasar


buku Indonesia. Meski begitu penulis melihat bahwa di antara buku-buku
itu masih ada yang kurang jelas, kurang lengkap, atau bahkan belum
memiliki contoh kasus yang bisa diterapkan pada proyek nyata. Buku
Algoritma Pemrograman dengan Bahasa C ini merupakan buku teks untuk
Teknik Informatika, Teknologi Informasi, Ilmu Komputer, atau Sistem
Informasi yang dapat digunakan pada semester awal sebagai matakuliah
wajib dasar. Buku ini penulis susun berdasarkan pengalaman mengajar di
universitas selama beberapa tahun.
Penulis memilih untuk menggunakan bahasa C karena bahasa C merupakan
bahasa yang menjadi dasar bahasa-bahasa pemrograman baru sekarang ini,
seperti Java, C++, C#, PHP, JavaScript, dan lain-lain. Penulis tidak
menggunakan bahasa C++ karena bahasa C berbeda dengan C++ dari segi
sintaks penulisan, fungsi, dan terutama bahasa C masih bersifat fungsional
(modular) dan belum berorientasi obyek sehingga lebih mudah dipelajari
karena lebih sederhana. Intinya, penulis berusaha lebih fokus pada
pembentukan pola pikir para pembaca agar dapat menuangkan
pemikirannya ke program. Bahasa C seringkali disebut sebagai bahasa ibu
dari bahasa pemrograman, dapat dikatakan sebagai bahasa level menengah
atau level tinggi, bahkan ada juga yang menyebutnya sebagai bahasa
pemrograman generasi ketiga. Karena buku ini ditujukan sebagai dasar
pemrograman, maka bahasa C dirasa sangat cocok digunakan untuk
mengenalkan bahasa pemrograman kepada mahasiswa atau siapapun yang
ingin belajar bahasa pemrograman. Dengan belajar bahasa C di awal,
penulis yakin bahwa pembaca akan lebih mudah di dalam mempelajari
bahasa-bahasa pemrograman baru yang ada sekarang ini, karena
bahasanya yang mirip atau bahkan sama, sebab sebagian bahasa
pemrograman diturunkan dari bahasa C. Memang masih ada bahasa Pascal
yang juga mudah diajarkan sebagai bahasa pemrograman awal, namun
bahasa Pascal sudah meredup ketenarannya setelah Delphi dikalahkan oleh
.NET dan Java.
Penulis memilih untuk menggunakan tool programming DevC++
(http://sourceforge.net/projects/dev-cpp/) untuk mempelajari bahasa C.
Alasannya adalah: 1). mudah digunakan 2). gratis (free), 3). standar ANSI,
bisa digunakan di Windows dan Linux, 4). ringan dan cepat 5). memiliki IDE
yang lengkap, disertai modul tambahan dan file help-nya. Sebenarnya
semua source code program yang ada pada buku ini dapat digunakan pada
IDE TurboC++, DevC++, Netbeans C++, Visual C++, dan Borland C++ 4.x atau
5.x, karena pada dasarnya sama. Hanya perlu dibuka, dikompilasi, dan
dijalankan. Sangat mudah!
Penulis membagi isi buku ini berdasarkan pengalaman mengajar selama ini,
sehingga dibuat menjadi 12 bab, mulai dari pengenalan algoritma,
flowchart & pseudocode, pengenalan bahasa pemrograman, tipe data,
input-output, struktur kontrol pemilihan, perulangan, fungsi, larik, record,
dan pada akhirnya penulis juga memperkenalkan pemrograman berbasis
Graphical User Interface yang lebih menarik pembaca untuk mempelajari
program, setelah menguasai dasar pemrograman. Di akhir setiap bab
penulis hampir selalu memberikan soal-soal dan beberapa kasus nyata yang
sering dihadapi dalam pemrograman berdasarkan topik.
Buku ini sangat cocok untuk dibaca oleh mahasiswa, dosen, pengajar
pemrograman, programmer, pelajar SMU, atau pun pembaca yang ingin
mempelajari bahasa pemrograman dasar dengan bahasa C. Bagi
mahasiswa, buku ini disesuaikan dengan kurikulum berbasis kompetensi
yang diterapkan di universitas di seluruh Indonesia, sehingga dapat
langsung digunakan dan dipraktikkan. Nilai lebihnya, buku ini juga disertai
banyak source code yang bisa dicoba dan dikembangkan. Selain itu juga
terdapat latihan soal-soal pemrograman baik secara pilihan ganda, isian
singkat dan uraian baik yang berupa teori dan praktek. Penulis dapat
dihubungi sewaktu-waktu melalui email. Akhir kata, penulis ucapkan terima
kasih, selamat membaca dan mencoba!
Yogyakarta, Agustus 2011

Antonius Rachmat C
antonie_oo@yahoo.com
DAFTAR ISI

KATA PENGANTAR .............................................................................

DAFTAR ISI ........................................................................................

BAB I PENGANTAR ALGORITMA ......................................................


1.1 Sistem Komputer ..........................................................
1.2 Pengertian Algoritma ....................................................
1.3 Kriteria Algoritma .........................................................
1.4 Bentuk-bentuk Dasar Algoritma.....................................
1.5 Contoh Kasus ................................................................

BAB II FLOWCHART DAN PSEUDOCODE ...........................................


2.1 Pengertian Flowchart ....................................................
2.2 Notasi dan Simbol Flowchart .........................................
2.3 Pengertian Pseudocode .................................................
2.4 Penggunaan dan Notasi Pseudocode..............................
2.5 Contoh Kasus ................................................................

BAB III BAHASA PEMROGRAMAN C ..................................................


3.1 Perkembangan Bahasa Pemrograman............................
3.2 Cara Membuat Program ................................................
3.3 Penggunaan IDE DevC++ ................................................
3.4 Struktur Bahasa C..........................................................
3.5 Identifier dan Tipe Data.................................................
3.6 Operator dan Keywords ................................................
3.7 Contoh Kasus ................................................................
Daftar Isi v

BAB IV INPUT DAN OUTPUT ..............................................................


4.1 Struktur Input Tak Terformat .........................................
4.2 Struktur Input Terformat ...............................................
4.3 Struktur Output Tak Terformat ......................................
4.4 Struktur Output Terformat ............................................

BAB V STRUKTUR KONTROL PERCABANGAN ....................................


5.1 Struktur Kontrol Percabangan Sederhana ......................
5.2 Struktur Kontrol Percabangan Kompleks ........................
5.3 Struktur Kontrol dengan Perintah SWITCH .....................
5.4 Contoh Kasus ................................................................

BAB VI STRUKTUR KONTROL PERULANGAN ......................................


6.1 Jenis-jenis Perulangan pada Bahasa C ............................
6.2 Perintah Break dan Continue .........................................
6.3 Percabangan Kompleks .................................................
6.4 Contoh Kasus ................................................................

BAB VII PEMROGRAMAN MODULAR..................................................


7.1 Pengantar Pemrograman Modular .................................
7.2 Pemrograman Modular dalam C ....................................
7.3 Struktur Function pada Bahasa C ...................................
7.4 Fungsi dan Prosedur ......................................................
7.5 Fungsi Main ..................................................................
7.6 Fungsi Rekursif..............................................................
7.7 Contoh Kasus ................................................................

BAB VIII PARAMETER FUNGSI DAN POINTER .......................................


8.1 Jangkauan Identifier pada Fungsi ...................................
8.2 Pengiriman Parameter By Value ....................................
8.3 Pengiriman Parameter By Reference ..............................
8.4 Pointer .........................................................................
vi Algoritma dan Pemrograman dengan Bahasa C

BAB IX ARRAY ..................................................................................


9.1 Pengertian Array dan Karakteristiknya ...........................
9.2 Array 1 Dimensi dan Pemrogramannya ..........................
9.3 Array 2 Dimensi dan Pemrogramannya ..........................
9.4 Array dan Fungsi ...........................................................
9.5 Contoh Kasus ................................................................

BAB X STRING .................................................................................


10.1 Pengertian String dan Karakteristiknya ..........................
10.2 Fungsi String dan Penggunaannya..................................
10.3 Contoh Kasus ................................................................

BAB XI STRUCT .................................................................................


11.1 Pengertian Struct dan Karakteristiknya ..........................
11.2 Penggunaan Struct ........................................................
11.3 Array dan Struct ............................................................
11.4 Contoh Kasus ................................................................

BAB XII PEMROGRAMAN GUI DENGAN C++ BUILDER..........................


12.1 Pemrograman GUI ........................................................
12.2 Pengantar C++ Builder ...................................................
12.3 Prinsip Desain Interface pada Aplikasi GUI .....................
12.4 Contoh Kasus ................................................................

PENUTUP...........................................................................................

REFERENSI .........................................................................................

CONTOH SOAL LATIHAN .....................................................................


Soal Pilihan Ganda ................................................................
Soal Isian Singkat ..................................................................
Soal Essay .............................................................................
Soal Praktikum......................................................................
Daftar Isi vii
BAB I
PENGANTAR ALGORITMA

Kompetensi Umum:
Dapat menjelaskan algoritma dan penggunaannya
dalam program komputer.
Kompetensi Khusus:
1. Dapat menjelaskan sistem komputer.
2. Dapat menjelaskan pengertian algoritma.
3. Dapat menjelaskan kriteria algoritma.

1.1 SISTEM KOMPUTER


Sebuah sistem komputer terdiri atas hardware (perangkat keras), software
(perangkat lunak), dan brainware (pengguna komputer). Suatu sistem
komputer dapat bekerja karena ketiga komponen di atas bekerja sama
sehingga hardware dapat diakses oleh brainware menggunakan software,
terutama dengan menggunakan sistem operasi. Selain itu, dengan
menggunakan berbagai software aplikasi, brainware juga dapat
memanfaatkan sistem komputer untuk berbagai hal guna meningkatkan
produktivitasnya. Penggunaan software pembuat program juga dapat
membantu brainware, terutama programmer, untuk menciptakan software
aplikasi baru yang membuat sistem komputer semakin canggih dan berdaya
guna. Gambar hubungan antara hardware, software, dan brainware adalah
sebagai berikut:
2 Algoritma dan Pemrograman dengan Bahasa C

Gambar 1.1 Diagram Hubungan antara Hardware, Software, dan Brainware


Karena algoritma berfokus pada software maka akan dibahas lebih detail
mengenai software (program). Program adalah kumpulan instruksi
tersendiri yang biasa disebut sebagai source code. Kumpulan instruksi ini
dibuat oleh programmer (pembuat program). Jadi, program adalah
kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga
mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.
Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) yang
sesuai dengan bahasa pemrograman yang digunakan dimana mempunyai
komponen input, proses, dan output. Contohnya pada sistem login, seperti
pada login situs jejaring sosial Facebook (www.facebook.com), input berarti
segala sesuatu yang dijadikan masukan ke dalam situs Facebook, misalnya
data nama pengguna, atau email dan password. Sedangkan proses berarti
segala sesuatu yang dikerjakan oleh sistem login Facebook itu ketika sudah
menerima data masukan dari pengguna, misalnya: memvalidasi apakah
email dan password yang dimasukkan sudah tepat dan terdaftar di situs
Facebook. Setelah itu, tahap yang terakhir, adalah output. Jika valid maka
proses akan memperbolehkan pengguna untuk masuk ke halaman Home
dan memberikan output berupa informasi yang ditampilkan pada halaman
Home itu. Namun jika tidak valid maka pengguna akan diberi output berupa
kesalahan yang terjadi dan mungkin akan diminta untuk memasukkan
kembali email dan password secara benar.
Pengantar Algoritma 3

1.2 PENGERTIAN ALGORITMA


Sebelum membahas pengertian algoritma secara detail, berikut ini kasus
yang biasa terjadi di dunia nyata yang berkaitan dengan algoritma. Misalkan
ada seorang ibu bernama Titin yang akan memasak untuk makan malam.
Untuk makan malam kali ini Ibu Titin hendak menggoreng kentang. Pada
kejadian ini Ibu Titin akan menjalankan aksi menggoreng kentang. Sebelum
menggoreng kentang, ada beberapa hal yang harus diperhatikan berkaitan
dengan aksi tersebut, yaitu:
1. Apakah kentang yang akan digoreng sudah tersedia atau harus dibeli
terlebih dahulu?
2. Jika sudah dibeli, apakah kentang yang akan digoreng sudah dikupas
kulitnya?
3. Ada berapa buah kentang yang harus digoreng?
4. Apakah semua kentang memiliki mutu yang baik atau ada yang busuk?
5. Jika ada yang busuk, apakah kentang tersebut akan tetap dipakai atau
akan dibuang?
6. Jika kentang sudah selesai digoreng, bagaimana cara menghidangkan-
nya? Apakah menggunakan saus tomat ataukah tidak?

Input Proses Output

Gambar 1.2 Komponen Utama Program


Permasalahan di atas dapat dianalogikan dalam pembuatan program
komputer. Semua kejadian di atas mengandung unsur input, proses, dan
output. Hubungan antara input, proses dan output dapat dilihat pada
gambar 1.2. Input pada kasus berupa kentang yang akan digoreng.
Sebelum menggunakan data kentang, juga harus dipikirkan apakah kentang
yang akan digunakan sudah ada atau harus dibeli terlebih dahulu, yang
berarti ada batasan masalah data. Jika semua kentang siap digunakan
sebagai input, lalu apakah ada pra-premrosesan yang harus dilakukan
seperti misalnya apakah harus dikupas terlebih dahulu? Atau apakah ada
kentang yang busuk? Jika kentang busuk tidak dipakai, jika tidak busuk
maka bisa dipakai. Hal ini berarti ada tahap pemilihan kondisi. Tahapan
tersebut sering dilakukan dalam pembuatan program. Kadang data yang
4 Algoritma dan Pemrograman dengan Bahasa C

akan dipakai tidaklah tepat (clean) seperti yang diinginkan, namun harus di-
pre-processing terlebih dahulu.
Tahapan berikutnya adalah proses, yaitu proses menggoreng kentang.
Harus juga diperhatikan: ada berapa kentang yang harus digoreng? Apakah
cukup satu buah, lima buah, atau harus sampai berpuluh-puluh buah
karena akan ada pesta keluarga? Dalam hal ini harus dilakukan perulangan
kegiatan menggoreng sesuai dengan target yang diharapkan. Pada pemro-
graman kadang programmer juga harus mengulang beberapa bagian
program karena kesamaan hal yang harus dilakukan. Hal yang demikian
mempermudah pemrograman yang dilakukan.
Pada akhirnya juga harus diperhatikan apakah kentang yang sudah digoreng
akan dihidangkan dengan cara bagaimana, apakah dengan saus tomat atau
saus sambal? Pada saat menampilkan output hasil pemrosesan program,
seringkali juga harus dilakukan pemfilteran terhadap tampilan program
agar lebih baik dan sesuai dengan kebutuhan pengguna. Pada tahap ini juga
dilakukan pemilihan kondisi.
Dari contoh di atas dapat diambil gambaran tentang apa itu algoritma.
Secara sederhana algoritma adalah urutan langkah yang logis untuk
menyelesaikan masalah tertentu. Yang ditekankan adalah urutan langkah
logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak
boleh melompat-lompat. Secara definisi, algoritma adalah alur pemikiran
logis yang dapat dituangkan ke dalam bentuk tulisan. Yang ditekankan
pertama adalah alur pikiran, sehingga algoritma seseorang dapat berbeda
dengan algoritma orang lain. Sedangkan penekanan kedua adalah tertulis,
yang berarti dapat berupa kalimat, gambar, atau tabel tertentu. Gambar
atau simbol-simbol dalam algoritma sering disebut flowchart, yang akan
dibahas pada bab-bab selanjutnya.
Kata algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-
Khwarizmi, ilmuan Persia yang menulis kitab Al Jabr W’al-muqabala (Rules
of Restoration and Reduction) sekitar tahun 825 M, yang berasal dari Iran.
Algoritma masuk ke Indonesia bersamaan dengan masuknya teknologi
komputer ke Indonesia.

Requirement Design Implementation Testing

Gambar 1.3 Siklus Hidup Software


Pengantar Algoritma 5

Pada gambar di atas dapat dilihat bahwa proses pembuatan software


aplikasi membutuhkan 4 tahapan, yaitu:
1. Requirement, yaitu tahap mencari tahu kebutuhan klien/user, bisa
dilakukan dengan wawancara, bertemu secara langsung, atau dengan
melihat program yang pernah ada.
2. Design, yaitu tahap membuat prototype/bentuk program interface
(tampilan program) yang bakal dibuat namun belum fungsional.
3. Implementation, yaitu tahap di mana programmer melakukan
pengkode-an program secara nyata hingga semua fungsionalitasnya
terpenuhi dan benar.
4. Testing, yaitu tahap setelah program jadi. Program dites apakah semua
fungsionalitasnya benar-benar sesuai dengan requirement yang sudah
ditetapkan sebelumnya.
Sebenarnya masih ada satu tahapan lagi, yaitu tahap maintenance, yaitu
tahap di mana setelah program valid maka program harus dipelihara, dapat
di-update, di-backup, atau mungkin ditingkatkan versinya, di-patch, dan
lain-lain sampai suatu jangka waktu tertentu. Contoh maintenance yang
bisa dilihat pada versi program yang selalu meningkat dan diperbarui secara
berkala.

1.3 KRITERIA ALGORITMA


Menurut Donald E. Knuth, algoritma yang baik memiliki kriteria sebagai
berikut:
1. Input
Dari sisi input, minimal program harus memiliki nol input atau lebih dari
pengguna. Program pasti memiliki input. Yang dimaksud memiliki nol
input berarti program tidak mendapatkan masukan data dari pengguna
secara langsung, namun semua data yang akan digunakan oleh program
sudah dideklarasikan di dalam kode program yang akan dieksekusi. Jadi
tidak perlu di-input-kan dari luar. Sedangkan jika mendapat input dari
pengguna, data bisa dimasukkan melalui tampilan program, misalnya
melalui textbox, ataupun melalui file/basis data yang terdapat di suatu
tempat/server tertentu.
6 Algoritma dan Pemrograman dengan Bahasa C

2. Output
Dari sisi output, minimal program harus memiliki 1 output. Program
pasti menghasilkan output karena program dibuat untuk tujuan
tertentu. Tujuan itulah output-nya. Ouput program bisa ditampilkan ke
layar (screen), ditulis ke file, atau disimpan di clipboard untuk kemudian
dipakai di program lain atau disimpan dalam basis data.
3. Finite (Terbatas)
Program harus pasti dan berhenti, bukan tak terhingga. Suatu program
yang dieksekusi haruslah berhenti dan selesai, bukan berjalan terus-
menerus hingga hang up atau not responding, dan akhirnya harus di-kill
(dimatikan) dengan paksa. Suatu program dapat mengalami infinite (tak
pernah berhenti) karena kesalahan programmer, mungkin karena
kurang teliti atau karena tidak ada kondisi yang bisa membuatnya
berhenti, atau mungkin karena ada error yang tidak terduga/tidak
tertangani dengan baik, misalnya file tidak ada namun program
mencarinya terus-menerus.
Memang ada program yang seolah-olah tidak pernah mati (terminate),
misalnya sistem operasi, namun sebenarnya sistem operasi juga pasti
akan berhenti, yaitu ketika sistem operasi tersebut di-shutdown.
4. Definite (Pasti)
Program harus jelas arah dan tujuannya. Suatu program harus jelas
kapan mulai dan kapan berakhir, apa tujuannya, dan memiliki logika
yang jelas agar dapat menghasilkan output yang sesuai dengan yang
diharapkan.
5. Efisien
Artinya, program harus efisien, tidak memakan banyak memori, tidak
melakukan hal-hal yang tidak perlu. Suatu operasi/kegiatan yang tidak
perlu, misalnya adalah x = 5 + 0 atau y = 100 * 0. Mengapa operasi
tersebut tidak efisien, karena setiap operasi pasti membutuhkan waktu
eksekusi, padahal operasi tersebut jelas tidak berguna, karena
berapapun bilangan yang ditambah dengan nol pasti bilangan itu
sendiri dan bilangan apa pun dikalikan dengan nol pasti nol. Nah,
mengapa harus dihitung lagi? Berarti program tidak efisien.
Pengantar Algoritma 7

1.4 BENTUK-BENTUK DASAR ALGORITMA


Algoritma secara umum memiliki beberapa bentuk dasar, yaitu:
1. Algoritma Sekuensial
Algoritma sekuensial banyak dijumpai pada kehidupan sehari-hari,
misalnya pada kasus “mengirimkan surat”. Pada kasus tersebut
terdapat langkah-langkah yang harus dilakukan, yaitu:
a. Membeli amplop
b. Membeli perangko
c. Memasang perangko ke amplop
d. Menuliskan alamat pengirim dan alamat tujuan
e. Pergi ke kantor pos atau memasukkan surat itu ke dalam kotak
surat
f. Surat terkirim
Pada contoh di atas dapat dilihat bahwa langkah harus dilakukan secara
runtut dan ada yang tidak boleh dibolak-balik urutannya. Misalnya,
amplop harus dipasangi perangko terlebih dahulu baru kemudian
dikirim ke kantor pos. Surat tidak dapat dikirimkan terlebih dahulu
tanpa dimasukkan ke amplop yang berperangko terlebih dahulu.
Algoritma sekuensial juga muncul pada kasus Ibu Titin yang hendak
memasak kentang. Langkah-langkah yang dilakukannya adalah sebagai
berikut:
a. Ibu Titin mengambil kantong kentang dari dalam rak.
b. Ibu Titin mengambil panci dari almari.
c. Ibu Titin mengupas kentang.
d. Ibu Titin mengembalikan sisa kentang dalam kantong ke dalam rak.
e. Ibu Titin memasak kentang.
f. Ibu Titin menghidangkan kentang yang sudah masak.
Pada prinsipnya algoritma sekuensial adalah alur pemikiran yang
terstruktur, terurut, pasti, dan jelas untuk menyelesaikan masalah.
8 Algoritma dan Pemrograman dengan Bahasa C

Dalam algoritma ini kadang ada langkah-langkah yang tidak boleh


ditukar urutannya.
2. Algoritma Percabangan
Pada contoh kasus algoritma sekuensial “mengirimkan surat” dapat
dilihat bahwa pada langkah ke-5, yang mana surat yang sudah siap
dikirim dapat dikirimkan dengan pergi ke kantor pos atau dengan
memasukkannya ke dalam kotak pos. Pada langkah tersebut terdapat
kata ATAU, yang berarti pemilihan solusi. Ada dua solusi yang bisa
dipilih, tetapi tidak keduanya. Algoritma untuk memilih salah satu dari
beberapa pilihan yang ada disebut algoritma percabangan/pemilihan.
Yang perlu diperhatikan pada algoritma ini adalah solusi pilihan akan
dilakukan jika kondisinya terpenuhi, dalam arti kondisinya
menghasilkan nilai benar (TRUE). Jika kondisi benar maka solusi akan
dijalankan, dan jika salah maka tidak akan dijalankan; bisa jadi
menjalankan solusi lain atau tidak bertindak sama sekali.
Pada contoh kedua tentang Ibu Titin, jika kita tambahkan langkah
berikut:
a. Ibu Titin mengambil kantong kentang dari dalam rak.
b. Ibu Titin mengambil panci dari almari.
c. Menurut kebiasaan Ibu Titin, pada hari biasa Ibu Titin menggunakan
baju warna cerah sehingga dia harus menggunakan celemek. Pada
hari Sabtu dan Minggu dia menggunakan baju warna hitam. Maka
perlu diperhatikan, sebelum mengupas kentang, apakah Ibu Titin
memakai celemek atau tidak, bergantung pada hari apa saat itu.
d. Ibu Titin mengupas kentang.
e. Ibu Titin mengembalikan sisa kentang dalam kantong ke dalam rak.
f. Ibu Titin memasak kentang.
g. Ibu Titin menghidangkan kentang yang sudah masak.
Pada langkah ke-3 (c) di atas juga terdapat algoritma pemilihan: jika
hari Senin – Jumat, sebelum langkah mengupas kentang, Ibu Titin harus
memakai celemek untuk melindungi bajunya. Selain itu, jika hari Sabtu
dan Minggu, Ibu Titin tidak perlu menggunakan celemek karena warna
bajunya tidak mudah kotor. Berarti algoritma percabangan adalah
Pengantar Algoritma 9

algoritma di mana programmer harus memilih langkah yang harus dia


lakukan berdasarkan kondisi tertentu.
3. Algoritma Perulangan
Berdasarkan contoh Ibu Titin sebelumnya akan ditambahkan kasus
baru, yaitu Ibu Titin mendapatkan pesanan masak untuk katering
kentang, sehingga dia wajib mengupas kentang cukup banyak. Jumlah
kentang harus disesuaikan dengan jumlah pesanan, misalnya 50 buah
kentang. Berdasarkan kasus baru ini akan diformulasikan kembali
langkah-langkah yang harus dilakukan Ibu Titin, yaitu:
a. Ibu Titin mengambil kantong kentang dari dalam rak.
b. Ibu Titin mengambil panci dari almari.
c. Menurut kebiasaan Ibu Titin, pada hari biasa Ibu Titin menggunakan
baju warna cerah sehingga dia harus menggunakan celemek,
sedangkan pada hari Sabtu dan Minggu dia menggunakan baju
warna hitam. Oleh sebab itu perlu diperhatikan apakah sebelum
mengupas kentang, Ibu Titin harus memakai celemek atau tidak,
yang bergantung pada hari apa saat itu.
d. Ibu Titin mengupas kentang. Karena harus mengupas sebanyak 50
buah kentang maka langkah ini akan diulangi sebanyak 50 kali.
e. Setelah 50 kali mengupas kentang, Ibu Titin mengembalikan sisa
kentang dalam kantong ke dalam rak.
f. Ibu Titin memasak kentang.
g. Ibu Titin menghidangkan kentang yang sudah masak.
Algoritma perulangan berarti terdapat satu atau lebih kejadian/tindak-
an yang harus diulang terus-menerus sampai kondisinya tidak terpenuhi
lagi. Pada contoh di atas Ibu Titin harus mengulang mengupas kentang
secara terus-menerus sampai kondisi tercapai, yaitu kondisi di mana
kentang mencapai 50 buah.
Dari ketiga algoritma di atas, sangat mungkin terjadi kombinasi, misal-
nya kita lihat pada contoh Ibu Titin lagi. Pada saat Ibu Titin mengupas
kentang sebanyak 50 buah, bisa jadi tidak semua kentang yang dikupas
baik mutunya, mungkin ada yang busuk. Jika kentang busuk maka tidak
ikut dihitung dan dibuang. Namun jika kentangnya baik dan bermutu,
10 Algoritma dan Pemrograman dengan Bahasa C

maka akan dihitung dan digunakan untuk dimasak. Karena itu akan
dilakukan pengubahan algoritma sebagai berikut:
a. Ibu Titin mengambil kantong kentang dari dalam rak.
b. Ibu Titin mengambil panci dari almari.
c. Menurut kebiasaan Ibu Titin, pada hari biasa Ibu Titin menggunakan
baju warna cerah sehingga dia harus menggunakan celemek,
sedangkan pada hari sabtu dan minggu dia menggunakan baju
warna hitam. Maka sebelum mengupas kentang perlu diperhatikan
apakah Ibu Titin harus memakai celemek atau tidak, yang
bergantung pada hari apa saat itu.
d. Ibu Titin mengupas kentang. Karena harus mengupas sebanyak 50
buah maka langkah ini akan diulangi 50 kali.
e. Periksa kentang: jika mutunya baik maka akan dihitung, tetapi jika
tidak maka akan dibuang dan tidak dihitung.
f. Setelah selesai mengupas 50 kentang, Ibu Titin mengembalikan sisa
kentang dalam kantong ke dalam rak.
g. Ibu Titin memasak kentang.
h. Ibu Titin menghidangkan kentang yang sudah masak.
Pada contoh terakhir ini dapat dilihat bahwa algoritma Ibu Titin
mengandung semua bentuk algoritma, yaitu sekuensial, percabangan,
dan perulangan.

1.5 CONTOH KASUS


1. Program Winamp (music player) dapat di-download versi terbarunya
pada alamat http://www.winamp.com, secara kontinu. Misalnya, ketika
buku ini ditulis, winamp sudah mencapai versi 5.57. Pada website-nya
juga bisa dilihat perubahan apa saja yang terjadi pada versi 5.57
tersebut. Konsep apakah yang digunakan oleh program Winamp bila
ditinjau dari siklus hidup software-nya?
Pengantar Algoritma 11

Gambar 1.4 Situs Winamp


2. Sebutkanlah contoh aplikasi/program yang sering Anda temui pada
sistem operasi Windows yang menggunakan konsep perulangan dan
pemilihan kondisi! Jelaskan!
3. Menurut Anda, apa saja yang harus diperhatikan agar suatu program
bisa laku dijual dan banyak dipakai orang atau perusahaan?!
4. Berikan contoh nyata dari setiap kriteria algoritma menurut Donald E.
Knuth!
5. Apakah algoritma bersifat statis dan tidak perlu berubah/diperbarui?
Kenapa? Sebutkan contoh nyatanya!
12 Algoritma dan Pemrograman dengan Bahasa C
BAB II
FLOWCHART DAN PSEUDOCODE

Kompetensi Umum:
Dapat menjelaskan dan menggunakan flowchart dan
pseudocode sebelum ataupun sesudah membuat
program.
Kompetensi Khusus:
1. Dapat menjelaskan pengertian flowchart dan
pseudocode.
2. Dapat menggunakan simbol-simbol flowchart untuk
menuangkan isi pemikiran sebelum dan sesudah
membuat program.
3. Dapat menggunakan notasi pseudocode untuk
menuangkan isi pemikiran sebelum dan sesudah
membuat program.

2.1 PENGERTIAN FLOWCHART


Seperti sudah penulis sebutkan pada bab sebelumnya, algoritma merupa-
kan suatu alur pemikiran seseorang yang harus dapat dituangkan secara
tertulis. Salah satu caranya adalah dengan menggunakan simbol-simbol/
gambar-gambar yang memang sudah standar pada dunia komputer.
Gambar/simbol itu disebut dengan flowchart. Dengan menggunakan
flowchart (diagram alir) maka seorang programmer dapat memberikan
idenya secara tertulis sehingga dapat dipahami oleh programmer lain, oleh
klien, atau oleh tim kerjanya. Hal ini sangat berguna terutama pada kasus
berikut:
14 Algoritma dan Pemrograman dengan Bahasa C

1. Pada kerja tim, banyak programmer terlibat. Akibatnya, jika tim


tersebut merupakan tim yang mengerjakan beberapa bagian dari suatu
proyek besar, maka flowchart sangat penting digunakan untuk meng-
ungkapkan algoritma salah satu tim, untuk dapat dipahami dan
dikerjakan oleh tim lain.
2. Pada saat seorang programmer selesai mengerjakan suatu program,
langkah selanjutnya adalah memberikan program tersebut kepada
kliennya. Untuk menjelaskan alur pemikiran dan cara kerja program,
programmer dapat menggunakan flowchart.
Dari kasus di atas dapat diartikan bahwa flowchart berguna untuk dua
keperluan, yaitu:
1. Sebelum program selesai dibuat
Pada tahap ini flowchart digunakan untuk menuangkan ide/pemikiran
programmer ke dalam bentuk gambar yang sudah standar secara
internasional. Flowchart dapat digambar secara manual pada tahap
desain algoritma, terutama untuk algoritma yang sangat kompleks.
Dengan menuangkan ide ini ke dalam bentuk gambar, maka akan
diperoleh beberapa keuntungan, seperti programmer tidak lupa idenya,
karena dia sudah mendokumentasikannya secara otomatis; siapa tahu
program tidak langsung dibuat, namun akan dibuat pada masa yang
akan datang. Sedangkan keuntungan kedua adalah desain algoritma
tersebut dapat digunakan untuk menyampaikan alur program yang
akan dibuat kepada klien, siapa tahu klien tidak setuju atau ingin
menambah/mengurangi kemampuan program. Karena programmer
menggunakan flowchart, klien dapat membacanya dengan mudah,
terutama karena flowchart sudah standar.
2. Setelah program selesai dibuat
Setelah program selesai dibuat, flowchart yang dibuat akan membantu
programmer untuk menjelaskan alur program kepada klien. Flowchart
merupakan dokumentasi alur program secara tidak langsung. Jika suatu
saat nanti ada programmer lain hendak mengubah program, atau
menambah kemampuannya, atau memperbaiki bug (kesalahan) yang
mungkin ditemukan, programmer lain itu akan dibantu oleh flowchart
tersebut.
Flowchart dan Pseudocode 15

2.2 PENGGUNAAN FLOWCHART


Flowchart merupakan alur pemikiran yang dituangkan ke dalam bentuk
gambar/simbol. Dengan demikian perlu dipelajari terlebih dahulu bentuk-
bentuk gambar/simbol standar beserta kegunaan masing-masing. Berikut
adalah tabel simbol-simbol flowchart:

Tabel 2.1 Tabel Flowhart

Simbol Keterangan
Mulai

Selesai

Aliran Data

Proses / Kejadian

Sekuensial

Percabangan

Perulangan
16 Algoritma dan Pemrograman dengan Bahasa C

Simbol Keterangan
Input

Output

Pemberian nilai awal


/ inisialisasi
Memanggil suatu
fungsi / prosedur
Konektor di halaman
yang sama
Konektor di halaman
yang berbeda

Disk

Dokumen / Multi
Dokumen

Contoh flowchart sederhana secara lengkap adalah sebagai berikut:

Gambar 2.1 Flowchart Luas Segitiga


Flowchart dan Pseudocode 17

Flowchart di atas digunakan untuk menghitung luas persegi panjang, di


mana input dari pengguna berjumlah 2 buah, yaitu panjang yang
dilambangkan dengan p dan lebar yang dilambangkan dengan l, dan
kemudian dihitung luasnya dengan menggunakan rumus Luas = p * l, dan
yang terakhir, hasil luasnya ditampilkan di layar.
Simbol-simbol yang dipakai pada flowchart disesuaikan dengan fungsinya.
Pada awal mula flowchart harus menggunakan simbol start, dan pada
bagian akhir flowchart harus menggunakan simbol stop. Pada langkah
selanjutnya, karena membutuhkan input dari pengguna, simbol yang di-
gunakan adalah simbol untuk input/output seperti pada tabel sebelumnya.
Sedangkan untuk proses perhitungan rumus luas digunakan simbol proses
seperti pada tabel. Terakhir, untuk menampilkan luas yang sudah dihitung,
dan kembali menggunakan simbol output seperti pada tabel. Jadi peng-
gunaan simbol flowchart disesuaikan dengan fungsinya. Pada prinsipnya
semua kegiatan di dalam program pasti merupakan input, proses, atau
output. Di dalam proses mungkin ada percabangan, perulangan, atau
inisialisasi awal data.
Pedoman pembuatan flowchart:
1. Flowchart sebaiknya digambar dari atas ke bawah dan dimulai dari
bagian kiri suatu halaman.
2. Kegiatan di dalam flowchart harus ditunjukkan dengan jelas.
3. Harus ditunjukkan dari mana kegiatan dimulai dan di mana akan
berakhir.
4. Masing-masing kegiatan di dalam flowchart sebaiknya menggunakan
suatu kata yang mewakili suatu pekerjaan.
5. Masing-masing kegiatan di dalam flowchart harus di dalam urutan yang
tepat.
6. Kegiatan yang terpotong dan akan disambungkan ke tempat lain harus
ditunjukkan dengan jelas menggunakan simbol penghubung yang
benar.
7. Gunakan simbol-simbol alir yang standar.
18 Algoritma dan Pemrograman dengan Bahasa C

Beberapa contoh flowchart lain dapat dilihat pada kasus berikut:


1. Algoritma menghitung keliling dan luas lingkaran
Algoritma ini merupakan algoritma sekuensial biasa, di mana pengguna
harus memasukkan jari-jari lingkaran, dilanjutkan dengan penghitungan
luas dan keliling sesuai rumus. Yang perlu diperhatikan adalah simbol-
simbol flowchart harus digunakan sesuai fungsi masing-masing.

Gambar 2.2 Flowchart Luas dan Keliling Lingkaran


2. Algoritma mencari jalan pulang yang aman
Algoritma ini sering ditemui pada kehidupan sehari-hari di mana
pengguna sering bertemu dengan pilihan/alternatif pada dunia nyata.
Pada algoritma ini harus diketahui jam pulang kantor terlebih dahulu
dan kemudian dari jam tersebut baru dapat ditentukan berdasarkan
kondisi yang lain seperti cuaca dan kemacetan lalu lintas pada jam sibuk
pulang kantor. Masing-masing alternatif bisa dipilih oleh pengguna.
Yang penting dan harus diperhatikan adalah bahwa semua jalur
flowchart haruslah berakhir pada titik stop. Perlu diperhatikan juga
simbol-simbol flowchart yang digunakan untuk pemilihan.
Flowchart dan Pseudocode 19

Gambar 2.3 Flowchart Jalan Pulang


3. Algoritma pencari bilangan terbesar dari 3 bilangan
Algoritma ini berusaha mencari bilangan yang paling besar dibanding-
kan dua bilangan lain yang dimasukkan oleh pengguna. Caranya adalah
dengan membandingkan masing-masing bilangan dimulai dari bilangan
yang pertama dibandingkan dengan bilangan yang kedua dan
seterusnya. Pada algoritma ini juga digunakan simbol && yang artinya
adalah AND, atau kedua kondisi harus bernilai benar (TRUE). Pada
setiap pilihan, pengguna harus memilih hasil yang nantinya akan
ditampilkan di layar monitor.

View publication stats

Anda mungkin juga menyukai