Anda di halaman 1dari 253

Hak Cipta  dan Hak Penerbitan dilindungi Undang-undang

Cetakan pertama, Agustus 2018

Penulis : Tominanto, S.Kom.,M.Cs.


Subinarto, S.Kom, M.Kom.

Pengembang Desain Intruksional : Ake Wihadanto, S.E., M.T.

Desain oleh Tim P2M2 :


Kover & Ilustrasi : Bangun Asmo Darmanto, S.Des.
Tata Letak : Nono Suwarno

Jumlah Halaman : 259


DAFTAR ISI

Halaman

BAB I: PENGENALAN ALGORITMA DAN PEMROGRAMAN ................................ 1

Topik 1.
Pengantar Algoritma ........................................................................................ 3
Latihan ....…..…………………………………....................................................................... 16
Ringkasan ....…………………………………........................................................................ 17
Tes 1 ..……………………………...................................................................................... 17

Topik 2.
Pengantar Pemrograman ................................................................................. 19
Latihan ....…..…………………………………....................................................................... 32
Ringkasan ....…………………………………........................................................................ 32
Tes 2 ..……………………………...................................................................................... 33

KUNCI JAWABAN TES FORMATIF ..................................................................... 35


GLOSARIUM .................................................................................................... 36
DAFTAR PUSTAKA .......................................................................................... 37

BAB II: BENTUK ALGORITMA DAN TIPE DATA ................................................... 38

Topik 1.
Macam-macam Bentuk Algoritma .................................................................. 39
Latihan ....…..…………………………………....................................................................... 51
Ringkasan ....…………………………………........................................................................ 52

Tes 1 ..……………………………...................................................................................... 53

iii
Topik 2.
Tipe Data ......................................................................................................... 54
Latihan ....…..…………………………………....................................................................... 72
Ringkasan ....…………………………………........................................................................ 73
Tes 2 ..……………………………...................................................................................... 74

KUNCI JAWABAN TES FORMATIF ..................................................................... 76


GLOSARIUM ..................................................................................................... 77
DAFTAR PUSTAKA ........................................................................................... 78

BAB III: ALGORITMA DALAM BENTUK FLOWCHART .......................................... 79

Topik 1.
Pengantar Flowchart ........................................................................................ 80
Latihan ....…..…………………………………....................................................................... 92
Ringkasan ....…………………………………........................................................................ 93
Tes 1 ..……………………………...................................................................................... 94

Topik 2.
Membuat Algoritma Dalam Bentuk Flowchart ................................................. 96
Latihan ....…..…………………………………....................................................................... 110
Teknologi Informasi Kesehatan III ◼
Ringkasan ....…………………………………........................................................................ 111
Tes 2 ..……………………………...................................................................................... 111

KUNCI JAWABAN TES FORMATIF ..................................................................... 113


GLOSARIUM ..................................................................................................... 114
DAFTAR PUSTAKA ........................................................................................... 115

iv

BAB IV: ALGORITMA PENGAMBILAN KEPUTUSAN DAN ALGORITMA


PENGULANGAN ................................................................................ 116

Topik 1.
Algoritma Pengambilan Keputusan .................................................................. 117
Latihan ....……………………………………………................................................................ 138
Tes 1 ..……………………………..…….............................................................................. 138

Topik 2.
Algoritma Pengulangan .................................................................................... 139
Latihan ....…..…………………………………....................................................................... 161
Ringkasan ....…………………………………........................................................................ 161
Tes 2 ..……………………………...................................................................................... 162


KUNCI JAWABAN TES FORMATIF ..................................................................... 163
GLOSARIUM ..................................................................................................... 166
DAFTAR PUSTAKA ........................................................................................... 167

BAB V: ALGORITMA SORTING DAN ALGORITMA PENCARIAN DATA .................. 168

Topik 1.
Algoritma Sorting ............................................................................................ 169
Latihan ....……………………………………………................................................................ 185
Tes 1 ..……………………………..…….............................................................................. 186

Topik 2.
Algoritma Pencarian Data ............................................................................... 187
Latihan ....……………………………………………................................................................ 193
Ringkasan ..…………………………………………................................................................. 194
Tes 2 ..……………………………..……............................................................................... 195

KUNCI JAWABAN TES FORMATIF ..................................................................... 196


GLOSARIUM .................................................................................................... 199
DAFTAR PUSTAKA ........................................................................................... 200
Teknologi Informasi Kesehatan III v
BAB VI: PENERAPAN ALGORITMA DALAM BAHASA PEMROGRAMAN...................................201
Topik 1. Pengantar Pemrograman PHP.................................................................................... 203
Latihan............................................................................................................................................... 225
Tes 1................................................................................................................................................... 226
Topik 2. ..............................................................................................................................................

Penerapan Algoritma dalam Program PHP............................................................................. 227


Teknologi Informasi Kesehatan III ◼
Latihan............................................................................................................................................... 246
Ringkasan........................................................................................................................................... 246
Tes 2................................................................................................................................................... 247
KUNCI JAWABAN TES FORMATIF................................................................................................... 248
GLOSARIUM...................................................................................................................................... 250
DAFTAR PUSTAKA............................................................................................................................ 251

vi


Bab 1
PENGENALAN ALGORITMA DAN
PEMROGRAMAN
Tominanto, S.Kom., M.Cs.

Pendahuluan

K untuk menyelesaikan masalah. Permasalahan dapat diselesaikan oleh komputer


omputer merupakan sebuah perangkat elektronik yang dibuat sebagai alat bantu
dengan langkah-langkah penyelesaian yang dibuat oleh manusia. Manusia menulis program
yang berisi urutan langkah-langkah penyelesaian masalah, lalu komputer menjalankan
perintah-perintah yang tertulis dalam program tersebut. Sebenarnya manusia mampu
menjalankan perintah-perintah tersebut, tetapi komputer mempunyai kelebihan
dibandingkan manusia. Kelebihan komputer antara lain, komputer tidak mengenal lelah,
komputer mampu mengerjakan pekerjaan yang sangat banyak, komputer juga mampu
mengerjakan perintah yang sama berulang kali, 100 kali, sejuta kali atau berapa kalipun yang
manusia perintahkan. Komputer memiliki memori yang besar sehingga ia mampu
menyimpan data dan informasi dalam volume yang sangat banyak.
Langkah-langkah penyelesaian masalah yang dibuat oleh manusia disebut sebagai
algoritma. Algoritma yang ditulis ke dalam bahasa komputer disebut program komputer.
Karakteristik perintah yang dapat disebut sebagai algoritma ditentukan oleh kelengkapan
perintah tersebut. Komputer tidak seperti manusia, sehingga hanya mampu bekerja untuk
mengeksekusi program dengan menelusuri perintah-perintah yang dibuat dalam suatu
program tertentu.

◼ 1
Modul pembelajaran ini membahas tentang pengenalan algoritma dan pemrograman.
Setelah menyelesaikan modul pembelajaran ini, diharapkan mahasiswa mampu menjelaskan
konsep algoritma dan pemrograman secara benar sehingga sehingga dapat digunakan
sebagai dasar untuk melanjutkan topik dan bab selanjutnya.

2
Topik 1 Pengantar Algoritma
A. PENGERTIAN ALGORITMA

Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang cukup
aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka
arab. Seseorang dikatakan algorist jika 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 Jafar 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 “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.
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun
secara sistematis dan logis. Kata logis merupakan kata kunci dalam algoritma.
Langkahlangkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau
benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk
melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama,
algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki
dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau
memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik
hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk
menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa
pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin
dengan nilai yang sebenarnya. Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat
ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan
keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk
mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang
menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang
terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa
membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun
terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang
sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.
◼ Teknologi Informasi Kesehatan III 3
Ada beberapa definisi algoritma yang lain, diantaranya menurut Rinaldi Munir,
algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis. Sedang menurut Kamus Besar Bahasa Indonesia, definisi algoritma adalah urutan
logis pengambilan keputusan untuk pemecahan masalah. Dari pengertian tersebut dapat
disimpulkan bahwa Algoritma adalah ilmu yang mempelajari cara penyelesaian suatu
masalah berdasarkan urutan langkah-langkah terbatas yang disusun secara sistematis dan
menggunakan bahasa yang logis dengan tujuan tertentu.
Supaya dapat lebih mudah memahami arti dari algoritma dicontohkan sebuah
permasalahan penukaran isi dari dua gelas. Diberikan dua buah gelas A dan B, gelas A berisi
air teh dan gelas B berisi air kopi. Pertukarkan isi gelas tersebut sehingga menghasilkan gelas
A yang semula berisi air teh menjadi berisi air kopi dan gelas B yang semula berisi air kopi
menjadi berisi air teh. Ilustrasi permasalahan ini dapat dilihat pada Gambar 1.1.

Sumber : Barakbah, A.R. dkk, 2013

Gambar 1.1. Penukaran gelas isi gelas A dan gelas B

Sebagai algoritma penyelesaian permasalahan tersebut di atas adalah sebagai berikut :


Agar dapat mempertukarkan isi gelas A dengan gelas B dengan benar, maka diperlukan gelas
tambahan yang dinamakan gelas C sebagai tempat penampungan sementara. Berikut ini
Algoritmanya :
1. Siapkan gelas cadangan C
2. Tuangkan air teh dari gelas A ke dalam gelas C (gelas A menjadi kosong).
3. Tuangkan air kopi dari gelas B ke dalam gelas A (gelas B menjadi kosong).
4. Tuangkan air teh dari gelas C ke dalam gelas B.
Ilustrasi langkah-langkah algoritma dapat dilihat pada Gambar 1.2.

4
S
umber : Barakbah, A.R. dkk, 2013
Gambar 1.2. Ilustrasi algoritma penukaran isi gelas A dengan gelas B

Dari contoh tersebut di atas dapat dilihat bahwa penyelesaian permasalahan


penukaran isi dua buah gelas sangat sederhana. Digunakan urutan langkah yang masuk akal
atau logis sehingga isi dari keduanya sudah berpindah media, dari A ke B dan B ke A. Inilah
yang dinamakan “Algoritma”, urutan penyelesaian sebuah permasalahan dengan urutan dan
langkah yang logis dan masuk akal menghasilkan sesuatu langkah yang benar.
Contoh lain algoritma misalnya algoritma menyeberangkan barang bawaan. Misalkan
seorang pemuda tiba di tepi sebuah sungai, pemuda tersebut membawa seekor kambing,
seekor serigala dan sekeranjang sayur. Pemuda tersebut bermaksud hendak menyeberangi
sungai membawa seluruh barang bawaannya dengan selamat. Pemuda itu menemukan
sebuah perahu kecil yang hanya dapat memuat satu bawaanya setiap kali menyeberang.
Situasinya dipersulit dengan kenyataan bahwa serigala tidak dapat ditinggal berdua dengan
kambing (karena serigala akan memangsa kambing) atau kambing tidak dapat ditinggal
berdua dengan sekeranjang sayur (karena kambing akan memakan sayur). Bagaimanakah
algoritma untuk menyeberangkan pemuda dan seluruh bawaanya itu sehingga mereka
sampai keseberang sungai dengan selamat.
Algoritma menyeberangkan seluruh bawaan tersebut adalah berupa runtunan langkah
seperti berikut ini : algoritma untuk menyeberangkan pemuda (P) dan tiga barang bawaanya
Serigala (S), kambing (K), dan sekeranjang sayur (Y) dengan sebuah perahu kecil yang hanya
dapat memuat dua item (pemuda dan salah satu bawaanya). Serigala tidak dapat ditinggal
berdua dengan kambing (karena serigala akan memangsa kambing) atau kambing tidak
dapat ditinggal berdua dengan sekeranjang sayur (karena kambing akan memakan sayur).
algoritmanya dapat ditunjukkan dalam notasi sebagai berikut :

◼ Teknologi Informasi Kesehatan III 5


{sisi A : (P,S,K,Y) sisi B : (- , - , - , -)}
Pemuda menyeberangkan kambing dari sisi A ke sisi B.
{sisi A : ( - ,S,K,Y) sisi B : (P , - , K , -)} Pemuda
menyeberang sendiri dari B ke A.
{sisi A : (P,S, - ,Y) sisi B : (- , - , K , -)}
Pemuda menyeberangkan serigala dari sisi A ke sisi B.
{sisi A : ( - , - , - ,Y) sisi B : (P , S , K , -)}
Pemuda menyeberangkan kambing dari sisi B ke sisi A.
{sisi A : (P, - ,K,Y) sisi B : (- `, S , - , -)}
Pemuda menyeberangkan sayur dari sisi A ke sisi B.
{sisi A : ( - , - ,K,- ) sisi B : (P , S , - , Y)} Pemuda
menyeberang sendiri dari B ke A.
{sisi A : (P, - ,K, - ) sisi B : (- , S , - , Y)}
Pemuda menyeberangkan kambing dari sisi A ke sisi B.
{sisi A : (- , - , - , -) sisi B : (P,S,K,Y) }

Dengan menggunakan algoritma tersebut maka pemuda dan seluruh bawaanya dapat
menyeberang sungai dengan selamat.
Penggunaan algoritma juga sering dijumpai dalam kehidupan sehari-hari. Sebagai
contoh misalnya seorang koki yang mempunyai resep dan langkah-langkah memasak
sehingga menjadi sajian yang lezat. Contoh lainya misalnya seorang yang akan mengambil
uang tunai melalui ATM, tentunya harus mengikuti langkah-langkah yang diatur oleh mesin
ATM sehingga uang tunai dapat keluar dari mesin ATM. Ilustrasi algoritma dalam kehidupan
sehari-hari ini dapat dilihat pada Gambar 1.3, Gambar 1.4 dan Gambar 1.5.

6
Gambar 1.3. Algoritma membuat siomay malang

Gambar 1.3. Algoritma membuat bakso

◼ Teknologi Informasi Kesehatan III 7


Gambar 1.4. Algoritma mengambil uang tunai di ATM

Dalam dunia kesehatan algoritma sering dijumpai dalam bentuk prosedur yang
dituangkan dalam dokumen Standar Operasional Prosedur (SOP) maupun dalam bagan alur
yang merupakan langkah-langkah pemberian pelayanan medis maupun pelayanan non
medis pada sebuah instansi kesehatan. Gambar 1.5 berikut ini adalah contoh algoritma
pelayanan pasien rawat inap menurut Dirjen Yanmed Depkes RI (1997) yang disajikan dalam
bentuk bagan alur.

8
Gambar 1.4. Algoritma Alur Pasien Rawat Inap

B. MANFAAT ALGORITMA

Manfaat algoritma menjadi satu bagian penting dalam komputer, algoritma sangat
dibutuhkan untuk menjadi satu pengolah data yang ada pada komputer. Secara mudahnya,
manfaat algoritma bisa dikatakan untuk membuat software ataupun perangkat menjadi
lebih baik dan bisa berfungsi dengan lebih maksimal. Ada berbagai alasan kenapa manfaat
alogritma sangat dibutuhkan pada komputer, berikut alasan penting kenapa penggunaan
fungsi alogirtma sangat penting:
1. Menggunakan fungsi algoritma bisa digunakan untuk memecahkan program yang
rumit
2. Menggunakan fungsi algoritma bisa menjadikan program yang besar menjadi
program yang lebih sederhana,
◼ Teknologi Informasi Kesehatan III 9
3. Fungsi algoritma bisa digunakan secara berulang atau lebih dari satu kali penggunaan
4. Memudahkan dalam pembuatan program
5. Bisa mengatasi segala masalah dengan logika dan urut
6. Menggunakan fungsi algoritma bisa melakukan pendekatan top-down dan juga divide
and conquer
7. Meminimalisir penulisan program yang berulang-ulang
8. Program yang ada menjadi lebih terstuktur dengan rapi sehingga dapat lebih mudah
untuk dipahami ataupun dikembangkan
9. Ketika terjadi kesalahan bisa dicari dengan mudah karena dengan fungsi algoritma
bisa mendapatkan alur yang jelas
10. Ketika ingin melakukan modifikasi pada program bisa dilakukan hanya pada satu
modul saja tanpa harus merubah dan menganggu modul yang lain
11. Dokumentasi yang lebih mudah

Dan yang dapat disimpulkan dari manfaat belajar algoritma adalah :


1. Memperkuat cara berfikir agar dapat menyelesaikan suatu
masalah
2. Membantu otak agar berfikir jangka panjang 3. Memperkuat
analisis ketika pembuatan program
4. Memperluas space berpikir.

Selain manfaat tersebut algoritma juga memiliki beberapa keuntungan yang bisa
didapatkan dari pembuatan ataupun penulisan argoritma, diantaranya adalah sebagai
berikut:
1. Algoritma bersifat independen berasal dari bahasa pemrograman dan juga komputer
yang melaksanakannya artinya pembuatan algoritma tidak tergantung pada bahasa
pemrograman manapun.
2. Membuat notasi algoritma bisa diterjemahkan ke dalam bahasa pemrograman yang
beragam.
3. Output yang akan dikeluarkan sama meskipun menggunakan bahasa pemgrograman
yang berbeda.

C. ASPEK PENTING DALAM ALGORITMA

Beberapa aspek penting yang perlu diperhatikan dalam menulis algoritma adalah
sebagai berikut:
1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.

10
2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.
3. 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.
4. 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.
5. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan
suatu permasalahan ke dalam bahasa pemrograman.
6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman.

Selain aspek penting tersebut algoritma memiliki ciri-ciri, sifat, struktur dasar dan cara
penulisan. Tidak semua urutan langkah penyelesaian masalah yang logis dapat disebut
sebagai algoritma. Menurut Donald E. Knuth, algoritma mempunyai lima ciri penting yang
meliputi:
1. Finiteness (keterbatasan), algoritma harus berakhirsetelah mengerjakan sejumlah
langkah proses.
2. Definiteness (kepastian), setiap langkah harus didefinisikan secara tepat dan tidak
berarti ganda.
3. Input (masukan), algoritma memiliki nol atau lebih data masukan (input).
4. Output (keluaran), algoritma mempunyai nol atau lebih hasil keluaran (output).
5. Effectiveness (efektivitas), algoritma harus efektif, langkah-langkah algoritma
dikerjakan dalam waktu yang wajar.

Sedangkan sifat algoritma adalah sebegai berikut:


1. Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman tertentu.
2. Tidak tergantung pada suatu bahasa pemrograman tertentu.
3. Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun.
4. Algoritma dapat digunakan untuk merepresentasikan suatu urutan kejadian secara
logis dan dapat diterapkan di semua kejadian sehari-hari.

◼ Teknologi Informasi Kesehatan III 11


Seperti telah dijelaskan sebelumnya bahwa penyusun atau struktur dasar algoritma
adalah langkah-langkah. Suatu Algoritma dapat terdiri dari tiga struktur dasar, yaitu
runtunan, pemilihan dan pengulangan. Ketiga jenis langkah tersebut membentuk konstruksi
suatu algoritma yang digambarkan seperti pada Gambar 1.5 berikut ini.

Gambar 1.5. Struktur Dasar Algoritma (Munir, 2007)

Berdasarkan Gambar 1.5 tersebut maka penjelasan struktur dasar algoritma adalah
sebagai berikut:
1. Runtunan (sequence)
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara
berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah
instruksi sebelumnya selesai dikerjakan. Urutan dari instruksi menentukan hasil akhir dari
suatu algoritma. Bila urutan penulisan berubah makamungkin juga hasil akhirnya berubah.
Sebagai contoh perhatikan operasi aritmatika berikut ini, (4+3)*7=49, tetapi bila urutan
aksinya diubah maka hasil keluaran akan berbeda menjadi 4+(3*7) =25. Contoh lain dari
runtunan aksi adalah algoritma penukaran dua bilangan bulat, yaitu: a. Deklarasikan A, B,
dan C sebagai bilangan bulat
b. Masukkan nilai A=8 dan B=5
c. Masukkan nilai A ke dalam C
d. Masukkan nilai B ke dalam A
e. Masukkan nilai C ke dalam B

Ilustrasi dari runtunan dari algoritma pertukaran dua bilangan bulat tersebut adalah
sebagai berikut:

12
Gambar 1.6. Ilustrasi runtunan pada algoritma pertukaran (Munir, 2007)

Contoh ilustrasi lain proses runtunan pada algoritma digambarkan sebuah mobil yang
sedang menempuh perlajanan seperti ditunjukkan pada Gambar 1.7 berikut ini :

Gambar 1.7. Ilustrasi algoritma runtunan


Struktur runtunan atau berurutan dapat kita samakan dengan mobil yang sedang
berjalan pada jalur lurus yang tidak terdapat persimpangan seperti tampak pada Gambar 1.7
di atas. Mobil tersebut akan melewati kilometer demi kilometer jalan sampai tujuan
tercapai.

◼ Teknologi Informasi Kesehatan III 13


2. Pemilihan (selection)
Dalam algoritma seringkali dijumpai suatu kejadian yang baru akan dikerjakan jika
suatu kondisi tertentu telah terpenuhi. Hal ini disebut dengan pemilihan yaitu instruksi yang
dikerjakan dengan kondisi tertentu. Kondisi adalah persyaratan yang dapat bernilai benar
atau salah. Satu atau beberapa instruksi hanya dilaksanakan apabila kondisi bernilai benar,
sebaliknya apabila salah maka instruksi tidak akan dilaksanakan. Contoh kasus pemilihan
adalah dalam penentuan bilangan genap atau ganjil berikut ini: a. Masukkan
bilangansebagai sebuah bilangan bulat
b. Bagi bilangandengan angka 2, simpan nilai sisa pembagian dalam variabel sisa
c. Jika nilai sisasama dengan 0 maka kerjakan langkah 4:
d. Tampilkan ”GENAP” ke layar
e. Jika nilai sisatidak sama dengan 0 maka kerjakan langkah 6
f. Tampilkan ”GANJIL” ke layar
g. Selesai.

Contoh lain proses pemilihan pada algoritma ditunjukkan pada beberapa algortima
berikut ini:

Gambar 1.8. Contoh algoritma pemilihan (Munir, 2007)

Dalam bahasa Indonesia “if” berarti “jika” dan “then” berarti “maka”. Pada contoh
pertama Gambar 1.8 “air di dalam ketel mendidih” merupakan kondisi, “matikan api
kompor” adalah instruksi atau aksi. Jadi pembacaan algoritmanya adalah jika kondisi “air di
dalam ketel telah mendidih” bernilai benar maka jalankan instruksi “matikan air kompor”.
Demikian juga cara pembacaan algoritma pemilihan untuk contoh yang lainnya.
Ilustrasi algoritma pemilihan juga dapat digambarkan pada sebuah mobil yang dalam
perlajanan dan harus mengambil jalur pada persimpangan tertentu seperti ditunjukkan pada
gambar 1.9 berikut ini :

14
Gambar 1.9 llustrasi algoritma pemilihan

Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan,
kadang-kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar
pelaksanaan program meloncat ke baris tertentu. Hal ini seperti ilustrasi gambar 1.9, sebuah
mobil dalam perjalanan yang tidak selalu lurus dan berurutan, namun harus memilih untuk
mengambil jalur belok kearah tertentu.

3. Pengulangan (repetition)
Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan
yang sama berulang kali tanpa mengenal lelah.Kita tidak perlu menulis instruksi yang sama
berulang kali, tetapi cukup melakukan pengulangan dengan instruksi yang tersedia.
Pengulangan merupakan kegiatan mengerjakan sebuah atau sejumlah aksi yang sama
sebanyak jumlah yang ditentukan atau sesuai dengan kondisi yang diinginkan. Beberapa
statemen pengulangan di bahasa pemrograman yaitu for…, while()..., do...while(),
repeat....until, for...downto...do, for...to...do dan lain-lain. Sebagai contoh adalah
menampilkan huruf tertentu sebanyak n kali ke layarsebagai berikut:
a. Deklarasikan variabel huruf untuk menyimpan karakter yang akan ditampilkan.
b. Deklarasikan variabel nuntuk menyimpan banyaknya perulangan
c. Deklarasikan variabel counter yang digunakan sebagai counter perulangan yang sudah
dilakukan.
d. Masukkan sebuah karakter dan simpan dalam variabel huruf
e. Masukkan banyaknya perulangan yang diinginkan dan simpan dalam variabel n
f. Set nilai counter dengan 0
g. Tampilkan huruf ke layar
h. Lakukan penambahan counter dengan 1

◼ Teknologi Informasi Kesehatan III 15


i. Jika nilai counter<n, kerjakan langkah 6
j. Jika nilai counter = n selesai.

Contoh lain sebagai ilustrasi algoritma perulangan juga dapat digambarkan pada
balapan mobil ditunjukkan pada Gambar 1.10 berikut ini :

Gambar 1.10 llustrasi algoritma pengulangan

Pada ilustrasi balapan mobil seperti tampak pada gambar 1.10 ini mobil-mobil peserta
harus mengelilingi lintasan sirkuit berkali-kali sesuai yang ditetapkan dalam aturan lomba.
Siapa yang mencapai garis akhir paling cepat, dialah yang menang.

Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Jelaskan pengertian algoritma ?


2) Sebutkan manfaat dan keuntungan menggunakan algoritma?
3) Dalam penulisan algoritma ada beberapa aspek penting yang perlu diperhatikan,
Jelaskan?

Petunjuk Jawaban Latihan

Untuk membantu Anda dalam mengerjakan soal latihan tersebut silahkan pelajari
kembali materi tentang pengertian algoritma, manfaat algoritma dan aspek penting dalam
algoritma.

16
Ringkasan

1. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun


secara sistematis dan logis.
2. Manfaat algoritma adalah untuk membuat software ataupun perangkat lunak
menjadi lebih baik dan bisa berfungsi dengan lebih maksimal.
3. Setiap orang dapat membuat aturan penulisan dan notasi algoritma sendiri tetapi
sebaiknya notasi algoritma tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.
4. Algoritma memiliki lima ciri penting yaitu: Finiteness, Definiteness, Input, Output dan
Effectiveness.
5. Algoritma dapat terdiri dari tiga struktur dasar, yaitu: runtunan, pemilihan dan
pengulangan.

Tes 1
Pilihlah salah satu jawaban yang paling benar!

1) Berikut ini yang bukan merupakan manfaat algoritma adalah ....


A. Bisa digunakan untuk memecahkan program yang rumit
B. Penulisan program yang berulang-ulang
C. Dokumentasi yang lebih mudah
D. Memudahkan dalam pembuatan program

2) Salah satu keuntungan dari algoritma adalah bersifat independen, yaitu ....
A. Bebas menggunakan bahasa apapun
B. Tergantung dengan bahasa pemrograman tertentu
C. Tidak tergantung pada bahasa pemrograman manapun
D. Mudah digunakan dan dapat diimplementasikan dengan bahasa pemrograman
apapun
3) Berikut ini yang bukan merupakan ciri algoritma adalah ....
A. Finiteness
B. Process
C. Input
D. Effectiveness

4) Struktur dasar algoritma terdiri atas tiga proses yaitu ....

◼ Teknologi Informasi Kesehatan III 17


A. Runtunan, Sequence, Repetition
B. Sequence, Selection, Pemilihan
C. Pemilihan, Runtunan, Selection
D. Runtunan, Pemilihan, Repetition

5) Selection adalah salah satu struktur dasar algoritma, definisi yang benar tentang
selection adalah ....
A. Instruksi algoritma yang dikerjakan dengan kondisi tertentu
B. Pemilihan perintah untuk menjalankan program
C. Instruksi algoritma untuk mengulang sebuah perintah
D. Instruksi algoritma untuk memilih pilihan terbaik

Topik 2 Pengantar Pemrograman


A. PENGERTIAN PEMROGRAMAN

Pemrograman adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut


source code yang dibuat oleh programmer (pembuat program). Program adalah kumpulan
instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar
yang tepat untuk menyelesaikan suatu persoalan. Bahasa Pemrograman adalah alat untuk
membuat program, contohnya: C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dan

18
lainlainnya. Secara garis besar, unsur-unsur pemrograman adalah Input, Proses, dan Output
seperti pada Gambar 1.11 berikut ini :

Gambar 1.11. Unsur Pemrograman

Bagian Input merupakan proses untuk memasukkan data ke komputer melalui device
yang ada misalnya keyboard, mouse, scanner dll. Program melakukan proses membaca data
yang akan diolah dari device tersebut. Bagian Proses merupakan proses mengolah data yang
diinputkan dengan nenerapkan metode-metode, teknik-teknik, algoritma-algoritma yang
ada. Proses ini menghasilkan data output yang akan disampaikan kepada pengguna program.
Bagian Output merupakan proses untuk menampilkan data yang telah diolah, melaporkan
hasil pegolahan data melalui device seperti monitor, printer dll. Program melakukan proses
mencetak data ke device tersebut.
Sebagaimana telah diuraikan di sub bab sebelumnya bahwa algoritma adalah urutan
langkah-langkah terbatas yang disusun secara sistematis dan menggunakan bahasa yang
logis dengan tujuan menyelesaikan suatu masalah tertentu. Sementara program adalah
kumpulan instruksi berupa pernyataan yang ditulis dengan menggunakan bahasa
pemrograman yang melibatkan pemilihan struktur data. Beberapa pakar komputer
menyatakan program dengan formula:
Program = Algoritma + Bahasa Pemrograman
Bahasa pemrograman dan algoritma berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program
menjadi kurang baik, demikian juga sebaliknya. Jika dihubungkan dengan program, maka
pembuatan algoritma harus memperhatikan kaidah:
1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman
manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang memprosesnya.
2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena
algoritmanya sama.

Algoritma dibuat untuk membantu kita dalam mengkonversikan suatu permasalahan


ke dalam bahasa pemrograman. Algoritma merupakan hasil pemikiran konseptual, supaya

◼ Teknologi Informasi Kesehatan III 19


dapat dilaksanakan oleh komputer, algoritma harus diterjemahkan ke dalamnotasi bahasa
pemrograman. Ada beberapa hal yang harus diperhatikan pada penerjemahan tersebut,
yaitu:
1. Pendeklarasian variabel
Variabel dibutuhkan oleh program dalam rangka menyimpan data masukan, memproses
dan mendapatkan hasil komputasi.
2. Pemilihan tipe data
Apabila dalam proses pembuatan program ternyata membutuhkanpendeklarasian variabel
maka diwajibkam memilih tipe data, karena setiap variabel pasti membutuhkan tipe
data ketika dideklarasikan.
3. Pemakaian atau pemilihan instruksi
Terdapat beberapa macam instruksi dalam bahasa pemrograman (sequence, selection dan
repetition), urutan langkah dalam algoritma dapat diterjemahkan menjadi salah satu
atau beberapa instruksi tersebut.
4. Aturan sintaksis
Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa
pemrograman yang akan digunakan. Setiap bahasa pemrograman memiliki aturan
penulisan sintaks-nya sendiri.
5. Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan.
Halteknis semacam ini diperhatikan ketikamengkonversikannya menjadi program.
6. Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter.
Masing-masing memiliki cara pengoperasian yang bisa jadi berbeda.
Komputer adalah mesin pemroses. Agar dapat dikerjakan oleh komputer, algoritma
harus ditulis dalam notasi bahasa pemrograman berupa instruksi yang dapat dipahami oleh
komputer sehingga dinamakan program. Jadi program adalah perwujudan atau
implementasi teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga
dapat dilaksanakan oleh komputer. Program ditulis dengan menggunakan salah satu bahasa
pemrograman. Kegiatan membuat program disebut pemrograman (programming). Orang
yang menulis program disebut pemrogram (programmer).Tiap-tiap langkah didalam program
disebut pernyataan atau instruksi. Jadi, program tersusunatas sederetan instruksi. Bila suatu
instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut
dikerjakan komputer.

B. BELAJAR MEMPROGRAM DAN BELAJAR BAHASA PEMROGRAMAN

Belajar memprogram atau membuat program berbeda dengan belajar bahasa


pemrograman. Belajar membuat program adalah belajar tentang strategi atau cara

20
menyelesaikan suatu masalah, yang diungkapkan dalam bentuk algoritma yang mudah
dibaca dan dipahami yang selanjutnya dituangkan dalam bahasa pemrograman. Belajar
memprogram bersifat pemahaman persoalan, analisis dan sintesis. Titik berat belajar
membuat program adalah desain program. Sedangkan belajar bahasa pemrograman adalah
belajar mengenai tata cara atau tata aturan penulisan pernyataan atau statement untuk
membuat program dalam bahasa tertentu saja. Tata aturan ini biasa disebut juga dengan
sintaks bahasa. Sintaks bahasa ini meliputi cara mendeklarasikan variabel, cara melakukan
perulangan, percabangan dan lain-lain. Tiap bahasa pemrograman memiliki aturan penulisan
sendiri-sendiri walaupun terkadang ada kemiripan aturan antar bahasa. Titik berat belajar
bahasa pemrograman adalah coding program.
Sampai saat ini terdapat puluhan bahasa pemrogram, antara lain bahasa Assembly,
Fortran, Cobol, PL/I, Algol, Pascal, C, C++, Basic,Prolog, LISP, PRG, CSMP, Simscript, GPSS,
Dinamo, dan lain-lain. Berdasarkan terapannya, bahasa pemrograman dapat digolongkan
atas dua kelompok besar:

1. Bahasa Pemrograman Bertujuan Khusus


Bahasa pemrograman yang digunakan untuk kepentingan khusus, antara lain yang
termasuk kelompok ini adalah Cobol untuk terapan bisnis dan administrasi. Fortran untuk
terapan komputasi ilmiah, bahasa Assembly untuk terapan pemrograman mesin, Prolog
untuk terapan kecerdasan buatan, bahasa-bahasa simulasi, dan sebagainya.

2. Bahasa Pemrograman Bertujuan Umum


Bahasa pemrograman yang dapat digunakan untuk berbagai aplikasi. Yang termasuk
kelompok ini adalah bahasa Pascal, Basic, Java, dan C. Tentu saja pembagian ini tidak kaku.
Bahasabertujuan khusus tidak berarti tidak bisa digunakan untukaplikasi lain. Cobol
misalnya, dapat juga digunakan untuk terapanilmiah, hanya saja kemampuannya terbatas.
Yang jelas, bahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam
terapan yang berbeda pula.
Berdasarkan pada tingkat kerumitan sebuah bahasa pemrograman, apakah notasi
bahasa pemrograman lebih mendekati bahasa mesin atau ke bahasa manusia, maka bahasa
pemrograman dikelompokkan atas dua macam, yaitu bahasa tingkat tinggi dan bahasa
tingkat rendah. Istilah "bahasa pemrograman tingkat tinggi" tidak serta merta menjadikan
bahasa tersebut lebih baik dibandingkan dengan bahasa pemrograman tingkat rendah. Akan
tetapi, maksud dari "tingkat tinggi" di sini merujuk kepada abstraksi yang lebih tinggi
dibandingkan dengan bahasa tingkat rendah terhadap bahasa mesin. Dibandingkan dengan
harus berurusan dengan register, alamat memori dan stack-stack panggilan, bahasa
pemrograman tingkat tinggi akan berurusan dengan variabel, larik, dan ekspresi aritmetika
atau aljabar boolean. Selain itu, tidak seperti bahasa rakitan, bahasa tingkat tinggi tidak
memiliki kode operasi yang dapat secara langsung menjadikan bahasa tersebut menjadi

◼ Teknologi Informasi Kesehatan III 21


kode mesin. Fitur lainnya seperti fungsi-fungsi penanganan string, fitur pemrograman
berorientasi objek, input/output terhadap berkas juga terdapat di dalam jenis bahasa ini.
Secara umum, bahasa tingkat tinggi akan membuat pemrograman komputer yang
kompleks menjadi lebih sederhana, sementara bahasa tingkat rendah cenderung untuk
membuat kode yang lebih efisien. Dalam sebuah bahasa tingkat tinggi, elemen-elemen
kompleks dapat dipecah ke dalam beberapa elemen yang lebih sederhana, meski masih
dapat dianggap kompleks, di mana bahasa tersebut menyediakan abstraksi. Karena alasan
ini, kodekode yang harus berjalan dengan efisien dapat ditulis dalam bahasa pemrograman
tingkat rendah, sementara bahasa tingkat tinggi digunakan untuk mempermudah
pemrograman.
Bahasa tingkat rendah dirancang agar setiapinstruksinya langsung dikerjakan oleh
komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin.
CPU mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan
operasinya. Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih
dekat ke mesin, dan sulit dipahami manusia. Bahasa Assembly dimasukkan kedalam
kelompok ini karena alasan notasi yang dipakai dalam bahasaini lebih dekat ke mesin,
meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa
mesin.
Bahasa tingkat tinggi membuat pemrograman lebih mudah dipahami, lebih
“manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program
dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu
diterjemahkan terlebih dahulu oleh sebuah translator bahasa, yang disebut kompilator atau
compiler, ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa
tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan sebagainya.

Gambar 1.12. Tahapan pelaksanaan program oleh computer (Munir, 2007)

22
Dengan bertambah rumitnya arsitektur mikroprosesor modern, kompilator-kompilator
bahasa pemrograman tingkat tinggi dapat membuat kode yang lebih efisien dibandingkan
dengan para programmer bahasa pemrograman tingkat rendah yang melakukannya secara
manual. Perlu dicatat bahwa istilah "tingkat tinggi"dan "tingkat rendah" adalah relatif. Pada
awalnya, bahasa Assembly dianggap sebagai bahasa tingkat rendah, sementara COBOL, C,
dan lain-lainnya dianggap sebagai bahasa tingkat tinggi, mengingat mereka mengizinkan
abstraksi terhadap fungsi, variabel, dan evaluasi ekspresi. Akan tetapi, banyak programmer
saat ini mungkin menganggap bahasa C sebagai bahasapemrograman tingkat rendah,
mengingat bahasa pemrograman tersebut mengizinkan akses memori secara langsung
dengan menggunakan alamatnya, dan juga dapat menggunakan beberapa direktif bahasa
Assembly.

C. MACAM-MACAM BAHASA PEMROGRAMAN

Bahasa atau dalam bahasa inggris language adalah suatu sistem untuk berkomunikasi.
Bahasa tertulis menggunakan simbol (yaitu huruf) untuk membentuk kata. Dalam ilmu
komputer, bahasa manusia disebut bahasa alamiah (natural languages), dimana komputer
tidak bisa memahaminya, sehingga diperlukan suatu bahasa komputer. Komputer
mengerjakan transformasi data berdasarkan kumpulan perintah - program - yang telah
dibuat oleh pemrogram. Kumpulan perintah ini harus dimengerti oleh komputer, berstruktur
tertentu (syntax) dan bermakna.
Bahasa pemrograman merupakan notasi untuk memberikan secara tepat program
komputer. Berbeda dengan bahasa alamiah, mis. Bahasa Indonesia, Inggris dsb. yang
merupakan bahasa alamiah (natural language), sintaks dan semantik bahasa pemrograman
(komputer) ditentukan secara kaku, sehingga bahasa pemrograman juga disebut sebagai
bahasa formal (formal language). Jadi, dalam bahasa pemrograman yang digunakan sebagai
alat komunikasi untuk memberikan perintah kepada komputer tidak berlaku kebebasan
berekspresi seperti laiknya dalam bahasa alamiah.
Pemrograman dalam pengertian luas meliputi seluruh kegiatan yang tercakup dalam
pembuatan program, termasuk analisis kebutuhan (requirement's analysis) dan keseluruhan
tahapan dalam perencanaan (planning), perancangan (design) dan pewujudannya
(implementation). Dalam pengertian yang lebih sempit, pemrograman merupakan
pengkodean (coding atau program writing = penulisan program) dan pengujiannya (testing)
berdasarkan rancangan tertentu. Pemahaman yang lebih sempit ini sering digunakan dalam
pembuatan program-program terapan komersial yang membedakan antara system analyst
yang bertanggung jawab dalam menganalisa kebutuhan, perencanaan dan perancangan
program dengan pemrogram (programmer) yang bertugas membuat kode program dan
menguji kebenaran program. Generasi bahasa pemrograman dibedakan menjadi empat
sebagai berikut :
1. Generasi I: machine language

◼ Teknologi Informasi Kesehatan III 23


2. Generasi II: assembly language : Asssembler
3. Generasi III: high-level programming language : C, PASCAL, dan sebagainya. 4.
Generasi IV: 4 GL (fourth-generation language) : SQL

Selain dibedakan menjadi beberapa generasi tersebut berikut, ini adalah macam-
macam bahasa pemrograman berdasarkan tingkatannya dan kegunaannya:
1. Bahasa Tingkat Rendah
Merupakan bahasa ini yang lebih dekat ke mesin (hardware). Bahasa tingkat rendah
bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami
manusia. Berbeda dengan high-level programming languages, suatu bahasa yang sudah
dekat pada bahasa manusia.

2. Bahasa Mesin
Bahasa mesin merupakan representasi tertulis machine code (kode mesin), yaitu kode
operasi suatu mesin tertentu. Bahasa ini bersifat khusus untuk mesin tertentu dan
"dimengerti" langsung oleh mesin, sehingga pelaksanaan proses sangat cepat. Bahasa mesin
kelompok komputer tertentu berlainan dengan bahasa mesin kelompok komputer yang lain.
Abstraksi bahasa ini adalah kumpulan kombinasi kode biner "0" dan "1" yang sangat tidak
alamiah bagi kebanyakan orang - kecuali insinyur pembuat mesin komputer. Karena tidak
alamiah bagi kebanyakan orang, bahasa mesin juga disebut bahasa tingkat rendah.

3. Bahasa Assembly
Bahasa rakitan (assembly language) merupakan notasi untuk menyajikan bahasa mesin
yang lebih mudah dibaca dan dipahami oleh manusia. Bahasa ini sudah menggunakan simbol
alpabet yang bermakna. Contoh “MOV AX 1111”, pindahkan ke register AX nilai 1111. Proses
data oleh komputer berdasarkan perintah bahasa rakitan adalah cepat. Meski demikian
masih merepotkan-bahkan bagi kebanyakan pemrogram, karena masih harus mengingat-
ingat tempat penyimpanan data. Bahasa rakitan juga bersifat khusus untuk mesin tertentu.
Contoh:
Assembler.

3. Bahasa Tingkat Tinggi


Adalah bahasa pemrograman yang dekat dengan bahasa manusia, kelebihan utama
dari bahasa ini adalah mudah untuk di baca, tulis, maupun diperbaharui, sebelum bisa
dijalankan program harus terlebih dahulu di-compile. Contoh Ada, Algol, BASIC, COBOL, C, C+
+, FORTRAN, LISP, dan Pascal, dsb. Pada generasi bahasa pemrograman terakhir sekarang ini,
kedua cara interpretasi dan kompilasi digabungkan dalam satu lingkungan pengembangan
terpadu (IDE=integrated development environ-ment). Cara interpretasi memudahkan dalam
pembuatan program secara interaktif dan cara kompilasi menjadikan eksekusi program lebih

24
cepat. Pertama program dikembangkan interaktif, kemudian setelah tidak ada kesalahan
keseluruhan program dikompilasi. Contoh bahasa program seperti ini adalah Visual BASIC
yang berbasis BASIC dan Delphi yang berbasis PASCAL. Bahasa tingkat tinggi bersifat
portable. Program yang ibuat menggunakan bahasa tingkat tinggi pada suatu mesin
komputer bersistem operasi tertentu, hampir 100% bisa digunakan pada berbagai mesin
dengan aneka sistem operasi. Kalaupun ada perbaikan sifatnya kecil sekali.

4. Bahasa Generasi 3 dan 4


Lebih dekat ke bahasa manusia dibandingkan dengan high-level programming
languages. Biasanya dipakai untuk mengakses database. Contoh perintah pada bahasa SQL :
FIND ALL RECORDS WHERE NAME IS "JOHN".
5. Bahasa Pemrograman untuk Tujuan Tertentu
Bahasa pemrograman untuk tujuan atau kebutuhan tertentu. Tabel 1.1 berikut ini
contoh bahasa pemrograman untuk tujuan tertentu.

Tabel 1.1 Bahasa Pemrograman Untuk Tujuan Tertentu

Dalam bahasa pemrograman dikenal istilah compiler dan interpreter. Compiler adalah
suatu program yang menterjemahkan bahasa program (source code) ke dalam bahasa objek
(object code). Compiler menggabungkan keseluruhan bahasa program dikumpulkan
kemudian disusun kembali. Dalam melakukan penulisan bahasa pemrograman komputer ada
beberapa tahapan-tahapan yang harus dilakukan antara lain :
1. Pertama source code ( program yang ditulis) dibaca ke memory komputer.
2. Source code tersebut diubah menjadi object code (bahasa assembly).
3. Object code dihubungkan dengan library yang dibutuhkan untuk membentuk file yang
bisa di eksekusi.

◼ Teknologi Informasi Kesehatan III 25


Compiler memerlukan waktu untuk membuat suatu program yang dapat dieksekusi
oleh komputer. Tetapi, program yang diproduksi oleh Compiler bisa berjalan lebih cepat
dibandingkan dengan yang diproduksi oleh Interpreter, dan bersifat independen.
Berbeda dengan compiler, Interpreter menganalisis dan mengeksekusi setiap baris dari
program tanpa melihat program secara keseluruhan. Keuntungan dari Interpreter adalah
dalam eksekusi yang bisa dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk
alasan ini interpreter digunakan pada saat pembuatan program berskala besar. Secara lebih
rinci perbedaan Compiler dan Interpreter disajikan pada Tabel 1.2 berikut ini:

Tabel 1.2. Perbedaan Compiler dan Interpreter

Compiler Interpreter
Menterjemahkan secara keseluruhan Menterjemahkan Instruksi per instruksi
Bila terjadi kesalahan kompilasi maka source Bila terjadi kesalahan interprestasi dapat
program harus diperbaiki dan dikompilasi diperbaiki
ulang
Dihasilkan Object program Tidak dihasilkan obyek program
Dihasilkan Executable program Tidak dihasilkan Executable program
Proses pekerjaan program lebih cepat Proses pekerjaan program lebih lambat
Source program tidak dipergunakan hanya Source program terus dipergunakan
bila untuk perbaikan saja
Keamanan dari program lebih terjamin Keamanan dari program kurang terjamin

Dalam Compiler terjadi proses proses translasi dari file sumber menjadi file executable
yang ditunjukkan pada Gambar 1.13 berikut ini :

26
Gambar 1.13. Translasi Dari File Sumber Menjadi File Executable

Seluruh proses pada Gambar 1.13 tersebut dilakukan oleh preprosesor, compiler dan
linker yang hal tersebut dilakukan dengan satu aksi tunggal.
Dalam Bahasa pemrograman komputer terdapat tipe pemrograman. Tipe
pemrograman yang pertama adalah pemrograman terstruktur dan prosedural.

◼ Teknologi Informasi Kesehatan III 27


Pemrograman terstruktur adalah cara pemrosesan data yang terstuktur. Terstruktur dalam:
analisa, cara dan penulisan program. Prinsip pemrograman terstruktur adalah mempunyai
ciri sebagai berikut:
1. Menggunakan rancangan pendekatan dari atas ke bawah (top down design)
2. Membagi program ke dalam modul-modul logika yang sejenis
3. Menggunakan sub-program untuk proses-proses sejenis yang sering digunakan
4. Menggunakan pengkodean terstruktur: IF ........... THEN, DO ........ WHILE dan lain-
lainnya 5. Menghindari penggunaan perintah GO TO bila tidak diperlukan

6. Gunakan nama-nama bermakna, dan


7. Membuat dokumentasi yang akurat dan berarti.

Dalam perencanaan dan perancangan dari atas ke bawah, kategori dan penyelesaian
masalah dimulai dari bagian yang utama kemudian dibagi menjadi bagian yang lebih kecil.
Rancangan cara ini memudahkan penulisan, pengujian, koreksi dan dokumentasi program.
Tahapan rancangan atas ke bawah dalam pemrograman adalah sebagai berikut :
1. Tentukan keluaran (output) yang diminta, masukan (input) yang diperlukan dan
prosesproses utama yang diperlukan untuk transformasi data.
2. Membagi proses utama ke dalam modul-modul fungsional.
3. Buat algoritma msing-masing modul, dari modul utama ke sub-sub modul.

Setiap modul dalam proses rancangan atas ke bawah biasanya dibatasi dalam isi
maupun batasan-batasan berikut:
1. Setiap modul hanya mempunyai satu masukan dan keluaran
2. Setiap modul hanya mewakili satu fungsi program.

Rancangan (design) terstruktur sebagai berikut:


1. Membagi program menjadi subprogram
2. Menekankan fungsionalitas.
3. Cocok untuk sistem yang banyak mempunyai fungsi independen.

Gaya penulisan program terstruktur: Menggunakan indentasi sehingga jelas struktur


dan kontrol program. Memudahkan pembacaan, pemahaman, penelusuran kesalahan dan
pembuatan koreksi.
Bahasa pemrograman prosedural adalah bahasa pemrograman yang mendukung
pembuatan program sebagai kumpulan prosedur. Prosedur-prosedur ini dapat saling
memanggil dan dipanggil dari manapun dalam program dan dapat menggunakan parameter

28
yang berbeda-beda untuk setiap pemanggilan. Prosedur adalah bagian dari program untuk
melakukan operasi-operasi yang sudah ditentukan dengan menggunakan parameter
tertentu. Bahasa pemrograman terstruktur adalah pemrograman yang mendukung abstraksi
data, pengkodean terstruktur dan kontrol program terstruktur. Kontrol program terstruktur
adalah sebagai berikut:
1. Runtun - urut (sequence)
2. Pilihan (selection)
3. Pengulangan (repetition - loop)
4. Batasan masalah merencanakan sistem dan spesifikasi program : siapa yang akan
menggunakan program dan untuk apa?. Cara menentukan batasan masalah adalah
dengan :
a. Menentukan tujuan dan hasil yang akan dicapai
b. Menentukan hal-hal yang diperlukan oleh sistem
c. Pengumpulan data
5. Pengembangan model pembuatan model dari sistem yang akan kita bangun, model
adalah suatu gambaran sederhana dari sistem yang kita buat. Dengan pembuatan
model akan terlihat dengan jelas hubungan antara objek-objek dalam sistem yang akan
kita bangun. Untuk penyelesaian aritmatik, biasanya model dibuat dalam bentuk
rumus matematik. Contoh: untuk membuat program luas_lingkaran kita membuat
model matematis c = axb
6. Rancangan algoritma pembuatan urutan instruksi yang akan ditulis pada program
7. Pemrograman implementasi algoritma ke dalam program (algoritma sendiri dalam
komputer adalah merupakan program)
8. Uji dan Validasi Pengujian terhadap program : seperti kesalahan penulisan (syntax
error), kesalahan saat eksekusi (runtime error) kesalahan logika program (program
berjalan tapi menghasilkan output yang salah-fatal error).
9. Dokumentasi Pembuatan catatan pada program terutama pada modul-modul yang
rumit.

Selain tipe pemrograman terdapat pula paradigm dalam pemrograman yaitu


merupakan sebuah cara pandang seorang programmer dalam menyelesaikan sebuah
masalah dan memformulasikannya kedalam sebuah bahasa pemrograman. Terdapat
beberapa paradigma pemrograman, antara lain:
1. Paradigma Imperatif
Inti dari paradigma ini adalah menjalankan sebuah urutan perintah, jalankan satu
perintah kemudian jalankan perintah yang selanjutnya. Sebuah program imperatif tersusun
dari sekumpulan urutan perintah yang akan dijalankan oleh komputer. Pemrograman

◼ Teknologi Informasi Kesehatan III 29


procedural merupakan salah satu contoh dari paradigma ini, dan seringkali dianggap sebagai
sebuah sebuah paradigma yang sama.
a. Ide dasarnya adalah dari model komputer Von Neumann.
b. Eksekusi langkah-langkah komputasi diatur oleh sebuah struktur kontrol.
c. Berdasarkan urutan-urutan atau sekuensial.
d. Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur
merupakan kumpulan instruksi yang dikerjakan secara berurutan.
e. Contoh bahasa pemrograman: Fortran, Algol, Pascal, Basic, C
2. Paradigma Fungsional
Pemrograman fungsional adalah sebuah paradigma yang menjadikan fungsi
matematika sebagai penentu dalam eksekusi komputasi. Fungsi tersebut merupakan dasar
utama dari program yang akan dijalankan. Paradigma ini lebih banyak digunakan di kalangan
akademis daripada produk komersial, terutama yang murni fungsional. a. Ide dasar dari
matematika dan teori fungsi.
b. Beberapa contoh bahasa fungsional adalah APL, Erlang, Haskell, Lisp, ML, Oz dan
Scheme.

3. Paradigma Logika
Umumnya digunakan pada domain yang berhubungan dengan ekstraksi pengetahuan
yang berbasis kepada fakta dan relasi. Dalam paradigma ini, logika digunakan secara murni
untuk representasi bahasa deklaratif yang kebenarannya ditentukan oleh programmer,
sedangkan pembukti-teorema atau model pembangkit digunakan sebagai pemecah masalah.
a. Berasal dari pembuktian otomatis didalam intelegensia buatan.
b. Berdasar kepada aksioma, aturan dan query.
c. Eksekusi program menjadi proses pencarian secara sistematik dalam sekumpulan
fakta, dengan menggunakan sekumpulan aturan.
d. Beberapa contoh bahasa pemrograman: ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual
Prolog, XSB, and λ Prolog

4. Paradigma Berorientasi Obyek


Pemrograman berorientasi obyek muncul untuk mengatasi masalah kompleksitas dari
sebuah perangkat lunak sehingga kualitas dari perangkat lunak tersebut dapat dikelola
dengan lebih mudah. Caranya adalah dengan memperkuat modularity dan reusability
didalam perangkat lunak tersebut. Pemrograman berorientasi obyek menggunakan obyek
dan interaksi antar obyek dalam penyusunan sebuah perangkat lunak. Paradigma ini
semakin banyak digunakan karena lebih mudah dalam menggambarkan kondisi yang ada
pada dunia nyata. Ide dari interaksi antar obyek yang ada pada dunia nyata. Antar obyek
saling berinteraksi dengan saling mengirimkan pesan (message). Terdapat beberapa
karakteristik utama, yaitu: Abstraksi, Enkapsulasi, Pewarisan dan Polimorfisme.

30
Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Jelaskan apa yang dimaksud dengan program dan pemrograman?


2) Sebutkan dan jelaskan unsure-unsur dalam pemrograman?
3) Jelaskan perbedaan belajar memprogram dan belajar bahasa pemrograman?
4) Bahasa pemrograman dibagi menjadi 4 generasi, sebutkan?
5) Jelaskan perbedaan compiler dan interpreter dalam bahasa pemrograman?
6) Jelaskan perbedaan pemrograman terstruktur dan pemrograman procedural?

Petunjuk Jawaban Latihan

Untuk membantu Anda dalam mengerjakan soal latihan tersebut silakan pelajari
kembali materi tentang Pengertian pemrograman, belajar memprogram dan belajar bahasa
pemrograman dan macam-macam bahasa pemrograman.

Ringkasan
1. Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa
sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.
2. Program ditulis dengan menggunakan salah satu bahasa pemrograman. Kegiatan
membuat program disebut pemrograman (programming).
3. Unsur-unsur pemrograman adalah Input, Proses, dan Output.
4. Belajar membuat program adalah belajar tentang strategi atau cara menyelesaikan
suatu masalah, yang diungkapkan dalam bentuk algoritma yang mudah dibaca dan
dipahami yang selanjutnya dituangkan dalam bahasa pemrograman.
5. Belajar bahasa pemrograman adalah belajar mengenai tata cara atau tata aturan
penulisan pernyataan atau statement untuk membuat program dalam bahasa
tertentu.

◼ Teknologi Informasi Kesehatan III 31


6. Bahasa pemrograman dapat digolongkan atas dua kelompok besar yaitu bahasa
pemrograman bertujuan khusus dan bahasa pemrograman bertujuan umum.
7. Generasi bahasa pemrograman dibedakan menjadi empat generasi sebagai berikut :
Generasi I : machine language, Generasi II: assembly language : Asssembler, Generasi
III: high-level programming language (C, PASCAL, dan sebagainya), Generasi IV : 4 GL
(fourth-generation language) : SQL.
8. Dalam bahasa pemrograman terdapat 2 tipe pemrograman yaitu pemrograman
terstruktur dan pemrograman prosedural.
9. Terdapat beberapa paradigma pemrograman yaitu : Paradigma Imperatif, Paradigma
Fungsional, Paradigma Logika dan Paradigma Berorientasi Obyek.

Tes 2
Pilihlah salah satu jawaban yang paling benar!

1) Kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai
urutan nalar yang tepat untuk menyelesaikan suatu persoalan disebut?
A. Program
B. Pemrograman
C. Coding
D. Programming

2) Terdapat tiga unsur utama dalam pemrograman, yaitu ....


A. Input ->Output->Proses
B. Proses->Input-> Output
C. Input->Proses->Output
D. Output->Proses->Input

3) Pernyataan yang tepat mengenai belajar memprogram adalah ....


A. Belajar bahasa pemrograman tertentu
B. Belajar penyelesaian suatu masalah dengan algoritma
C. Belajar menyelesaikan masalah dengan membuat program
D. Belajar tata cara atau aturan bahasa pemrograman

4) Berikut ini pernyataan yang tepat mengenai generasi bahasa pemrograman dan
contohnya adalah ....
A. Generasi II contohnya C
B. Generasi I contohnya assembly language

32
C. Generasi IV contonya machine language
D. Generasi III contohnya PASCAL

5) Suatu program yang dapat menterjemahkan bahasa program ke dalam bahasa objek
disebut ....
A. Source code
B. Object code
C. Compiler
D. Interpreter

◼ Teknologi Informasi Kesehatan III 33


Kunci Jawaban Tes
Tes 1
1) B
2) C
3) B
4) D
5) A

Tes 2
1) A
2) C
3) B
4) D
5) C

34
Glosarium
Object code : Suatu kode yang dihasilkan oleh suatu proses kompilasi yang bisa
bermacammacam bentuknya tergantung pada target yang diinginkan.
Pseudocode : Kode yang mirip atau menyerupai dengan instruksi kode program sebenarnya.
Source code : Suatu rangkaian pernyataan atau deklarasi yang ditulis dalam bahasa
pemrograman komputer yang terbaca manusia.

◼ Teknologi Informasi Kesehatan III 35


Daftar Pustaka
Ananda, D.; A. Suryan; P. Mayadewi; L. Rasiana dan H. Kusmayadi. 2009. Algoritma dan
Pemrograman. Politeknik Telkom Bandung.

Barakbah, A.R; T. Karlita dan A.S. Ahsan. 2013. Logika dan Algoritma. Politeknik Elektronika
Negeri Surabaya.

Munir, R. 2007. Algoritma dan Pemrograman Dalam Bahasa Pascal dan C. Informatika.

Suprapto. 2008. Bahasa Pemrograman untuk Sekolah Menengah Kejuruan. Departemen


Pendidikan Nasional.

36
Bab 2
BENTUK ALGORITMA DAN TIPE DATA
Tominanto, S.Kom.,M.Cs

Pendahuluan

S algoritma merupakan hal dasar yang harus diketahui oleh setiap orang yang ingin
ebuah algoritma merupakan langkah-langkah penyelesaian masalah. Bentuk atau
notasi
membuat suatu pogram, karenadalam notasi algoritma inilah terdapat kerangka-
kerangka suatu program. Deskripsi langkah-langkah dalam algoritma tidak mengacu pada
sintaks bahasa pemrograman apapun dan tidak tergantung pada spesifikasi komputer yang
mengeksekusinya. Notasi algoritma merupakan bahasa universal yang dapat diterima oleh
semua bahasa pemrograman yang ada. Oleh sebab itu, algoritma yang baik harus dapat
diterjemahkan ke dalam bentuk source code dari semua bahasa pemrograman yang ada.
Tidak ada aturan baku dalam menuliskan algoritma, yang penting mudah dibaca
danmenggunakan bahasa yang mudah dipahami. Meskipun demikian untuk menghindari
kekeliruan, ketaatan terhadap notasi perlu diperhatikan. Terdapat tiga bentuk yang umum
digunakan dalam menuliskan algoritma yaitu: (1) kalimat deskriptif, (2)pseudocode, dan (3)
flowchart.
Modul pembelajaran ini membahas tentang bentuk penyajian algoritma dan tipe
data. Setelah menyelesaikan modul pembelajaran ini, diharapkan mahasiswa
mampumemahami penyajian algoritma dalam bentuk kalimat deskriptif, pseudocode dan
flowchartdan serta tipe data pada pemrograman secara benar sehingga sehingga dapat
digunakan sebagai dasar untuk melanjutkan topik dan bab selanjutnya.

◼ Teknologi Informasi Kesehatan III 37


Topik 1
Macam-macam Bentuk Algoritma
A. MACAM-MACAM BENTUK ALGORITMA

Algoritma mempunyai aturan penulisan sendiri yang disebut dengan bentuk atau
notasi algoritma. Notasi algoritma ini tidak tergantung dari spesifikasi bahasa pemrograman
tertentu dan komputer yang mengeksekusinya. Hal ini dikarenakan notasi algoritma
bukanlah notasi bahasa pemrograman. Notasi algoritma merupakan bahasa universal yang
dapat diterima oleh semua bahasa pemrograman yang ada. Oleh sebab itu, algoritma yang
baik harus dapat diterjemahkan ke dalam bentuk source code dari semua bahasa
pemrograman yang ada. Terdapat tiga bentuk yang umum digunakan dalam menuliskan
algoritma yaitu: (1) kalimat deskriptif, (2)pseudocode, dan (3) flowchart.

1. Algoritma Dalam Bentuk Kalimat Deskriptif


Notasi penulisan algoritma dengan menggunakan bahasa deskriptif biasa juga
disebutdengan notasi alami. Dilakukan dengan cara menuliskan instruksi-instuksi yang harus
dilaksanakan dalam bentuk untaian kalimat deskriptif dengan menggunakan bahasa yang
jelas. Dasar dari notasi bahasa deskriptif adalah Bahasa Inggris, namun dapat dimodifikasi
dengan bahasa sehari-hari termasuk Bahasa Indonesia. Karena tidak ada aturan baku dalam
menuliskan algoritma dengan notasi deskriptif maka tiap orang dapat membuat aturan
penulisan dan notasi algoritma sendiri. Hal ini dapat dimengerti karena teks algoritma tidak
sama dengan teks program. Program adalah implementasi algoritma dalam notasi bahasa
pemrograman tertentu. Namun, agar notasi algoritma mudah ditranslasi ke dalam notasi
bahasa pemrograman, maka sebaiknya notasi algoritmatersebut berkoresponden dengan
notasi bahasa pemrograman pada umumnya. Kata kerja adalah jenis kata yang biasa
digunakan dalam penulisan bahasa deskriptif, contohnya tulis, baca, hitung, tampilkan,
ulangi, bandingkan, dan lain-lain.Notasi jenis ini cocok untuk algoritma yang pendek.Tapi
untuk masalah algoritma yang panjang, notasi ini kurang efektif. Cara penulisan algoritma
dengan notasi bahasa deskriptif paling mudah dibuat, namun demikian caraini paling sulit
untuk diterjemahkan ke dalam bahasa pemrograman. Pada dasarnya teks algoritma dengan
bahasa deskriptif disusun oleh tiga bagian utama yaitu: Bagian judul (header), Bagian
deklarasi (kamus), dan Bagian deskripsi. Setiap bagian disertai dengan komentar untuk
memperjelas maksud teks yang dituliskan. Komentar adalah kalimat yang diapit oleh
pasangan tanda kurung kurawal (‘{’ dan ‘}’).
a. Bagian judul (header)
Merupakan bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi)
tentang algoritma tersebut. Dibagian ini juga digunakan untuk menentukan apakah teks
algoritma yang dibuat tersebut adalah program, prosedur, atau fungsi. Nama algoritma

38
sebaiknya singkat namun cukup menggambarkan apa yang dilakukan oleh algoritma
tersebut. Gambar 2.1 berikut ini contoh judul algoritma disertai dengan penjelasan singkat
(intisari) tentang apa yang dilakukan oleh algoritma. Penjelasan dibawah nama algoritma
sering dinamakan juga spesifikasi algoritma yang dituliskan dalam kurung kurawal ({}).
Algoritma harus ditulis sesuai dengan spesifikasi yang didefinisikan. Gambar 2.1 adalah
contoh judul algoritma menghitung luas lingkaran yang disertai dengan penjelasan singkat.

Gambar 2.1 Contoh bagian judul algoritma

b. Bagian deklarasi (kamus)


Di dalam algoritma yang berbentuk kalimat deskriptif, deklarasi atau kamus adalah
bagian untuk mendefinisikan semua nama yang dipakai di dalam algoritma. Nama
tersebutdapat berupa nama variabel, nama konstanta, nama tipe, nama prosedur atau nama
fungsi. Semua nama tersebut baru dapat digunakan di dalam algoritma jika telah
didefinisikan terlebih dahulu didalam bagian deklarasi. Penulisan sekumpulan nama dalam
bagian deklarasi sebaiknya dikelompokkan menurut jenisnya. Pendefinisian nama konstanta
sekaligus memberikan nilai konstanta. Pendefinisian nama fungsi atau prosedur sekaligus
dengan pendefinisian spesifikasi dan parameternya. Gambar 2.2 adalah bentuk umum
bagian deklarasi. Sedangkan gambar 2.3 adalah contoh bagian deklarasi algoritma
menghitungluas lingkaran.

◼ Teknologi Informasi Kesehatan III 39


Gambar 2.2 Bentuk umum bagian deklarasi algoritma

Gambar 2.3 Contoh bagian deklarasi algoritma

c. Bagian deskripsi
Bagian deskripsi adalah bagian inti dari struktur algoritma. Bagian ini berisi uraian
langkah-langkah penyelesaian masalah. Langkah-langkah ini dituliskan dengan notasi yang
lazim dalam penulisan algoritma. Setiap langkah algoritmadibaca dari langkah paling atas
hingga langkah paling bawah. Urutan penulisan menentukan urutan pelaksanaan
perintah.Seperti telah dijelaskan di bab satu bahwa penyusun atau struktur dasar algoritma
adalah langkah-langkah. Suatu Algoritma dapat terdiri dari tiga struktur dasar, yaitu
runtunan, pemilihan dan pengulangan. Ketiga jenis langkah tersebut membentuk konstruksi
suatu algoritma. Pada bagian deskripsi inilah letak tiga struktur algoritma tersebut. Gambar
2.3 adalah contoh bagian deskripsi algoritmamenghitung luas lingkaran. Gambar 2.4 adalah
contoh algoritmam menghitung luaslingkaran yang dituliskan menggunakan kalimat
deskriptif secara lengkap.

Gambar 2.3 Contoh bagian deskripsi algoritma

Gambar 2.4 Contoh penulisan algoritma dalam bentuk kalimat deskriptif

40
Algoritma dengan uraian kalimat deskriptif dapat juga menggunakan bahasa sehari-
hari. Untuk permasalahan yang sederhana penggunaan notasi ini sangatlah mudah, akan
tetapi untuk permasalahan yang lebih komplek dan rumit, penggunaan notasi ini akan lebih
sulit dan sering kali terjadi ambigu dalam langlah-langkah penyelesaian masalah. Oleh
karena itulah untuk kasus-kasus yang lebih komplek, penggunaan notasi ini jarang sekali
bahkan tidak digunakan. Sebagai contoh penggunaan bahasa sehari-hari dalam algoritma
deskriptif antara lain untuk permasalahan mencari bilangan terbesar dari tiga buah bilangan
yang dimasukkan sebagai berikut:

Gambar 2.5 Algoritma dalam bentuk kalimat deskriptif

Algoritma dengan uraian kalimatdeskriptif seperti gambar 2.5 sudah jarang sekali kita
temukan karena kadang kala agak sulit untuk memahaminya. Yang paling banyak kita
temukan adalah algoritma (dengan uraian kalimat deskriptif) yang ditulis secara lebih
sistematis dan efisien sehingga lebih mudah untuk memahaminya. Algoritma tersebut
adalah sebagai berikut:

Gambar 2.6 Algoritma dalam bentuk kalimat deskriptif yang sistematis

Dalam notasi algoritma, baik menggunakan notasi algoritma dengan uraian kalimat
deskriptif, flowchart maupun pseudocode, kita jarang menggunakan tanda = (sama dengan)
tetapi menggunakan simbol anak panah ke arah kiri () seperti yang terlihat pada langkah
ke2, 4, dan 6. Sebagai contoh pada langkah ke-2, arti dari notasi tersebut adalah nilai
◼ Teknologi Informasi Kesehatan III 41
variabel a (yang ada di sebelah kanan anak panah) diberikan kepada variabel mak (yang ada
di sebelah kiri anak panah). Dengan demikian jika nilai variabel a adalah 10, maka nilai mak
juga 10 atau dalam penulisan secara matematis mak = a.Penggunaan anak panah ini
dikarenakan, seperti yang telah dikemukakan sebelumnya, algoritma tidak diperuntukkan
untuk suatu bahasa pemrograman tertentu, tetapi dapat diaplikasikan atau diterjemahkan
ke dalam bentuk source code dari semua bahasa pemrograman yang ada. Dalam pascal
misalnya, notasi yang digunakan untuk tanda = (sama dengan) adalah := (titik dua dilanjutkan
dengan tanda sama dengan) sehingga langkah ke-2 akan diterjemahkan menjadi mak := a.
Akan tetapi dalam bahasa C++ maupun Java, tanda = (sama dengan) masih tetap digunakan
sehingga penerjemahannya adalah mak = a.

2. Algoritma Dalam Bentuk Kalimat Pseudocode


Pseudocode adalah cara penulisan algoritma yang menyerupai bahasa
pemrogramantingkattinggi. Pseudocode menggunakan bahasa yang hampir menyerupai
bahasa pemrograman. Biasanya pseudocode menggunakan bahasa yang mudah dipahami
secara universal dan juga lebih ringkas dari pada algoritma. Pseudocode berisi deskripsi dari
algoritma pemrograman komputer yang menggunakan struktur sederhana dari beberapa
bahasa pemrograman tetapi bahasa tersebut hanya di tujukan agar dapat dibaca manusia.
Sehingga pseudocode tidak dapat dipahami oleh komputer. Supaya notasi pseudocodebisa
dipahami oleh komputer maka harus diterjemahkan terlebih dahulu menjadi sintaks bahasa
pemrograman komputer tertentu.
Dalam pseudocode, tidak ada sintaks standar yang resmi. Karena itu, pseudocode ini
dapat diterapkan dalam berbagai bahasa pemograman. Disarankan untuk menggunakan
keyword yang umum digunakan seperti :if, then, else, while, do, repeat, for, dan lainnya.
Keuntungan menggunakan notasi pseudocode adalah kemudahan mentranslasi ke notasi
bahasa pemrograman, karena terdapat korespondensi antara setiap pseudocode dengan
notasibahasa pemrograman. Tabel 2.1. menunjukkan perbandingan beberapa kata yang
biasa digunakan dalam penulisan algoritma dengan menggunakan kalimat deskriptif dan
pseudocode.

Tabel 2.1 Perbandingan beberapa kata yang biasa digunakan dalam penulisan algoritma
dengan menggunakan kalimat deskriptif dan pseudocode

Deskriptif Pseudocode
Masukkan panjang Input panjang
Read panjang
Baca panjang
Hitung luas dengan rumus panjang x lebar luas panjang * lebar
Tampilkan luas Output luas

42
Print luas
Write luas
Jika sudah selesai, cetak luas If kondisi_selesai == true then print luas
Nilai B ditambah 5 B B+5
Deskriptif Pseudocode
Jika nilai A lebih kecil dari 5 maka nilai B If A<5 then B B/3
dibagi 3
Jika nilai A lebih besar dari nilai B maka If A>Bthen print A else print B
tampilkan A, jika A lebih kecil dari B maka
tampilkan nilai B

Struktur penulisan pseudocode secara umum sama dengan struktur penulisan


algoritma dengan menggunakan kalimat deskriptif yaitu dimulai dari judul/header,
deklarasi/kamus dan diakhiri dengan deskripsi. Meskipun tidak ada sintaks khusus dalam
penulisan pseudocode, tetapi terkadang pseudocode dituliskan dengan menggunakan style
atau gaya penulisan dari beberapa bahasa pemrograman yang ada, seperti Fortran, Pascal, C
dan lain-lain. Gambar 2.7 adalah contoh penulisan pseudocode dengan menggunakan gaya
penulisan beberapa bahasa pemrograman. Gambar 2.8 adalah contoh pseudocode
menentukan bilangan terbesar dari 3 masukan bilangan. Sedangkan Gambar 2.9 adalah
contoh pseudocode konversi nilai angka menjadi nilai huruf.

Gambar 2.7 Contoh pseudocode menggunakan gaya penulisan Fortran, Pascal dan C

◼ Teknologi Informasi Kesehatan III 43


Gambar 2.8 Contoh pseudocode menentukan bilangan terbesar dari 3 masukan bilangan

Gambar 2.9. Contoh pseudocode konversi nilai angka menjadi nilai huruf.

Contoh bentuk lain dari algoritma pseudocodeyaitu misalnya algoritma untuk mencari
bilangan terbesar dari tiga bilangan acak sebagai berikut:

44
Gambar 2.10 Contoh algoritma pseudocode mencari nilai terbesar

3. Algoritma Dalam Bentuk Flowchart


Dalam membuat algoritma, diperlukan suatu mekanisme atau alat bantu untuk
menuangkan hasil pemikiran mengenai langkah-langkahpenyelesaian masalah yang
sistematis dan terurut. Pada dasarnya untuk bisa menyusun solusi diperlukan kemampuan
problemsolving yang baik. Oleh karena itu, sebagai sarana untuk melatih kemampuan
tersebut terdapatsebuah tool (alat) yang dapat digunakan, yakni flowchart. Secara formal,
flowchart didefinisikan sebagai skema penggambaran darialgoritma atau proses. Tabel2.2
berikutini menampilkan simbol-simbol yang dapat digunakan dalam menyusun flowchart.

Tabel 2.2 Simbol-simbol Flowcart

◼ Teknologi Informasi Kesehatan III 45


Gambar-gambar berikut ini beberapa contoh algoritma dalam bentuk Flowchart:

46
Gambar 2.11 Contoh algoritma menghitung luas persegi panjang dalambentuk Flowchart

Gambar 2.12 Contoh algoritma membuat telur dadar dalambentuk Flowchart

◼ Teknologi Informasi Kesehatan III 47


Gambar 2.13 Contoh algoritma deteksi bilangan genap atau ganjil dalambentuk Flowchart

B. KELEBIHAN DAN KEKURANGAN BENTUK-BENTUK ALGORITMA

Terdapat tiga bentuk yang umum digunakan dalam menuliskan algoritma yaitu: kalimat
deskriptif, pseudocode, dan flowchart. Masing-masing bentuk ini memiliki kelebihan dan
kekurangan. Berikut ini adalah penjelasan mengenai kelebihan dan kekurangan
bentukbentuk algoritma:

1. Kelebihan dan Kekurangan Algoritma Dalam Bentuk Kalimat Deskriptif


Algoritma dalam bentuk kalimat deskriptif adalah notasi algoritma yang paling
sederhana karena algoritma ini menggunakan bahasa sehari-hari. Kelebihan dari algoritma
bentuk ini adalah dari sisi kesederhanaan dalam pembuatannya dan dapat dipahami dengan
mudah oleh orang awam.
Kekurangan algoritma dalam bentuk kalimat deskriptif adalah untuk permasalahan
yang lebih komplek dan rumit, penggunaan bentuk algoritma ini akan lebih sulit dan
seringkali terjadi ambigu dalam langlah-langkah penyelesaian masalah. Oleh karena itulah
untuk kasuskasus yang lebih komplek, penggunaan notasi ini jarang sekali bahkan tidak
digunakan.

2. Kelebihan dan Kekurangan Algoritma Dalam Bentuk Pseudocode


Pseudocode merupakan sebuah pengembangan dari algoritma, sesuai dengan
namanya, pseudocode menggunakan kode-kode tertentu untuk memberikan penjelasan
mengenai cara kerja atau penyelesaian dari suatu masalah. Singkatnya, pseudocode bisa
dibilang sebagai sebuah algoritma yang sudah diubah ke dalam bentuk kode-kode tertentu.

48
Kelebihan dari pseudocode ini adalah memiliki struktur yang jauh lebih ringkas
dibandingkan dengan algoritma deskriptif, namun demikian masih mudah untuk dimengerti
oleh manusia, dan memiliki struktur yang hampir mirip dengan bahasa pemrograman.
Pseudocode menggunakan banyak sekali command-command yang populer, yang banyak
dipelajari, misalnya saja, IF, ELSE, THEN, serta menggunakan kode atau tanda-tanda tertentu,
seperti tanda underscore (_), tanda koma, titik, tanda kutip, tanda panah kiri dan kanan,
serta tanda lainnya.Untuk dapat membuat sebuah pseudocode, maka harus mengetahui
algoritma dari suatu masalah terlebih dahulu. Setelah itu, barulah, dirubah ke dalam bentuk
yang lebih ringkas, dengan tambahan berupa kode dan tanda tertentu. Keuntungan lain
pseudocode dapat membantu programmer dalam mempelajari dan memahami sebuah alur
kerja program, pseudocode relatif umum dalam artian dapat berbentuk sebagai sebuah
programming principles, tidak menjurus ke sebuah bahasa pemrograman khusus sehingga
dapat diimplementasikan ke berbagai bahasa (C++, C#, Java, Delphi, Basic, PHP, Pythondan
lain-lain).
Kekurangan dari algoritma dalam bentuk pseudocodeini adalah bagi kaum awam,
pseudocode akan terlihat seperti sebuah source code bahasa pemrograman tertentu dan
akan dicoba dicompile begitu saja, hal ini akan mengakibatkan error. Selain itu Pseudocode
terkesan rumit dan susah dipelajari jika tidak ditulis dengan rapi.

3. Kelebihan dan Kekurangan Algoritma Dalam Bentuk Flowchart


Dengan menggunakanflowchart, tahapan-tahapan penting dalamalgoritma dapat
ditunjukkan dengan diagram. Aliran proses ditunjukkandengan arah panah atau disebut
dengan ’flowlines’.Kelebihan atau keuntungan menggunakan flowchartadalah penggunaan
diagramuntuk menggambarkan tahapan proses, sehingga lebih mudah dilihat dandipahami.
Namun demikian, flowchart juga memiliki kekurangan atau kelemahan, yaitu jikadigunakan
untuk menggambarkan proses atau algoritma untuk skala kasusyang besar, maka akan
dibutuhkan banyak tempat untuk membuatnya dan akan menghasilkan diagram yang
kompleks.

Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Sebutkan dan jelaskan bentuk-bentuk penyajian algoritma?


2) Sebutkan dan jelaskan tiga bagian utama algoritma dalam bentuk kalimat deskriptif?
3) Masing-masing bentuk algoritma memiliki kelebihan dan kekurangan, jelaskan?
Petunjuk Jawaban Latihan

◼ Teknologi Informasi Kesehatan III 49


Untuk membantu Anda dalam mengerjakan soal latihan tersebut silahkan pelajari
kembali materi tentang macam-macam bentuk penyajian algoritma, kelebihan dan
kekurangan bentuk-bentuk algoritma.

Ringkasan

1. Terdapat tiga bentuk yang umum digunakan dalam menuliskan algoritma yaitu:
kalimat deskriptif, pseudocode, dan flowchart.
2. Algoritma dengan kalimat deskriptif disusun oleh tiga bagian utama yaitu: Bagian
judul (header), Bagian deklarasi (kamus), dan Bagian deskripsi.
3. Kelebihan dari algoritma dalam bentuk kalimat deskriptif adalah lebih sederhana
dalam pembuatannya dan mudah dipahami oleh orang awam, sedangkan
kekurangannya untuk permasalahan yang lebih komplek dan rumit, akan lebih sulit dan
seringkali terjadi ambigu dalam langlah-langkah penyelesaian masalah.
4. Pseudocodememiliki kelebihan struktur yang jauh lebih ringkas dan masih mudah
untuk dimengerti oleh manusia, serta memiliki struktur yang hampir mirip dengan
bahasa pemrograman. Kekuranganya bagi kaum awam, pseudocode akan terlihat
seperti sebuah source code bahasa pemrograman tertentu dan terkesan rumit dan
susah dipelajari jika tidak ditulis dengan rapi.
5. Kelebihanflowchart adalah penggunaan diagramuntuk menggambarkan tahapan
proses, sehingga lebih mudah dilihat dandipahami. Kekurangannya jikadigunakan
untuk menggambarkan algoritma untuk skala kasusyang besar, maka akan dibutuhkan
banyak tempat dan akan menghasilkan diagram yang kompleks.

Tes 1
Pilihlah salah satu jawaban yang paling benar!

50
1) Berikut ini merupakan bentuk-bentuk umum penyajian algoritma yang tepat adalah .

A. Deskriptif, Source code, dan Flowchart
B. Deskriptif, Flowchart dan Pseudocode
C. Flowchart, Deklarasi, dan Pseudocode
D. Bagian deskripsi, Pseudocode, dan Flowchart

2) Penyajian algoritma dalam kalimat deskriptif memiliki tiga bagian utama yaitu .…
A. Deskripsi, Deklarasi, Judul
B. Judul, Deskripsi, Source code
C. Judul, Deklarasi, Deskripsi
D. Judul, Deklarasi, Flowchart

3) Berikut ini definisi pseudecode yang tepat adalah .…


A. Penulisan algoritma yang lebih ringkas dari kalimat deskriptif
B. Penulisan algoritma yang menggunakan souce code bahasa pemrograman tingkat
tinggi
C. Penulisan algoritma yang dengan kode semu
D. Penulisan algoritma yang menyerupai bahasa pemrogramantingkattinggi
4) Keuntungan dari penggunaan Flowchart adalah .…
A. Algoritma yang ringkas dan menyerupai bahasa pemrograman
B. Algoritma menggunakan diagramsehingga lebih mudah dilihat dandipahami
C. Algoritma menggunakan diagramsehingga dapat digunakan dalam kasus yang
kompleks
D. Algoritma lebih ringkas dan mudah dipahami oleh manusia

5) Penyajian algoritma yang sering menimbulkan ambigu untuk kasus yang rumit
adalah .…
A. Deskriptif
B. Pseudocode
C. Flowchart
D. Deklarasi

Topik 2 Tipe Data


A. JENIS TIPE DATA

◼ Teknologi Informasi Kesehatan III 51


Data merupakan bentuk jamak dari bahasa Latin dengan kata datum, yang berarti fakta
atau sesuatu yang diberikan. Data adalah kelompok simbol-simbol yang teratur dan mewakili
kuantitas, tindakan, benda dan sebagainya. Dalam istilah umum data mewakili angka,
karakter dan simbol-simbol lain yang berfungsi sebagai masukan untuk proses komputer.
Data bisa berujut suatu keadaan, gambar, suara, huruf, angka, matematika, bahasa ataupun
simbolsimbol lainnya yang bisa kita gunakan sebagai bahan untuk melihat lingkungan, obyek,
kejadian ataupun suatu konsep.
Data belum mempunyai arti apabila tidak diolah. Data yang telah diolah menjadi
sebuah bentuk yang berarti disebut informasi. Data yang mewakili simbol-simbol bukan
merupakan informasi kecuali dalam pengertian tertentu. Pada komputer data disimpan
dalam memori sebelum dan sesudah pemrosesan oleh mikroprosesor. Jenis data dalam
setiap bahasa pemrograman belum tentu sama, namun sebagian besar biasanya terbagi
menjadi tiga, yaitu:
1. Data Numeric atau bilangan, yaitujenis data yang digunakan dalam proses aritmatika
atau proses matematis lainnya.
2. Data String, yaitu jenis data yang dapat terdiri dari berbagai macam karakter.
Digunakan untuk proses yang non matematis.
3. Data Logika, yaitu data yang hanya terdiri dari dua satuan, yaitu benar (true) dan
salah (false). Digunakan dalam suatu proses logika yang terdiri dari persamaan
boolean.

Setiap data memiliki tipe data, apakah merupakan angka bulat, angka pecahan, atau
berupa karakter, dan sebagainya. Jadi, tipe data adalah pengelompokan data berdasarkan isi
dan sifatnya. Dalam bidang informatika tipe data adalah jenis data yang dapat diolah oleh
komputer untuk memenuhi kebutuhan dalam pemrogramankomputer.
Setiap variabel atau konstanta yang ada dalam kode program, sebaiknya kita tentukan
dengan pasti tipe datanya. Ketepatan pemilihan tipedata 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. Ada banyak tipe data yang
tersedia, tergantung jenis bahasa pemrograman yang dipakai. Secara garis besar tipe data
dapat dikategorikan menjadi tiga macam yaitu tipe data dasar (primitive data type), tipe data
bentukan (composite data type) dan tipe data abstrak (abstract data type).
1. Tipe Data Dasar
Tipe data dasar atau tipe data sederhana atau biasajuga disebut dengan tipe data
primitif adalah tipe data yang sudah ada dan dijadikan standar dalam bahasa pemrograman
tertentu. Isi dari tipe data sederhana ini adalah data-data tunggal. Tipe data dasar sudah
disediakanoleh program sehingga programmer bisa langsung memakai. Tipe data dasar
antara lain:

52
a. Integer (bilangan bulat)
Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan
merupakan bilangan pecahan.

b. Float atau double (bilangan Real)


Bilangan real adalah bilangan yang mengandung pecahan desimal. Contoh: 3.45, 6,233.

c. Char (karakter)
Karakter adalah semua huruf yang ada di dalam alfabet, tanda baca maupun
karakterspesial. Karakter ditulis diantara dua tanda petik tunggal. Contoh: 'A'.

d. Boolean (logika)
Boolean adalah tipe data logika yang terdiri dari dua pernyataan benar atau salah.
Pernyataan benar biasanya ditulis True atau angka 1, sedangkan pernyataan salah ditulis
dengan False atau angka 0. Sedangkan operasi aritmatika yang umum digunakan adalah or,
not, and dan xor.

2. Tipe Data Bentukan


Tipe data bentukan atau tipe data komposit adalah tipe data yang dibentuk dari tipe
data dasar dengan maksud mempermudah pekerjaan programer. Yang masuk dalam tipe
data bentukan adalah array, string, record, union, struct, dan lain-lain. Tujuan dibuatnya tipe
data bentukan adalah:
a. Mempermudah proses pemrograman
b. Mempermudah dalam penambahan variabel
c. Mempermudah pengelompokan data sehingga lebih teratur

3. Tipe data abstrak


Tipe data abstrak atau yang dikenal sebagai Abstract Data Type adalah model
matematika dari obyek data yang menyempurnakan tipedata dengan cara mengaitkannya
dengan fungsi-fungsi yang beroperasi pada data yangbersangkutan. Tipe data abstrak adalah
tipe data yang didefinisikan sendiri oleh pemrogram untuk suatu keperluan tertentu yang
tidak memungkinkan untuk mendeklarasikan dari tipe data yang sudah ada. Contoh tipe data
abstrak adalah stack, queue, list, tree, graph, danlain-lain.
Harus dibedakan antara pengertian struktur data dantipe data abstrak. Struktur
datahanya memperlihatkan bagaimana data-data di organisir, sedangkan tipe data abstrak
mengemas struktur data tertentu sekaligus dengan operasi-operasi yang dapat dilakukan
pada struktur data tersebut. Dengan demikian, definisi umum tentang tipe data abstrak
dapat dipahami bahwa tipe data abstrak adalah struktur data yang mengandung operasi-
operasi atau aturan-aturan tertentu.

◼ Teknologi Informasi Kesehatan III 53


Berikut ini penjelasan beberapa jenis tipe data bentukan dan tipe data abstrak :
1. Array
Array adalah suatu alokasi beberapa tempat di memori yang tersimpan secara
berurutan yang digunakan untuk menyimpan beberapa nilai dengan tipe data yang
homogen. Ukuran atau jumlah elemen maksimum array telah diketahui dari awal yaitu
ketika array dibuat. Sekali ukuran array ditentukan maka tidak dapat diubah. Ukuran
arrayadalah bilangan bulat positif. Array harus diberi nama sebagai identifikasi. Cara
mengaksesnya adalah dengan menyebutkan nama array dan indeksnya.Indeks array dimulai
dari 0 sampai dengan n-1 (n adalah ukuran array). Ilustrasi array dapat dilihat pada Gambar
2.14 berikut ini:

Gambar 2.14 Ilustrasi Array

Operasi terhadap elemen array dilakukan dengan pengaksesan langsung. Artinya


nilaidi masing-masing posisi elemen dapat diambil dan nilai dapat disimpan tanpa melewati
posisiposisi lain. Dua operasi paling dasar terhadap satu elemen array adalah penyimpanan
nilai elemen ke posisi tertentu di array dan pengambilan nilai elemen dari posisi tertentu di
array. Biasanya bahasa pemrograman menyediakan sintaks tertentu untuk penyimpanan
dan pengambilan nilai elemen pada posisi tertentu di array. Contohnya:
a. Nilai Mhs[7] = 80, berarti menyimpan nilai 80 ke posisi ke-7 dari array NilaiMhs.
b. Nama = Mahasiswa [20], berarti mengambil nilai elemen posisi ke-20 dari array
Mahasiswa dan menyimpan nilai tersebut ke variabel yang bernama “Nama”.
Contoh cara mengakses elemen array yang lain dapat dilihat di Gambar 2.15. Contoh
penggunaan array dalam permasalahan sederhana adalah pengurutan 3 buah bilangan
seperti terlihat pada Gambar 2.16. Untuk mengurutkan tiga buah bilangan dibutuhkan
operasi perbandingan yang menghasilkan kondisi benar atau salah (> atau <).

54
Gambar 2.15 Cara mengakses elemen array

Gambar 2.16 Contoh penggunaan array

Array memiliki kelebihan dan kekurangan, kelebihan arrayadalah sebagai berikut:


a. Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat diacu
secara langsung tanpa melalui elemen-elemen lain.
b. Jika telah berada di suatu lokasi elemen, maka sangat mudah menelusuri ke
elemenelemen tetangga, baik elemen pendahulu atau elemen penerus.

◼ Teknologi Informasi Kesehatan III 55


Sedangkan untuk kekurangan array adalah sebagai berikut:
a. Array mempunyai fleksibilitas rendah, karena array mempunyai batasan harus bertipe
homogen. Tidak dapat mempunyai arrayjika satu elemen adalah karakter, elemen lain
bilangan, dan elemen lain adalah tipe-tipe lain.
b. Kebanyakan bahasa pemrograman mengimplementasikan array dengan ukuran statik
yang sulit diubah ukurannya di waktu eksekusi. Bilapenambahan dan pengurangan
terjadi terus-menerus, maka representasi statis inibersifat tidak efisien dalam
penggunaan memori.

Dalam bidang pemrograman, array dapat dibuat denganberbagai macam dimensi.


Semisal array dimensi satu akan mirip dengan pola linier seperti pada Gambar
2.14.Sedangkan array 2 dimensi akan tampak seperti tabelatau matrik. Cara mengaksesnya
adalah dengan menyebutkan nama matrik serta baris dan kolomnya. Sedangkan array 3
dimensi akan tampak seperti balok. Ilustrasi array 2 dan 3 dimensi dapat dilihat pada
Gambar 2.17 berikut ini:

Gambar 2.17 Ilustrasi array 2 dimensi dan array 3 dimensi

2. Stack
Secara bahasa, stack berarti tumpukan. Jika dikaitkan dengan struktur data, stack
berarti sekumpulan data yang strukturnya menyerupaitumpukan. Stack harus diberi nama
sebagai identifikasi. Konsep penyimpanan data pada stack menganut sistem "yang terakhir
masuk sebagai yang pertama keluar" (Last In First Out/ LIFO). Dengan konsep ini, urutan
pengambilan data akan berkebalikan dengan urutan penyimpanan data. Elemen yang
terakhir disimpan akan menjadi yang pertama kali diambil. Dengan konsep ini maka kita
tidak dapat mengambil data yang tersimpan dalam stack secara acak. Data dalam stack
harus disimpan dan diambil dari satu sisi atau satu pintu saja. Contoh dalam kehidupan
sehari-hari adalah tumpukan piring di sebuah restoran yang tumpukannyadapat ditambah
pada bagian paling atas dan jika mengambilnya pun dari bagian paling atas pula.
Cara mengakses stack adalah dengan melakukan operasi dasar pada stack yaitu
operasi pushdan pop. Dimisalkan pintu keluar masuknya data pada stack disebut dengan TOP
sebagaimana dilihat pada Gambar 2.18. Operasi push adalah proses memasukkan data baru

56
ke stack melalui pintu TOP sehingga data terbaru akan terletak pada posisi teratas. Operasi
pop adalah proses mengeluarkan atau mengambil data dari stack dan data yang diambil
adalah data yang terletak di posisi teratas. Dengan konsep LIFO maka ketika operasi push
dilakukan maka informasi yang diperlukan hanyalah isi atau nilai atau elemen yang akan
disimpan atau diambil saja. Operasi push dan pop tidak memerlukan informasi posisi data.
Sebagai ilustrasi, stack dapat dilihat seperti pada Gambar 2.18, tampak bahwa stack tersebut
bernama S.

Gambar 2.18 Ilustrasi Stack

Bagian Top pada stack merupakan pintu untuk keluar masuknya data–data stack. A, B,
dan C merupakan suatu koleksi. Dari ilustrasi dapat diketahui bahwa C merupakan data yang
terakhir memasuki stack namun pertama keluar dari stack. Begitu sebaliknya dengan A,A
merupakan data pertama yang memasuki tumpukan namun terakhir saat keluar dari
tumpukan. Di dalam gambar juga terlihat urutan masuk dan keluar yang berkebalikan. Data
yang masuk pertama akan keluar terakhir dan sebaliknya.

3. Queue
Secara bahasa queue adalah antrian. Queue adalah suatu kumpulan data dengan
operasi pemasukan atau penyimpanan data hanya diperbolehkan pada salah satu sisi, yang
disebut sisi belakang (rear) dan operasi pengambilan atau penghapusan hanya
diperbolehkan pada sisi lainnya yang disebut sisi depan (front). Konsep ini dikenal dengan
istilah First In First Out (FIFO). Ilustrasi queue dapat dilihat pada Gambar 2.19 berikut ini :

◼ Teknologi Informasi Kesehatan III 57


Gambar 2.19 Ilustrasi queue

Jenis struktur data queue sering digunakan untuk menstimulasikan keadaan dunia
nyata. Antrian banyak dijumpai dalam kehidupan sehari-hari. Contoh yang paling populer
untuk membayangkan sebuah queue adalah antrian padakasir sebuah bank. Ketika seorang
pelanggan datang, akan menuju ke belakang dari antrian. Setelah pelanggan dilayani, antrian
yang berada di depan akan maju. Pada saat menempatkan data pada ujung (rear)dari queue
disebut dengan enqueue, pada saat memindahkan elemen dari kepala (front) sebuah
queuedisebut dengan dequeue. Sama dengan stack, dengan konsep FIFO maka ketikaoperasi
enqueue dilakukan maka informasi yang diperlukan hanyalah isi atau nilai atau elemen yang
akan disimpan atau diambil saja. Operasi enqueue dan dequeue tidak membutuhkan
informasi posisi data. Dari ilustrasi di Gambar 2.19 dapat diketahui bahwa C merupakan data
yang terakhir memasuki queue Q dan akan menjadi yang paling akhirkeluar dari queue.
Begitu sebaliknya dengan A, A merupakan data pertama yang memasuki queue dan akan
menjadi yang pertama saat keluar dari queue.

4. Tree
Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan
hubungan yang bersifat hirarki (hubungan one to many) antara elemen-elemen. Bentuk tree
menyerupai sebuah pohon, yang terdiri dari serangkaian node (simpul) yang saling
berhubungan. Node-node tersebut dihubungkan oleh sebuah vektor. Sehingga tree bisa
didefinisikan sebagai kumpulan simpul atau node dengan elemen khusus yang disebut root
atau akar. Ilustrasi tree dapat dilihat di Gambar 2.20. Contoh data yang dapat
direpresentasikan dengan menggunakan tree adalah silsilah keluarga, hasil pertandingan
yang berbentuk turnamen, atau struktur organisasi dari sebuah perusahaan.

58
Gambar 2.20 Ilustrasi Tree

Dalam pemrograman, sebuah tree terdiri dari elemen-elemen yang dinamakan node
(simpul) yang mana hubungan antar simpul bersifat hirarki. Contoh node pada Gambar 3.20
adalah node A, node B, node C dan seterusnya sampaidengan node K. Jadi Gambar 3.20
memiliki node sebanyak 11 node. Node yang paling atas dari hirarki dinamakan root, yaitu
node A. Simpul yang berada di bawah root secara langsung, dinamakan anak dari root, yang
mana biasanya juga mempunyai anak di bawahnya. Sehingga bisa disimpulkan, kecuali
root,masing-masing simpul dalam hirarki mempunyai satu induk (parent). Jumlah anak
sebuah simpul induk sangat bergantung pada jenis dari pohon.
Setiap node dapat memiliki 0 atau lebih node anak (child). Sebuah node yang memiliki
node anak disebut node induk (parent). Sebuah node anak hanya memiliki satu node induk.
Sesuai konvensi ilmu komputer, tree bertumbuh ke bawah, tidak seperti pohon di dunia
nyata yang tumbuh ke atas. Dengan demikian node anak akan digambarkan berada di bawah
node induknya. Node yang berada di pangkal tree disebut node root (akar), sedangkan node
yang berada paling ujung tree disebut node leaf (daun).

5. Graph
Dalam bidang matematika dan ilmu komputer, graph adalah struktur yang
menggambarkan relasi antar obyek dari sebuah koleksi obyek. Jika struktur linear; misalnya
array; memungkinkan pendefinisian keterhubungan sekuensial antara entitas data, struktur
data tree memungkinkan pendefinisian keterhubunganhirarkis, maka struktur graph
memungkinkan pendefinisian keterhubungan tak terbatas antara entitas data.
Banyak obyek dalam masalah-masalah nyata secara alamiah memiliki keterhubungan
langsung secara tak terbatas. Contohnya informasi topologi dan jarak antar kota-kota di
suatu pulau. Dalam masalah ini kota x bisa berhubungan langsung dengan hanya satu atau
lima kota lainnya. Untuk memeriksa keterhubungan dan jarak tidak langsung antara dua kota
◼ Teknologi Informasi Kesehatan III 59
dapat diperoleh berdasarkan data keterhubungan langsung dari kota-kota lainnya yang
memperantarainya. Contoh lain penggunaan graph adalah untuk menggambarkan jaringan
dan jalur kereta api, lintasan pesawat, sistem permipaan, saluran telepon, koneksi elektrik,
ketergantungan diantara taskpada sistem manufaktur dan lain-lain. Terdapat banyak hasil
dan struktur penting yang didapatkan dari perhitungan dengan graph.
Definisi dari suatu graph adalah himpunan obyek-obyek yang disebut node (atau
vertek) yang terhubung oleh edge. Biasanya graph digambarkan secara grafis sebagai
kumpulan lingkaran yang melambangkan node yang dihubungkan oleh garis yang
melambangkan edge. Edge dalam suatu graph bisa berupa edge berarah atau tidak berarah.
Ilustrasi graph dapat dilihat pada Gambar 2.21. Pada gambar tersebut terlihat bahwa graph
memiliki 5 buah node. Pada ilustrasi ini dimisalkan node mewakili sebuah kota. Maka
dapatdilihat bahwa dari kota A menuju kota E bisa dilalui melalui path A-B-E atau path A-C-
D-E.

Gambar 2.21 Ilustrasi graph

B. VARIABEL DAN KONSTANTA

Variabel dan konstanta adalah suatu pengenal (identifier) yang digunakan untuk
mewakili suatu nilai tertentu didalam proses program. Berbeda dengan konstanta yang
nilainya tidak bisa diubah atau selalu tetap selama eksekusi berlangsung, nilai dari suatu
variabel dapat berubah sesuai kebutuhan. Konstanta dan variabel merupakan tempat di
memori komputer untuk menyimpan data berupa nilai dengan tipe data tertentu. Konstanta
dan variabel harus diberi nama sebagai identifikasi.
Secara logika dapat dibayangkan sebuah konstanta atau variabel sebagai sebuah kotak
kosong yang dapat diisi dengan sesuatu tipe data tertentu, misal kita membuat sebuah
variabel berupa bilangan bulat, maka dalam logika, kita sedang membuat kotak kosong yang
hanya dapat diisi dengan kertas bertuliskan bilangan bulat, tidak boleh jenis bilangan selain
bilangan bulat. Ilustrasi logika ini dapat dilihat pada Gambar 3.22. Pada Gambar
3.22dimisalkan membuat dua buah konstanta atau variable dengan nama identifiernilaidan
Xyang masing-masing dapat digunakan untuk menyimpan suatu nilai dalam memori sesuai
dengan tipe data yang telah ditentukan.

60
Gambar 2.22 Ilustrasi pembuatan variabel atau konstanta

Semisal nilaidi Gambar 2.22 adalah sebuah variabel. Maka variabel nilai yang telah
dibuat ini selanjutnya dapat digunakan dalam program, semisal dilakukan operasi aritmatika
berupa operasi pembagian (/) atau modulo (%). Gambar 2.23 menunjukkan ilustrasi operasi
yang terjadi pada variabel nilai. Dalam hal ini variabel nilai dibagi dengan angka 2, dan hasil
operasi pembagian disimpan dalam variabel baru yangbernama hasilbagi. Operasi aritmatika
lain yang terjadi pada Gambar 2.23 adalah variabel nilai dimodulo dengan angka 2 dan
hasilnya disimpan dalam variabel baru yang bernama sisabagi. Operasi pada suatu konstanta
atau variabel tidak hanya terbatas pada operasi aritmatika saja, tetapi juga dapat berupa
operasi perbandingan. Misalnya nilai apakah lebih besar dari angka 10 (nilai>10) dan lain-
lain. Contoh penggunaan variabel nilai dalam permasalahan sederhana adalah penentuan
suatu bilangan termasuk dalam kategori ganjil atau genap seperti terlihat pada Gambar 2.24.

Gambar 2.23 Ilustrasi penggunaan variabel

◼ Teknologi Informasi Kesehatan III 61


Gambar 2.24 Contoh penggunaan variabel

Berikut ini pembahasan variabel dan konstanta dalam bahasa pemrograman:


1. Variabel
Variabel dapat disebut juga sebagai peubah adalah obyek yang nilainya dapat
berubahubahdalam sebuah program. Pada saat sebuah variabel dideklarasikan,
program‘memesan’ tempat dengan ukuran tertentu (sesuai tipe datanya) pada memoriuntuk
menyimpan nilai dari variabel tersebut. Pemrogram dapat memberikannama pada sebuah
variabel untuk mempermudah pemanggilan variable tersebut di dalam program. Pada saat
mendeklarasikan sebuah variabel, pemrogram harus menyebutkan nama variabel dan tipe
data dari variabel tersebut. Gambar 2.25 berikut ini adalah contoh pembuatan variabel atau
deklarasi variabel dalam bentuk pseudocode.

Gambar 2.25 Deklarasi variabel dalam pseudocode

Pseudocode pada gambar 2.25 tersebut dapat ditulis dalam bahasa C seperti pada
Gambar 2.26 berikut ini:

62
Gambar 2.26 Deklarasi variabel dalam bahasa C

Secara teori, pemrogram dapat memberikan nama apapun pada sebuahvariabel


karena penamaan variabel bertujuan untuk memudahkan pemanggilankembali. Namun, ada
beberapa panduan yang biasa diacu pemrogram dalampenamaan variabel, antara lain: a.
Huruf pertama pada nama variabel menunjukkan tipe data dari variabel.
Contoh: diawali dengan ‘c’ untuk variabel char, ‘i’ untuk integer, ‘s’untuk string, dan
seterusnya. Panduan penamaan ini disebut denganCharles Simyoni Hungarion
Notation.
b. Nama variabel harus cukup jelas menunjukkan tujuan penggunaanvariabel tersebut.
Contoh: sNama adalah variabel string untuk menyimpan nama, cJenis Kelamin adalah
variabel char untuk menyimpan jenis kelamin, bStatus adalah variabel boolean untuk
menyimpan status.
c. Nama variabel tidak boleh mengandung spasi kosong atau karakter khusus ! @ # $ %
^ & * ( ) { } [ ] ’ ” ; : <> , . / ? | dan \. Beberapapemrogram menggunakan ‘_’ untuk
memisahkan kata di nama variabel.
Contoh: cJenis_kelamin, sNama_orang_tua, iNilai_akhir
d. Cara lain untuk memisahkan kata dalam nama variabel adalah denganmemberikan
huruf besar di awal tiap kata.
Contoh: cJenisKelamin, sNamaOrangTua, iNilaiAkhir

Setelah sebuah variabel dideklarasikan, variabel dapat menyimpan nilai.Pengisian nilai


ke dalam sebuah variabel dalam sebuah program dapatdilakukan dengan 2 cara, yaitu: a.
Secara langsung
Contoh:
cJenisKelamin = ‘P’
sNamaOrangTua = ‘Jeremy
Thomas’ iNilaiAkhir = 99

◼ Teknologi Informasi Kesehatan III 63


b. Dengan inputan
Contoh:
Input (cJenisKelamin)
Input (sNamaOrangTua)
Input (iNilaiAkhir)

Penggunaan kedua cara pengisian nilai variabel ini akan diperjelas dalam
flowchartyang ditunjukkan pada Gambar 2.27 berikut ini:

Gambar 2.27 Pengisian Variabel dalam Flowchart.

Untuk memperjelas pengisian nilai variabel dalam bahasa pemrograman, Gambar 2.28
berikut ini contoh memberikan nilai pada variabel dalam bahasa C:

Gambar 2.28 Contoh memberikan nilai pada variabel

Pada contoh program diatas, kita melihat ada tanda “%i” dan “%s”.Fungsi tanda
tersebut adalah untuk menkonversi nilai inputan menjadi tipeyang sesuai dengan yang
diterima atau mengubah nilai dari tipe data dasarmenjadi tipe karakter untuk ditampilkan
dilayar. Karena pada dasarnya, dalampemprograman bahasaC atau C++ nilai input atau nilai
yang dapat ditampilkanberupa karakter. Sedangkan didalam program, nilai tersebut harus
sesuaidengan tipe data yang dideklarasikan. Sebagai contoh pada baris ke-10,variabel “1B”

64
tipe datanya adalah integer. Untuk mengubah tipe masukanmenjadi integer, maka
digunakan “%i”. Biasanya, string tersebut diawalidengan huruf pertama tipe datanya,
misalnya float -> %f, String ->%s dan seterusnya. Khusus untuk inputan, nama variabelnya
harus diawalidengan string “&” seperti tampak pada baris ke 9 dan 10.

2. Konstanta
Pada variabel, nilai yang disimpan dapat berubah-ubah selama programdijalankan.
Sedangkan pada pada konstanta, nilai yang disimpan tetap dan tidakdapat diubah sejak
dideklarasikan hingga program berakhir. Setelah sebuah konstanta dideklarasikan, konstanta
dapat digunakandalam program dan nilainya selalu tetap. Deklarasi konstanta dalam
flowchartdigambarkan sebagai sebuah proses. Misalnya seperti gambar 2.29 berikut ini :

Gambar 2.29 Deklarasi konstanta dalam Flowchart

Cara penulisan konstanta didalam program menggunakan aturan penulisan


masingmasing bahasa pemrograman yang digunakan, sebagai contoh dalam bahasa C di tulis
dengan diawalidengan tanda crash (#) kemudian diikuti dengan define, selanjutnya
namakonstantanya dan selanjutnya nilainya dan ditulis diluar program utama
setelahpendeklarasian library namespace. Contoh penulisannya adalah sebagai berikut:

Gambar 2.30 Deklarasi konstanta dalam program

Dalam mengoperasikan tipe data, variabel dan konstanta pada program tertentu
diperlukan operator. Operator adalah pengendali operasi yang akan dilakukan padabeberapa
operan sehingga membentuk sebuah ekspresi. Secara umum, dalamsebuah ekspresi
terdapat sebuah operator yang diapit dua operan. Contohnyapada ekspresi:

◼ Teknologi Informasi Kesehatan III 65


x + y x dan y adalah operan,
sedangkan
‘+’ adalah operatornya

Terdapat lima macam operator yang biasa digunakan dalampemrograman, yaitu:


a. Operator aritmatik
Operator ini membentuk perhitungan aritmatik. Kedua operan darioperasi aritmatik ini
dapat berupa nilai integer atau real.Operator yang termasuk tipe ini adalah seperti tabel 2.3
berikut ini:
Tabel 2.3 Operator aritmatik

Output dari operasi aritmatik akan memiliki tipe data yang samadengan tipe data
kedua operannya. Misalnya, jika sebuah bilanganinteger dijumlahkan dengan bilangan
integer lainnya maka outputnyaadalah bilangan integer juga. Selain itu perlu diperhatikan
pula bahwasebuah operator aritmatik tidak dapat diterapkan pada dua bilangandengan tipe
data yang berbeda. Berikut ini contoh program dengan operator aritmarik:

Gambar 2.31 Contoh program dengan operator aritmatik

66
Program di atas akan mengembalikan nilai hasil penjumlahan sesuaidengan inputan.
Misalnya pada inputan pertama dimasukan 10 danyang kedua dimasukan 23 maka hasilnya
adalah 33. Outputnya adalah:

Gambar 2.32 Output program dengan operator aritmatik

b. Operator Assignment
Dalam pemprograman bahasa C++, Operator ini digunakanmemasukan nilai kedalam
sebuah variabel, tanpa menghilangkan ataumengosongkan nilai variabel sebelumnya.
Contoh penggunaan operatorini adalah seperti tabel 2.4 berikut ini :

Tabel 2.4 Oparator Assignment

c. Increase and decrease


Penulisan ini dilambangkan dengan ++ (Increase) dan -- (decrease).Operator ini
berfungsi untuk menaikan atau menurunkan satu satuan nilai pada sebuah variabel. Contoh
penggunaannya pada Gambar 2.33 berikut ini:

Gambar 2.33 Contoh penggunaan operator increase


◼ Teknologi Informasi Kesehatan III 67
Ada dua macam penulisan operator ini, yaitu simbol dapat ditulisebelum nama variabel
dan setelah variabel. Adapun perbedaan antarakeduanya ditunjukan pada pada gambar 2.34
berikut ini:

Gambar 2.34 Cara penulisan operatorIncrease and decrease

d. Operator relasional
Operator ini membandingkan dua operan dan hasilnya berupa nilaiboolean (BENAR
atau SALAH). Operasi relasional dapat dilakukanpada dua nilai dengan tipe data yang sama:
tipe data integer, riil, char, string, maupun boolean. Berikut ini adalah operator relasional:

Tabel 2.5 Operator relasional

Contoh penggunaan operator relasional dalam algoritmapseudocode sebagai berikut:

68
Gambar 2.35 Contoh operator relasional dalam algoritma

e. Operator logika
Operator logika adalah operator yang digunakan untukmengkombinasikan hasil
ekspresi yang mengandung operatorrelasional.Tiga macam operator logika adalah:

Tabel 2.6 Operator logika

Pola penggunaan operator logika adalah:


ekspresi1 OPERATOR ekspresi2
Output dari penggunaan operator AND dan OR adalah sebagaiberikut:

Tabel 2.7 Output penggunaan operator AND dan OR

Pola yang mudah untuk mengingat output kedua operator logikatersebut adalah:
TrueAND True = True, False OR False = False.
Beberapa contoh penggunaan operator logika:
1) (x > 7) && (x = y)
Jika ternyata nilai x adalah 8 dan y adalah 5, maka
(8 > 7) && (8 = 5)
True AND False
False (output operasi)
2) (x != y) || (x > 3)
Jika ternyata nilai x adalah 4 dan y adalah 4, maka
(4 != 4) || (4 > 3)
False OR True
True (output operasi)
3) NOT (x > y)

◼ Teknologi Informasi Kesehatan III 69


Jika ternyata nilai x adalah 3 dan y adalah 3, maka
NOT (3 > 3)
NOT (False)
True (output operasi)

Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Jelaskan pengertian Data ?


2) Secara garis besar tipe data dapat dikategorikan menjadi tiga macam, jelaskan ?
3) Sebutkan dan jelaskan apa saja yang termasuk dalam tipe data dasar ?
4) Salah satu tipe data bentukan adalah Array, jelaskan kelebihan dan kekurangan tipe
data Array?
5) Jelaskan perbedaan Stack dan Queue?
6) Jelaskan apa yang dimaksud variabel dan konstanta ?
7) Sebutkan dan jelaskan jenis-jenis operator?

Petunjuk Jawaban Latihan

Untuk membantu Anda dalam mengerjakan soal latihan tersebut silakan pelajari
kembali materi tentang jenis tipe data, variabel dan operator.

Ringkasan

1. Data adalah kelompok simbol-simbol yang teratur dan mewakili kuantitas, tindakan,
benda dan sebagainya.
2. Jenis data dalam setiap bahasa pemrograman belum tentu sama, sebagian besar
biasanya terbagi menjadi tiga, yaitu: data numeric, data string, dandata Logika
3. Secara garis besar tipe data dapat dikategorikan menjadi tiga macam yaitu tipe data
dasar (primitive data type), tipe data bentukan (composite data type) dan tipe data
abstrak (abstract data type).
4. Variabel dan konstanta adalah suatu pengenal (identifier) yang digunakan untuk
mewakili suatu nilai tertentu didalam proses program.
5. Perbedaan variabel dan konstanta adalah konstanta nilainya tidak bisa diubah atau
selalu tetap selama eksekusi berlangsung, sedangkan nilai dari suatu variabel dapat
berubah sesuai kebutuhan.
70
6. Operator adalah pengendali operasi yang akan dilakukan padabeberapa operan
sehingga membentuk sebuah ekspresi.
7. Terdapat lima macam operator yang biasa digunakan dalampemrograman, yaitu:
operator aritmatik, operator assignment, increase and decrease, operator relasional,
dan operator logika.

Tes 2
Pilihlah salah satu jawaban yang paling benar!

1) Kelompok simbol-simbol yang teratur dan mewakili kuantitas, tindakan, benda dan
sebaganya disebut .…
A. Data
B. Tipe data
C. Data dasar
D. Data logika

2) Secara garis besar tipe data dapat dikategorikan menjadi tiga macam yaitu ....
A. primitive data type, composite data type, data logika
B. primitive data type, composite data type, abstract data type
C. data numeric, data string, data Logika
D. primitive data type, data string, composite data type

3) Berikut ini pernyataan yang tepat mengenai varibel dan konstanta adalah .…
A. Variabel nilainya selalu tetap
B. Konstanta nilainya berubah-ubah
C. Konstanta nilainya dapat bertambah
D. Variabel nilainya dapat berubah-ubah

◼ Teknologi Informasi Kesehatan III 71


4) Ada beberapa panduan yang biasa diacu oleh programmer dalampenamaan variabel,
berikut ini panduan yang tidak boleh dipakai oleh programmer adalah .…
A. Huruf pertama pada nama variabel menunjukkan tipe data dari variabel.
B. Nama variabel harus cukup jelas menunjukkan tujuan penggunaanvariabel
tersebut.
C. Cara lain untuk memisahkan kata dalam nama variabel adalah
denganmemberikan huruf besar di awal tiap kata.
D. Nama variabel boleh mengandung spasi kosong atau karakter khusus ! @ # $ % ^
& * ( ) { } [ ] ’ ” ; : <> , . / ? | dan \.

5) Operator yangmembandingkan dua operan dan hasilnya berupa nilai Boolean adalah .

A. Operator logika
B. Operator aritmatik
C. Operator relasional
D. operator assignment

72
Kunci Jawaban Tes
Tes 1
1) B
2) C
3) D
4) B
5) A

Tes 2
1) A
2) B
3) D
4) D
5) C

◼ Teknologi Informasi Kesehatan III 73


Glosarium
Abstract data type : model matematika dari obyek data yang menyempurnakan tipedata
dengan cara mengaitkannya dengan fungsi-fungsi yang beroperasi
pada data yangbersangkutan.
Composite data type : tipe data bentukan atau tipe data komposit adalah tipe data yang
dibentuk dari tipe data dasar dengan maksud mempermudah
pekerjaan programmer.
Flowchart : suatu bagan dengan simbol-simbol tertentu yang menggambarkan
urutan proses secara mendetail dan hubungan antara suatu proses
(instruksi) dengan proses lainnya dalam suatu program.
Primitive data type : tipe data dasar atau tipe data sederhana atau biasajuga disebut dengan
tipe data primitif adalah tipe data yang sudah ada dan dijadikan
standar dalam bahasa pemrograman tertentu.

74
Daftar Pustaka
Ananda, D., A. Suryan, P. Mayadewi, L. Rasiana dan H. Kusmayadi. 2009. Algoritma dan
Pemrograman. Politeknik Telkom Bandung.

Barakbah, A.R; T. Karlita dan A.S. Ahsan. 2013. Logika dan Algoritma. Politeknik Elektronika
Negeri Surabaya.

Munir, R. 2007. Algoritma dan Pemrograman Dalam Bahasa Pascal dan C. Informatika.

Suprapto. 2008. Bahasa Pemrograman untuk Sekolah Menengah Kejuruan. Departemen


Pendidikan Nasional.

◼ Teknologi Informasi Kesehatan III 75


Bab 3
ALGORITMA DALAM BENTUK FLOWCHART
Tominanto, S.Kom.,M.Cs

Pendahuluan

F (flow) di dalam suatu program secara logika. Flowchart merupakan alat yang banyak
lowchart atau bagan alir adalah skema atau bagan (chart) yang menunjukkan aliran
digunakan untuk menggambarkan algoritma dalam bentuk notasi-notasi tertentu.
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar
proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian
setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan
dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan untuk
melakukan pengecekan bagian-bagian yang terlupakan dalam analisis suatu permasalahan.
Di samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara
pemrogram yang bekerja dalam tim pada suatu proyek.
Dalam membuat algoritma, diperlukan suatu mekanisme atau alat bantu untuk
menuangkan hasil pemikiran mengenai langkah-langkah penyelesaian masalah yang

76
sistematis dan terurut. Pada dasarnya untuk bisa menyusun solusi diperlukan kemampuan
problem-solving yang baik. Oleh karena itu, sebagai sarana untuk melatih kemampuan
tersebut terdapat sebuah tool (alat) yang dapat digunakan, yaitu flowchart. Secara formal,
flowchart juga didefinisikan sebagai skema penggambaran dari algoritma atau proses.
Modul pembelajaran ini membahas tentang bentuk penyajian algoritma dalam bentuk
flowchart. Setelah menyelesaikan modul pembelajaran ini, diharapkan mahasiswa mampu
memahami penyajian algoritma dalam bentuk flowchart mulai dari pengantar tentang
flowchart sampai dengan membuat algoritma dalam bentuk flowchart secara benar sehingga
sehingga dapat digunakan sebagai dasar untuk melanjutkan topik dan bab selanjutnya.

Topik 1 Pengantar Flowchart


A. DEFINISI FLOWCHART

Flowchart adalah cara penulisan algoritma dengan menggunakan notasi grafis.


Flowchart merupakan gambar atau bagan yang memperlihatkan urutan atau langkah-
langkah dari suatu program dan hubungan antar proses beserta pernyataannya. Gambaran
ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses
tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan
menggunakan flowchart akan memudahkan untuk melakukan pengecekan bagian-bagian
yang terlupakan dalam analisis masalah. Disamping itu flowchart juga berguna sebagai
fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.
Flowchart dapat membantu analis dan programmer untuk memecahkan masalah kedalam
segmen-segmen yang lebih kecil dan membantu dalam menganalisis alternatif-alternatif lain
dalam pengoperasian.
Flowchart didefinisikan juga sebagai bagan-bagan yang mempunyai arus yang
menggambarkan langkah-langkah penyelesaian suatu masalah. Flowchart dapat juga
merupakan penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari
suatu program. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya
masalah yang perlu dipelajari dan dievaluasi lebih lanjut.
Tujuan utama dari penggunaan flowchart adalah untuk menggambarkan suatu tahapan
penyelesaian masalah secara sederhana, terurai, rapi dan jelas dengan menggunakan
simbolsimbol yang standar. Tahap penyelesaian masalah yang disajikan harus jelas,
sederhana, efektif dan tepat.
Dalam menggambar flowchart biasanya digunakan simbol-simbol standar, tetapi
pemrograman juga dapat membuat simbol-simbol sendiri apabila simbol-simbol yang telah
tersedia di rasa masih kurang. Dalam kasus ini pemrogram harus melengkapi gambar
◼ Teknologi Informasi Kesehatan III 77
flowchart tersebut dengan kamus simbol yang digunakannya, agar pemrogram lain dapat
mengetahui maksud dari simbol-simbol tersebut.
Pada waktu akan menggambar suatu bagan alir, analis sistem atau pemrogam dapat
mengikuti pedoman-pedoman untuk membuat flowchart sebagai berikut ini :
1. Bagan alir sebaiknya digambar dari atas ke bawah dan mulai dari bagian kiri dari suatu
halaman.
2. Kegiatan di dalam bagan alir harus ditunjukkan dengan jelas.
3. Harus ditunjukkan dari mana kegiatan akan dimulai dan dimana akan berakhirnya.
4. Masing-masing kegiatan di dalam bagan alir sebaiknya digunakan suatu kata yang
mewakili suatu pekerjaan, misalnya:
- "Persiapkan" dokumen
- "Hitung" gaji
5. Masing-masing kegiatan di dalam bagan alir harus didalam urutan yang semestinya.
6. Kegiatan yang terpotong dan akan disambung di tempat lain harus ditunjukkan
dengan jelas menggunakan simbol penghubung.
7. Gunakanlah simbol-simbol bagan alir yang standar.

B. JENIS-JENIS FLOWCHART

Berdasarkan fungsi dan symbol-simbol yang digunakannya flowchart terbagi atas lima
jenis, yaitu:
1. Flowchart Sistem (System Flowchart)
Flowchart sistem merupakan bagan yang menunjukkan alur kerja atau apa yang
sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari
prosedurprosedur yang ada di dalam sistem. Dengan kata lain, flowchart ini merupakan
deskripsi secara grafik dari urutan prosedur-prosedur yang terkombinasi yang membentuk
suatu sistem.
Flowchart sistem terdiri dari data yang mengalir melalui sistem dan proses yang
mentransformasikan data itu. Data dan proses dalam flowchart sistem dapat digambarkan
secara online (dihubungkan langsung dengan komputer) atau offline (tidak dihubungkan
langsung dengan komputer, misalnya mesin tik, cash register atau kalkulator). Contoh
sederhana untuk flowchart sistem dapat dilihat pada Gambar 3.1 berikut ini :

78
Gambar 3.1 Contoh flowchart sistem

2. Flowchart Paperwork / Flowchart Dokumen (Document Flowchart)


Flowchart paperwork menelusuri alur dari data yang ditulis melalui sistem. Flowchart
paperwork sering disebut juga dengan flowchart dokumen. Kegunaan utamanya adalah
untuk menelusuri alur form dan laporan sistem dari satu bagian ke bagian lain baik
bagaimana alur form dan laporan diproses, dicatat dan disimpan. Contoh flowchart
dokumen mengenai alur pembuatan kartu anggota untuk suatu perpustakaan dapat dilihat
pada Gambar 3.2 berikut ini:

◼ Teknologi Informasi Kesehatan III 79


Gambar 3.2 Flowchart dokumen pembuatan kartu anggota perpustakaan

3. Flowchart Skematik (Schematic Flowchart)


Flowchart skematik mirip dengan flowchart sistem yang menggambarkan suatu sistem
atau prosedur. Flowchart skematik ini bukan hanya menggunakan simbol-simbol flowchart
standar, tetapi juga menggunakan gambar-gambar komputer, peripheral, form-form atau
peralatan lain yang digunakan dalam sistem.
Flowchart skematik digunakan sebagai alat komunikasi antara analis sistem dengan
seseorang yang tidak familiar dengan simbol-simbol flowchart yang konvensional. Pemakaian
gambar sebagai ganti dari simbol-simbol flowchart akan menghemat waktu yang dibutuhkan
oleh seseorang untuk mempelajari simbol abstrak sebelum dapat mengerti flowchart.
Gambar-gambar ini mengurangi kemungkinan salah pengertian tentang sistem, hal ini
disebabkan oleh ketidak-mengertian tentang simbol-simbol yang digunakan. Gambar-
gambar juga memudahkan pengamat untuk mengerti segala sesuatu yang dimaksudkan oleh
analis, sehingga hasilnya lebih menyenangkan dan tanpa ada salah pengertian. Contoh
flowchart skematik ditunjukkan pada Gambar 3.3 berikut ini :

80
Gambar 3.3 Contoh flowchart skematik

4. Flowchart Program (Program Flowchart)


Flowchart program dihasilkan dari flowchart sistem. Flowchart program merupakan
keterangan yang lebih rinci tentang bagaimana setiap langkah program atau prosedur
sesungguhnya dilaksanakan. Flowchart ini menunjukkan setiap langkah program atau
prosedur dalam urutan yang tepat saat terjadi.
Programmer menggunakan flowchart program untuk menggambarkan urutan instruksi
dari program komputer. Analis Sistem menggunakan flowchart program untuk
menggambarkan urutan tugas-tugas pekerjaan dalam suatu prosedur atau operasi.
Dalam menggambarkan flowchart program terdapat dua jenis metode yang biasa
digunakan yaitu :
a. Conceptual flowchart, menggambarkan alur pemecahan masalah secara global
b. Detail flowchart, menggambarkan alur pemecahan masalah secara rinci

Contoh flowchart program ditunjukkan pada gambar 3.4 dan 3.5 berikut ini:

◼ Teknologi Informasi Kesehatan III 81


Gambar 3.4 Flowchart program dengan conceptual flowchart

Gambar 3.5 Flowchart program dengan detail flowchart

82
5. Flowchart Proses (Process Flowchart)
Flowchart proses merupakan teknik penggambaran rekayasa industrial yang memecah
dan menganalisis langkah-langkah selanjutnya dalam suatu prosedur atau sistem. Flowchart
proses memiliki lima simbol khusus seperti disajikan pada Gambar 3.6 berikut ini:

Gambar 3.6 Simbol flowchart proses

Flowchart proses digunakan oleh perekayasa industrial dalam mempelajari dan


mengembangkan proses-proses manufacturing. Dalam analisis sistem, flowchart ini
digunakan secara efektif untuk menelusuri alur suatu laporan atau form. Contoh
penggunaan flowchart ini ditunjukkan pada gambar 3.7 berikut ini :

◼ Teknologi Informasi Kesehatan III 83


Gambar 3.7 Contoh Flowchart proses

D. SIMBOL-SIMBOL FLOWCHART

Simbol-simbol flowchart yang biasanya untuk membuat sebuah algoritma adalah


simbol-simbol flowchart standar yang dikeluarkan oleh ANSI dan ISO. Simbol-simbol ini dapat
dilihat pada Gambar 3.8 berikut ini :

84
Gambar 3.8 Simbol-simbol flowchart

◼ Teknologi Informasi Kesehatan III 85


Gambar 3.8 Simbol-simbol flowchart (lanjutan)

86
Gambar 3.8 Simbol-simbol flowchart (lanjutan)

◼ Teknologi Informasi Kesehatan III 87


Gambar 3.8 Simbol-simbol flowchart (lanjutan)

88
Gambar 3.8 Simbol-simbol flowchart (lanjutan)

Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Jelaskan definisi dan manfaat dari flowchart ?


2) Jelaskan pedoman-pedoman dalam menggambar suatu flowchart?
3) Sebutkan jenis-jenis flowchart beserta fungsinya ?
4) Gambarlah symbol flowchart yang memiliki arti berikut ini :
a. Proses
b. Alur kerja
c. Keputusan
d. Penghubung
e. Awal/akhir
f. Input/output
g. Input manual
h. Dokumen

◼ Teknologi Informasi Kesehatan III 89


Petunjuk Jawaban Latihan

Untuk membantu Anda dalam mengerjakan soal latihan tersebut silahkan pelajari
kembali materi tentang pengantar flowchart yang terdiri dari : definisi flowchart, jenis-jenis
flowchart, dan symbol-simbol flowchart.

Ringkasan

1. Flowchart merupakan gambar atau bagan yang memperlihatkan urutan atau


langkahlangkah dari suatu program dan hubungan antar proses beserta
pernyataannya.
2. Flowchart didefinisikan juga sebagai bagan-bagan yang mempunyai arus yang
menggambarkan langkah-langkah penyelesaian suatu masalah.
3. Tujuan utama flowchart adalah untuk menggambarkan suatu tahapan penyelesaian
masalah secara sederhana, terurai, rapi dan jelas dengan menggunakan simbol-simbol
yang standar.
4. Pada waktu akan menggambar suatu bagan alir, analis sistem atau pemrogam dapat
mengikuti pedoman-pedoman untuk membuat flowchart.
5. Terdapat lima jenis flowchart yaitu: Flowchart Sistem, Flowchart Dokumen Flowchart
Skematik, Flowchart Program dan Flowchart Proses.
6. Simbol-simbol flowchart yang biasanya untuk membuat sebuah algoritma adalah
simbol-simbol flowchart standar yang dikeluarkan oleh ANSI dan ISO.

90
Tes 1
Pilihlah salah satu jawaban yang paling benar!

1) Berikut ini merupakan definisi flowchart yang tepat adalah .…


A. Flowchart adalah bagan-bagan yang mempunyai arus yang menggambarkan
langkah-langkah penyelesaian suatu masalah
B. Flowchart adalah gambar atau bagan yang memperlihatkan urutan atau
langkahlangkah dari bahasa pemrograman tertentu
C. Flowchart adalah penggambaran secara grafik dari langkah-langkah dan
uruturutan prosedur kerja yang kompleks
D. Flowchart adalah alat untuk mempermudah penyelesaian suatu masalah
khususnya masalah yang perlu dipelajari oleh programmer

2) Berikut ini yang bukan merupakan tujuan dari pembuatan flowchart adalah ….
A. Menggambarkan suatu tahapan penyelesaian masalah
B. Secara sederhana, terurai, rapi dan jelas
C. Menggunakan simbol-simbol yang standar
D. Mempermudah penggabungan program

3) Flowchart yang merupakan deskripsi secara grafik dari urutan prosedur-prosedur


yang terkombinasi yang membentuk suatu sistem disebut ….
A. Flowchart Dokumen
B. Flowchart Sistem
C. Flowchart Skematik
D. Flowchart Proses

4) Flowchart yang tidak hanya menggunakan simbol-simbol flowchart standar, tetapi


juga menggunakan gambar-gambar komputer, peripheral, form-form atau peralatan
lain yang digunakan dalam sistem disebut ….
A. Flowchart Dokumen
B. Flowchart Sistem
C. Flowchart Skematik
D. Flowchart Program

5) Perhatikan gambar di berikut ini:

◼ Teknologi Informasi Kesehatan III 91


Simbol Flowchart tersebut mempunyai arti ....
A. Proses
B. Penghubung
C. Alur kerja
D. Keputusan

92
Topik 2
Membuat Algoritma Dalam Bentuk
Flowchart
A. LANGKAH-LANGKAH MEMBUAT FLOWCHART

Pembuatan sebuah flowchart sebenarnya tidak ada kaidah yang baku. Flowchart
merupakan gambaran hasil analisa suatu masalah, Flowchart dapat bervariasi antara satu
pemrograman dengan pemrograman lainnya. Ada beberapa tips untuk membuat flowchart
yang benar, antara lain:
1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga
jalannya proses menjadi singkat.
2. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk
memperjelas.
3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Flowchart dibuat dengan tujuan utama untuk membuat rangkaian program menjadi
lebih simpel dan mudah dipelajari oleh pengguna awam. Membuat flowchart dalam sebuah
halaman memiliki prosedur tertentu, harus sesuai dengan berbagai ketentuan yang berlaku.
Berikut cara membuat flowchart yang baik :
1. Persiapkan tiga bagian utama flowchart yang akan menjadi jantung atas percabangan
flowchart. Tiga bagian itu adalah bagian input, bagian proses, serta bagian output.
2. Buat gambar simbol pada lembar pembuatan flowchart sebagai bagian untuk tempat
mengisi penjelasan.
3. Sesuaikan posisi simbol-simbol tersebut dengan tiga bagian utama flowchart yang
telah ditentukan sebagai input, proses, dan output.
4. Hubungkan simbol-simbol yang telah dibuat dengan konektor garis berpanah.
Lakukan secara cermat, jangan salah menggambarkan arah panah.
5. Berikan keterangan dalam setiap simbol, dan jika diperlukan untuk membuat
percabangan dari diagram arus atas tiga bagian utama yang telah ada, maka lakukan
dengan cara yang sama, yaitu dengan membuat gambar simbol pada bagian yang
diperlukan (simbol usahakan berbeda dari simbol utama).
6. Koneksikan simbol-simbol yang baru dibuat dengan bagian utama flowchart tersebut
dengan konektor berpanah, sesuaikan arah panahnya, dan beri keterangan dengan
singkat dan jelas.

◼ Teknologi Informasi Kesehatan III 93


7. Lakukan hingga semua bagian yang diperlukan selesai digambar dalam bentuk
diagram di atas kertas.

Sebagai contoh pembuatan flowchart perhatikan urutan pembuatan flowchart berikut


ini :
1. Selalu Dimulai dengan “Start” atau “Begin” atau “Mulai”

Gambar 3.9 Begin

2. Menggambar Input/Output

Gambar 3.10 Input/output

94
3. Menggambar Proses

Gambar 3.11 Proses

4. Menampilkan Output

Gambar 3.12 Output

Penggambaran tiga bagian itu dari flowchart yaitu bagian input, bagian proses, serta
bagian output dapat diperjelas dengan contoh studi kasus algoritma penjumlahan dua
bilangan yang disajikan dalam bentuk flowchart berikut ini :

◼ Teknologi Informasi Kesehatan III 95


Menerima input
nilai A dan nilai B

Menghitung C adalah
nilai A ditambah nilai B

Menampilkan output
nilai C

Gambar 3.13 Flowchart penjumlahan dua bilangan

B. MENERAPKAN FLOWCHART UNTUK MEMBUAT ALGORITMA

Penerapan flowchart dalam membuat algoritma dicontohkan dalam beberapa studi


kasus berikut ini.
1. Studi Kasus Algoritma Menghitung Luas Dan Keliling Lingkaran
Permasalahan pada kasus ini adalah membuat algoritma dalam bentuk flowchart untuk
menghitung luas dan keliling lingkaran, sebagai input jari-jari lingkaran, dan sebagai output
luas dan keliling lingkaran. Tampilan program yang dihasilkan seperti nampak pada Gambar
3.14 berikut ini :

Gambar 3.14 Tampilan program luas dan keliling lingkaran

Untuk menghitung luas dan keliling lingkaran dibutuhkan data-data berupa radius lingkaran
dan nilai konstanta π (kadang kala ditulis PI). Secara matematis rumus menghitung luas dan
keliling lingkaran adalah sebagai berikut :
Luas lingkaran = π * radius * radius
Keliling = 2 * π * radius
Dalam kasus ini PI adalah konstanta yang nilainya dalam 20 desimal adalah
3.14159265358979323846. Langkah penyelesaian masalah dalam bentuk flowchart sebagai
berikut:

96
a. Struktur data yang dibutuhkan
Struktur data yang dibutuhkan membuat algoritma dalam bentuk flowchart untuk
menghitung luas dan keliling lingkaran adalah:
1) PI : sebagai konstanta yang didefinisikan bertipe data pecahan dan bernilai 3.14
2) Radius : sebagai variabel yang menampung panjang radius lingkaran yang
didefinisikan bertipe data pecahan
3) Luas : sebagai variabel penampung nilai perhitungan luas lingkaran
4) Keliling : sebagai variabel penampung nilai perhitungan keliling lingkaran

b. Deklarasi dan Inisialisasi


PI didefinisikan sebagai konstanta dan diinisialisasi sebagai sebuah angka dengan 2
angka di belakang koma (jumlah angka dibelakang koma bersifat optional), sehingga PI
bernilai 3.14. Variabel radius, luas dan keliling juga dideklarasikan bertipe pecahan. Karena
bilangan yang dimasukkan oleh pengguna nilainya terserah pengguna dideklarasikan sebagai
variabel. Variabel luas dan keliling dideklarasikan sebagai variabel karena nilai yang
tersimpan didalamnya adalah hasil kalkulasi rumus luas dan keliling. Deklarasi dan inisialisasi
variabel dan konstantanya sebagai berikut:

Gambar 3.15 Deklarasi dan inisialisasi variabel dan konstanta

c. Input
Masukan yang diperlukan dalam permasalahan ini adalah bilangan yang
melambangkan panjang radius lingkaran dan disimpan dalam variabel radius sehingga input
pada flowchart digambarkan sebagai berikut:

Gambar 3.16 Input radius

d. Output
Keluaran permasalahan ini adalah 2 buah nilai yaituluas dan keliling lingkaran, sehingga
output pada flowchart dapat dibuat sebagai berikut:

Gambar 3.17 Output luas dan keliling

◼ Teknologi Informasi Kesehatan III 97


e. Proses penyelesaian
Terdapat dua buah kegiatan yang terjadi dalam proses dan dilakukan secara berurutan
(sequences), yaitu perhitungan luas dan keliling lingkaran sesuai rumus yang telah
dideklarasikan sebelumnya. Dalam penulisan flowchart dua kegiatan ini bisa digabung
seperti berikut ini :

Gambar 3.18 Perhitungan luas dan keliling digabung

Atau dapat dipisah sebagai berikut :

Gambar 3.19 Perhitungan luas dan keliling dipisah

f. Flowchart keseluruhan
Setelah langkah-langkah per proses kegiatan tersebut maka flowchart secara
keseluruhan algoritma perhitunga3n luas dan keliling lingkaran adalah sebagai berikut :

Gambar 3.20 Flowchart perhitungan luas dan keliling lingkaran

98
2. Studi Kasus Algoritma Konversi Suhu
Permasalahan pada kasus ini adalah membuat flowchart untuk mengkonversi suhu dari
Celcius ke Fahrenheit. Suhu dalam satuan Celcius dimasukkan oleh pengguna. Suhu dalam
satuan Fahrenheit ditampilkan ke layar.

Gambar 3.21 Tampilan program konversi suhu

Untuk menghitung konversi suhu dari satuan Celcius menjadi Fahrenheit dibutuhkan
data-data berupa nilai suhu dalam satuan Celcius. Secara matematis rumus menghitung
konversi suhu dari satuan Celcius menjadi Fahrenheit adalah :

F = C * 1.8 + 32

a. Struktur data yang dibutuhkan


Struktur data yang dibutuhkan membuat algoritma dalam bentuk flowchart untuk
konversi suhu adalah:
1) F : sebagai variabel yang didefinisikan bertipe data pecahan untuk menyimpan suhu
dalam satuan Fahrenheit.
2) C : sebagai variabel yang didefinisikan bertipe data pecahan untuk menyimpan suhu
dalam satuan Celcius.

b. Deklarasi dan Inisialisasi


Variabel F dan C dideklarasikan bertipe pecahan karena sifat nilai besaran suhu yang
dapat direpresentasikan dalam bilangan pecahan. Nilai C dimasukkan oleh pengguna dan
nilainya terserah pengguna (fleksibel). Variabel F dideklarasikan sebagai variabel karena nilai
yang tersimpan didalamnya adalah hasil kalkulasi rumus konversi suhu yang nilainya dapat
berubah tergantung dengan nilai C yang dimasukkan oleh pengguna. Dari sini, deklarasi
variabel pada flowchart dapat dibuat sebagai berikut:

Gambar 3.22 Deklarasi dan inisialisasi variabel

b. Input

◼ Teknologi Informasi Kesehatan III 99


Masukan yang diperlukan dalam permasalahan ini adalah bilangan yang
melambangkan suhu dalam satuan Celcius dan disimpandalam variabel C, sehingga input
pada flowchart dapat dibuat sebagai berikut :

Gambar 3.23 Input variabel C


c. Output
Keluaran permasalahan ini adalah sebuah nilai yaitu suhu dal;am satuan Fahrenheit,
sehingga output pada flowchart dapat dibuat sebagai berikut :

Gambar 3.24 Output variabel F

d. Proses penyelesaian
Proses yang terjadi adalah perhitungan konversi suhu dari Celcius menjadi Fahrenheit
dengan menggunakan rumus yang telah dideklarasikan sebelumnya. Dari sini, flowchart
proses dapat dibuat sebagai berikut:

Gambar 3.25 Proses perhitungan F

e. Flowchart keseluruhan
Flowchart perhitungan koversi suhu secara keseluruhan adalah sebagai berikut:

100
Gambar 3.26 Flowchart perhitungan koversi suhu

3. Studi Kasus Menampilkan Bilangan Ganjil


Permasalahan pada kasus ini adalah membuat flowchart untuk menampilkan
sederetan bilangan ganjil dari 10 sampai 30 kecuali 21 dan 27. Contoh output : 11 13 15 17
19 23 25 29.
Karena batas atas dan batas bawah bilangan sudah didefinisikan dalam soal maka
pengguna tidak perlu memberi masukkan ke sistem. Dalam flowchart cukup didefinisikan
bahwa bawah atas bilangan adalah 10 dan batas atas bilangan adalah 30. Flowchart akan
menampilkan bilangan ganjil saja sehingga harus dilakukan pengecekan kondisi apakah
bilangan termasuk bilangan ganjil. Untuk itu dilakukan operasi aritmatika yang melibatkan
operator % (modulo), jika bilangan di modulo 2 menghasilkan nilai 1 maka bilangan tersebut
adalah bilangan ganjil dan harus ditampilkan ke layar, sedang bila hasilnya adalah 0 maka
bilangan tersebut adalah bilangan genap dan tidak perlu ditampilkan ke layar. Tetapi harus
ditambahkan pengecekan kondisi sekali lagi yaitu bahwa tidak semua bilangan ganjil akan
ditampilkan ke layar, bilangan 21 dan 27 tidak ditampilkan. Oleh karena itu tambahkan
pengecekan apakah bilangan=21 atau bilangan=27, jika iya maka tidak perlu ditampilkan ke
layar. Karena lebih dari satu bilangan yang di cek apakah ganjil atau genap dan apakah
bilangan sama dengan 21 atau sama dengan 27 maka dalam penyelesaian masalah
dibutuhkan perulangan proses.
a. Struktur data yang dibutuhkan
Untuk menyelesaikan permasalahan ini hanya dibutuhkan satu variabel saja yaitu Bil
sebagai variabel yang menyimpan nilai bilangan yangakan ditampilkan ke layar.

b. Deklarasi dan inisialisasi


◼ Teknologi Informasi Kesehatan III 101
Variabel terdiri dari Bil saja dan nilainya diinisialisasi dengan 10 yang menandakan
batas bawah bilangan. Variabel Bil dibuat sebagai variabel karena nilai Bil akan selalu
berubah yaitu selalu ditambah dengan angka 1 karena harus mengecek semua bilangan
antara 10 sampai dengan 30. Perubahan nilai Bil ini terjadi dalam perulangan proses. Dari
sini, deklarasi dan inisialisasi variabel pada flowchart dapat dibuat sebagai berikut :

Gambar 3.27 Deklarasi dan inisialisasi variabel Bil

c. Input
Dalam flowchart ini tidak diperlukan masukkan sama sekali karena batas atas dan
batas bawah bilangan sudah didefinisikan dalam soal.

d. Output
Keluaran permasalahan ini adalah sejumlah bilangan ganjil antara 10 dan 30 kecuali 21
dan 27. Bilangan ini akan di tampilkan beberapa kali sesuai kondisi yang ada sehingga
kegiatan menampilkan bilangan ke layar dilakukan dalam perulangan proses, sehingga
output pada flowchart dapat dibuat sebagai berikut:

Gambar 3.28 Output bilangan

e. Proses penyelesaian
Sebagai dijelaskan pada sebelumnya, flowchart akan menampilkan bilangan ganjil saja
sehingga harus dilakukan pengecekan kondisi apakah bilangan termasuk bilangan ganjil.
Untuk itu dilakukan operasi aritmatika yang melibatkan operator % (modulo), jika bilangan di
modulo 2 menghasilkan nilai 1 maka bilangan tersebut adalah bilangan ganjil dan harus
ditampilkan ke layar, sedang bila hasilnya adalah 0 maka bilangan tersebut adalah bilangan
genap dan tidak perlu ditampilkan ke layar. Tetapi harus ditambahkan pengecekan kondisi
sekali lagi yaitu bahwa tidak semua bilangan ganjil akan ditampilkan ke layar, bilangan 21
dan 27 tidak ditampilkan. Oleh karena itu tambahkanpengecekan apakah bilangan=21 atau
bilangan=27, jika iya maka tidak perlu ditampilkan ke layar. Karena lebih dari satu bilangan
yang di cek apakah ganjil atau genap dan apakah bilangan sama dengan 21 atau sama
dengan 27 maka dalam penyelesaian masalah dibutuhkan perulangan proses. Dari sini,
flowchart Proses dapat direpresentasikan sebagai berikut :

102
Gambar 3.29 Proses pemilihan bilangan ganjil

f. Flowchart Keseluruhan
Flowchart menampilkan bilangan ganjil secara keseluruhan adalah sebagai berikut :

Gambar 3.30 Flowchart menampilkan bilangan ganjil


4. Studi Kasus Algoritma Input Data Pasien
Studi kasus input data pasien adalah contoh penerapan flowchart dalam bidang rekam
medis dan informasi kesehatan. Proses ini bisanya terjadi pada saat registrasi pasien baik
rawat jalan maupun rawat inap. Permasalahan pada kasus ini adalah membuat flowchart
untuk menggambarkan proses input data pasien pada sebuah media penyimpanan tabel
atau basis data tertentu.
Proses input data pasien diawali dari proses pengisian variabel nomer rekam medis
pasien, dilanjutkan validasi untuk mencari data apakah nomer rekam medis tersebut sudah
pernah digunakan atau belum, jika sudah ada tampil komentar “No Rekam Medis Sudah Ada,
Ganti Yang Lain !”, dan jika tidak ditemukan dapat melanjutkan input data variabel
◼ Teknologi Informasi Kesehatan III 103
selanjutnya yaitu nama pasien, tempat lahir, tanggal lahir, jenis kelamin, dan alamat,
kemudian dilakukan proses simpan data ke database.
a. Struktur data yang dibutuhkan
Untuk menyelesaikan permasalahan ini dibutuhkan :
1) no_rm : variabel untuk menyimpan data nomer rekam medis
2) nama_pas : variabel untuk menyimpan data nama pasien
3) tempat_lhr : variabel untuk menyimpan data tempat lahir
4) tanggal_lhr : variabel untuk menyimpan data tanggal lahir
5) jenis_klm : variabel untuk menyimpan data jenis kelamin 6) alamat : variabel
untuk menyimpan data alamat

b. Deklarasi dan inisialisasi


Variabel terdiri dari : no_rm, nama_pas, tempat_lhr, tanggal_lhr, jenis_klm, dan
alamat. Variabel-variabel ini dibuat sebagai variabel untuk menampung data pasien yang
diinputkan oleh pengguna program. Dari sini, deklarasi dan inisialisasi variabel pada
flowchart dapat dibuat sebagai berikut :

No_rm=varchar(6), nama_pas=varchar(30),
tempat_lhr=varchar(15), tanggal_lhr=date,
jenis_klm=varchar(1), alamat=varchar(30)

Gambar 3.31 Deklarasi dan inisialisasi variabel input data pasien

c. Input
Dalam flowchart ini diperlukan masukkan pada variabel no_rm, nama_pas, tempat_lhr,
tanggal_lhr, jenis_klm, dan alamat. Flowchart inputnya dapat digambarkan sebagai berikut:

Input no_rm

Input nama_pas, tempat_lhr,


tanggal_lhr, jenis_klm, alamat

Gambar 3.32 Input data pasien

d. Output

104
Keluaran permasalahan ini adalah komentar validasi input dan penyimpanan data
pasien, sehingga output pada flowchart dapat dibuat sebagai berikut:

Cetak “No Rekam Medis Sudah


Ada, Ganti Yang Lain ! ”

Gambar 3.33 Output komentar input data pasien

e. Proses penyelesaian
Sebagai dijelaskan pada sebelumnya, flowchart input data pasien diawali dari proses
pengisian variabel nomer rekam medis pasien, dilanjutkan validasi untuk mencari data
apakah nomer rekam medis tersebut sudah pernah digunakan atau belum, jika sudah ada
tampil komentar “No Rekam Medis Sudah Ada, Ganti Yang Lain!”, dan jika tidak ditemukan
dapat melanjutkan input data variabel selanjutnya yaitu nama pasien, tempat lahir, tanggal
lahir, jenis kelamin, dan alamat, kemudian dilakukan proses simpan data ke database. Dari
sini, flowchart Proses dapat direpresentasikan sebagai berikut:

◼ Teknologi Informasi Kesehatan III 105


Cari Y
Cetak “No Rekam Medis Sudah
no_rm di Ada, Ganti Yang Lain ! ”
tabel

Input nama_pas, tempat_lhr,


tanggal_lhr, jenis_klm, alamat

Simpan no_rm, nama_pas,


tempat_lhr, tanggal_lhr, jenis_klm,
alamat ke tabel pasien

Gambar 3.34 Proses input data pasien

f. Flowchart Keseluruhan

106
Flowchart input data pasien secara keseluruhan adalah sebagai berikut:

Mulai

Input no_rm

Cari Y
Cetak “No Rekam Medis Sudah
no_rm di Ada, Ganti Yang Lain ! ”
tabel

Input nama_pas, tempat_lhr,


tanggal_lhr, jenis_klm, alamat

Simpan no_rm, nama_pas,


tempat_lhr, tanggal_lhr , jenis_klm,
alamat ke tabel pasien

Selesai

Gambar 3.35 Flowchart input data pasien

Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Jelaskan langkah-langkah membuat flowchart yang baik?


2) Buatlah flowchart tentang menentukan apakah suatu bilangan adalah bilangan ganjil
atau bilangan genap?
3) Buatlah flowchart untuk menghitung luas dan keliling sebuah segitiga sama sisi,
diketahui sebagai input panjang sisi, sebagai output adalah luas dan keliling segitiga
sama sisi?

◼ Teknologi Informasi Kesehatan III 107


Petunjuk Jawaban Latihan

Untuk membantu Anda dalam mengerjakan soal latihan tersebut silakan pelajari
kembali materi tentang langkah-langkah membuat flowchart dan menerapkan flowchart
untuk membuat algoritma.

Ringkasan

1. Pembuatan sebuah flowchart sebenarnya tidak ada kaidah yang baku.


2. Beberapa hal yang perlu diperhatikan membuat flowchart yang benar:
a. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga
jalannya proses menjadi singkat.
b. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah
untuk memperjelas.
c. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
3. Flowchart dapat diterapkan untuk membuat berbagai macam algoritma sesuai
dengan kebutuhan untuk menyelesaikan permasalahan tertentu.

Tes 2
Pilihlah salah satu jawaban yang paling benar!

1) Berikut ini yang bukan merupakan kaidah pembuatan flowchart yang baik adalah .…
A. Hindari pengulangan proses yang tidak perlu
B. Jalannya proses dari atas ke bawah
C. Diawali “Start” dan diakhiri “End”
D. Dihubungkan dengan garis tanpa panah

2) Ada tiga bagian utama pembuatan flowchart yaitu .…


A. Bagian deklarasi, bagian input, bagian proses
B. Bagian input, bagian proses, bagian output
C. Bagian deklarasi, bagian inisialisasi, bagian input
D. Bagian inisialisasi, bagian input, bagian output
3) Pada penerapan flowchart untuk membuat algoritma terdapat langkah membuat
deklarasi dan inisialisasi, apakah yang dibuat pada langkah ini…
A. Menerima input
B. Memproses variabel

108
C. Membuat variabel
D. Menampilkan variabel

4) Terdapat rumus perhitungan luas segitiga adalah “Luas=0.5*alas*tinggi”. Rumus ini


dalam flowchart perhitungan luas segitiga terletak pada bagian .…
A. Deklarasi
B. Proses
C. Input
D. Output

5) Simbol keputusan atau decision pada flowchart memiliki tiga aliran data. Pernyataan
yang benar mengenai hal tersebut adalah :
A. Satu aliran data sebagai input, satu aliran data sebagai proses dan satu aliran
data sebagai output
B. Satu aliran data sebagai input, satu aliran data sebagai proses dan satu aliran
data sebagai output benar
C. Satu aliran data sebagai input, satu aliran data sebagai output benar dan satu
aliran data sebagai output salah
D. Satu aliran data sebagai input, satu aliran data sebagai proses benar dan satu
aliran data sebagai output salah

Kunci Jawaban Tes


Tes 1
1) A
2) D
◼ Teknologi Informasi Kesehatan III 109
3) B
4) C
5) D

Tes 2
1) D
2) B 3) C 4) B
5) C

Glosarium
System Flowchart : bagan yang menunjukkan alur kerja atau apa yang sedang dikerjakan di
dalam sistem secara keseluruhan dan menjelaskan urutan dari
prosedur-prosedur yang ada di dalam sistem.
Document Flowchart : bagan yang berfungsi menelusuri alur form dan laporan sistem dari
satu bagian ke bagian lain baik bagaimana alur form dan laporan
diproses, dicatat dan disimpan.

110
Schematic Flowchart : bagan yang menggambarkan suatu sistem atau prosedur yang tidak
hanya menggunakan simbol-simbol flowchart standar, tetapi juga
menggunakan gambar-gambar komputer, peripheral, form-form atau
peralatan lain yang digunakan dalam sistem.
Program Flowchart : bagan yang merupakan keterangan yang lebih rinci tentang
bagaimana setiap langkah program atau prosedur sesungguhnya
dilaksanakan.
Process Flowchart : bagan yang merupakan teknik penggambaran rekayasa industrial
yang memecah dan menganalisis langkah-langkah selanjutnya dalam
suatu prosedur atau sistem.

Daftar Pustaka
Ananda, D., A. Suryan, P. Mayadewi, L. Rasiana dan H. Kusmayadi. 2009. Algoritma dan
Pemrograman. Politeknik Telkom Bandung.

Barakbah, A.R; T. Karlita dan A.S. Ahsan. 2013. Logika dan Algoritma. Politeknik Elektronika
Negeri Surabaya.

◼ Teknologi Informasi Kesehatan III 111


Dosen IT.Com. Pengertian Algoritma, Flowchart dan Pseudocode. 8 Maret 2018

Munir, R. 2007. Algoritma dan Pemrograman Dalam Bahasa Pascal dan C. Informatika.

Suprapto. 2008. Bahasa Pemrograman untuk Sekolah Menengah Kejuruan. Departemen


Pendidikan Nasional.

Team Dosen. 2014. Analisa Dan Perancangan Sistem Informasi. Fakultas Ilmu Komputer
Universitas Mercu Buana.

Bab 4
ALGORITMA PENGAMBILAN KEPUTUSAN DAN
ALGORITMA
112
PENGULANGAN
Subinarto, S.Kom, M.Kom

Pendahuluan

B dengan kemajuan zaman yang menjadikan teknologi sebagai hal penting untuk ahasa
pemrograman semakin banyak dipelajari oleh banyak orang. Hal ini terkait
menunjang kemajuan. Bagi pembaca yang ingin mempelajari bahasa pemrograman, hal
dasar yang harus dipahami adalah algoritma pemrograman tersebut. Untuk mengerti apa itu
algoritma pemrograman, silahkan simak pembahasan di bawah ini.
Dalam matematika dan ilmu komputer, algoritma adalah urutan atau langkah-langkah
untuk penghitungan atau untuk menyelesaikan suatu masalah yang ditulis secara berurutan.
Sehingga, algoritma pemrograman adalah urutan atau langkah-langkah untuk menyelesaikan
masalah pemrograman komputer.
Dalam pemrograman, hal yang penting untuk dipahami adalah logika kita dalam
berpikir bagaimana cara untuk memecahkan masalah pemrograman yang akan dibuat.
Sebagai contoh, banyak permasalahan matematika yang mudah jika diselesaikan secara
tertulis, tetapi cukup sulit jika kita terjemahkan ke dalam pemrograman. Dalam hal ini,
algoritma dan logika pemrograman akan sangat penting dalam pemecahan masalah. Pada
bab ini akan dijelaskan mengenai algoritma pengambilan keputusan dan algoritma
pengulangan.

Topik 1 Algoritma Pengambilan Keputusan


A. KONSEP DASAR DAN PENGERTIAN

Proses pengambilan keputusan adalah operasi yang digunakan untuk menyelesaikan


masalah-masalah yang berhubungan dengan kondisi benar atau salah dari suatu pernyataan.
Bentuk pernyataan tersebut berupa perbandingan antara dua buah nilai atau lebih dengan
menggunakan operator pembanding.
Di dalam pemrograman kita mengenal istilah struktur penyeleksian Kondisi
(Conditional Statemaent) dan struktur perulangan (looping). Kedua struktur ini sangat
penting dalam mengontrol suatu program yang kita buat. Tanpa menggunakan kontrol ini
◼ Teknologi Informasi Kesehatan III 113
program yang kita buat tidak berdaya apa-apa. Penyeleksian kondisi atau pernyataan kondisi
(conditional statement) merupakan suatu pernyataan yang menganalisa suatu keadaan dan
mengambil keputusan berdasarkan pada hasil analisa itu. Hasil dari penyeleksian jika
bernilai benar maka akan dikerjakan instruksi tertentu. Jika salah maka akan dikerjakan
instruksi yang lain.
Contoh : Terdapat pernyataan bahwa jika tidak hujan ” saya main bola”, sedang hujan
“dirumah saja”.
Bentuk algoritma pengambilan keputusan bila diimplementasikan dalam bahasa PHP
secara garis besar menyediakan 2 (dua) pernyataan / percabangan yang terkait dengan
seleksi untuk diambil keputusan, yaitu pernyataan if dan Switch.

B. PENGERTIAN PERCABANGAN

1. Definisi
Percabangan adalah cara yang digunakan dalam program untuk mengambil keputusan
ke satu kemungkinan True atau False dari beberapa kondisi. Didalam pemrograman kita
harus dapat menentukan aksi apa yang harus dikerjakan oleh pemroses (processor) ketika
sebuah kondisi terpenuhi, dengan menggunakan operasi logic

Contoh :
$ a= 50; a
< 50
Percabangan yang digunakan pada algoritma ini terdapat 2 metode; if – else dan Switch –
case.

2. Macam-Macam Percabangan
Pernyataan Percabangan If-Else digunakan untuk memecahkan persoalan untuk
mengambil suatu keputusan diantara banyak pernyataan yang ada. Statement if digunakan
untuk melakukan proses percabangan di dalam program.

Statement If
Statement if digunakan untuk melakukan proses percabangan didalam program. Atau dengn
kata lain bahwa Percabangan if..else digunakan untuk pengujian sebuah kondisi. Jika kondisi
yang diuji tersebut terpenuhi, maka program akan menjalankan pernyataan-pernyataan
tertentu. Jika kondisi yang diuji salah, program akan menjalankan pernyataan yang lain.
a. If true artinya hanya ada satu kondisi yang menjadi syarat untuk melakukan satu atau
blok (sekelompok) pernyataan. Bentuk umum algoritma standar percabangan dengan
satu kondisi:
If <kondisi> true

114
Pernyataan: Jika <kondisi> bernilai benar maka pernyataan dikerjakan dan proses langsung
dikerjakan, sedangkan jika tidak, maka pernyataan tidak dikerjakan dan proses keluar
dari percabangan.
b. If true else : artinya ada kondisi yang menjadi syarat untuk dikerjakannya dua jenis
pernyataan. Bentuk umum percabangan dengan dua kondisi :
If <kondisi> true
Pernyataan1
Else
Pernyataan2
Jika <kondisi> bernilai benar maka pernyataan1 dikerjakan. Sedangkan jika tidak (<kondisi>
bernilai salah), maka pernyataan yang dikerjakan adalah pernyataan2. Berbeda dengan
percabangan satu kondisi, pada percabangan dua kondisi ada dua pernyataan untuk
dua keadaan kondisi, yaitu untuk <kondisi> yang bernilai benar dan <kondisi> yang
bernilai salah.

Dapat dijelaskan seperti berikut:


Tabel 4.1 Perintah if...else
Perintah Keterangan
If Kondisi true Perintah ini digunakan untuk satu buah kondisi yang
Aksi1 mempengaruhi suatu aksi.
Perintah ini digunakan untuk sebuah kondisi yang akan
If Kondisi true mempengaruhi dua buah aksi. Jika kondisi terpenuhi
Aksi1 maka aksi pertama yang akan dijalankan tetapi
Else sebaliknya
Perintah Keterangan
Aksi2 jika kondisi tersebut tidak terpenuhi maka aksi kedua
yang akan dijalankan,
Perintah ini digunakan untuk banyak kondisi yang
If Kondisi1 true mempengaruhi banyak aksi. Kondisi pertama dinyatakan
dengan dengan if kondisi1 true aksi1. Untuk kondisi
Aksi1
kedua sampai kondisi sebelum terakhir dinyatakan
Else if kondisi2 true dengan else if kondisi true aksi. Sedangkan untuk kondisi
Aksi2 terakhir cukup dinyatakan dengan else.
Else if kondisi3 true
Aksi 3

else if kondisiN-1 true
aksiN-1 else
aksiN

◼ Teknologi Informasi Kesehatan III 115


Untuk lebih jelasnya mari kita bahas satu persatu dan berikut contohnya.

3. Struktur IF dalam PHP


Pengertian Struktur IF dalam bahasa pemograman adalah sebuah struktur logika untuk
membuat percabangan alur program. Secara sederhananya, dengan menggunakan struktur
IF kita dapat mengatur apakah sebuah perintah akan dijalankan atau tidak tergantung
kepada kondisinya.
Sebagai contoh kita ingin membuat program sederhana, jika nama user adalah
“Markonah”, maka tampilkan kata “Selamat belajar PHP, Markonah”. Berikut adalah
penulisannya di dalam PHP:

Gambar 4.1 Script Struktur If


Jika Anda jalankan kode program diatas, maka di web browser akan tampil sebagai berikut:

Gambar 4.2 Tampilan contoh program menggunakan IF

Namun apabila kita mengganti kode program diatas menjadi :

116
Gambar 4.3 Contoh Struktur IF

Maka tidak akan ada tampilan apa-apa di dalam web browser.


Struktur logika IF setidaknya membutuhkan 2 inputan, yaitu ekspresi logika
(expression) dimana berisi kondisi yang harus dipenuhi, dan perintah yang akan dijalankan
(statement) jika kondisi logika tersebut terpenuhi.
Berikut adalah struktur dasar penulisan alur logika IF dalam PHP:

if (expression) statement

Expression dalam hal ini adalah kondisi yang harus dipenuhi agar statement dapat
dijalankan. Hasil dari expression harus tipe boolean. Selama hasil expression bernilai TRUE,
maka statement akan dijalankan, namun jika nilainya FALSE, maka statement tidak akan
dijalankan.
Dalam pembuatan program, biasanya digunakan operasi perbandingan sebagai
expression. Pada contoh kita pertama, expression kita adalah $nama==”Markonah”, yang
bermaksud bahwa jika isi variabel $nama sama dengan “Markonah” maka jalankan perintah
echo.
Namun expression IF ini tidak harus berupa operasi perbandingan, tetapi bisa berupa
variabel, yang selama hasilnya adalah TRUE, maka statement akan dijalankan. Perhatikan
contoh berikut ini:

◼ Teknologi Informasi Kesehatan III 117


Gambar 4.4 Struktur If

Jika Anda menjalankan program tersebut, kalimat “Selamat belajar PHP, Markonah”
akan selalu tampil di web browser, karena kondisi IF akan selalu terpenuhi.
Hasil expression harus bertipe boolean, namun dengan prinsip PHP yang menggunakan
type juggling (dimana sebuah tipe data akan dikonversi tergantung situasinya), maka
expression dalam percabangan IF ini bisa menggunakan tipe data selain boolean. Jadi anda
bisa menulis seperti berikut:

Gambar 4.5 Contoh perintah echo

Perintah echo akan dijalankan, karena bilangan integer 7, akan dikonversi menjadi TRUE.

4. Aturan Penulisan Struktur IF dalam PHP


Penulisan sederhana dari struktur if adalah sebagai berikut:

<?php
If (expression)
Statement;
?>

118
Expression ditulis di dalam tanda kurung, dan tidak diikuti dengan titik koma(;). Berikut
contohnya:

Gambar 4.6 Penulisan Expression

Hasil program diatas adalah sbb:

Gambar 4.7 Tampilan hasil perintah expression

Apabila statement yang ingin dijalankan terdiri dari 2 baris atau lebih, kita harus
memberikan tanda kurung kurawal untuk menandai statement yang berhubungan dengan
kondisi IF. Berikut contoh strukturnya:

<?php
if (expression1)
{
statement1; statement2;
}
?>

Tanda kurung kurawal menandakan blok perintah yang dijalankan jika expression
bernilai true. Berikut contohnya:

◼ Teknologi Informasi Kesehatan III 119


Gambar 4.8 Penulisan Expression

Bila dijalankan:

Gambar 4.9 Tampilan hasil perintah expression

Kita juga bisa membuat beberapa logika IF sekaligus untuk berbagai situasi:

<?php
if (expression1)
{
statement1; statement2;
}
if (expression2)
{
statement3; statement4;
}
?>

120
Untuk kasus yang lebih spesifik, kita bisa membuat struktur IF didalam IF, atau dikenal
dengan nested if, seperti contoh berikut:

<?php
if (expression)
{
statement1; if (expression)
{
statement1;
}
}
if (expression)
{
statement1; if (expression)
{
statement1;
}
}
?>
Seberapa banyak kondisi IF didalam IF (nested) tidak dibatasi dalam PHP, namun perlu
diperhatikan penggunaan tanda kurung kurawal sebagai penanda bagian dari IF. Jika anda
membuat struktur IF yang kompleks, tanda kurung kurawal ini akan membuat bingung jika
tidak dikelola dengan benar. Kesalahan penutupan kurung kurawal akan membuat program
tidak berjalan sesuai dengan keinginan.

5. Alternatif Penulisan Struktur Logika IF


Selain menggunakan tanda kurung kurawal sebagai tanda awal dan akhir IF, PHP
menyediakan cara penulisan lain untuk menandai akhir perintah IF, yaitu diawali dengan
tanda titik dua (:) dengan diakhiri dengan endif.
Berikut adalah format dasar penulisan IF:
<?php
if (expression) : statement1; statement1; endif
?>
Perbedaan mendasar tentang cara penulisan ini ada di tanda titik dua (:) setelah penulisan
expression, dan kata kunci endif di akhir statement.

◼ Teknologi Informasi Kesehatan III 121


Anda bebas menggunakan format penulisan logika IF yang disediakan. Beberapa
programmer menggunakan alternatif penulisan IF dengan endif ini, karena dianggap lebih
rapi.

6. Pengertian Struktur ELSE dalam PHP


Jika Struktur IF digunakan untuk percabangan alur program dengan 1 pilihan saja,
maka dengan struktur ELSE kita dapat membuat percabangan kedua, yakni percabangan
ketika kondisi IF tidak terpenuhi, atau expressi IF menghasilkan nilai FALSE.
Berikut adalah contoh penggunaan logika ELSE dalam PHP:

Gambar 4.10 Struktur If...else


Contoh kode program diatas, hampir sama dengan contoh kita pada tutorial tentang IF
sebelumnya. Namun kali ini saya menambahkan percabangan ELSE. Jika anda menjalankan
kode program diatas, maka di dalam web browser akan tampil “Selamat Bergabung Budi“,
karena kondisi IF terpenuhi. Perintah ELSE hanya akan dijalankan jika kondisi $nama bukan
berisi “Budi”.
Jika saya mengubah kode PHP diatas menjadi

Gambar 4.11 Struktur If...else


Maka sekarang di web browser akan tampil “Selamat Bergabung di RMIK“. Hal ini
terjadi karena kondisi if ($nama==”Budi”) tidak terpenuhi dan menghasilkan FALSE, sehingga
perintah di bagian ELSE-lah yang akan diekseskusi.
Aturan Penulisan Struktur IF-ELSE dalam PHP
Penulisan sederhana dari Struktur IF-ELSE adalah sebagai berikut:

122
<?php
if (expression)
statement1;
else
statement2;
?>

Statement1 akan dijalankan hanya jika expression bernilai TRUE (kondisi exspression
terpenuhi). Namun apabila kondisi exspression tidak terpenuhi (bernilai FALSE), maka
statement2 lah yang akan dijalankan.
Jika strutur logika IF-ELSE terdiri dari beberapa baris, maka kita harus menembah
penanda kurung kurawal untuk menandai awal dan akhir statement, penanda ini dibutuhkan
untuk membatasi blok perintah mana yang akan dijalankan ketika exspression TRUE. Dan
blok perintah mana yang akan dijalankan jika expression FALSE.
Contoh penulisan dasar struktur IF-ELSE dengan pembatasan blok perintah:
<?php
if (expression)
{
statement1; statement1;
}
else
{
statement2; statement1;
}
?>

Penanda statement ini akan menghasilkan error ketika kita salah atau lupa
menempatkan tanda kurung kurawal. Perhatikan contoh kode PHP berikut ini:

Gambar 4.12 Struktur If...else error

◼ Teknologi Informasi Kesehatan III 123


Kode PHP diatas akan menghasilkan error. Karena PHP mendeteksi ada lebih dari satu baris
setelah struktur IF. Kode tersebut akan dapat berjalan jika dirubah menjadi :

Gambar 4.13 Struktur If...else

Pada baris terakhir kita juga menambahkan tanda kurung kurwal sebagai penanda awal
dan akhir dari ELSE. Walaupun tanda kurung tersebut sebenarnya tidak diperlukan (karena
hanya bersisi satu baris). Namun hal ini akan memudahkan kita seandainya ingin
menambahkan perintah tambahan pada bagian ELSE.

Alternatif penulisan struktur ELSE


Sama seperti alternative penulisan IF, selain menggunakan tanda kurung kurawal penanda
awal dan akhir blok IF. PHP juga menyediakan cara penulisan lain untuk blok perintah ELSE
ini yaitu diawali dengan tanda titik dua (:) dan diakhiri dengan endif. Berikut adalah format
dasar penulisannya:

<?php
if (expression) : statement1;
statement2; else:
statement3; endif
?>

Pengertian Struktur ELSE-IF dalam PHP


Stuktur ELSE-IF merupakan percabangan logika lanjutan dari IF. Dengan ELSE-IF kita bisa
membuat kode program yang akan menyeleksi berbagai kemungkinan yang bisa terjadi.
Berikut adalah contoh penggunaan ELSE-IF dalam PHP:

124
Gambar 4.14 Penggunaan else...if

Dalam kode program diatas, saya membuat program sederhana untuk


membandingkan 2 angka. IF pertama akan melakukan pengecekan apakah $a > $b, jika
hasilnya adalah FALSE, maka masuk ke IF kedua (ditulis dengan elseif) apakah $a == $b, dan
jika hasilnya adalah FALSE, maka dapat dipastikan $a < $b.
Jika anda bertanya apa perbedaan IF dengan ELSEIF, maka jawabanya terletak di
efisiensi pemrosesan. Contoh diatas bisa juga kita buat tanpa menggunakan ELSEIF seperti
berikut ini:

Gambar 4.14 Penggunaan tanpa else...if


Perhatikan kode program pada baris ke-8, saya mengganti ELSEIF menjadi IF.
◼ Teknologi Informasi Kesehatan III 125
Perbedaannya adalah, untuk contoh kode PHP kita tanpa IF ini, seluruh kondisi akan
dijalankan, walaupun sebenarnya tidak perlu. Jika $a=15 dan $b=8, maka kondisi IF pertama
akan terpenuhi ($a > $b), dan kita ingin program PHP keluar dari IF. Namun karena perintah
selanjutnya adalah IF, maka PHP akan tetap memeriksa apakah ($a == $b).
Lain halnya jika kita menggunakan perintah ELSEIF, maka ketika sebuah kondisi telah
dipenuhi, PHP tidak perlu melakukan pengecekan terhadap kondisi IF lainnya.

Penulisan Struktur ELSE-IF dalam PHP


Dalam PHP, kita bisa menuliskan struktur ELSE-IF dengan elseif, atau else if (dipisahkan
dengan spasi). Kedua bentuk ini dianggap sama.
Format dasar penulisan ELSE-IF adalah sebagai berikut:
<?php
if (expression)
{
statement1;
}
elseif
{
statement2;
}
else
{
statement3;
}
?>

Seberapa banyak struktur ELSE-IF di dalam kode program tidak dibatasi, namun jika
anda ada dalam situasi yang membutuhkan percabangan ELSE IF yang lebih dari 5, mungkin
anda bisa memecah nya menjadi bagian-bagian kecil agar memudahkan alur logika program.

Alternatif Penulisan Struktur ELSE-IF


Selain menggunakan tanda kurung kurawal sebagai tanda awal dan akhir ELSE-IF, PHP
menyediakan cara penulisan alternatif. Berikut format dasar penulisannya:

<?php

126
if (expression) : statement1;
statement2; elseif (expression):
statement3;
else
statement4; endif
?>

Namun untuk cara penulisan ini, kita tidak bisa memisahkan penulisan ELSE-IF menjadi
“else if”, tetapi harus ditulis menyatu menjadi “elseif”.

Gambar 4.15 Penggunaan else...if

Kode program diatas baru berhasil dieksekusi jika diubah menjadi:

Gambar 4.16 Penggunaan else...if


Bila dijalankan program diatas hasilnya sebagai berikut :

◼ Teknologi Informasi Kesehatan III 127


Gambar 4.17 Tampilan program Penggunaan else...if

Strukur IF-ELSE-IF ini merupakan salah satu struktur terpenting dalam pemograman,
dengan struktur IF kita bisa membuat alur percabangan program tergantung dengan situasi
yang dihadapi.

7. Pengertian Struktur Logika Switch


Percabangan Switch-case, adalah fungsi pengambilan keputusan dimana proses
dilakukan dengan cara memilih salah satu pilihan secara langsung dari beberapa pilihan
yang ada. Hal ini merupakan kelebihan dari fungsi case - of dibandingkan dengan If - True -
Else karena tidak perlu membuat beberapa proses pengambilan keputusan. Logika Switch
merupakan stuktur percabangan yang akan memeriksa suatu variabel, lalu menjalankan
perintah-perintah yang sesuai dengan kondisi yang mungkin terjadi untuk variabel tersebut.
Struktur Switch ini mirip dengan struktur IF yang ditulis berulang. Katakan kita ingin
membuat sebuah program yang akan menampilkan kata dari angka 0-5, sehingga terdapat 6
kemungkinan yang terjadi. Jika menggunakan struktur IF, maka kita akan membutuhkan 6
perulangan.
Bagaimana cara Switch case pada php bekerja? berikut ini penjelasan lebih lanjut
mengenai bagaimana proses Switch dapat mengeksekusi perintah yang dijalankan. a.
Pertama program akan memeriksa nilai dari variabel pada Switch.
b. Selanjutnya program akan mengeksekusi masing-masing case apakah sesuai dengan
nilai variabel yang diberikan.
c. Apabila nilai variabel terdapat pada salah satu case maka proses eksekusi akan
dihentikan dengan perintah break.
d. Apabila nilai variabel tidak terdapat pada salah satu case maka proses akan berakhir
pada perintah default.

Perbedaan yang mendasar dalam penggunaan Switch case dan if else adalah kondisi
ekspresi, jika pada if mampu menampung lebih dari satu kondisi maka pada Switch case
sebaliknya, yaitu hanya dapat menampung satu kondisi saja.
Tetapi dalam pernyataannya, penggunaan Switch case hanya mampu menangani case
yang dapat dieksekusi secara bersamaan, sederhananya penggunaan ini seperti memberikan
kondisi OR pada if.

128
Penggunaan Switch case pada php ini sebenarnya memiliki satu kelebihan
dibandingkan dengan menggunaan if else, yaitu dalam mengeksekusi kondisi lebih cepat,
tetapi kekurangannya adalah Switch case tidak bisa menampung lebih dari nilai kondisi
didalam satu case. program akan memeriksa nilai yang diberikan pada variabel, lalu program
akan mengeksekusi masing-masing case, apakah memenuhi nilai yang sudah ditentukan, jika
ya maka pernyataan akan di proses, sedangkan jika variabel tidak memiliki nilai yang sesuai
pada masing-masing case maka program akan mengeksekusi perintah default, atau lebih
mirip else pada if else.

8. Standar dan Format Penulisan Switch Case pada PHP


Menurut PSR-2 tentang Coding Style Guide dijelaskan beberapa ketentuan penulisan
Switch case pada PHP yaitu:
a. Switch case harus menggunakan kurung kurawa ({} – Curly Brackets), tidak boleh
menggunakan semi colon (:);
b. Keyword case harus menjorok 1 indent (saya pribadi 1 x tab) dibanding keyword
Switch;
c. Dalam blok case, keyword break harus ditulis lebih menjorok (panjang indent sama
dengan indent pada keyword case), dan sejajar dengan statement diatas nya;
d. Jika tidak menggunakan break dan terdapat statement pada block case maka harus
diberi comment yang menandakan bahwa block tersebut tidak menggunakan break.

Aturan Penulisan Struktur Switch dalam PHP


Seperti yang terlihat dalam contoh sebelumnya, struktur Switch terdiri dari beberapa bagian,
berikut format dasar penulisan Switch dalam PHP:
Switch ($var)
{
case value1: statement1; break; case value2:
statement2; break;
}

Setelah kata kunci Switch, kita harus mencantumkan variabel yang akan diperiksa
nilainya didalam tanda kurung, lalu memulai block Switch dengan kurung kurawal.
Tiap kondisi yang mungkin terjadi dicantumkan setelah kata kunci case, lalu diikuti
dengan nilai yang akan dibandingkan dengan nilai variabel Switch. Jika kondisi sesuai, maka
baris program statement akan dijalankan. Kata kunci break digunakan untuk keluar dari
Switch, sehingga PHP tidak perlu memeriksa case berikutnya.
Alur program untuk Switch akan dieksekusi dari baris pertama sampai terakhir. Kata
kunci break memegang peranan penting untuk menghentikan Switch.
Perhatikan contoh kode PHP berikut:
◼ Teknologi Informasi Kesehatan III 129
Gambar 4.17 Penggunaan Switch...case
Program diatas akan memeriksa nilai dari $a, dan memberikan output tergantung
kepada nilai $a tersebut. Jika sekilas dilihat, maka keluaran program adalah: “Angka Satu”
sesuai dengan nilai variabel $a. Akan tetapi, jika anda menjalankan program diatas, PHP akan
memberikan output berupa:

Angka Satu Angka Dua Angka Tiga


Apa yang terjadi? Hal ini terkait dengan bagaimana PHP menjalankan proses Switch.
Ketika program dijalankan, PHP pertama kali akan memeriksa case 0, yaitu apakah $a
sama dengan 0, jika tidak, PHP akan lanjut ke case 1, dan memeriksa apakah $a sama dengan
1. Jika iya, maka PHP akan menjalankan echo “Angka Satu”, beserta seluruh perintah
program pada case-case dibawahnya. Hal ini mungkin terkesan aneh, namun adakalanya
proses seperti inilah yang dibutuhkan.
Namun, untuk kasus diatas, kita ingin mengistruksikan kepada PHP bahwa setelah case
ditemukan, maka Switch harus berhenti.
Untuk instruksi ini, kita harus menggunakan kata kunci break. Instruksi break
memberitahu PHP untuk segera keluar dari Switch, dan tidak menjalankan case lainnya.
Berikut adalah kode program Switch kita setelah ditambahnya keyword break:

130
Gambar 4.18 Penggunaan Switch...case

Apabila dijalankan program diatas :

Gambar 4.19 Tampilan program Penggunaan Switch...case

Selain kata kunci break, PHP menyediakan kata kunci default untuk alur Switch. Kata
kunci ini berfungsi seperti ELSE di dalam struktur IF, yakni kondisi dimana seluruh case untuk
Switch tidak ada yang cocok. Kata kunci default ini diletakkan di akhir dari Switch.
Untuk contoh kita diatas, saya akan menambahkan bagian default sebagai perintah
yang akan dijalankan jika nilai dari variabel $a duluar dari angka 0-5. Berikut kode PHP nya:
PHP membolehkan kita menjalankan satu statement saja untuk case yang berlainan,
seperti contoh kode PHP berikut ini:

◼ Teknologi Informasi Kesehatan III 131


Gambar 4.20 Penggunaan Switch...case

Hasilnya:

Gambar 4.21 Tampilan program Penggunaan Switch...case

Didalam kode diatas, saya menyatukan beberapa case ke dalam 1 statement.


Penulisan case untuk struktur Switch menyesuaikan dengan jenis tipe data yang akan
diuji. Sampai dengan bagian ini, saya hanya menggunakan contoh case untuk variabel
dengan tipe angka, namun jika anda menggunakan Switch untuk tipe data string, maka kita
harus menggunakan tanda kutip untuk case.
Berikut contoh kode Switch PHP untuk tipe data string:

132
Gambar 4.22 Penggunaan Switch...case

Bila dijalankan program diatas:

Gambar 4.23 Tampilan Penggunaan Switch...case

Perbedaan Antara struktur IF dengan Switch


Walaupun memiliki tujuan yang hampir sama, namun struktur IF dan Switch memiliki
perbedaan yang mendasar.
Didalam struktur Switch, kondisi logika hanya akan diperiksa satu kali saja, yaitu pada
awal perintah Switch, dan hasilnya dibandingkan dengan setiap case. Akan tetapi didalam
struktur if, setiap kondisi akan selalu diperiksa. Sehingga jika anda memiliki struktur
percabangan yang banyak. Struktur Switch akan lebih cepat dieksekusi.
Namun disisi lain. Switch memiliki keterbatasan dalam jenis operasi perbandingan yang
dapat dilakukan. Operasi perbandingan didalam Switch terbatas untuk hal-hal sederhana
seperti memeriksa nilai dari sebuah variable.
Struktur Switch tidak biasa digunakan untuk percabangan program dengan operasi
yang lebih rumit seperti membandingkan 2 variabel. Kita tidak bisa menggunakan Switch
untuk membuat program menentukan nilai terbesar seperti contoh pada if sebelum ini.
Sehingga untuk kebanyakan kasus, kita akan sering menggunakan IF dibandingkan Switch.

◼ Teknologi Informasi Kesehatan III 133


Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Apa yang dimaksud dengan pengambilan keputusan?


2) Sebutkan beberapa macm bentuk percabangan If!
3) Apa yang dimaksud dengan percabangan Switch-case?
4) Bagaimana cara Switch mengeksekusi perintah?
5) Jelaskan Perbedaan antara sruktur IF dengan Switch!

Tes 1
Jawablah Pertanyaan dibawah ini dengan benar!

1) Buatlah script PHP sederhana untuk menentukan predikat nilai ujian!


2) Buatlah scrip PHP sederhana untuk menerjemahkan hari!

Topik 2 Algoritma Pengulangan


A. KONSEP DASAR DAN PENGERTIAN

Pengulangan menyatakan suatu tindakan atau langkah yang dijalankan beberapa kali.
Pengulangan atau disebut sebagai looping adalah instruksi khusus dalam bahasa
pemrograman dan algoritma yang digunakan untuk mengulang beberapa perintah sesuai
134
dengan jumlah yang telah ditentukan. Salah satu yang dipelajari di algoritma dan
pemrograman dasar adalah pengulangan atau istilah lainnya looping, bukan hanya di
algoritma saja, ternyata konsep looping ini digunakan juga di berbagai bahasa pemrograman
dan konsep dasarnya adalah algoritma pengulangan. Pekerjaan mengulang-ulang apabila
dikerjakan manusia mungkin membosankan dan melelahkan, tetapi komputer mampu
melakukan pekerjaan secara berulang-ulang atau pekerjaan yang sama dengan cepat tanpa
kenal lelah dan bosan.
Kapan instruksi pengulangan harus digunakan? Manfaatnya jelas lebih efektif, Instruksi
pengulangan digunakan manakala program atau bagian program terindikasi bisa
menggunakan proses pengulangan. Sebagai contoh sederhana. misalkan untuk kasus
program untuk menampilkan angka 1 sampai 500 atau bahkan sampai 1000, atau program
untuk mencetak tulisan tertentu dalam jumlah tertentu. Sebenarnya bisa saja tidak
menggunakan pengulangan, namun kurang efektif walaupun hasil outputnya bisa saja sama.

B. JENIS – JENIS PERULANGAN DALAM PHP

PHP memiki beberapa pernyataan loop, yaitu:


1. for – loop blok kode sesuai jumlah yang ditentukan
2. foreach – loop blok kode untuk setiap elemen dalam array
3. While – loop blok kode selama kondisi benar
4. do…while – loop blok kode satu kali, dan kemudian mengulangi loop selama kondisi

C. PENGERTIAN DAN STRUKTUR PERULANGAN FOR DALAM PHP

For loop digunakan jika kita sudah tahu berapa kali script harus dijalankan. Struktur
perulangan (atau dalam bahasa inggris disebut dengan loop) adalah instruksi program yang
bertujuan untuk mengulang beberapa baris perintah. Dalam merancang perulangan kode
program, kita setidaknya harus mengetahui 3 komponen, yaitu kondisi awal dari perulangan,
perintah program yang akan diulang, serta kondisi akhir dimana perulangan akan berhenti.

1. Perulangan FOR.
Penulisan dasar format perulangan for pada PHP adalah sebagai berikut:

-for (start; condition; increment)


{
-statemen;
}

Penjelasan:
◼ Teknologi Informasi Kesehatan III 135
a. Start adalah kondisi pada saat awal perulangan. Biasanya kondisi awal ini digunakan
untuk membuat dan memberikan nilai kepada variabel counter yang digunakan untuk
mengontrol perulangan. Misalkan, kita akan membuat variabel counter $i, maka untuk
kondisi start ini, kita juga harus memberikan nilai awal untuk variabel $i, misalnya
dengan 1, maka $i=1.
b. Condition adalah kondisi yang harus dipenuhi agar perulangan dijalankan. Selama
kondisi ini terpenuhi, maka PHP akan terus melakukan perulangan. Biasanya variabel
counter digunakan untuk mengatur akhir perulangan. Misalkan kita ingin
menghentikan perulangan jika variabel $i telah mencapai nilai 20, maka pada bagian
condition ini kita membuat perintah $i<=20, yang berarti selama nilai $i kurang atau
sama dengan 20, terus lakukan perulangan.
c. Increment adalah bagian yang digunakan untuk memproses variabel counter agar bisa
memenuhi kondisi akhir perulangan. Biasanya, pada bagian inilah kita akan membuat
kondisi dari variabel counter.
d. Statement adalah bagian kode program yang akan diproses secara terus-menerus
selama proses perulangan berlangsung. Untuk statement ini, kita membuat blok
program di antara tanda kurung kurawal ({ dan }) sebagai penanda bahwa bagian di
dalam kurung kurawal inilah yang akan dikenai proses perulangan.

Sebagai contoh sederhana untuk perulangan for, saya akan membuat program PHP
untuk menampilkan 10 baris kalimat “Mahasiswa RMIK suka belajar PHP”. Berikut adalah
kode program yang digunakan:

Gambar 4.24 Penggunaan for

Apabila Source Code atau sintax diatas dijalankan maka akan menghasilkan perulangan
seperti dibawah ini :

136
Gambar 4.25 tampilan program Penggunaan for

Sebagai contoh lagi, kita akan membuat perulangan untuk menampilkan angka 1-10 kedalam
web browser, berikut kode PHP yang digunakan:

Gambar 4.26 Penggunaan for

Jika anda menjalankan kode tersebut, maka di dalam web browser akan tampil urutan angka
dari 1 sampai dengan 10.

◼ Teknologi Informasi Kesehatan III 137


Gambar 4.27 Tampilan program Penggunaan for

Sebagai kondisi awal dari perulangan tersebut adalah $i= 1, dimana saya memberikan
nilai 1 kepada variabel $i. Variabel $i inilah yang akan menjadi counter atau penghitung dari
perulangan for.
Untuk kondisi akhir, saya membuat $i <= 10, jadi selama variabel $i bernilai kurang
atau sama dengan 10, maka perulangan akan terus dijalankan.

Sebagai increment, saya membuat $i++, dimana instruksi ini sama dengan $i=$i+1.
instruksi ini akan dijalankan pada setiap perulangan, sehingga dengan kata lain, setiap proses
perulangan, $i akan bertambah 1 angka.
Selain berfungsi sebagai counter, variabel $i juga dapat digunakan dalam proses
perulangan, sehingga dengan membuat perintah echo $i, maka dalam setiap perulangan,
kita bisa menampilkan nilai $i pada saat itu.
Sebagai contoh lain, saya ingin membuat perulangan untuk menampilkan angka 0-50,
namun untuk kelipatan 5, seperti: 0.5.10..dst, sampai dengan 50.

138
Gambar 4.28 Penggunaan for

Perbedaan penulisan struktur for diatas dibandingkan contoh sebelumnya adalah pada
bagian increment, dimana saya membuat kondisi increment yang menaik sebanyak 5 angka
setiap perulangannya ($i=$i+5). Sehingga variabel counter, $i akan bertambah sebanyak 5
pada setiap perulangan.
Sehingga bila kita jalankan akan menghasilkan sebagai berikut :

Gambar 4.29 Penggunaan for

Kita juga bisa membuat perluangan dengan kondisi mundur, seperti contoh kode PHP
berikut ini:

Gambar 4.30 Penggunaan for

◼ Teknologi Informasi Kesehatan III 139


Di dalam kode tersebut, saya memulai nilai awal dari angka $i= 20, membuat
perulangan selama $i >= 1, dan pada setiap perulangan, nilai $i akan dikurangi 1 angka ($i–).
Dengan kondisi tersebut, maka variabel counter $i akan dikurangi 1 pada setiap perulangan.

Gambar 4.31 Tampilan program Penggunaan for

2. Infinity Loop
Ketika3 membuat kondisi akhir dari perluangan for, kita harus memperhatikan kapan
kondisi akhir tersebut dipenuhi. Jika kondisi akhir tidak pernah terpenuhi, maka perulangan
akan berjalan selamanya. Hal ini dikenal dengan infinity loop.
Seperti yang terjadi untuk kode seperti berikut ini:

140
Gambar 4.32 Tampilan program Penggunaan infinity loop

Jika Anda menjalankan kode tersebut, proses perulangan akan berjalan terus menerus,
sehingga untuk menghentikannya kita harus menutup paksa web browser.
Pengertian Nested Loop (Perulangan Bersarang).
Nestedloop adalah istilah pemrograman yang berarti membuat perulangan didalam
perulangan. Perhatikan contoh program berikut:

Gambar 4.33 Tampilan program Penggunaan nested loop

Dalam contoh program diatas, kita membuat perulangan didalam perulangan. Counter
$j digunakan untuk perulangan dalam (inner loop), dan Counter $i digunakan didalam
perulangan luar (outer loop).
Nestedloop ini biasanya digunakan dalam program yang membutuhkan pengaksesan
kompleks, seperti array 2 atau 3 dimensi. Dan Code program diatas apabila dijalankan akan
menghasilkan sebagai berikut:

Gambar 4.34 Tampilan program Penggunaan infinity loop


◼ Teknologi Informasi Kesehatan III 141
3. Alternatif lain dalam penulisan perulangan for dalam PHP
PHP memiliki alternative penulisan kode program perulangan tanpa menggunakan
tanda kurung kurawal sebagai penanda blok program, yaitu dengan mengganti dengan
endfor. Perbadaannya dengan penulisan for dengan kurung kurawal adalah penanda blok
yang menggunakan tanda titik dua (:) dan pada akhir blok dengan perintah endfor.
Coba berikut ini adalah contoh sintax for dengan endfor.

Gambar 4.35 Penggunaan for dalam PHP

Code program diatas adalah contoh penggunaan endfor diakhir program dengan
menggunakan (:) , atau tanpa tanda kurung kurawal sebagai penanda blok program. Dan bila
kita eksekusi akan menghasilkan urutan angka 1…s/d …15 sebagai berikut;

Gambar 4.36 Tampilan program Penggunaan for dalam PHP

Bila kita rangkum instruksi for yang telah kita pelajari dalam bahasa PHP ini
membutuhkan syarat yaitu kita telah mengetahui berapa kali perulangan akan dilakukan
pada saat penulisan program.

142
4. Perulangan for-each
Loop foreach bekerja hanya pada array dan digunakan untuk looping pada setiap item
dari array,. Looping foreach dapat dipakai indexed-array dan associative array. Untuk
associative array, akan terdapat pasangan kunci dan nilai.
Seperti yang telah kita bahas pada tutorial tentang tipe data array: Mengenal Tipe Data
Array dan Cara Penulisan Array dalam PHP, setiap array memiliki pasangan key dan value.
Key adalah ‘posisi’ dari array, dan value adalah ‘isi’ dari array.
Struktur dasar perulangan foreach adalah:

-foreach ($nama_array as $value)


{
-statement (….$value….)
}

Penjelasan :
• $nama_array adalah nama dari array yang telah didefenisikan sebelumnya.
• $value adalah nama ‘variabel perantara’ yang berisi data array pada perulangan
tersebut. Anda bebas memberikan nama untuk variabel perantara ini, walaupun pada
umumnya banyak programmer menggunakan $value, atau $val saja.

Berikut adalah contoh perulangan foreach :

Gambar 4.37 enggunaan foreach


Pada contoh diatas, saya mendefenisikan variabel array $nama dengan format singkat,
dan tanpa mendefenisikan key secara tertulis. Variabel $val merupakan variabel perantara
dalam contoh diatas. Perulangan tersebut akan diulang sebanyak data yang terdapat di
dalam array, sehingga kita tidak perlu harus menghitung seberapa banyak perulangan yang
harus dilakukan.
◼ Teknologi Informasi Kesehatan III 143
Coba kita jalankan code program diatas, dan hasilnya seperti berikut:

Gambar 4.38 Tampilan Program Penggunaan foreach

Jika Anda membutuhkan nilai key dari array untuk dapat diproses, maka PHP
menyediakan bentuk kedua dari perulangan foreach, dengan format dasar penulisan sebagai
berikut:

-foreach ($nama_array as $key => $value)


{
Statemen ($key…..$value…)
}

Perbedaan dengan format sebelumnya, disini PHP menyediakan variabel perantara


kedua, yaitu variabel $key. Variabel $key ini menampung nilai key dari array.
Berikut adalah contoh penggunaannya:

144
Gambar 4.39 Tampilan Program Penggunaan foreach

Bila program dijalankan hasilnya seperti dibawah ini :

Gambar 4.40 Tampilan Program Penggunaan foreach

Variabel array $nama saya defenisikan menggunakan key yang berbeda-beda. Pada
perulangan foreach, saya membuat variabel perantara $kunci =>$isi, sehingga didalam
perulangan, variabel $kunci akan berisi key dari array, dan variabel $isi akan berisi nilai dari
array.
Proses menampilkan dan memproses array akan lebih mudah dengan menggunakan
perulangan foreach dibandingkan perulangan dasar seperti for. Terlebih lagi kita tidak perlu
mencari tau seberapa banyak perulangan harus dilakukan, karena perulangan foreach akan
otomatis berhenti pada data terakhir dari array.

◼ Teknologi Informasi Kesehatan III 145


5. Perulangan While
a. While – loop blok kode selama kondisi benar.
Loop ini mengeksekusi blok kode selama kondisi yang ditentukan benar.
Untuk situasi dimana kita membutuhkan kondisi perulangan yang tidak dapat
dipastikan berapa kali perulangan akan dilakukan, maka kita tidak bisa menggunakan
perulangan for.
PHP (dan juga bahasa pemograman lain) menyediakan stuktur perulangan while untuk
kondisi perulangan dimana banyaknya perulangan tidak dapat dipastikan pada saat
penulisan program. Misalkan kita ingin membuat program tebak angka, dimana user akan
menebak 1 angka dari 1 sampai 10. Untuk kondisi ini, kita tidak dapat mengetahui berapa
kali user akan ’mencoba’ untuk menebak angka tersebut. Bisa saja user mencoba sebanyak
1, 5, atau 10 kali sebelum angka tersebut berhasil diterka.
Atau misalkan kita ingin membuat program menemukan kata tertentu di dalam sebuah
kalimat yang dimasukkan oleh user. Banyak kata dalam kalimat tidak bisa kita tentukan pada
saat pembuatan program (karena akan diinput oleh user pada saat program berjalan), maka
kita tidak bisa menentukan seberapa banyak perulangan yang harus dilakukan untuk mencari
kata tersebut.

b. Struktur dasar perulangan while adalah sebagai berikut


While (condition)
{
statement; statement;
}

Penjelasan:
▪ Condition adalah kondisi yang harus dipenuhi agar perulangan berlangsung. Kondisi
ini mirip seperti dalam perulangan for. Selama condition bernilai TRUE, maka
perulangan akan terus dilakukan. Condition ini akan diperiksa pada tiap perulangan,
dan hanya jika hasilnya FALSE, maka proses perulangan berhenti.
▪ Statement adalah kode program yang akan diulang. Kita bisa membuat beberapa
kode program untuk menampilkan perintah seperti echo, atau perintah yang lebih
kompleks. Namun di dalam bagian ini harus ada baris program yang digunakan sebagai
’penghenti’ perulangan. Misalkan pada bagian condition kita menggunakan variabel
counter $i, maka di bagian statement harus ada baris program yang membuat
condition bernilai FALSE, atau kalau tidak proses perulangan tidak akan pernah
berhenti (infinity loop).
▪ Tanda kurung kurawal diperlukan untuk membatasi blok program yang akan diulang.
Jika statement hanya terdiri dari 1 baris, maka tanda kurung kurawal tidak diperlukan.
Sebagai pembahasan, saya akan menampilkan ulang contoh kode program sebelumnya,
yakni:

146
Gambar 4.41 Penggunaan while

Gambar 4.42 Tampilan program Penggunaan while

Pada baris ke-2 saya membuat sebuah variabel $i, dan memberikan nilai 1. Variabel $i
inilah yang akan digunakan sebagai counter untuk kondisi while.
Setelah penulisan while, selanjutnya didalam tanda kurung adalah condition yang
harus dipenuhi agar perulangan berjalan. Saya membuat kondisi ($i <= 10) sebagai penanda
akhir while, yang berarti selama variabel $i bernilai kurang dari 10, maka lakukan
perulangan.
Penting untuk diperhatikan adalah logika pemograman untuk condition. While ($i <=
10) juga berarti bahwa jika nilai variabel $i = 11, maka perulangan akan berhenti. Di dalam

◼ Teknologi Informasi Kesehatan III 147


kode program, kita harus membuat sebuah baris statement yang digunakan untuk terus
menambahkan nilai $i supaya nilai $i bisa mencapai angka lebih dari 10 untuk menghentikan
perulangan.
Setelah membuat beberapa baris kode echo untuk menampilkan angka ke web
browser pada baris ke-5 dan 6, saya menambahkan kode $i=$i+1 pada baris ke-7 Baris inilah
yang akan menambahkan nilai variabel counter $i sebanyak 1 angka pada tiap perulangan,
sehingga pada perulangan ke 10, nilai $i akan menjadi 11. Dan kondisi while akan
menghasilkan FALSE, sehingga proses perulangan berhenti.
Kesalahan dalam memahami logika while sering menghasilkan perulangan yang akan
memproses secara terus menerus (infinity loop).
Anda juga bebas menentukan awal dari variabel counter $i, misalnya untuk mulai dari
angka 100 dan mundur ke belakang seperti contoh berikut:

Gambar 4.43 Penggunaan while

148
Gambar 4.44 Tampilan Program Penggunaan while

Perulangan while tersebut akan menghasilkan angka menurun dari 100 sampai dengan
0, dimana pada setiap perulangan nilai 100 akan dikurangi dengan 8.

c. Penulisan Nested Loop untuk While


Walaupun struktur while agak jarang digunakan untuk nested loop, anda bisa
membuat perulangan bersarang dengan struktur while, seperti contoh berikut ini:

Gambar 4.45 Penggunaan while

◼ Teknologi Informasi Kesehatan III 149


Gambar 4.46 Tampilan program Penggunaan while

Dalam kode diatas, saya membuat perulangan yang sama seperti contoh nested loop
pada tutorial perulangan for, dimana kode diatas akan menampilkan angka 0-9 sebanyak 9
angka.
Jika Anda membandingkan dengan struktur for untuk hasil yang sama, perulangan for
akan ’lebih’ mudah dipahami dibandingkan perulangan while diatas.

d. Cara Penulisan Alternatif Struktur Perulangan While


Sebagai cara penulisan alternatif, PHP menyediakan penulisan blok while yang
biasanya menggunakan tanda kurung kurawal dengan endwhile.
Berikut adalah contoh penulisan source code alternative struktur while dalam PHP:

Gambar 4.47 Tampilan program Penggunaan while

150
Untuk penulisan alternatif ini, kita mencoba mengganti tanda kurung kurawal untuk
menandai blok while dengan tanda titik dua (:) pada awal perulangan, dan memberikan
perintah endwhile di akhir blok, sekarang kita lihat hasil eksekusinya.

Gambar 4.48 Tampilan program Penggunaan while

Setelah mempelajari struktur perulangan for, foreach dan while. PHP masih
menyediakan 1 buah struktur perulangan dasar lainnya, yakni perulangan do-while yang
akan kita bahas selanjutnya.

6. Do……While

a. Pengertian dan Struktur do…..while dalam PHP do…while – loop blok kode satu kali, dan
kemudian mengulangi loop selama kondisi
benar.
Perulangan while dan do-while pada dasarnya hampir sama. Perbedaan terletak pada
’lokasi’ pengecekan kondisi perulangan. Dalam struktur while, pengecekan untuk kondisi
perulangan di lakukan di awal, sehingga jika kondisi tidak terpenuhi, maka perulangan tidak
akan pernah dijalankan. Namun pada perulangan do-while, pengecekan kondisi akan
dilakukan di akhir perulangan, sehingga walaupun kondisi adalah FALSE, perulangan akan
tetap berjalan minimal 1 kali.

Sebagai perbandingan, perhatikan contoh struktur while berikut ini:

◼ Teknologi Informasi Kesehatan III 151


Gambar 4.49 Penggunaan while

Kode program diatas tidak akan menampilkan apa-apa, karena kondisi while ($i<=10)
sudah menghasilkan nilai FALSE pada awal program (karena kita sudah mendefenisikan nilai
$i=1000, pada baris pertama)
Namun jika kode diatas kita ubah menjadi do-while, maka berikut hasilnya:

Gambar 4.50 Penggunaan do-while


Program diatas akan menampilkan”1000 Akan tampil di browser”. Hal ini terjadi
karena pada struktur do-while, perulangan program akan tampil setidaknya 1 kali walaupun
kondisi while menghasilkan FALSE.

152
Gambar 4.51 Tampilan program Penggunaan do-while

b. Struktur do-while
Penulisan struktur do-while mirip dengan struktur while, namun kita menambahkan
perintah do di awal struktur. Berikut adalah format dasar penulisan struktur do-while dalam
PHP:

do {
Statement;
Statement;
} while (condition);

Penjelasan:
Setelah perintah do, di dalam blok kurung kurawal adalah statement. Statement
adalah kode program yang akan diulang. Kita bisa membuat beberapa kode program untuk
menampilkan perintah seperti echo, atau perintah yang lebih kompleks. Namun di dalam
bagian ini harus ada baris program yang digunakan sebagai ’penghenti’ perulangan.
Condition adalah kondisi yang harus dipenuhi agar perulangan berlangsung. Selama
condition bernilai TRUE, maka perulangan akan terus dilakukan. Condition ini akan diperiksa
pada tiap perulangan, dan hanya jika hasilnya FALSE, maka proses perulangan berhenti.
Anda juga bisa menggunakan struktur do-while untuk perulangan bersarang (nested loop)
seperti pada contoh perulangan for dan while.
Sama seperti perulangan while, dalam perancangan perulangan do-while ini kita harus
memahami alur logika program yang dibuat. Karena tidak seperti perulangan for dimana
jumlah perulangan telah di tentukan di awal, untuk struktur do-while banyak perulangan di
tentukan pada saat program mencapai kondisi FALSE. Kesalahan dalam alur logika akan
membuat PHP tidak pernah berhenti memproses perulangan. Sebagai contoh sederhana
perulangan do-while, berikut adalah kode perulangan untuk menampilkan angka 1 sampai
dengan 10 pada web browser:

◼ Teknologi Informasi Kesehatan III 153


Gambar 4.52 Penggunaan do-while

Kita coba jalankan program diatas:

Gambar 4.53 Tampilan Program Penggunaan do-while


Kita coba dengan do-while kelipatan 5 menurun:

154
Gambar 4.54 Penggunaan do-while

Hasilnya:

Gambar 4.55 Tampilan Program Penggunaan do-while

Anda juga bisa mencoba praktek menggunakan struktur do-while untuk perulangan
bersarang (nested loop) seperti pada perulangan for dan while.
Sama seperti perulangan while, dalam perancangan perulangan do-while ini kita harus
memahami alur logika program yang dibuat. Karena tidak seperti perulangan for dimana
jumlah perulangan telah di tentukan di awal, untuk struktur do-while banyak perulangan di
tentukan pada saat program mencapai kondisi FALSE. Kesalahan dalam alur logika akan
membuat PHP tidak pernah berhenti memproses perulangan.
◼ Teknologi Informasi Kesehatan III 155
Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Apa yang dimaksud dengan algoritma perulangan?


2) Jelaskan bagian-bagian algoritma perulangan!!
3) Apa perbedaan penggunaan struktur perulangan while dengan do while?
4) Apa maksud perintah continue dan break pada perulangan?
5) Struktur perulangan yang manakah yang digunakan untuk melakukan suatu lompatan
ke suatu pernyataan berlabel yang ditandai dengan tanda “ : “?

Ringkasan
Proses pengambilan keputusan adalah operasi yang digunakan untuk menyelesaikan
masalah-masalah yang berhubungan dengan kondisi benar atau salah dari suatu pernyataan.
Bentuk pernyataan tersebut berupa perbandingan antara dua buah nilai atau lebih dengan
menggunakan operator pembanding.
Bentuk algoritma pengambilan keputusan bila diimplementasikan dalam bahasa PHP
secara garis besar menyediakan 2 (dua) pernyataan / percabangan yang terkait dengan
seleksi untuk diambil keputusan, yaitu pernyataan if dan Switch.
Statement if digunakan untuk melakukan proses percabangan didalam program. Atau
dengn kata lain bahwa Percabangan if..else digunakan untuk pengujian sebuah kondisi. Jika
kondisi yang diuji tersebut terpenuhi, maka program akan menjalankan
pernyataanpernyataan tertentu.
Percabangan Switch-case, adalah fungsi pengambilan keputusan dimana proses
dilakukan dengan cara memilih salah satu pilihan secara langsung dari beberapa pilihan
yang ada. Hal ini merupakan kelebihan dari fungsi case - of dibandingkan dengan If - True -
Else karena tidak perlu membuat beberapa proses pengambilan keputusan. Logika Switch
merupakan stuktur percabangan yang akan memeriksa suatu variabel, lalu menjalankan
perintah-perintah yang sesuai dengan kondisi yang mungkin terjadi untuk variabel tersebut.
Pengulangan menyatakan suatu tindakan atau langkah yang dijalankan beberapa kali.
Pengulangan atau disebut sebagai looping adalah instruksi khusus dalam bahasa
pemrograman dan algoritma yang digunakan untuk mengulang beberapa perintah sesuai
dengan jumlah yang telah ditentukan. Salah satu yang dipelajari di algoritma dan
pemrograman dasar adalah pengulangan atau istilah lainnya looping, bukan hanya di
algoritma saja, ternyata konsep looping ini digunakan juga di berbagai bahasa pemrograman
dan konsep dasarnya adalah algoritma pengulangan.

156
PHP memiki beberapa pernyataan loop, yaitu:
1. for – loop blok kode sesuai jumlah yang ditentukan
2. foreach – loop blok kode untuk setiap elemen dalam array
3. While – loop blok kode selama kondisi benar
4. do…while – loop blok kode satu kali, dan kemudian mengulangi loop selama kondisi

Tes 2
Jawablah Pertanyaan dibawah ini dengan tepat!

1) Buatlah script PHP sederhana untuk menentukan bilangan ganjil!


2) Buatlah scrip PHP sederhana untuk menentukan bilangan prima!

Kunci Jawaban Tes


1) Script PHP untuk menetukan Predikat nilai ujian
<?php
$nama = "Ahmad Abdul";
$nilai = 87 ;

◼ Teknologi Informasi Kesehatan III 157


If($nilai >= 85)
{
$predikat="Sangat Memuaskan";
}
elseif ($nilai>= 70)
{
$predikat="Memuaskan";
}elseif ($nilai>=60)
{
$predikat="Cukup";
}elseif($nilai>=50)
{
$predikat="Kurang";
}else {
$predikat="Sangat Kurang";
}
echo"<br> Nama Siswa : <b>$nama</b><br>Nilai angka
<b>$nilai</b> dengan predikat <b>$predikat</b>";
?>

2) Script PHP untuk menerjemahkan hari


<?php
$nama_hari = date("l");
Switch ($nama_hari)
{
case "Sunday" :

print("Minggu");
break; case
"Monday" :
print("Senin");
break; case
"Tuesday" :
print("Selasa");
break;
case
"Wednesday" :
print("Rabu");
158
break;
case
"Thursday" :
print("Kamis");
break;
case
"Friday" :
print("Jumat");
break;
default :
print("Sabtu");
}
?>

Tes 2

1) Menampilkan bilangan ganjil 1-100


<?php
For ($i=1;$i<=100;$i++) {
if($i%2==1)
{
echo $i."<br>"; //Menampilkan bilangan ganjil
}
}
?>

2) Menampilkan bilangan prima 1-50


<?php
for ($i=1; $i <= 50 ; $i++) {
$t = 0;
for ($j=1; $j <= $i ; $j++) {
if ($i % $j == 0)
{
$t++;
}
}

◼ Teknologi Informasi Kesehatan III 159


if ($t == 2) {
echo "".$i.",";
}
}
?>

160
Glosarium
Expression : Ekspresi logika
Statement : Perintah yang akan dijalankan
Start : Kondisi pada saat awal perulangan
Increment : Bagian yang digunakan untuk memproses variabel counter agar
bisa memenuhi kondisi akhir perulangan
Source Code : Kumpulan pernyataan atau deklarasi bahasa pemrogramman
komputer yang ditulis dan dapat di baca manusia. Source code
memungkinkan programmer untuk berkomunikasi dengan
komputer menggunakan beberapa perintah yang telah terdefinisi

Switch-Case : Merupakan pernyataan yang dirancang untuk pengambilan


keputusan yang melibatkan banyak alternatif. Setiap cabang akan
dijalankan jika syarat nilai konstanta terpenuhi dan default akan
dijalankan jika semua cabang di atasnya tidak terpenuhi.

While : Perulanangan while digunakan untuk mengeksekusi blok kode


selama suatu kondisi bernilai benar.

◼ Teknologi Informasi Kesehatan III 161


Daftar Pustaka
Sismoro, H. 2016. Pengantar Logika Informatika, Algoritma dan Pemrograman Komputer.
Yogyakarta: ANDI.

Munir, R. dan Lidya, L. 2016. Algoritma dan Pemrograman Dalam Bahasa Pascal, C dan C++.
Informatika. Bandung : Informatika.

Solichin, Achmad S.Kom. 2009. Pemrograman Web dengan PHP dan MySQL. Jakarta :
Universitas Budi Luhur.

Kadir, A. 2012. Algoritma Menggunakan C dan C++. Yogyakarta : ANDI Publisher

https://www.duniailkom.com/tutorial-belajar-php-pengertian-dan-cara-penulisanperulangan-
dalam-php/

https://ernaencekz.wordpress.com/2010/01/31/struktur -pengulangan-algoritma/

https://m3ymeol.wordpress.com/2009/04/26/percabangan-perulangan-dan-array-dalamphp/

162
Bab 5
ALGORITMA SORTING DAN
ALGORITMA PENCARIAN DATA
Subinarto, S.Kom, M.Kom.

Pendahuluan

B dengan kemajuan zaman yang menjadikan teknologi sebagai hal penting untuk ahasa
pemrograman semakin banyak dipelajari oleh banyak orang. Hal ini terkait
menunjang kemajuan. Bagi pembaca yang ingin mempelajari bahasa pemrograman, hal
dasar yang harus dipahami adalah algoritma pemrograman tersebut. Untuk mengerti apa itu
algoritma pemrograman, silahkan simak pembahasan di bawah ini.
Dalam matematika dan ilmu komputer, algoritma adalah urutan atau langkah-langkah
untuk penghitungan atau untuk menyelesaikan suatu masalah yang ditulis secara berurutan.
Sehingga, algoritma pemrograman adalah urutan atau langkah-langkah untuk menyelesaikan
masalah pemrograman komputer.
Dalam pemrograman, hal yang penting untuk dipahami adalah logika kita dalam
berpikir bagaimana cara untuk memecahkan masalah pemrograman yang akan dibuat.
Sebagai contoh, banyak permasalahan matematika yang mudah jika diselesaikan secara
tertulis, tetapi cukup sulit jika kita terjemahkan ke dalam pemrograman. Dalam hal ini,
algoritma dan logika pemrograman akan sangat penting dalam pemecahan masalah. Pada
bab ini akan dijelaskan mengenai algoritma sorting dan algoritma pencarian data.

◼ Teknologi Informasi Kesehatan III 163


Topik 1 Algoritma Sorting
A. PENGERTIAN ALGORITMA SORTING

Pengertian Algoritma Sorting adalah kumpulan langkah sistematis atau secara


berurutan untuk memperoleh hasil yang diinginkan. Salah satu contoh dari algoritma untuk
langkah ini adalah Sorting (pengurutan). Sorting dapat didefinisikan sebagai pengurutan
sejumlah data berdasarkan nilai tertentu. Pengurutan dapat dilakukan dari nilai terkecil ke
nilai terbesar (ascending) atau sebaliknya. Sorting dapat dibedakan menjadi dua yaitu
Comparation Sort dan Non-Comparation Sort.

1. Comparasion Sort
Comparasion Sort adalah pengurutan dengan pembandingan, ini adalah algoritma yang
dalam proses pengurutannya melakukan pembandingan antar data. Adapun yang termasuk
algoritma ini antara lain :
▪ Bubble Sort
▪ Selection Sort
▪ Insertion Sort
▪ Merge Sort
▪ Quick Sort

2. Non-Comparasion Sort
Sedangkan Non-Comparasion Sort yaitu pengurutan tanpa pembandingan, algoritma
ini adalah algoritma pengurutan dimana dalam prosesnya tidak melakukan perbandingan
antar data. Adapun yang termasuk jenis algoritma ini adalah :
▪ Radix Sort, dan
▪ Counting sort

B. ALGORITMA SORTING COMPARATION SORT

1. Bubble Sort
Bubble Sort adalah salah satu algoritma untuk sorting data, atau kata lainnya
mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending atau
Descending). Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan
dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus
sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada
perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-
masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.

164
Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun
yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada
berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas
dipakai pada pengurutan gelembung.
Algoritma bubble sort merupakan salah satu algoritma pengurutan yang paling simple,
baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang
proses pembandingan antara tiap-tiap elemen array dan menukarnya apabila urutannya
salah. Pembandingan elemen-elemen ini akan terus diulang hingga tidak perlu dilakukan
penukaran lagi. Algoritma ini termasuk dalam golongan algoritma comparison sort, karena
menggunakan perbandingan dalam operasi antar elemennya. Berikut ini adalah gambaran
dari algoritma bubble sort.
Algoritma Bubble Sort ini merupakan proses pengurutan yang secara berangsur-angsur
berpindah ke posisi yang tepat karena itulah dinamakan Bubble yang artinya gelembung.
Algoritma ini akan mengurutkan data dari yang terbesar ke yang terkecil (ascending) atau
sebaliknya (descending).
Secara sederhana, bisa didefenisikan algoritma Bubble Sort adalah pengurutan dengan
cara pertukaran data dengan data disebelahnya secara terus menerus sampai dalam satu
iterasi tertentu tidak ada lagi perubahan.

Struktur Algoritma Bubble Sort


▪ Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai
maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya
tidak sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan
ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya
untuk urutan descending (A-Z).
▪ Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan
ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
▪ Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n.
Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan
ke-
1. mulai dari data ke-1 dgn data ke-2, dst.
▪ Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi.

Untuk belajar algoritma Bubble Sort ini kita hanya perlu memahami cara yang
digunakan untuk mengurutkan data, sederhananya algoritma ini menggunakan
perbandingan dalam operasi antar elemennya. Di bawah ini merupakan gambaran dari
algoritma Bubble Sort dengan array “3 1 4 2 8”.
Proses pertama

◼ Teknologi Informasi Kesehatan III 165


(3 1 4 2 8) menjadi (1 3 4 2 8)
(1 3 4 2 8) menjadi (1 3 4 2 8)
(1 3 4 2 8) menjadi (1 3 2 4 8)
(1 3 2 4 8) menjadi (1 3 2 4 8)

Proses kedua
(1 3 2 4 8) menjadi (1 3 2 4 8)
(1 3 2 4 8) menjadi (1 2 3 4 8)
(1 2 3 4 8) menjadi (1 2 3 4 8)
(1 2 3 4 8) menjadi (1 2 3 4 8)

Proses ketiga
(1 2 3 4 8) menjadi (1 2 3 4 8)
(1 2 3 4 8) menjadi (1 2 3 4 8)
(1 2 3 4 8) menjadi (1 2 3 4 8)
(1 2 3 4 8) menjadi (1 2 3 4 8)

Jika kita perhatikan proses diatas, para proses kedua data sudah terurut dengan benar.
Tetapi algoritma Bubble Sort tetap berjalan hingga proses kedua berakhir. Proses ketiga
masih terus berjalan karena pada algoritma Bubble Sort maksud terurut itu adalah tidak ada
satupun penukaran pada suatu proses. Proses ketiga ini dilakukan untuk verifikasi data.
Algoritma Bubble Sort ini mempunyai kelebihan dan kekurangan, untuk kelebihannya
metode ini merupakan metode paling sederhana untuk mengurutkan data. Selain
sederhana, algoritma Bubble Sort mudah dipahami. Sementara itu, kekurangannya terletak
pada efisiensi. Bubble Sort ini merupakan metode pengurutan yang tidak efisien karena
ketika mengurutkan data yang sangat besar akan sangat lambat prosesnya. Selain itu, jumlah
pengulangan akan tetap sama jumlahnya meskipun data sudah cukup terurut.

2. Selection Short.
Pengertian dari selection sort adalah mencari elemen yang tepat untuk diletakkan di
posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut
ditemukan, Selection Sort Membandingkan elemen yang sekarang dengan elemen yang
berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil
dari elemen sekarang maka dicatat posisinya dan kemudian ditukar.
Pengurutan data dalam struktur data sangat penting untuk data yang beripe data
numerik ataupun karakter. Pengurutan dapat dilakukan secara ascending (urut naik) dan
descending (urut turun) Pengurutan (Sorting) adalah proses menyusun kembali data yang
sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur
menurut aturan tertentu. Metode ini memiliki konsep memilih data yang

166
maksimum/minimum dari suatu kumpulan data larik L, lalu menempatkan data tersebut ke
elemen paling akhir atau paling awal sesuai pengurutan yang diinginkan.
Data maksimum/minimum yang diperoleh, diasingkan ke tempat lain, dan tidak
diikutsertakan pada proses pencarian data maksimum/minimum berikutnya. Perhatikan
ilustrasi berikut : Misalkan ada sekumpulan data acak berjumlah n elemen yang disimpan di
dalam larik(array), akan diurut menaik, maka langkah-langkah yang harus dilakukan adalah :
mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Jika terdapat N
data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka:
Struktur algoritma pengurutan dengan metode selection sort adalah sebagai berikut :
▪ Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
▪ Jika pada posisi pos ditemukan data yang terkecil, tukarkan data diposisi pos dengan
data di posisi i jika k.
▪ Ulangi langkah 1 dan 2 dengan j = j + i sampai dengan j = N-1, dan seterusnya sampai j
= N - 1.

Bila diketahui data awal berupa: 44 55 12 42 94 18 6 67, maka langkah per langkah
pengurutan dengan metode selection sort adalah sebagai berikut:
Tabel langkah demi langkah pengurutan dengan metode Selection Sort.

43 56 13 42 95 18 5 68 Data Awal
5 56 13 42 95 18 43 68 Tukarkan data ke-1 dengan data ke-7
5 13 56 42 95 18 43 68 Tukarkan data ke-2 dengan data ke-3
5 13 18 42 95 56 43 68 Tukarkan data ke-3 dengan data ke-6
5 13 18 42 95 56 43 68 Data ke-4 tidak ditukarkan
5 13 18 42 43 56 95 68 Tukarkan data ke-5 dengan data ke-7
5 13 18 42 43 56 95 68 Data ke-6 tidak ditukarkan
5 13 18 42 43 56 68 95 Tukarkan data ke-7 dengan data ke-8
5 13 18 42 43 56 68 95 Data setelah terurut

Penjelasan:
▪ Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam
sebuah
list
▪ Menukarkan nilai ini dengan elemen pertama list
▪ Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua

◼ Teknologi Informasi Kesehatan III 167


▪ Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah
diurutkan, yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada
saat awal, dan bagian list yang elemennya akan diurutkan.

3. Insertion Sort
Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap
elemen data pada pisisinya dengan cara melakukan perbandingan dengan data – data yang
ada. Inde algoritma dari metode insertion sort ini dapat dianalogikan sama seperti
mengurutkan kartu, dimana jika suatu kartu dipindah tempatkan menurut posisinya, maka
kartu yang lain akan bergeser mundur atau maju sesuai kondisi pemindahanan kartu
tersebut. Dalam pengurutan data, metode ini dipakai bertujuan untuk menjadikan bagian sisi
kiri array terurutkan sampai dengan seluruh array diurutkan.
Penganalogian Insertion Sort dengan pengurutan kartu. Berikut menjelaskan
bagaimana algoritma Insertion Sort bekerja dalam pengurutan kartu, Anggaplah kita ingi
mengurutkan satu set kartu dari kartu yang bernilai paling kecil hingga yang paling besar.
▪ Dimulai dengan posisi tangan kosong, dan semua kartu berada diatas meja. Dan
anggaplah kita akan menyusun kartu ke tangan kiri kita.
▪ Mengamil kartu pertama dari meja dan meletakannya ke tangan kiri.
▪ Mengambil kartu kedua dan membandingkannya dengan kartu yang sudah ada di
tangan kiri.
▪ Jika kartu yang diambil dari meja memenuhi syarat perbandingan, maka kartu
tersebut akan diletakan didepan kartu yang dibandingkan, serta kartu yang lain yang
telah dibandingkan akan bergeser mundur (ke belakang).

Proses ini akan berlangsung sampai semua kartu akan terurutkan dengan benar sesuai
criteria pengurutannya.
Demikian juga halnya dalam pengurutan data. Jika data sudah ada, maka pengurutan
dimulai dengan mengambil satu data dan membandingkannya dengan data-data yang ada
didepannya. Jika data yang diambil memenuhi syarat perbandingan, maka data yang diambil
tersebut akan diletakan di depan data yang dibandingkan, kemudian data-data yang
dibandingkan akan bergeser mundur.

Catatan : Dalam hal pengurutan data dengan metode insertion sort ini, data yang
diambil pertama adalah data kedua, kemudian data yang diambil akan dibandingkan dengan
data – data yang ada disebelah kiri / data sebelumnya (data-data sebelum data yang
diambil). Jika proses tersebut selesai, maka akan dilanjutkan dengan data-data selanjutnya
(data ke-3, data ke-4… dan seterusnya). Proses akan berlangsung sampai data – data
terurutkan dengan benar.
Berikut adalah simulasi Algoritma Insertion Sort. Jika digambarkan secara singkat,
maka algoritma Insertion sort ini dapat digambar sebagai berikut.

168
Gambar 5.1 Simulasi Insertion Sort

Dari gambaran proses pengurutan/ sorting data di atas dapat diketahui bagaimana
datadata tersebut berpindah posisi dari satu index ke index lain dalam satu array. Untuk
detail proses pengurutan diatas, dapat disimak melalui detail simulasi berikut.
Data awal : 5, 2, 4, 6, 1, 3
Jumlah Index = 6 dimulai dari 0 s/d 5
Anggaplah index adalah ‘I’,
Untuk setiap proses pengurutan data, perbandingan data dimulai dari index kedua (dalam
hal ini i=1)

Proses I: i=1, x=1; j=0 x<j à2<5?


— true =2, 5, 4, 6, 1, 3

Proses II i=2, j=1, x=2 x<j à 4<5 — true = 2, 4, 5, 6, 1, 3


j=j-1, Jika benar x=x-1 x<j à4<2 — false = 2, 4, 5, 6, 1, 3

Proses III I=3, j=2, x=3 x<j à6<5 — false = 2, 4, 5, 6, 1, 3 j=j-1 jika sebuah proses bernilai false,
maka proses tersebut tidak akan dilanjutkan, karena secara otomatis data yang ada
disebelah kiri semuanya sudah terurut dengan benar.

◼ Teknologi Informasi Kesehatan III 169


Proses IV i=4, j=3, x=4 x<j à1<6 — true = 2, 4, 5, 1, 6, 3 j=j-1,
jika benar maka x=x-1 x<j à 1<5 — true = 2, 4, 1, 5,6, 3 j=j-1 ,
jika benar maka x=x-1 x<j à1<4 — true = 2, 1, 4, 5,6, 3 j=j-1,
jika benar maka x=x-1 x<j à 1<2 — true = 1, 2, 4, 5,6, 3

Proses V i=5, j=4, x=5 x<j à3<6 — true = 1, 2, 4, 5,3, 6 j=j-1,


jika benar maka x=x-1 x<j à3<5 — true = 1, 2, 4, 3, 5, 6 j=j-1,
jika benar maka x=x-1 x<j à3<4 — true = 1, 2, 3, 4, 5, 6 j=j-1,
jika benar maka x=x-1 x<jà3<2 — false = 1, 2, 3, 4, 5, 6 j=j-1

4. Merge Sort
Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang dirancang
untuk memenuhi kebutuhan pengurutan atas suatu rangkaian data yang tidak
memungkinkan untuk ditampung dalam memori komputer karena jumlahnya yang terlalu
besar. Algoritma ini ditemukan oleh John von Neumann pada tahun 1945.
Algoritma pengurutan data merge sort dilakukan dengan menggunakan cara divide and
conquer yaitu dengan memecah kemudian menyelesaikan setiap bagian kemudian
menggabungkannya kembali. Pertama data dipecah menjadi 2 bagian dimana bagian
pertama merupakan setengah (jika data genap) atau setengah minus satu (jika data ganjil)
dari seluruh data, kemudian dilakukan pemecahan kembali untuk masing-masing blok
sampai hanya terdiri dari satu data tiap blok.
Setelah itu digabungkan kembali dengan membandingkan pada blok yang sama apakah
data pertama lebih besar daripada data ke-tengah+1, jika ya maka data ke-tengah+1
dipindah sebagai data pertama, kemudian data ke-pertama sampai ke-tengah digeser
menjadi data kedua sampai ke-tengah+1, demikian seterusnya sampai menjadi satu blok
utuh seperti awalnya. Sehingga metode merge sort merupakan metode yang membutuhkan
fungsi rekursi untuk penyelesaiannya.
Dengan hal ini deskripsi dari algoritma dirumuskan dalam 3 langkah berpola divide-
andconquer. Berikut menjelaskan langkah kerja dari Mergesort.
• Divide
Memilah elemen – elemen dari rangkaian data menjadi dua bagian.
• Conquer
Conquer setiap bagian dengan memanggil prosedur mergesortsecararekursif
• Kombinasi
Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkanrangkaian
data berurutan

170
Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian
yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut
menandakan bahwa bagian tersebut telah terurut sesuai rangkaian.

Contoh 1:
Penerapan atas sebuah larik/array sebagai data sumber yang akan diurutkan {3, 9, 4, 1, 5, 2}
adalah sebagai berikut:
a. pertama kali larik tersebut dibagi menjadi dua bagian, {3, 9, 4} dan {1, 5, 2}
b. Kedua larik kemudian diurutkan secara terpisah sehingga menjadi {3, 4, 9} dan {1, 2, 5}
c. Sebuah larik baru dibentuk yang sebagai penggabungan dari kedua larik tersebut {1},
sementara nilai-nilai dalam masing larik {3, 4, 9} dan {2, 5} (nilai 1 dalam elemen larik ke
dua telah dipindahkan ke larik baru)
d. langkah berikutnya adalah penggabungan dari masing-masing larik ke dalam larik baru
yang dibuat sebelumnya
e. {1, 2} ↔{3, 4, 9} dan {5}
f. {1, 2, 3} ↔ {4, 9} dan {5}
g. {1, 2, 3, 4}↔{9} dan {5}

h. {1, 2, 3, 4, 5}↔{9} dan {null}


i. {1, 2, 3, 4, 5, 9}↔{null}dan {null}

Contoh 2 :
Penerapan atas sebuah larik/array sebagai data sumber yang akan diurutkan {3, 9, 4, 1, 5, 2}
adalah sebagai berikut:

Gambar 5.2 Contoh Pengurutan Merge Sort

• Pertama kali larik tersebut dibagi menjadi dua bagian, {3, 9, 4} dan {1, 5, 2}

◼ Teknologi Informasi Kesehatan III 171


• Kedua larik kemudian diurutkan secara terpisah sehingga menjadi {3, 4, 9} dan {1, 2,
5}
• Sebuah larik baru dibentuk yang sebagai penggabungan dari kedua larik tersebut {1},
sementara nilai-nilai dalam masing larik {3, 4, 9} dan {2, 5} (nilai 1 dalam elemen larik
ke dua telah dipindahkan ke larik baru)
• Langkah berikutnya adalah penggabungan dari masing-masing larik ke dalam larik
baru yang dibuat sebelumnya.

5. Quick Sort
Algoritma quick sort diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1960,
dan dimuat sebagai artikel di “Computer Journal 5” pada April 1962. Quick sort adalah
algoritma sorting yang berdasarkan pembandingan dengan metoda divide-and-conqueror.
Disebut Quick Sort, karena Algoritma quick sort mengurutkan dengan sangat cepat.
Algoritma quick sort mengurutkan dengan sangat cepat, namun algoritma ini sangat
komplex dan diproses secara rekursif. Sangat memungkinkan untuk menulis algoritma yang
lebih cepat untuk beberapa kasus khusus, namun untuk kasus umum, sampai saat ini tidak
ada yang lebih cepat dibandingkan algoritma quick sort.
Quick Sort merupakan suatu algoritma pengurutan data yang menggunakan teknik
pemecahan data menjadi partisi-partisi, sehingga metode ini disebut juga dengan nama
partition exchange sort. Untuk memulai irterasi pengurutan, pertama-tama sebuah elemen
dipilih dari data, kemudian elemen-elemen data akan diurutkan diatur sedemikian rupa.
Strategi divide-and-conqueror digunakan di dalam quicksort.
Di bawah iniakan dijelaskan langkah-langkahnya :
▪ Pilih nilai pivot Kita ambil nilai di tengah-tengah elemen sebagai sebagai nilaidari
pivot tetapi bisa nilai mana saja.
▪ Partisi Atur ulang semua elemen sedemikian rupa, lalu semua elemen yang
lebihrendah daripada pivot dipindahkan ke sebelah kiri dari array/list dan
semuaelemen yang lebih besar dari pivot dipindahkan ke sebelah kanan dari array/list.
Nilai yang sama dengan pivot dapat diletakkan di mana saja dari array. Ingat, mungkin
array/list akan dibagi dalam bagian yang tidak sama.
▪ Urutkan semua bagian (kiri/kanan) Aplikasikan algoritma quicksort secararekursif
pada bagian sebelah kiri dan kanan.

Algoritma Partisi secara detail


Ada dua indeks i dan j dan pada awal algoritma partisi i menunjuk ke elemen pertama
dalam array dan poin j yang terakhir. Kemudian algoritma menggerakkan i ke depan, sampai
elemen dengan nilai yang lebih besar atau sama dengan pivot ditemukan. Indeks j bergerak
mundur, sampai elemen dengan nilai yang lebih rendah atau sama dengan pivot ditemukan.
Jika i ≤ j maka mereka bertukar dan saya langkah ke posisi berikutnya (i + 1), langkah-langkah
j dengan yang sebelumnya (j - 1).

172
Algoritma berhenti, ketika saya menjadi lebih besar dari j. Setelah partisi, semua nilai
sebelum elemen ke-i kurang atau sama dengan pivot dan semua nilai setelah elemen ke-j
lebih besar atau sama dengan pivot.

Kelebihan
Algoritma Quicksort memiliki kompleksitas O(n log n) dimana pada prakteknya lebih cepat
dari algoritma pengurutan lainnya.

Kekurangan
Pada kemungkinan terburuknya, algoritma Quicksort ini dapat memiliki kompleksitas O(n2).
Meskipun ini sangat langka terjadi.

C. NON-COMPORATION SORT

Pengurutan tanpa pembandingan (non comparison sort) adalah algoritma pengurutan


di mana dalam prosesnya tidak melakukan pembandingan antar data. Secara umum yang
proses yang dilakukan dalam metode ini adalah mengklasifikasikan data sesuai dengan
kategori terurut yang tertentu, dan dalam tiap kategori dilakukan pengklasifikasian lagi, dan
seterusnya sesuai dengan kebutuhan, kemudian subkategori-subkategori tersebut
digabungkan kembali, yang secara dilakukan hanya dengan metode sederhana
concatenation.
Secara kompleksitas, dalam berbagai kasus tertentu, algoritma tanpa pembandingan
ini dapat bekerja dalam waktu linier, atau dengan kata lain memiliki kompleksitas O(n). Yang
akan ditelaah lebih detail pada masing-masing algoritma, yaitu radix sort dan counting sort.
Salah satu kelemahan dari metode ini adalah selalu diperlukannya memori tambahan.

1. Radix Sort
Sebelum memulai membahas lebih lanjut, akan lebih baik jika diadakan penyamaan
persepsi mengenai istilah radix, dalam modul ini radix bermakna harafiah posisi dalam
angka. Di mana sederhananya, dalam representasi desimal, radix adalah digitnya. Ide dasar
dari metode Radix sort ini adalah mengkategorikan data-data menjadi sub kumpulan - sub
kumpulan data sesuai dengan nilai radix -nya, mengkonkatenasinya, kemudian
mengkategorikannya kembali berdasar nilai radix lainnya.
Dalam kenyataannya banyak sekali algoritma Radix sort yang berbeda-beda walaupun
ide dasarnya sama, ada yang menggunakan queue, ada yang menggunakan bantuan
algoritma pengurutan lain untuk mengurutkan data per kategori, ataupun menggunakan
rekursif.

◼ Teknologi Informasi Kesehatan III 173


Selain itu, ada 2 macam Radix sort berdasarkan urutan pemrosesan radix-nya, yaitu
secara LSD (Least Significant Digit) di mana pemrosesan dimulai dari radix yang paling tidak
signifikan, dan satu lagi secara MSD (Most Significant Digit), di mana pemrosesan dimulai
dari radix yang paling signifikan.
Namun dalam makalah ini yang dibahas adalah LSD radix sort, di mana langkah yang
dilakukan lebih sederhana dibanding dengan MSD radix sort yang dalam pemrosesannya
diperlukan penyimpanan track dari pemrosesan sebelumnya.
Agar relevan dengan topik utama makalah ini yang mengedepankan pengurutan tanpa
pembandingan, yang dibahas hanyalah radix sort yang dalam prosesnya hanya menggunakan
pengkategorian berulang, tanpa menggunakan bantuan algoritma pengurutan lain.

Implementasi Radix Sort


Contoh implementasi yang akan dilakukan adalah implementasi pada bilangan bulat positif
menggunakan salah satu algoritma pengurutan radixsort. Contohnya adalah pengurutan
sebuah kumpulan data bilangan bulat dengan jumlah digit maksimal3 :

Pertama kali, data dibagi-bagi sesuai dengan digit terkanan :

Tabel 5.1 Proses sorting

Hasil pengkategorian tersebut lalu digabung kembali dengan metode konkatenasi menjadi:

174
Kemudian pengkategorian dilakukan kembali, namun kali ini berdasar digit kedua atau digit
tengah, dan jangan lupa bahwa urutan pada tiap subkumpulan data harus sesuai dengan
urutan kemunculan pada kumpulan data.

Tabel 5.2 Proses sorting

Yang kemudian dikonkatenasi kembali menjadi

Kemudian langkah ketiga, atau langkah terakhir pada contoh ini adalah pengkategorian
kembali berdasar digit yang terkiri, atau yang paling signifikan:

Tabel 5.3 Proses Sorting

◼ Teknologi Informasi Kesehatan III 175


Yang kemudian dikonkatenasi lagi menjadi

Yang merupakan hasil akhir dari metode pengurutan ini. Di mana data telah terurut dengan
metode radix sort.

2. Counting Sort
Untuk dapat melakukan pengurutan dengan counting sort rentang nilai untuk
kumpulan data yang akan diurutkan harus diketahui, katakanlah k. Ide dasar dari counting
sort adalah menentukan, untuk setiap elemen x, jumlah elemen yang lebih kecil daripada x,
yang kemudian informasi ini digunakan untuk menentukan posisi x.
Contoh sederhana saja, jika terdapat 12 elemen yang lebih kecil daripada x, maka x
akan mendapatkan posisinya di posisi 13. Tentu saja, sedikit modifikasi harus dilakukan agar
metode ini dapat menangani kasus di mana terdapat elemen-elemen lain yang nilainya sama
dengan x. Dimana tentu saja kita tidak dapat menempatkan semua elemen yang nilainya
sama dengan x di posisi yang sama.

Implementasi Counting sort


Misal array data yang akan diurutkan adalah A. Counting sort membutuhkan sebuah array
Cberukuran k, yang setiap elemen C[i] merepresentasikan jumlah elemen dalam A yang
nilainya adalah i. Di array inilah penghitungan (counting) yang dilakukan dalam pengurutan
ini disimpan. Misal kita akan melakukan pengurutan pada array A sebagai berikut, dengan n
adalah 10 dan diasumsikan bahwa rentang nilai setiap A[i] adalah 1..5 : A
1 3 5 4 5 2 2 3 3 5

Dan array C setelah diinisialisasi adalah :


C
0 0 0 0 0

176
Kemudian proses penghitungan pun dimulai, proses ini linier, dilakukan dengan menelusuri
array A.
Langkah 1 : pembacaan pertama mendapat elemen A[1] dengan isi 1, maka C[1] ditambah 1.
A
1 3 5 4 5 2 2 3 3 5

C
1 0 0 0 0

Langkah 2 : pembacaan kedua mendapat elemen A[2] dengan isi 3, maka C[3] ditambah 1.
A
1 3 5 4 5 2 2 3 3 5

C
1 0 1 0 0

Langkah 3 : pembacaan ketiga mendapat elemen A[3] dengan isi 5, maka C[5] ditambah 1.
A
1 3 5 4 5 2 2 3 3 5

C
1 0 1 0 1

Langkah 4 : pembacaan keempat mendapat elemen A[4] dengan isi 4, maka C[4] ditambah 1.
A
1 3 5 4 5 2 2 3 3 5

C
1 0 1 1 1

Demikian dilakukan terus menerus hingga semua elemen A telah diakses. Hingga setelah
langkah ke 10 didapatkan array C sebagai berikut : C
1 2 3 1 3

Lalu array C diproses sehingga setiap elemen C, C[i] tidak lagi merepresentasikan jumlah
elemen dengan nilai sama dengan i, namun setiap C[i] menjadi merepresentasikan jumlah

◼ Teknologi Informasi Kesehatan III 177


elemen yang lebih kecil atau sama dengan i. Dan setelah proses tersebut dilakukan
didapatkan C sebagai berikut : C
1 3 6 7 10

Setelah C didapat dilakukan proses penempatan sesuai dengan posisi yang didapat.
Proses ini dilakukan dengan menelusuri kembali A dari belakang. Mengapa dari belakang?
Karena kita mengharapkan hasil pengurutan yang stable, yang akan sangat penting dalam
pengurutan data majemuk.
Dalam proses ini kita mengakses elemen A[i], kemudian memposisikannya di posisi
sebagaimana tercatat dalam C[A[i]], kemudian kita mengurangkan C[A[i]] dengan 1, yang
dengan jelas untuk memberikan posisi untuk elemen berikutnya dengan yang isinya sama
dengan A[i].
Proses ini memerlukan sebuah array bantu B yang ukurannya sama dengan array A,
yaitu n. Yang pada awalnya semua B[i] diinisialisasi dengan nil. B
- - - - - - - - - -

Langkah 1 : elemen A[10] adalah 5, maka karena C[5] adalah 10, maka B[10] diisi dengan 5,
dan C[5] dikurangi 1. A
1 3 5 4 5 2 2 3 3 5

B
- - - - - - - - - 5

C
1 3 6 7 9

Langkah 2 : elemen A[9] adalah 3, maka karena C[3] adalah 6, maka B[6] diisi dengan 3, dan
C[3] dikurangi 1. A
1 3 5 4 5 2 2 3 3 5

B
- - - - - 3 - - - 5

C
1 3 5 7 9

Langkah 3: elemen A[8] adalah 3, maka karena C[3] adalah 5, maka B[5] diisi dengan 3, dan
C[3] dikurangi 1.

178
A
1 3 5 4 5 2 2 3 3 5

B
- - - - 3 3 - - - 5

C
1 3 4 7 9

Langkah 4 : elemen A[7] adalah 2, maka karena C[2] adalah 3, maka B[3] diisi dengan 2, dan
C[2] dikurangi 1. A
1 3 5 4 5 2 2 3 3 5

B
- - 2 - 3 3 - - - 5

C
1 2 4 7 9

Demikian proses dilakukan hingga elemen A[1] selesai diproses, sehingga didapatkan hasil
akhir

B
1 2 2 3 3 3 4 5 5 5

Yang telah berupa array dengan elemen-elemennya terurut secara non-decreasing.

Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Apa yang dimaksud dengan algoritma sorting ?


2) Sebutkan metode pengurutan data!
3) Apa yang dimaksud dengan algoritma selection sort?
4) Apa perbedaan exchange sort dan bubble sort?
5) Jelaskan perbedaan Comparasion Sort dengan Non Comparasion Sort !
◼ Teknologi Informasi Kesehatan III 179
Tes 1
Jawablah Pertanyaan dibawah ini dengan tepat!

1) Diketahui array “22 10 15 3 8 2”, urutkan secara ascending menggunakan Bubble Sort!
2) Diketahui array “5, 1, 12, -5, 16, 2, 12, 14” urutkan secara ascending menggunakan
Selection Sort!

Topik 2 Algoritma Pencarian Data


180
A. KONSEP DASAR DAN PENGERTIAN

Algoritma pencarian dapat dijelaskan secara luas adalah sebuah algoritma yang
menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah
tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Sebagian besar
algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian. Himpunan
semua kemungkinan solusi dari sebuah masalah disebut ruang pencarian. Algortima
pencarian brute-force atau pencarian naif/uninformed menggunakan metode yang
sederhana dan sangat intuitif pada ruang pencarian, sedangkan algoritma pencarian
informed menggunakan heuristik untuk menerapkan pengetahuan tentang struktur dari
ruang pencarian untuk berusaha mengurangi banyaknya waktu yang dipakai dalam
pencarian.(Wikipedia).

Pengertian Searching
Pencarian (searching) merupakan proses fundamental dalam pengelolaan data. Proses
pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe
sama (baik bertipe dasar atau bertipe bentukan). Search algoritma adalah algoritma yang
menerima argument a dan mencoba untuk mencari record yang mana key-nya adalah
Algoritma bisa mengembalikan nilai record, atau pointer ke record. Record sendiri adalah tipe
data yang terdiri atas kumpulan variabel yang dapat berbeda tipenya. Setiap variabel disebut
field. Sequensial Search (penelusuran sequensial) yaitu proses mengunjungi melalui suatu
pohon dengan cara setiap simpul di kunjungi hanya satu kali yang disebut tree transversal /
kunjungan pohon. Sedangkan Binary Search adalah penelusuran pohon biner dimana data
yang dimasukkan atau yang sudah ada diurutkan terlebih dahulu.
Data dapat di simpan secara temporer dalam memori utama atau di simpan secara
permanen di dalam memori sekunder (tape atau disk). Di dalam memori utama, struktur
penyimpanan data yang umum adalah berupa larik atau tabel (array), sedangkan di dalam
memori sekunder berupa arsip (file). Aktivitas yang berkaitan dengan pengolahan data ini
sering di dahului dengan proses pencarian. Sebagai contoh, untuk mengubah (update) data
tertentu, langkah pertama yang harus dilakukan adalah mencari keberadaaan data tersebut
di dalam kumpulannya. Aktivitas yang awal sama juga dilakukan pada proses penambahan
(insert) data yang baru. Proses penambahan data dimulai dengan mencari apakah data yang
ditambahkan sudah terdapat di dalam kumpulan. Jika sudah dan mengasumsikan tidak boleh
ada duplikasi data maka data tersebut tidak perlu ditambahkan, tetapi jika belum ada, maka
tambahkan.
Algoritma pencarian yang akan dibicarakan dimulai dengan algoritma pencarian yang
paling sederhana yaitu pencarian beruntun atau Sequential Search sampai pada algoritma
pencarian yang lebih maju yaitu pencarian bagi dua (Binary Search).

◼ Teknologi Informasi Kesehatan III 181


Searching berarti pencarian, contoh suatu situs yang belum kita ketahui secara pasti
alamat yang dimiliki. Dalam melakukan searching biasanya kita gunakan search engine
sebagai mesin pembantu dalam pencarian situs tersebut. Search engine adalah sebuah
fasilitas (web) yang bisa mencari links dari situs lain. Ada berbagai macam search engine
yang bisa kita gunakan dalam searcing, yaitu ; yahoo, google, altavista, lycos, astaga, msn,
dan lain sebagainya.

B. JENIS-JENIS ALGORITMA SEARCHING.

1. Sequential Search
Disebut juga sebagai metode pencarian urut adalah metode pencarian yang paling
mudah. Adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri
semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan
terlebih dahulu. Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di
indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk
pencarian data sangat sebentar (minimal). Sedangkan kemungkinan terburuk (worst case)
adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga
waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal).
Sequential search memiliki proses sebagai berikut:
▪ Tentukan banyaknya data yang akan di olah, misal banyak data adalah N.
▪ Tentukan data apa yang akan dicari, misal data yang akan dicari adalah C.
▪ Deklarasikan sebuah counter untuk menghitung banyak data yang ditemukan, missal
counternya adalah K.
▪ Inisialisasikan K =0
▪ Lakukanlah perulangan sebanyak N kali
▪ Dalam tiap proses perulangan tersebut periksalah apakah data yang sedang diolah
sama dengan data yang dicari.
▪ Jika ternyata sama K=K+1
▪ Jika tidak, lanjutkan proses perulangan .
▪ Setelah proses perulangan berhenti, periksalah nilai K.
▪ Jika nilai K lebih dari 0, artinya data yang dicari ada dalam data /array dan tampilkan
nilai K ke layer sebagai jumlah data yang ditemukan.
▪ Jika nilai K=0, artinya data yang dicari tidak ditemukan dalam data / array dan
tampilkan ke layar bahwa data tidak ditemukan ▪ Proses selesai.

Dapat disimpulkan bahwa sequential search, akan mencari data dengan cara
membandingkannya satu-persatu dengan data yang ada. Prosesnya tentu saja akan singkat
jika data yang diolah sedikit, dan akan lama jika data yang diolah banyak. Disarankan proses
ini digunakan pada jumlah data yang sedikit saja.
182
Implementsi Sequential Search

Gambar 5.3 Implementasi Sequential search

Diketahui array {19 27 5 99 88 32 72}, proses di atas merupakan pencarian yang


ditemukan dan tidak ditemukan.
Pada proses yang ditemukan, data yang akan dicari adalah data {5}. Maka algoritma
sequential akan memproses pencarian data dimulai dari data ke-0 yaitu {19} sampai dengan
data ke-6 {72}. Jika proses pencarian sudah sampai pada data yang terakhir atau data ke-6
{72}, maka sequential search akan menghitung berapa jumlah data {5} yang ditemukan. Pada
contoh di atas data {5} terletak pada data ke-2, dan jumlahnya sebanyak 1.
Pada proses yang tidak ditemukan, data yang akan dicari adalah data {202}. Maka algoritma
sequential akan memproses pencarian data dimulai dari data ke-0 yaitu {19} sampai dengan
data ke-6 {72}. Jika proses pencarian sudah sampai pada data yang terakhir atau data ke-6
{72}, maka sequential search akan menghitung berapa jumlah data {202} yang ditemukan.
Pada contoh di atas data {202} tidak ditemukan pada array.

2. Binary Search
Binary Search adalah metode pencarian suatu data atau elemen di dalam suatu array
dengan kondisi data dalam keadaan terurut. Proses pencarian Binary Search hanya dapat
dilakukan pada kumpulan data yang sudah diurutkan terlebih dahulu. Jika terdapat N buah
data yang akan diolah, data yang dicari akan dibandingkan dengan data ke-N jika data ke-N
lebih besar dari data yang dicari maka akan dilakukan pembagian data menjadi dua bagian.
Kemudian ujung data pada setiap bagian dibandingkan lagi dengan nilai yang akan dicari.

Implementsi Binary Search


A = {2, 5, 8, 12, 15, 25, 37, 57}
◼ Teknologi Informasi Kesehatan III 183
Contoh 1 : cari = 12
Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = ( 1 + 8 ) div 2 = 4
A [Tengah] = A [4] = 12, berarti loop pertama data langsung ditemukan

Contoh 2 : cari = 15
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2 = 4
A [Tengah] = A [4] = 12 < cari = 15, berarti BatasAtas = Tengah + 1 = 4 + 1 = 5
Loop kedua : Tengah=(BatasAtas + BatasBawah) div 2=( 5 + 8 ) div 2=6
A [Tengah] = A [6] = 25 > cari = 15, berarti BatasBawah = Tengah – 1 = 6 – 1 = 5
Loop ketiga : Tengah=(BatasAtas + BatasBawah) div 2=( 5 + 5 ) div 2 = 5
A [Tengah] = A [5] = 15, berarti setelah loop ketiga, data ditemukan

Contoh 3 : cari = 10
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2=4
A [Tengah] = A [4] = 12 > cari = 10, berarti BatasBawah = Tengah – 1 = 4 – 1 = 3
Loop kedua : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 3 ) div 2=2
A [Tengah] = A [2] = 5 < cari = 10, berarti BatasAtas = Tengah + 1 = 2 + 1 = 3
Loop ketiga : Tengah=(BatasAtas + BatasBawah) div 2=( 3 + 3 ) div 2=3
A [Tengah] = A [3] = 8, berarti setelah loop ketiga, data tidak ditemukan

Untuk jumlah data sebanyak n, maka proses pembandingan maksimal sebanyak (log n) kali.
Untuk contoh di atas, jumlah data 8, maka proses pembandingan maksimal sebanyak 3 kali.

3. Interpolation Search
Proses pencarian data ini hampir sama dengan proses pencarian binary search,
pencarian ini juga dilakukan pada kumpulan data yang sudah urut. Akan tetapi jika pada
Binary Search kita membagi data menjadi 2 bagian tiap prosesnya, pada interpolation search
kita akan membagi data menurut rumus sebagai berikut:
Posisi = ( kunci – data[low] / data[high] – data[low] ) * ( high – low ) + low
– Jika data[posisi] > data yg dicari, high = pos – 1
– Jika data[posisi] < data yg dicari, high = pos + 1

Singkatnya proses pencarian interpolation search hampir mirip dengan proses


pencarian kata dikamus, yaitu kita mencari data yang dimaksud dengan cara memperkirakan
letak data.

Implementasi Interpolation Search

Contoh Kasus :
184
Kode Judul Pengarang
025 The C++ Programming James Wood
034 Mastering Delphi 6 Marcopolo
041 Professional C# Simon Webe
056 Pure JavaScript v2 Micheal Bolton
063 Advance JSP & Servlet David Dunn
072 Calculus Make it Easy Gunner Christian
088 Visual Basic 2005 Express Antonie
096 Artificial Live : Volume 1 Gloria Virginia

Gambar 5.4 Implementasi Sequential search

Penjelasan :

Contoh 1 :
Pencarian = 088
Low? 0
High? 8
Posisi = int(( ) / ( ) * (8 - 0) + 0) = [7]
Kode[7] = kunci pencarian, data ditemukan: Visual Basic 2005 Express

Contoh 2 :
Kunci Pencarian? 060
Low? 0
High? 8
Posisi = int((060 – 025) / (096 – 025) * (8 – 0) + 0) = [3]
Kunci[3] < kunci pencarian, maka teruskan
Low = 3 + 1 = 4
High = 8
Posisi = int((060 – 025) / (096 – 025) * (8 – 4) + 4) = [5]
Ternyata Kunci[5] adalah 063 yang lebih besar daripada 060. Data tidak ditemukan.

C. STRUTUR ALGORITMA SEARCHING.

1. Struktur Algoritma Pencarian berurutan menggunakan prinsip sebagai berikut :

◼ Teknologi Informasi Kesehatan III 185


o data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari
sampai data tersebut ditemukan atau tidak ditemukan.
o Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai
dengan jumlah data.
o Pada setiap pengulangan, dibandingkan data ke-i dengan yang dicari.
o Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir
pengulangan tidak ada data yang sama, berarti data tidak ada.
o Kelemahan pada kasus yang paling buruk, untuk N elemen data harus dilakukan
pencarian sebanyak N kali pula. Algoritma pencarian berurutan dapat dituliskan
sebagai berikut :
(1) i ← 0
(2) ketemu ← false
(3) Selama (tidak ketemu) dan (i <= N) kerjakan baris 4
(4) Jika (Data[i] = x) maka ketemu ← true, jika tidak i ← i + 1
(5) Jika (ketemu) maka i adalah indeks dari data yang dicari, jika data tidak
ditemukan
Variabel data;
For (init_awal, kondisi) {
Statemen yang dicari;
}

· Contoh dengan bahasa C++


#include <stdio.h> #include
<conio.h> void main(){ int data[8]
= {8,10,6,-2,11,7,1,100}; int cari;
int flag=0; printf("masukkan data
yang ingin dicari =
");scanf("%d",&cari); for(int
i=0;i<8;i++){ if(data[i] == cari)
flag=1;
}
if(flag==1) printf("Data ada!\n");
else printf("Data tidak ada!\n");
getch(); return 1;
}

Dari program diatas, terlihat bahwa dilakukan perulangan untuk mengakses semua
elemen array data satu persatu berdasarkan indeksnya.
186
• Program menggunakan sebuah variabel flag yang berguna untuk menadai ada atau
tidaknya data yang dicari dalam array data. Hanya bernilai 0 atau 1.
• Flag pertama kali diinisialiasasi dengan nilai 0.
• Jika ditemukan, maka flag akan diset menjadi 1, jika tidak ada maka flag akan tetap
bernilai 0.
• Semua elemen array data akan dibandingkan satu persatu dengan data yang dicari
dan diinputkan oleh user.

Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Apa yang dimaksud dengan algoritma pencarian data?


2) Sebut dan jelaskan macam-macam algoritma pencarian data!!
3) Tuliskan rumus algoritma interpolation search!
4) Jelaskan proses pencarian menggunakan binnary search!
5) Jelaskan struktur dari algoritma pencarian!

Ringkasan
Algoritma Sorting adalah kumpulan langkah sistematis atau secara berurutan untuk
memperoleh hasil yang diinginkan. Salah satu contoh dari algoritma untuk langkah ini adalah
Sorting (pengurutan). Sorting dapat didefinisikan sebagai pengurutan sejumlah data
berdasarkan nilai tertentu. Pengurutan dapat dilakukan dari nilai terkecil ke nilai terbesar
(ascending) atau sebaliknya.
Comparasion Sort adalah pengurutan dengan pembandingan, ini adalah algoritma yang
dalam proses pengurutannya melakukan pembandingan antar data. Adapun yang termasuk
algoritma ini antara lain :
▪ Bubble Sort
▪ Selection Sort
▪ Insertion Sort
▪ Merge Sort ▪ Quick Sort

◼ Teknologi Informasi Kesehatan III 187


Sedangkan Non-Comparasion Sort yaitu pengurutan tanpa pembandingan, algoritma
ini adalah algoritma pengurutan dimana dalam prosesnya tidak melakukan perbandingan
antar data. Adapun yang termasuk jenis algoritma ini adalah :
▪ Radix Sort, dan ▪ Counting sort

Pencarian (searching) merupakan proses fundamental dalam pengelolaan data. Proses


pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe
sama (baik bertipe dasar atau bertipe bentukan). Search algoritma adalah algoritma yang
menerima argument a dan mencoba untuk mencari record yang mana key-nya adalah
Algoritma bisa mengembalikan nilai record, atau pointer ke record.
Algoritma pencarian yang akan dibicarakan dimulai dengan algoritma pencarian yang
paling sederhana yaitu pencarian beruntun atau Sequential Search sampai pada algoritma
pencarian yang lebih maju yaitu pencarian bagi dua (Binary Search).

Tes 2
Pilihlah salah satu jawaban yang paling benar!

1) Diketahui array data [13, 16, 14, 21, 76, 21], cari data 21, 13, dan 15 menggunakan
metode sequential !
2) Diketahui array data [81, 76, 21, 18, 16, 13, 10, 7], cari data 18 menggunakan binnary
search!

188
Kunci Jawaban Tes
Tes 1
1) Jawaban sorting menggunakan Bubble Sort Proses
1:
22 10 15 3 8 2
22 10 15 3 2 8
22 10 15 2 3 8
22 10 2 15 3 8
22 10 2 15 3 8
22 2 10 15 3 8
2 22 10 15 3 8

Pengecekan dimulai dari data yang paling akhir, kemudian dibandingkan dengan data di
depannya,jika data didepannya lebih besar maka akan di tukar.
Proses 2:
2 22 10 15 3 8
2 22 10 15 3 8
◼ Teknologi Informasi Kesehatan III 189
2 22 10 3 15 8
2 22 3 10 15 8
2 3 22 10 15 8

pengecekan dilakukan sampai dengan data ke-2 karena data pertama pasti sudah
paling kecil.
Proses 3 :
2 3 22 10 15 8
2 3 22 10 8 15
2 3 22 8 10 15
2 3 8 22 10 15

Proses 4 :
2 3 8 22 10 15
2 3 8 22 15 10
2 3 8 15 22 10

Proses 5 :
2 3 8 15 22 10
2 3 8 15 10 22

Pengurutan berhenti.
Jawaban sorting menggunakan Selection Sort

190
Tes 2
1) Jawaban :
Nilai yang dicari: 21
Maka elemen yang diperiksa : 13 16 14 21
Index ketemu : 4
Nilai yang dicari: 13
Maka elemen yang diperiksa : 13
Index ketemu : 1
Nilai yang dicari: 15
Maka elemen yang diperiksa : 13 16 14 21 76 21 Index ketemu : 0
Algoritma dari proses Pencarian diatas adalah:
1. Tentukan i=1, Ketemu = 0.
2. Masukan Nilai X à nilai yang dicari.
3. Jika Nilai[i] <> X maka i=i+1, kembali kelangkah 2.
4. Jika Nilai[i] = X maka Ketemu =i.
5. Jika Ketemu = 0 maka Cetak “nilai X tidak ketemu”
6. Jika tidak (Ketemu <>0)Cetak “nilai X ketemu pada posisi Ketemu”

◼ Teknologi Informasi Kesehatan III 191


7. Selesai

2) Jawaban
Dicari adalah X=18.
Langkah 1:
Low = 1 dan High = 8
Elemen tengah Middle = (1+8) div 2 = 9 div 2 = 4

Langkah 2:
Larik[4] = X ? (18 = 18) true à X ditemukan, pencarian dihentikan.

Glosarium
Ascending : Mengurutkan data dari yang terkecil ke yang terbesar
Descending : Mengurutkan data dari yang terbesar ke yang terkecil
Divide : Memilah elemen-elemen dari rangkaian data menjadi
dua bagian.
Conquer : Setiap bagian dengan memanggil prosedur mergesort
secara rekursif
Kombinasi : Mengkombinasikan dua bagian tersebut secara rekursif
untuk mendapatkanrangkaian data berurutan
Algoritma Sorting : kumpulan langkah sistematis atau secara berurutan
untuk memperoleh hasil yang diinginkan
Algoritma Searching : algoritma yang menerima argument a dan mencoba
untuk mencari record yang mana key-nya adalah
Algoritma bisa mengembalikan nilai record, atau
pointer ke record

192
Daftar Pustaka
Sismoro, H. 2016. Pengantar Logika Informatika, Algoritma dan Pemrograman Komputer.
Yogyakarta: ANDI.

Munir, R. dan Lidya, L. 2016. Algoritma dan Pemrograman Dalam Bahasa Pascal, C dan C++.
Informatika. Bandung : Informatika.

Solichin, Achmad S.Kom. 2009. Pemrograman Web dengan PHP dan MySQL. Jakarta :
Universitas Budi Luhur.

Kadir, A. 2012. Algoritma Menggunakan C dan C++. Yogyakarta : ANDI Publisher

Raharja, B. 2016. Modul Pemrograman WEB (HTML, PHP, & MySQL. Edisi Ketiga Modula.

◼ Teknologi Informasi Kesehatan III 193


Bab 6
PENERAPAN ALGORITMA DALAM BAHASA
PEMROGRAMAN
Subinarto, S.Kom, M.Kom.

Pendahuluan
PHP adalah bahasa pemrograman script server-side yang didesain untuk pengembangan

web. Selain itu, PHP juga bisa digunakan sebagai bahasa pemrograman umum
(wikipedia).

194
PHP disebut bahasa pemrograman server side karena PHP diproses pada komputer server.
Hal ini berbeda dibandingkan dengan bahasa pemrograman client-side seperti JavaScript
yang diproses pada web browser (client).
Pada awalnya PHP merupakan singkatan dari Personal Home Page. Sesuai dengan
namanya, PHP digunakan untuk membuat website pribadi. Dalam beberapa tahun
perkembangannya, PHP menjelma menjadi bahasa pemrograman web yang powerful dan
tidak hanya digunakan untuk membuat halaman web sederhana, tetapi juga website populer
yang digunakan oleh jutaan orang seperti wikipedia, wordpress, joomla, dll.
Saat ini PHP adalah singkatan dari PHP: Hypertext Preprocessor, sebuah kepanjangan
rekursif, yakni permainan kata dimana kepanjangannya terdiri dari singkatan itu sendiri: PHP:
Hypertext Preprocessor.
PHP dapat digunakan dengan gratis (free) dan bersifat Open Source. PHP dirilis dalam
lisensi PHP License, sedikit berbeda dengan lisensi GNU General Public License (GPL) yang
biasa digunakan untuk proyek Open Source.

PHP (PHP: Hypertext Prepocessor) adalah salah satu bahasa pemrograman web yang
bersifat dinamis, dimana PHP adalah bahasa yang bisa disisipkan dengan sintaks HTML
sehingga dapat menciptakan teknologi web dinamis seperti sekarang ini. PHP merupakan
sebuah bahasa server-side untuk pemrograman web yang pada awalnya merupakan
program CGI yang di khususkan untuk menerima input melalui form yang di tampilkan
browser. PHP dikatakan bahasa server-side embedded script language maksudnya adalah
sintaks-sintaks dan perintah yang diberikan akan sepenuhnya dijalankan oleh server dan di
kirim ke komputer client berupa bahasa html.

◼ Teknologi Informasi Kesehatan III 195


Topik 1 Pengantar Pemrograman PHP
A. PENGENALAN PHP

PHP (PHP: Hypertext Prepocessor) adalah salah satu bahasa pemrograman web yang
bersifat dinamis, dimana PHP adalah bahasa yang bisa disisipkan dengan sintaks HTML
sehingga dapat menciptakan teknologi web dinamis seperti sekarang ini. PHP merupakan
sebuah bahasa server-side untuk pemrograman web yang pada awalnya merupakan program
CGI yang di khususkan untuk menerima input melalui form yang di tampilkan browser. PHP
dikatakan bahasa server-side embedded script language maksudnya adalah sintaks-sintaks
dan perintah yang diberikan akan sepenuhnya dijalankan oleh server dan di kirim ke
komputer client berupa bahasa html.
PHP diciptakan oleh Rasmus Lerdorf pertama kali tahun 1994. Pada awalnya PHP
adalah singkatan dari “Personal Home Page Tools”. Selanjutnya diganti menjadi FI (“Forms
Interpreter”). Sejak versi 3.0, nama bahasa ini diubah menjadi “PHP: Hypertext Prepocessor”
dengan singkatannya “PHP”. dan sekarang dikelola oleh The PHP Group. Situs resmi PHP
beralamat di http://www.php.net.
Kemudahan dan kepopuleran PHP sudah menjadi standar bagi programmer web di
seluruh dunia. Menurut wikipedia pada Februari 2014, sekitar 82% dari web server di dunia
menggunakan PHP. PHP juga menjadi dasar dari aplikasi CMS (Content Management System)
populer seperti Joomla, Drupal, dan WordPress.

196
Dikutip dari situs w3techs.com, (diakses pada 18 Desember 2014), berikut adalah
market share penggunaan bahasa pemrograman server-side untuk mayoritas website di
seluruh dunia:

Gambar 6.1 Data Penggunaan Bahasa Pemrograman

Dapat dilihat dari tampilan diatas bahwa mayoritas website modern saat ini
menggunakan PHP. PHP adalah bahasa pemrograman web yang paling banyak di gunakan
serta memiliki komunitas yang sangat banyak karena php mudah untuk dipelajari, selain itu
PHP adalah salah satu bahasa multi platform yang dapat berjalan di berbagai sistem operasi.
Kode PHP di simpan sebagai plain text dalam format ASCII sehingga bahasa PHP dapat ditulis
dengan berbagai text editor diberbagai sistem operasi.
Selain PHP, sebenarnya masih banyak lagi banyak pemrograman web dinamis seperti
phyton, ruby dan lain-lain, semuanya bisa digunakan dalam pembuatan teknologi web
dinamis, hanya saja tergantung kebutuhan, banyak website besar dibuat dengan tidak
menggunakan PHP sebagai bahasa web dinamis mereka, contohnya seperti google, twitter
dan mungkin masih banyak lagi, sampai disini pengenalan PHP semoga dapat bermanfaat.

B. MEMPERSIAPKAN PROGRAM PHP

1. Web Server
Web Server merupakan sebuah perangkat lunak dalam server yang berfungsi
menerima permintaan (request) berupa halaman web melalui HTTP atau HTTPS dari klien
yang dikenal dengan browser web dan mengirimkan kembali (response) hasilnya dalam
bentuk halamanhalaman web yang umumnya berbentuk dokumen HTML.
Beberapa Web Sever yang banyak digunakan di internet antara lain :
a. Apache Web Server (http://www.apache.org)

◼ Teknologi Informasi Kesehatan III 197


b. Internet Information Service, IIS (http://www.microsoft.com/iis)
c. Xitami Web Server (http://www.xitami.com)
d. Sun Java System Web Server
(http://www.sun.com/software/products/web_srvr/home_web_srvr.xml

2. Server Side Scripting


Server Side Scripting merupakan sebuah teknologi scripting atau pemrograman web
dimana script (program) dikompilasi atau diterjemahkan di server. Dengan server side
scripting, memungkinkan untuk menghasilkan halaman web yang dinamis.
Beberapa contoh Server Side Scripting (Programming) :
a. ASP (Active Server Page) dan ASP.NET
b. ColdFusion (http://www.macromedia.com/software/coldfusion)
c. Java Server Pages (http://java.sun.com/products/jsp/)
d. Perl (http://www.perl.org)
e. Phyton (http://www.python.org)
f. PHP (http://www.php.net)

Keistimewaan PHP
▪ Cepat
▪ Free
▪ Mudah dipelajari
▪ Multi-platform
▪ Dukungan technical-support
▪ Banyaknya komunitas PHP
▪ Aman

3. Instalasi Web Server Apache, PHP, dan MySQL dengan XAMPP


Tidak seperti kode HTML yang dapat langsung berjalan di web browser, halaman web
yang ditulis dengan PHP harus diproses dalam sebuah aplikasi yang dinamakan Web Server.
Web server inilah yang akan menerjemahkan kode PHP menjadi HTML dan mengirimnya ke
web browser untuk ditampilkan.
Dalam “dunia nyata”, kita harus menyewa web server agar kode PHP dapat diproses
dan diakses di internet. Namun aplikasi web server ini dapat diinstall di komputer lokal, dan
inilah yang akan kita install dalam modul kali ini.
Untuk menjalankan kode PHP, kita setidaknya membutuhkan 3 jenis program, yakni: a.
Aplikasi Web Server
b. Aplikasi PHP
c. Aplikasi Web Browser.
198
Untuk aplikasi web server, terdapat beberapa pilihan. Saat ini web server yang sering
digunakan adalah Apache, Nginx, dan Microsoft IIS. Apache dan Nginx merupakan aplikasi
open source dan dapat digunakan dengan gratis. Namun kali ini kita akan menjalankan PHP
menggunakan Apache, karena Apache masih menjadi aplikasi web server yang paling banyak
dipakai saat ini. Web Server Apache bisa di dapat di alamat:
http://mirror.reverse.net/pub/apache/httpd/binaries/win32/.
Aplikasi selanjutnya adalah PHP itu sendiri. PHP bekerja sebagai “penerjemah” di dalam web
server. PHP bisa di dapat di situs resminya dialamat:
http://windows.php.net/download/
Akan tetapi, proses instalasi web server Apache dan PHP secara terpisah akan membutuhkan
waktu yang cukup lama dan juga butuh pengetahuan tentang konfigurasi Apache. Berita
baiknya, sekarang terdapat banyak aplikasi yang membungkus Apache+PHP. Beberapa
diantaranya adalah XAMPP dan WAMP. Pada pembelajaran PHP ini kita akan menggunakan
XAMPP.

4. Cara Menginstall XAMPP


XAMPP adalah singkatan dari aplikasi dalam ‘paketnya’, yaitu: X (berarti cross-platform,
maksudnya tersedia dalam berbagai sistem operasi), Apache Web Server, MySQL, PHP dan
Perl. Dengan menginstall XAMPP, secara tidak langsung kita telah menginstall keempat
aplikasi tersebut.
Versi terbaru XAMPP dapat diakses dialamat
www.apachefriends.org/en/xamppwindows.html. silahkan anda mengunduh yang versi yang
terbaru. Anda juga boleh menggunakan versi portable yang memiliki ukuran file lebih kecil.
Sebagai contoh saja dibawah ini adalah tampilan dari website Apache Friend apabila
kita mau mengunduh XAMPP, mungkin saja ada sedikit berbeda tampilannya waktu anda
nanti akan mengunduhnya.

◼ Teknologi Informasi Kesehatan III 199


Gambar 6.2 Proses Instalasi Xampp

Setelah aplikasi installer XAMPP berhasil di unduh, langkah selanjutnya adalah menginstall
XAMPP.

Proses Instalasi XAMPP


Setelah selesai di download, selanjutnya tinggal jalankan file tersebut dengan melakukan klik
dua kali pada file tersebut.

Selama proses instalasi, Anda mungkin akan mendapatkan beberapa peringatan seperti
Windows menanyakan apakah Anda yakin ingin menginstall, dan lain sebagainya. Klik saja
“Yes” untuk melanjutkan.

XAMPP Setup Wizard akan memandu Anda melalui proses instalasi. Klik Next.

200
Gambar 6.3 XAMPP setup wizard

Pada jendela berikutnya Anda akan diminta untuk memilih komponen apa saja yang
ingin Anda install. Apache dan PHP secara otomatis akan terinstall maka keduanya tanda
ceklis tidak bisa dihilangkan, sedangkan untuk yang lainnya masih bisa disesuaikan dengan
kebutuhan Anda, namun untuk contoh kali ini pastikan Anda menceklis MySQL dan
PHPMyAdmin karena ini akan sangat berguna untuk Anda nantinya.

◼ Teknologi Informasi Kesehatan III 201


Gambar 6.4 Pilihan instalasi di XAMPP

Next, pilih folder lokasi yang Anda inginkan untuk menginstall XAMPP pada komputer
Anda, pada contoh ini kita coba untuk membuatnya di folder C:\Program Files\XAMPP.

202
Gambar 6.5 Memilih folder lokasi XAMPP

Pada jendela berikutnya, Anda akan ditanya apakah Anda ingin menginstall Bitnami for
XAMPP, ini merupakan tool gratis untuk memudahkan Anda menginstall WordPress, Drupal
dan Joomla. Pada contoh kali ini kita tidak menginstall Bitnami karena nantinya kita ingin
menginstall WordPress secara manual saja.

◼ Teknologi Informasi Kesehatan III 203


Gambar 6.6 Bitnami for XAMPP

Setelah semua pengaturan dipilih, XAMPP kini siap untuk di install ke komputer Anda. Klik
Next untuk melanjutkan.

204
Gambar 6.7 XAMPP selesai di install

Setelah XAMPP terinstall, Anda akan ditanya apakah Anda ingin memulai XAMPP
Control Panel, yang menyediakan sebuah antarmuka untuk menjalankan lingkungan
localhost Anda.
Anda bisa ceklis pada pilihan ini lalu klik Finish.

◼ Teknologi Informasi Kesehatan III 205


Gambar 6.8 XAMPP selesai di install

Control Panel secara otomatis akan terbuka, namun apabila tadi Anda tidak menceklis
pilihan, Anda bisa membukanya melalui folder XAMPP di komputer Anda, dan buka XAMPP
Control Panel sebagai gantinya.
Maka tampilan XAMPP Control Panel akan terbuka seperti berikut ini.

206
Gambar 6.9 XAMPP Control Panel

Sebelum memulai PHP yang harus di jadikan dasar memulai adalah menguasai
beberapa hal yang perlu saya sampaikan bahwa:
a. Saya asumsikan Anda telah mengenal dengan cukup baik komputer Anda, dan juga
bisa mengoperasikannya. Jadi Anda seharusnya sudah mengerti perbedaan file dan
direktori, bagaimana menyimpan file atau dokumen, bagaimana meng-copy file, dan
seterusnya.
b. Saya asumsikan Anda telah mengerti bagaimana membuka dan menggunakan salah
satu atau salah semua dari editor seperti Notepad++, EditPlus, Crimson Editor,
Dreamweaver, atau yang lainnya. Saya asumsikan juga, Anda telah mengerti
bagaimana membuat, mengedit, dan menyimpan suatu file dengan editor tersebut.
c. Saya asumsikan bahwa Apache, PHP, dan MySQL di komputer yang Anda pakai sudah
berjalan sebagaimana mestinya.
d. Saya asumsikan Anda telah mengerti bagaimana cara menggunakan Web Browser (IE,
Mozilla, Opera, dsb)
e. Saya asumsikan Anda telah mengenal dan mengerti dengan cukup baik tentang tag-
tag HTML dan juga bagaimana menggunakannya.

Anda harus ingat dan paham bahasa pemrograman sehingga sudah dapat
membedakan antara :
a. Tulisan nama, Nama dan NAMA
b. Koma (,), titik-koma (;) dan titik-dua (:)
c. Kutip-tunggal (‘) dan kutip-ganda (“)
◼ Teknologi Informasi Kesehatan III 207
d. Tulisan namamhs, nama_mhs dan nama mhs

Ada beberapa tag HTML yang perlu dikuasai sebelum belajar PHP, tag tersebut
diantaranya:
<html>
<head>
<title> Titelnya apa? </title>
</head>
<body>
<h1> Judulnya apa? </h1>
<p>paragraf </p> <b> tebal</b> <i>miring</i> <u>garis bawah</u>
<br> ganti baris </br>
</body>
</html>

C. STRUKTUR DASAR PHP

1. Komentar
Komentar adalah bagian dari skrip PHP yang tidak diterjemahkan oleh browser. Fungsi
Komentar dalam bahasa pemograman merupakan penjelasan-penjelasan yang dipergunakan
sebagai informasi mengenai fungsi-fungsi atau tag yang dibuat programmer agar orang lain
dapat mengerti maksud dari fungsi atau tag yang dibuat. Dalam bahasa pemograman web
dalam hal ini PHP juga memiliki tata cara penulisan komentar, komentar ini akan berada
dalam tag php dan tidak diproses karena bukan script yang diperlukan ketika dipublishkan.
Cara penulisan komentar pada PHP, dapat dilihat seperti berikut :
a. Komentar gaya bahasa C++ ( //) Untuk menggunakan komentar ini syaratnya adalah
kata-kata komentar harus dalam 1 baris. Contoh : //nama program : awalphpku.php =>
benar //nama program : awalphpku.php => salah seharusnya sebelum kata
awalphpku.php harus ada tanda (//)
b. Komentar gaya bahasa C (/*………*/) Komentar gaya bahasa C ini biasanya digunakan
jika membuat komentar yang lebih dari 1 baris. Contoh : /* nama program :
awalphpku.php*/
c. Komentar gaya Shell (#) Syaratnya sama seperti dengan komentar gaya bahasa C++,
harus berada dalam 1 baris.

208
2. Type data
Pada PHP, tipe data variabel tidak didefinisikan oleh programmer, akan tetapi secara
otomatis ditentukan oleh intepreter PHP. Namun demikian, PHP mendukung 8 (delapan)
buah tipe data primitif, yaitu:

a. Integer
Integer merupakan tipe bilangan bulat atau bilangan yang tidak memiliki nilai di
belakang koma, contoh bilangan integer adalah 100, 1283, 9999 dst. tipe data integer tidak
dapat di masukan karakter huruf dan juga tidak bisa di masukan nilai bilangan pecahan jika
bilangan pecahan di masukan maka akan terpotong hanya bilangan yang ada di depan koma
yang dapat masuk, contoh anda memiliki bilanga 555,23 lalu anda memasukan kedalam Tipe
Data integer maka yang akan masuk hanya 555, contoh penulisan variabel yang memiliki
Tipe Data Integer :
<?php
$a=100;
$b=50;
?>

b. Boolean
Tipe data yang selanjutnya adalah Tipe Data Boolean yang hanya memiliki 2 nilai yaitu
TRUE/FALSE atau BENAR/SALAH atau juga HIDUP/MATI, Tipe Data ini biasanya digunakan
untuk menetukan sebuah kondisi. Contoh penulisan serta penggunaan Tipe Data Boolean di
PHP :

<?php if(TRUE){ echo


"Saya Programmer ";
} else { echo "Saya
Tester";
}
?>

c. Float
Tipe Data ini merupakan Tipe Data yang memuat bilangan pecahan dan bilangan bulat
Float memiliki sedikit perbedaan dengan integer, perbedaanya hanya terdapat di koma jika
integer tidak dapat menerima masukan koma maka Doubles/Float/Real kebalikanya Tipe
Data ini dapat menerima koma. Namun yang perlu pembaca perhatikan pada saat nanti
penilisanya komputer tidak mengenal "," dan koma itu sendiri di gantikan dengan "." (titik),
Contoh penulisan tipe data ini adalah :

◼ Teknologi Informasi Kesehatan III 209


<?php
$a = 123.45;
$phi = 3.14;
?>

d. String
Tipe Data yang selanjutnya adalah tipe data yang memuat segala karakter huruf,
angka, simbol, Tipe Data ini memiliki ciri pada penulisan yang di apit oleh kutip. Berikut
merupakan contoh penggunaan Tipe Data String di PHP:
<?php
$a = "Aku seorang Coders";
$b = "jumlah dari 5 di tambah 5 adalah 10";
?>

e. Array
Array (atau larik dalam bahasa Indonesia) bukanlah tipe data dasar seperti integer atau
boolen, Array adalah sebuah tipe data bentukan yang terdiri dari kumpulan tipe data
lainnya. Menggunakan array akan memudahkan dalam membuat kelompok data, serta
menghemat penulisan dan penggunaan variabel.
Misalkan kita butuh untuk menyimpan 10 nama mahasiswa, maka kode PHPnya jika
tanpa menggunakan array adalah sebagai berikut:
<?php
$nama0="Andri";
$nama1="Joko";
$nama2="Sukma";
$nama3="Rina";
$nama4="Sari";
//... dst sampai $nama10 ?>

Pembuatan kode program diatas akan lebih rapi jika ditulis kedalam bentuk array,
karena kita hanya membutuhkan 1 buah variabel saja untuk menampung banyak nilai.
Berikut adalah contoh penggunaan array:

<?php
$nama = array (

210
0=>"Andri",
1=>"Joko",
2=>"Sukma",
3=>"Rina",
4=>"Sari",)
//... dst sampai 10
?>

f. Object
Tipe Data selanjutnya adalah Tipe Data yang menyimpan data dan informasi tentang
cara mengolah data tersebut. Berikut adalah Contoh penggunaan Object di PHP :
<?php class
Codepolitan { function
Codepolitan() {
$this->wijay = "Saya seorang Coder";
}
}

// mendefinisikan penggunaan objek


$soffi = new Codepolitan();

// mengeluarkan nilai objek echo


$soffi->wijay;
?>

g. Resource.
Tipe data yang jika di artikan ke dalam bahasa Indonesia ber-arti "Sumber Daya" ini
adalah tipe data spesial yang mereferensikan keterkaitan luar melalui fungsi, berbeda
dengan tipe data lainya tipe data ini berbentuk sebuah fungsi. berikut adalah daftar
beberapa fungsi yang masuk kedalam tipe data Resource PHP :
mysqli_connect()

digunakan untuk menghubungkan ke database SQL.


ftp_connect()

digunakan untuk menghubungkan dan membuka protokol FTP.


◼ Teknologi Informasi Kesehatan III 211
imagerotate()

digunakan untuk memutar suatu gambar.

h. NULL
Tipe Data yang satu ini hanya memiliki satu nilai yaitu NULL atau kosong, berikut
merupakan contoh penggunaan Tipe Data NULL di PHP:
<?php
$a = null;
?>

3. Konstanta
Dalam bahasa pemograman, Konstanta (constant) adalah suatu lokasi penyimpanan
(dalam memory) yang berisikan nilai yang sifatnya tetap dan tidak bisa diubah sepanjang
program berjalan (wikipedia).
Berbeda dengan variabel yang isi/nilainya dapat diubah bahkan dihapus selama
program berjalan, sebuah konstanta jika telah diberikan nilai, tidak dapat diubah lagi dalam
kode program. Hal ini seseuai dengan namanya, yakni konstant.
Jika variabel di dalam PHP dibuat dengan menambahkan tanda dollar, seperti: $nama.
Untuk membuat konstanta PHP menyediakan 2 cara:
a. Menggunakan kata kunci (keyword) const.
b. Menggunakan fungsi define.

Untuk mendefenisikan konstanta dengan kata kunci const, caranya mirip dengan
menambahkan nilai kepada sebuah variabel, namun didahului kata const. Berikut adalah
contoh penulisannya:

<?php const situs = "www.google.com"; echo situs; // www.


google.com
?>

Jika menggunakan fungsi define, fungsi ini membutuhkan 2 nilai, yakni nama konstanta, dan
nilainya. Seperti contoh berikut ini:
<?php define("situs", "www. google.com"); echo situs; //
www. google.com
?>

212
Aturan penamaan konstanta sama seperti variabel, yakni untuk karakter pertama hanya
boleh menggunakan huruf dan underscore (_), dan untuk huruf kedua dan seterusnya, boleh
menggunakan huruf, angka dan underscore. Sehingga sebuah konstanta juga tidak boleh
diawal angka atau mengandung karakter khusus sepert #,*, atau &.

Konstanta PHP bersifat Case Sensitif


Sama seperti variabel, konstanta dalam PHP bersifat case sensitif, sehingga perbedaan
huruf besar dan kecil dianggap berbeda. GAJI, GaJi, dan gaji merupakan 3 konstanta yang
berbeda.
Walaupun kita boleh menggunakan huruf kecil dalam penulisan konstanta,
kesepakatan programmer PHP menganjurkan menggunakan HURUF BESAR untuk penulisan
konstanta. Tujuannya agar lebih mudah untuk membedakan dengan variable (dimana
variabel dianjurkan menggunakan huruf kecil).

Nilai Konstanta PHP Tidak Dapat Diubah


Jika sebuah konstanta telah didefenisikan, kita tidak bisa merubah nilai tersebut.
Contoh error konstanta:

<?
define("GAJI", 5000000); echo GAJI; echo "<br />"; define("GAJI", 50000);
?>

Jika kode program tersebut dijalankan, berikut tampilannya:


5000000
Notice: Constant GAJI already defined in
D:\xampp\htdocs\belajar\test.php on line 4

Konstanta hanya dapat berisi tipe data tertentu


Konstanta dalam PHP hanya dapat berisi tipe data sederhana (disebut juga jenis tipe skalar),
yakni: boolean, integer, float dan string. Hal ini berbeda dengan variabel, yang dapat juga
berisi tipe data turunan seperti array, objek atau resources.

<?php define("GAJI", 5000000); echo GAJI; echo


"<br />"; define("GAJI_PEGAWAI",
array( 1000000,1500000)); ?>

Hasil contoh diatas akan menghasilkan error sebagai berikut:


◼ Teknologi Informasi Kesehatan III 213
5000000
Warning: Constants may only evaluate to scalar values in
D:\xampp\htdocs\belajar\test.php on line 4

Di dalam contoh diatas saya mencoba memberikan nilai array sebagai nilai dari
konstanta GAJI_PEGAWAI, namun PHP mengeluarkan error yang menjelaskan bahwa
konstanta hanya dapat berisi nilai dengan tipe skalar saja. Tipe skalar ini adalah boolean,
integer, float dan string.

4. Variabel
Dalam pemograman, variabel adalah suatu lokasi penyimpanan (di dalam memori
komputer) yang berisikan nilai atau informasi yang nilainya tidak diketahui maupun telah
diketahui (wikipedia).
Dalam defenisi bebasnya, variabel adalah kode program yang digunakan untuk
menampung nilai tertentu. Nilai yang disimpan di dalam variabel selanjutnya dapat
dipindahkan ke dalam database, atau ditampilkan kembali ke pengguna.
Nilai dari variabel dapat di isi dengan informasi yang diinginkan dan dapat dirubah
nilainya pada saat kode program sedang berjalan. Sebuah variabel memiliki nama yang
digunakan untuk mengakses nilai dari variabel itu. Jika anda memiliki pengetahuan dasar
tentang bahasa pemograman, tentunya tidak asing dengan istilah variabel. Adapun
manfaatnya adalah:
a. Digunakan untuk menyimpan sebuah value, data atau informasi
b. Nama variabel diawali dengan tanda $
c. Panjang tidak terbatas
d. Setelah tanda $ diawali oleh huruf atau under-scrore (_). Karakter berikutnya bisa
terdiri dari huruf, angka, dan karakter tertentu yang diperbolehkan (karakter ASCII dari
127 – 255).
e. Bersifat case-sensitive.
f. Tidak perlu dideklarasikan.
g. Tidak boleh mengandung spasi.
h. Contoh Penulisan variable yang benar dan salah.

Tabel 6.2 Contoh penulisan variabel

Benar salah

214
- $_name
- $first_name - $3name - $name?
- $name3 - $first+name
- $name_3 - $first.name
- $first name

Berikut adalah contoh penulisan variabel yang benar dalam PHP:


<?php
$nama = “Budi”;
$NAMA= “Andi”;
$Nama=”dan saya Tina”;
Echo “$nama, $NAMA, $Nama”;

5. Operator.
Setiap bahasa pemrograman (programming language) tidak sempurna jika tidak
memiliki fitur operator, tak terkecuali dengan PHP. Fungsi operator dalam PHP adalah untuk
memanipulasi data, dengan memanipulasi data ini suatu program akan bersifat dinamis.
Operan adalah sebutan untuk nilai data.

Dibawah ini ada beberapa operator yang sering digunakan dalam PHP.
a. Operator Perbandingan
Operator perbandingan adalah pemanfaatan simbol-simbol operator yang digunakan
untuk perbandingan antara dua nilai. Simbol-simbol operator perbandingan yang sering
digunakan dapat dilihat pada tabel berikut:

Operator Nama Contoh Hasil


Benar jika $x sama dengan $y
=== Identik $x === $y dan keduanya adalah tipe yang sama
> Lebih besar dari $x > $y Benar jika $x lebih besar dari $y
< Lebih kecil dari $x < $y Benar jika $x lebih kecil dari $y
Lebih besar Benar jika $x lebih besar atau Benar
dari atau sama $x >= $y dengan $y
>= dengan
<= Lebih kecil dari Benar jika $x lebih kecil atau sama
$x <= $y dengan $y

◼ Teknologi Informasi Kesehatan III 215


atau sama dengan
== Sama dengan $x == $y Benar jika $x sama dengan $y
!= Tidak sama dengan $x != $y Benar jika $x tidak sama dengan $y

b. Operator String.
Operator ini digunakan untuk menggabungkan dua teks atau lebih dengan cara
membubuhkan operator concatenation ( . ) diantara dua operan atau lebih dalam suatu
operasi.

c. Operator Aritmatika
Operator aritmatika adalah operator yang digunakan untuk operasi matematika seperti
penjumlahan, pengurangan, perkalian, pembagian dan modulus (hasil sisa). Berikut adalah
tabel operator aritmatika :
Tabel 6.4 Operator aritmatika

Operator Operasi Penerapan


+ Penjumlahan $x + $y
- Pengurangan $x - $y
* Perkalian $x * $y
/ Pembagian $x / $y
% Modulus $x % $y

d. Operator Increment / Decrement


Operator Increment dan Decrement digunakan untuk penambahan dan pengurangan
otomatis dengan nilai 1 (satu). Jika operator berada sebelum variabel contohnya ++$x atau -
$x, nilai $x ini akan ditambah atau dikurangi 1 (satu) sebelum dieksekusi, tetapi jika operasi
diletakkan setelah variabel, contohnya $x++ atau $x--, maka nilai $x akan ditambah atau
dikurangi 1 (satu) setelah dieksekusi.

Tabel 6.5 Operator increment/decrement

Operator Operasi Penerapan


++ Pre atau Post Increment ++$x atau $x++
-- Pre atau Post Incremenrt --$x atau $x--

e. Operator Logika
Operator logika hampir mirip dengan operator perbandingan, keduanya sama-sama
sebagai pengendali struktur program.

216
Tabel 6.6 Operator logika

Operator Nama Contoh Hasil


Menghasilkan nilai True jika salah satu dari $x
or Or $x or $y atau $y atau keduanya bernilai True.
Menghasilkan nilai True jika salah satu dari $x
|| Or $x | | $y atau $y atau keduanya bernilai True.
Menghasilkan nilai True jika $x dan
and And $x and $y $y bernilai True.
Menghasilkan nilai True jika $x dan
&& And $x && $y $y bernilai True.
Menghasilkan nilai True jika salah satu dari $x
xor Ekslusif Or $x xor $y atau
$y bernilai True
! Not !$x Menghasilkan nilai True jika $x bernilai False

f. Operator Bitwise
Operator bitwise dapat digunakan untuk mengoperasikan bit-bit dalam bilangan biner
(0 dan 1). Jika suatu operan tidak berupa bilangan biner, maka sedapat mungkin bilangan
tersebut dikenversi terlebih dahulu hingga didapat bilangan biner.

Tabel 6.7 Operator bitwise

Operator Nama Contoh Hasil


Bit diset 1 jika salah satu dari $x atau $y bernilai
| Or $x | $y 1
& And $x & $y Bit diset 1 jika salah $x dan $y bernilai 1
<< Shift Left $x << $y Geser bit $x sebanyak $y langkah ke kiri
>> Shift Right $x >> $y Geser bit $x sebanyak $y langkah ke kanan
Bit diset 1 jika salah satu dari $x atau $y bernilai
^ Ekslusif Or $x ^ $y 1
Bit diset 1 jika $x bernilai 0 dan bernilai 0 jika $x
- Not - $x bernilai 1

Latihan

◼ Teknologi Informasi Kesehatan III 217


Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Jenis tipe data yang digunakan untuk menampung nilai berupa text dan karakter,
adalah tipe data...
2) Jenis tipe data yang digunakan untuk menentukan logika kondisi benar atau salah
dengan menggunakan nilai TRUE dan FALSE, adalah tipe data..
3) PHP adalah software Open Source, apakah definisi dari istilah tersebut...
4) Apakah extension untuk nama file pemrograman PHP...
5) Terdapat dua jenis perintah PHP untuk mencetak keluaran atau hasil yaitu...
6) Simbol - simbol operator untuk melakukan operasi matematis disebut dengan...
7) Merupakan simbol-simbol operator untuk menyusun kalimat ekspresi/ungkapan
logika. Hasil operasi ini akan didapatkan nilai satu (1) jika bernilai benar atau nol (0) jika
bernilai salah. Ini dikenal dengan...

Tes 1
Pilihlah salah satu jawaban yang paling benar!

1) Bahasa pemrograman script server-side yang didesain untuk pengembangan web


adalah bahasa pemrograman ..
2) Situs web yang bisa menyesuaikan tampilan konten tergantung situasi, disebut
dengan...
3) Bahasa pemrograman PHP termasuk dalam kategori website...
4) Siapakah yang membuat bahasa pemrograman PHP pertama kali...
5) PHP adalah pengembangan dari framework bahasa pemrograman...
6) PHP versi ke berapa yang menyertakan fitur pemrograman objek/object oriented
programming walaupun belum sempurna...
7) Perintah pada PHP yang digunakan untuk menampilkan data kedalam standard
output adalah perintah...
8) Jenis tipe data yang terdiri dari bilangan bulat, dapat berupa bilangan bulat positif
atau negatif, adalah tipe data...
9) Jenis tipe data yang terdiri dari dari bilangan pecahan, adalah tipe data...

218
10) Operator yang digunakan untuk operasi penggabungan teks, adalah...

Topik 2
Penerapan Algoritma dalam Program PHP
A. PROGRAM PENGAMBILAN KEPUTUSAN DENGAN PHP

Proses pengambilan keputusan adalah operasi yang digunakan untuk menyelesaikan


masalah-masalah yang berhubungan dengan kondisi benar atau salah dari suatu pernyataan.
Bentuk pernyataan tersebut berupa perbandingan antara dua buah nilai atau lebih dengan
menggunakan operator pembanding.
Di dalam pemrograman kita mengenal istilah struktur penyeleksian Kondisi
(Conditional Statemaent) dan struktur perulangan (looping). Kedua struktur ini sangat
penting dalam mengontrol suatu program yang kita buat. Tanpa menggunakan kontrol ini
program yang kita buat tidak berdaya apa-apa. Penyeleksian kondisi atau pernyataan kondisi
(conditional statement) merupakan suatu pernyataan yang menganalisa suatu keadaan dan
mengambil keputusan berdasarkan pada hasil analisa itu. Hasil dari penyeleksian jika bernilai
benar maka akan dikerjakan instruksi tertentu. Jika salah maka akan dikerjakan instruksi
yang lain.
Bentuk algoritma pengambilan keputusan bila diimplementasikan dalam bahasa PHP
secara garis besar menyediakan 2 (dua) pernyataan / percabangan yang terkait dengan
seleksi untuk diambil keputusan, yaitu pernyataan if dan switch.
Di bawah ini adalah bentuk percabangan menggunakan IF. IF di bawah ini adalah script
yang paling sederhana hanya akan menyatakan nilai dari kondisi adalah benar jika kondisi itu
salah maka tidak akan muncul nilainya. Bentuk umumnya :

◼ Teknologi Informasi Kesehatan III 219


<?php
if (kondisi 1){ jika kondisi 1 benar
jalankan statement 1
}else if (kondisi 2){ jika kondisi 2 benar
jalankan statement2
}else if (kondisi 3){ jika kondisi 3 benar
jalankan statement3
}else{ jika kondisi tidak ada yang benar jalankan
statement ini
}
?>

Contoh penerapannya :

<?php
$nilai=3; if($nilai==10){
echo "kamu ranking 1";
}else if ($nilai >=9){ echo
"kamu ranking 2";
}else if ($nilai >=7){ echo
"kamu ranking 3";
}else{ echo "kamu gak dapet ranking..
hohoho";
}
?>

Di bawah ini adalah contoh penggunaan if dalam program sederhana PHP, yaitu
program menghitung pembayaran foto copy dengan jumlah harga perlembar berbeda-beda
sesuai dengan jumlah lembar foto copy.
Pertama kita buat dulu file yang berfungsi untuk menginput jumlah lembar yang difoto
copy. kita simpan dengan nama formulir.php, scriptnya seperti dibawah ini :

<html>
<head>
<title> Formulir </title>
</head>
<body>
<form action="hasil.php" method="post">

220
Formulir
<table>
<tr>
<td> Jumlah Lembar Fotocopy </td>
<td><input type="text" name="jumlah"></d>
</tr>
<tr>
<td colspan="2"><input type="submit" name="hitung" value="Hitung"></td>
</tr>
</table>

</form>
</body>
</html>

Setelah program pertama selesai kita akan membuat program yang berfungsi
memanggil jumlah inputan lembar foto copy kita simpan dengan nama "hasil.php". adapun
script dari program yang kedua seperti dibawah ini:

◼ Teknologi Informasi Kesehatan III 221


<html>
<head>
<title>Hasil biaya </title>
</head>
<body>
Hasil Biaya <br>
<?php
$jum = $_POST['jumlah'];
$hasil; if
($jum < 100)
{
$tarif = 150;
$hasil= $jum * $tarif ;
echo "Jumlah Lembar Fotocopy = $jum
<br>"; echo "Tarif harga = $tarif <br>"; echo
"Biaya harus bayar = $hasil <br>";
} else if ($jum < 200)
{
$tarif = 100;
$hasil= $jum * $tarif ;
echo "Jumlah Lembar Fotocopy = $jum
<br>"; echo "Tarif harga = $tarif <br>"; echo
"Biaya harus bayar = $hasil <br>";
}else if ($jum < 200 )
{
$tarif = 80;
$hasil= $jum * $tarif ;
echo "Jumlah Lembar Fotocopy = $jum <br>";
echo "Tarif harga = $tarif <br>";
echo "Biaya harus bayar = $hasil <br>";
}else{ echo "Jumlah tidak
sesuai";
}
?>
</body>
</html>

222
Setelah kedua program sudah selesai dibuat, selanjutnya kita akan menjalankan
program yang pertama yaitu "formulir.php" dan kita isi jumlah lembarnya contohnya "100"
trus tekan "Hitung" seperti gambar berikut ini:

Gambar 6.10 Tampilan program pengambilan keputusan

Setelah kita menekan tombol "Hitung" maka program akan dialihkan ke program yang
kedua yaitu "hasil.php" yang menangkap inputan dan mempores dengan script PHP. hasilnya
seperti dibawah ini:

◼ Teknologi Informasi Kesehatan III 223


Gambar 6.11 Tampilan program pengambilan keputusan

Untuk model percabangan dengan menggunakan switch hanya ada 1 bentuk syntax
jadi menggunakan berapapun kondisi dan statement bentuknya akan sama tinggal kita
sesuai kebutuhan. Bentuk umumnya :

switch (ekspresi)
{ case kondisi 1:
jika kondisi 1 terpenuhi maka akan dijalankan statement
1 ; break; case kondisi 2:
jika kondisi 2 terpenuhi maka akan dijalankan statement 2 ;
break;
}

Contoh penerapannya :

224
<?php
$kendaraan='motor';
switch ($kendaraan)
{ case 'motor':
echo "ini adalah kendaraan roda
2"; break; case 'mobil':
echo "ini adalah kendaraan roda
4"; break; case 'kereta':
echo "ini adalah kendaraan roda banyak";
break;
}
?>

Di bawah ini adalah contoh penggunaan switch dalam program sederhana PHP, yaitu
program konversi angka menjadi huruf.

<html>
<head>
<title>Konversi Angka Menjadi Huruf</title>
</head>
<body>
<form method="GET">
<br/>Masukkan Nilai : <input type="number" name="nilai"/><br/>
<input type="submit" value="OK">
</form>
</body>
</html>
<?php
@$nilai = $_GET['nilai'];

switch ($nilai)
{ case 1:
echo "Satu";
break; case 2: echo "Dua"; break; case 3:
echo "Tiga"; break; case 4: echo "Empat";
◼ Teknologi Informasi Kesehatan III 225
break; case 5: echo "Lima"; break; case 6:
echo "Enam"; break; case 7: echo "Tujuh";
break; case 8: echo "Delapan"; break; case 9:
echo "Sembilan"; break; default: echo "Nilai
Tidak Ada"; break; }
?>

Jika dijalankan, maka hasilnya akan seperti gambar berikut :

Gambar 6.12 Tampilan program pengambilan keputusan

Setelah memasukan angka “8” pada inputan, maka tampilannya adalah sebagai berikut :

226
Gambar 6.13 Tampilan program pengambilan keputusan

B. PROGRAM PERULANGAN DENGAN PHP

Pengulangan menyatakan suatu tindakan atau langkah yang dijalankan beberapa kali.
Pengulangan atau disebut sebagai looping adalah instruksi khusus dalam bahasa
pemrograman dan algoritma yang digunakan untuk mengulang beberapa perintah sesuai
dengan jumlah yang telah ditentukan. Salah satu yang dipelajari di algoritma dan
pemrograman dasar adalah pengulangan atau istilah lainnya looping, bukan hanya di
algoritma saja, ternyata konsep looping ini digunakan juga di berbagai bahasa pemrograman
dan konsep dasarnya adalah algoritma pengulangan. Pekerjaan mengulang-ulang apabila
dikerjakan manusia mungkin membosankan dan melelahkan, tetapi komputer mampu
melakukan pekerjaan secara berulang-ulang atau pekerjaan yang sama dengan cepat tanpa
kenal lelah dan bosan.
Kapan instruksi pengulangan harus digunakan? Manfaatnya jelas lebih efektif, Instruksi
pengulangan digunakan manakala program atau bagian program terindikasi bisa
menggunakan proses pengulangan. Sebagai contoh sederhana. misalkan untuk kasus
program untuk menampilkan angka 1 sampai 500 atau bahkan sampai 1000, atau program
untuk mencetak tulisan tertentu dalam jumlah tertentu. Sebenarnya bisa saja tidak
menggunakan pengulangan, namun kurang efektif walaupun hasil outputnya bisa saja sama.
PHP memiki beberapa pernyataan loop, yaitu for, foreach, While, dan do…while.
Pada Bab 4 telah dibahas struktur penggunaan dan penulisan algoritma pengulangan
(looping). Pada bab ini kita akan mempelajari penerapan algoritma pengulangan dengan
menggunakan PHP.

◼ Teknologi Informasi Kesehatan III 227


Di bawah ini salah satu contoh penggunaan algoritma pengulangan pada PHP. Memilih nilai
dari 10 – 100 dengan menggunakan perulangan for.
<?php echo"Pengulangan dengan menggunakan
for<br>
<form method=\"POST\" action=\"kirim.php\">
Beri nilai Anda:<br>";
For($a=10;$a<=100;$a+=10)
{
echo"<input type=\"radio\" value=\"$a\" name=\"R1\">$a<br>";
}
?>
<input type="submit" value="PILIH" name="pilih">
</form>
Maka jika dijalankan hasilnya akan sperti di bawah ini :

Gambar 6.14 Tampilan program percabangan

Berikutnya merupakan contoh program perulangan menggunakan while . Seperti pada


contoh dibawah ini adalah program membuat perulangan dari angka 1 sampai dengan angka
yang ditentukan.

228
Pertama, buat file dengan nama “loop2.php” pada editor dengan berisikan script di
bawah ini:
<!DOCTYPE html>
<html>
<head>
<title>Perulangan dengan for while</title>
</head>
<body>
<h2>Membuat perulangan dari angka satu sampai ...</h2>
<form method="post" action="proses_loop2.php">
<label>Batas Perulangan</label>
<input type="text" name="batas">
<input type="submit" value="Proses">
</form>
</body>
</html>

Kemudian buat file yang kedua dengan nama “proses_loop2” dengan berisikan script di
bawah ini :
<?php
$angka = 1; //Perulangan akan dimulai dari angka satu
$batas = $_POST['batas']; //Perulangan akan diakhiri sesuai angka yang di input
while($angka <= $batas) //Perulangan akan terjadi sampai angka=batas
{
echo $angka."<br>";
$angka++; //Untuk menambahkan angka diatasnya dengan satu (bertambah satu)
}
?>

Maka akan menghasilkan :

◼ Teknologi Informasi Kesehatan III 229


Gambar 6.15 Tampilan program percabangan

Dan inilah hasil dari program perulangan while di atas :

Gambar 6.16 Tampilan program percabangan

230
C. PROGRAM SORTING DENGAN PHP

Pengertian Algoritma Sorting adalah kumpulan langkah sistematis atau secara berutan
untuk memperoleh hasil yang diinginkan. Salah satu contoh dari algoritma untuk langkah ini
adalah Sorting (pengurutan). Sorting dapat didefinisikan sebagai pengurutan sejumlah data
berdasarkan nilai tertentu. Pengurutan dapat dilakukan dari nilai terkecil ke nilai terbesar
(ascending) atau sebaliknya.
Sorting dapat dibedakan menjadi dua yaitu Comparasion Sort (Bubble Sort, Selection
Sort, Insertion Sort, Merge Sort, Quick Sort) dan Non-Comparasion Sort (Radix Sort, Counting
Sort). Comparasion Sort / penggurutan dengan pembandingan adalah algoritma yang dalam
proses pengurutannya melakukan pembandingan antar data. Non-Comparasion Sort /
pengurutan tanpa pembandingan adalah algoritma pengurutan dimana dalam prosesnya
tidak melakukan perbandingan antar data.
Selection Sort merupakan salah satu algoritma pengurutan yang sederhana. Ide
dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen
struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di antara
elemenelemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai
elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang
belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang
disimpan indeksnya kemudian ditukar.
Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus
daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai
berikut:
1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam
sebuah
list.
2. Menukarkan nilai ini dengan elemen pertama list
3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua
4. Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah
diurutkan, yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada
saat awal, dan bagian list yang elemennya akan diurutkan.

Berikut ini merupakan contoh penerapan algoritma sorting menggunakan bahasa


pemrograman PHP.

◼ Teknologi Informasi Kesehatan III 231


<!DOCTYPE html>
<html>
<head>
<title>MEMBUAT SORTING DENGAN METODE SELECTION<br/></title>
<style type="text/css">
body{ font-family:
sans-serif;
}
h1{ text-align:
center; margin-
bottom: 100px;
}
.box{ width:
600px;
margin: 10px auto;
text-align: center
}
.hasil{ backgro
und: blue; color:
#fff; padding: 10px
0px;

232
}
input[type='text']{
width: 40px;
}
</style>

</head>
<h1>MEMBUAT SORTING DENGAN METODE SELECTION<br/></h1>
<body>
<div class="box">
<center><h3>MASUKKAN ANGKA YANG AKAN DI URUTKAN<br/>(SELECTION
SORT)</h3></center>

<!--form input angka-->


<form action="" method="post">
<input type="text" name="satu">
<input type="text" name="dua">
<input type="text" name="tiga">
<input type="text" name="empat">
<input type="text" name="lima">
<input type="text" name="enam">
<input type="text" name="tujuh">
<input type="text" name="delapan">
<input type="submit" name="submit" value="SORTING">
</form>

<?php //cek submit


if(isset($_POST['submit'])){

//menangkap data angka yang di input


$satu=$_POST['satu'];
$dua=$_POST['dua'];
$tiga=$_POST['tiga'];
$empat=$_POST['empat'];
$lima=$_POST['lima'];
$enam=$_POST['enam'];

◼ Teknologi Informasi Kesehatan III 233


$tujuh=$_POST['tujuh'];
$delapan=$_POST['delapan'];

//masukkan data angka ke array


$angka=array($satu,$dua,$tiga,$empat,$lima,$enam,$tujuh,$delapan);

//mengurutkan angka dengan fungsi sort()


sort($angka); echo "</br>"; echo "<div
class='hasil'> HASIL : ";

//menampilkan isi array angka dengan looping for


$jumlah=count($angka); for($x=0;$x<$jumlah;$x++)
{
echo $angka[$x]; echo
" ";
} echo
"</div>";
}
?>
</div>
</body>
</html>

Maka akan diperoleh hasil seperti di bawah ini :

234
Gambar 6.17 Tampilan program sorting

Gambar 6.18 Tampilan program sorting

D. PROGRAM PENCARIAN DATA DENGAN PHP

Algoritma pencarian dapat dijelaskan secara luas adalah sebuah algoritma yang
menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah
tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Sebagian besar
algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian. Himpunan
semua kemungkinan solusi dari sebuah masalah disebut ruang pencarian. Algortima

◼ Teknologi Informasi Kesehatan III 235


pencarian brute-force atau pencarian naif/uninformed menggunakan metode yang
sederhana dan sangat intuitif pada ruang pencarian, sedangkan algoritma pencarian
informed menggunakan heuristik untuk menerapkan pengetahuan tentang struktur dari
ruang pencarian untuk berusaha mengurangi banyaknya waktu yang dipakai dalam
pencarian.
Pencarian (searching) merupakan proses fundamental dalam pengelolaan data. Proses
pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe
sama (baik bertipe dasar atau bertipe bentukan). Search algoritma adalah algoritma yang
menerima argument a dan mencoba untuk mencari record yang mana key-nya adalah
Algoritma bisa mengembalikan nilai record, atau pointer ke record. Record sendiri adalah
tipe data yang terdiri atas kumpulan variabel yang dapat berbeda tipenya. Setiap variabel
disebut field. Sequensial Search (penelusuran sequensial) yaitu proses mengunjungi melalui
suatu pohon dengan cara setiap simpul di kunjungi hanya satu kali yang disebut tree
transversal / kunjungan pohon. Sedangkan Binary Search adalah penelusuran pohon biner
dimana data yang dimasukkan atau yang sudah ada diurutkan terlebih dahulu.
Berikut ini merupakan contoh program atau penerapan algoritma pencarian
menggunakan php.
1. Buat database pada xampp dengan nama db_tutorial
2. Siapkan tabel dengan nama tb_student, dengan struktur tabel : no, nama, alamat
3. Masukan beberapa sampel data untuk contoh. Misal:
no nama alamat
1 adi semarang
2 budi jakarta
3 joni bandung

4. Selesai dalam membuat database.


5. Kemudian langkah selanjutnya adalah membuat folder “searching” pada htdocs yang
ada pada xampp.
6. Simpan semua file dalam folder tersebut.
7. Di bawah ini adalah script untuk koneksi ke database, simpan dengan nama
connect.php
<?php
$host = "localhost";
$user = "root";
$pass = "";
$dbName = "db_tutorial"; mysql_connect($host, $user, $pass);
mysql_select_db($dbName)
or die ("Connect Failed !! : ".mysql_error()); ?>

236
8. Kemudian buatlah script inputan untuk pencarian, simpan
dengan nama
“formsearch.php”
<html>
<head>
<title> Halaman Pencarian </title>
</head>
<body>
<form name="formcari" method="post" action="search_exe.php">
<table width="330" border="0" align="center" cellpadding="0">
<tr bgcolor="orange">
<td height="25" colspan="3">
<strong> Student Searching ! </strong>
</td>
</tr>
<tr> <td> Nama </td>
<td> <input type="text" name="nama"> </td>
</tr>
<td></td>
<td> <input type="SUBMIT" name="SUBMIT" id="SUBMIT" value="search" > </td>
</table>
</form>
</body>
</html>

9. Buat script selanjutnya yaitu pemrosesan pencarian seperti di bawah ini, simpan
dengan nama “search_exe.php”
<?php include
"connect.php";
$name= $_POST['nama']; //get the nama value from form
$q = "SELECT * from tb_student where nama like '%$nama%' "; //query to get the
search result
$result = mysql_query($q); //execute the query $q echo
"<center>";

◼ Teknologi Informasi Kesehatan III 237


echo "<h2> Hasil Searching </h2>"; echo "<table
border='1' cellpadding='5' cellspacing='8'>"; echo "
<tr bgcolor='orange'>
<td>No</td>
<td>Nama Mahasiswa</td>
<td>Alamat</td>
</tr>"; while ($data = mysql_fetch_array($result)) { //fetch the result from query
into an array echo "
<tr>
<td>".$data['no']."</td>
<td>".$data['nama']."</td>
<td>".$data['alamat']."</td>
</tr>";
}
echo "</table>";
?>
10. Ketikan pada browser http://localhost/searching/formsearching.php , hasilnya adalah :

Gambar 6.19 Tampilan program searching

238
Gambar 6.19 Tampilan program searching

Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Apa yang dimaksud dengan algoritma perulangan?


2) Jelaskan bagian-bagian algoritma perulangan!!
3) Apa perbedaan penggunaan struktur perulangan while dengan do while?
4) Apa maksud perintah continue dan break pada perulangan?
5) Struktur perulangan yang manakah yang digunakan untuk melakukan suatu lompatan
ke suatu pernyataan berlabel yang ditandai dengan tanda “ : “?

Ringkasan
PHP (PHP: Hypertext Prepocessor) adalah salah satu bahasa pemrograman web yang
bersifat dinamis, dimana PHP adalah bahasa yang bisa disisipkan dengan sintaks HTML
sehingga dapat menciptakan teknologi web dinamis seperti sekarang ini. PHP merupakan
sebuah bahasa server-side untuk pemrograman web yang pada awalnya merupakan
program

◼ Teknologi Informasi Kesehatan III 239


CGI yang di khususkan untuk menerima input melalui form yang di tampilkan browser. PHP
dikatakan bahasa server-side embedded script language maksudnya adalah sintaks-sintaks
dan perintah yang diberikan akan sepenuhnya dijalankan oleh server dan di kirim ke
komputer client berupa bahasa html.
Web Server merupakan sebuah perangkat lunak dalam server yang berfungsi
menerima permintaan (request) berupa halaman web melalui HTTP atau HTTPS dari klien
yang dikenal dengan browser web dan mengirimkan kembali (response) hasilnya dalam
bentuk halamanhalaman web yang umumnya berbentuk dokumen HTML.
Komentar adalah bagian dari skrip PHP yang tidak diterjemahkan oleh browser. Fungsi
Komentar dalam bahasa pemograman merupakan penjelasan-penjelasan yang dipergunakan
sebagai informasi mengenai fungsi-fungsi atau tag yang dibuat programmer agar orang lain
dapat mengerti maksud dari fungsi atau tag yang dibuat. Dalam bahasa pemograman web
dalam hal ini PHP juga memiliki tata cara penulisan komentar, komentar ini akan berada
dalam tag php dan tidak diproses karena bukan script yang diperlukan ketika dipublishkan.
Pada PHP, tipe data variabel tidak didefinisikan oleh programmer, akan tetapi secara
otomatis ditentukan oleh intepreter PHP. Dalam bahasa pemograman, Konstanta (constant)
adalah suatu lokasi penyimpanan (dalam memory) yang berisikan nilai yang sifatnya tetap
dan tidak bisa diubah sepanjang program berjalan. Dalam pemograman, variabel adalah
suatu lokasi penyimpanan (di dalam memori komputer) yang berisikan nilai atau informasi
yang nilainya tidak diketahui maupun telah diketahui. Setiap bahasa pemrograman
(programming language) tidak sempurna jika tidak memiliki fitur operator, tak terkecuali
dengan PHP. Fungsi operator dalam PHP adalah untuk memanipulasi data, dengan
memanipulasi data ini suatu program akan bersifat dinamis.

Tes 2
Jawablah Pertanyaan dibawah ini dengan tepat!

1) Buatlah script PHP sederhana untuk menentukan bilangan ganjil!


2) Buatlah scrip PHP sederhana untuk menentukan bilangan prima!

240
Kunci Jawaban Tes
Tes 1
1) PHP
2) Website Dinamis Yang Bisa Dibuat Dengan Pemprograman PHP
3) Server side programming
4) Rasmus Lerdorf
5) Dari Framework Bahasa C 6) PHP Versi 4 7) Echo.
8) Integer
9) Float/Floating
10) Operator String

Tes 2
1) Menampilkan bilangan ganjil 1-100
<?php
For ($i=1;$i<=100;$i++) {
if($i%2==1)
{
echo $i."<br>"; //Menampilkan bilangan ganjil
}
}
?>

2) Menampilkan bilangan prima 1-50


<?php
for ($i=1; $i <= 50 ; $i++) {
$t = 0;
for ($j=1; $j <= $i ; $j++) {
if ($i % $j == 0) {
$t++;
}
}

if ($t == 2) {
echo "".
$i.",";

◼ Teknologi Informasi Kesehatan III 241


}
}
?>

Glosarium

242
Domain : Pola penamaan host di Internet.
HTML : Hyper Text Markup Language, sebuah bahasa markup yang
digunakan untuk membuat sebuah halaman web.
HTTP : Hyper Text Transfer Protocol, tata cara komunikasi untuk
mentransfer Web dari server ke komputer lain.
ISP : Interrnet Service Provider, perusahaan pemberi jasa akses
Internet
Server : komputer yang memberikan layanan di jaringan.
Tag HTML : kata kunci (nama tag) yang dikelilingi oleh kurung sudut seperti
<html>
W3C : World Wide Web Consortium organisasi yang mengembangkan
teknologi web beralamat di www.w3c.org.
Web browser : sebuah perangkat lunak aplikasi yang memungkinkan pengguna
mengakses Web atau Server di jaringan.
WWW : World Wide Web sering di singkat Web.

◼ Teknologi Informasi Kesehatan III 243


Daftar Pustaka
Sismoro, H. 2016. Pengantar Logika Informatika, Algoritma dan Pemrograman Komputer.
Yogyakarta: ANDI.

Munir, R. dan Lidya, L. 2016. Algoritma dan Pemrograman Dalam Bahasa Pascal, C dan C++.
Informatika. Bandung: Informatika.

Solichin, Achmad S.Kom. 2009. Pemrograman Web dengan PHP dan MySQL. Jakarta:
Universitas Budi Luhur.

Kadir, A. 2012. Algoritma Menggunakan C dan C++. Yogyakarta : ANDI Publisher`

244

Anda mungkin juga menyukai