Halaman
Topik 1.
Pengantar Algoritma ........................................................................................ 3
Latihan ....…..…………………………………....................................................................... 16
Ringkasan ....…………………………………........................................................................ 17
Tes 1 ..……………………………...................................................................................... 17
Topik 2.
Pengantar Pemrograman ................................................................................. 19
Latihan ....…..…………………………………....................................................................... 32
Ringkasan ....…………………………………........................................................................ 32
Tes 2 ..……………………………...................................................................................... 33
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
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
iv
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
Topik 1.
Algoritma Sorting ............................................................................................ 169
Latihan ....……………………………………………................................................................ 185
Tes 1 ..……………………………..…….............................................................................. 186
Topik 2.
Algoritma Pencarian Data ............................................................................... 187
Latihan ....……………………………………………................................................................ 193
Ringkasan ..…………………………………………................................................................. 194
Tes 2 ..……………………………..……............................................................................... 195
vi
◼
Bab 1
PENGENALAN ALGORITMA DAN
PEMROGRAMAN
Tominanto, S.Kom., M.Cs.
Pendahuluan
◼ 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.
4
S
umber : Barakbah, A.R. dkk, 2013
Gambar 1.2. Ilustrasi algoritma penukaran isi gelas A dengan gelas B
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
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
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.
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.
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 :
Contoh lain proses pemilihan pada algoritma ditunjukkan pada beberapa algortima
berikut ini:
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
Contoh lain sebagai ilustrasi algoritma perulangan juga dapat digambarkan pada
balapan mobil ditunjukkan pada Gambar 1.10 berikut ini :
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!
Untuk membantu Anda dalam mengerjakan soal latihan tersebut silahkan pelajari
kembali materi tentang pengertian algoritma, manfaat algoritma dan aspek penting dalam
algoritma.
16
Ringkasan
Tes 1
Pilihlah salah satu jawaban yang paling benar!
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
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
18
lainlainnya. Secara garis besar, unsur-unsur pemrograman adalah Input, Proses, dan Output
seperti pada Gambar 1.11 berikut ini :
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.
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:
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.
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
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.
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.
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.
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.
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.
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.
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
30
Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!
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.
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
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
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.
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.
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.
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.
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.
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.
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:
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:
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.
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
Gambar 2.7 Contoh pseudocode menggunakan gaya penulisan Fortran, Pascal dan C
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
46
Gambar 2.11 Contoh algoritma menghitung luas persegi panjang dalambentuk Flowchart
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:
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.
Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!
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
5) Penyajian algoritma yang sering menimbulkan ambigu untuk kasus yang rumit
adalah .…
A. Deskriptif
B. Pseudocode
C. Flowchart
D. Deklarasi
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.
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.
54
Gambar 2.15 Cara mengakses elemen array
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.
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 :
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.
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.
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
Penggunaan kedua cara pengisian nilai variabel ini akan diperjelas dalam
flowchartyang ditunjukkan pada Gambar 2.27 berikut ini:
Untuk memperjelas pengisian nilai variabel dalam bahasa pemrograman, Gambar 2.28
berikut ini contoh memberikan nilai pada variabel dalam bahasa C:
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 :
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:
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:
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:
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 :
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:
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:
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)
Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!
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
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
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.
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.
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
80
Gambar 3.3 Contoh flowchart skematik
Contoh flowchart program ditunjukkan pada gambar 3.4 dan 3.5 berikut ini:
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:
D. SIMBOL-SIMBOL FLOWCHART
84
Gambar 3.8 Simbol-simbol flowchart
86
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!
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
90
Tes 1
Pilihlah salah satu jawaban yang paling benar!
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
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.
2. Menggambar Input/Output
94
3. Menggambar Proses
4. Menampilkan 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 :
Menghitung C adalah
nilai A ditambah nilai B
Menampilkan output
nilai C
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
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:
d. Output
Keluaran permasalahan ini adalah 2 buah nilai yaituluas dan keliling lingkaran, sehingga
output pada flowchart dapat dibuat sebagai berikut:
f. Flowchart keseluruhan
Setelah langkah-langkah per proses kegiatan tersebut maka flowchart secara
keseluruhan algoritma perhitunga3n luas dan keliling lingkaran adalah sebagai berikut :
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.
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
b. Input
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:
e. Flowchart keseluruhan
Flowchart perhitungan koversi suhu secara keseluruhan adalah sebagai berikut:
100
Gambar 3.26 Flowchart perhitungan koversi suhu
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:
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 :
No_rm=varchar(6), nama_pas=varchar(30),
tempat_lhr=varchar(15), tanggal_lhr=date,
jenis_klm=varchar(1), alamat=varchar(30)
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
d. Output
104
Keluaran permasalahan ini adalah komentar validasi input dan penyimpanan data
pasien, sehingga output pada flowchart dapat dibuat sebagai berikut:
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:
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
Selesai
Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!
Untuk membantu Anda dalam mengerjakan soal latihan tersebut silakan pelajari
kembali materi tentang langkah-langkah membuat flowchart dan menerapkan flowchart
untuk membuat algoritma.
Ringkasan
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
108
C. Membuat variabel
D. Menampilkan variabel
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
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.
Munir, R. 2007. Algoritma dan Pemrograman Dalam Bahasa Pascal dan C. Informatika.
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.
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.
116
Gambar 4.3 Contoh Struktur IF
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:
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:
Perintah echo akan dijalankan, karena bilangan integer 7, akan dikonversi menjadi TRUE.
<?php
If (expression)
Statement;
?>
118
Expression ditulis di dalam tanda kurung, dan tidak diikuti dengan titik koma(;). Berikut
contohnya:
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:
Bila dijalankan:
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.
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:
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.
<?php
if (expression) : statement1;
statement2; else:
statement3; endif
?>
124
Gambar 4.14 Penggunaan else...if
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.
<?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”.
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.
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.
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:
130
Gambar 4.18 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:
Hasilnya:
132
Gambar 4.22 Penggunaan Switch...case
Tes 1
Jawablah Pertanyaan dibawah ini dengan benar!
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.
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:
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:
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:
Jika anda menjalankan kode tersebut, maka di dalam web browser akan tampil urutan angka
dari 1 sampai dengan 10.
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 :
Kita juga bisa membuat perluangan dengan kondisi mundur, seperti contoh kode PHP
berikut ini:
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:
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:
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;
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:
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.
Jika Anda membutuhkan nilai key dari array untuk dapat diproses, maka PHP
menyediakan bentuk kedua dari perulangan foreach, dengan format dasar penulisan sebagai
berikut:
144
Gambar 4.39 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.
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
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
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.
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.
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.
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.
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:
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:
154
Gambar 4.54 Penggunaan do-while
Hasilnya:
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!
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!
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
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
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.
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.
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
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.
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
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
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 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.
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}
Contoh 2 :
Penerapan atas sebuah larik/array sebagai data sumber yang akan diurutkan {3, 9, 4, 1, 5, 2}
adalah sebagai berikut:
• Pertama kali larik tersebut dibagi menjadi dua bagian, {3, 9, 4} dan {1, 5, 2}
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.
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
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.
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.
Kemudian langkah ketiga, atau langkah terakhir pada contoh ini adalah pengkategorian
kembali berdasar digit yang terkiri, atau yang paling signifikan:
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.
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
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
Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!
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!
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).
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
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.
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
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
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.
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!
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
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”
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.
Raharja, B. 2016. Modul Pemrograman WEB (HTML, PHP, & MySQL. Edisi Ketiga Modula.
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.
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:
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.
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)
Keistimewaan PHP
▪ Cepat
▪ Free
▪ Mudah dipelajari
▪ Multi-platform
▪ Dukungan technical-support
▪ Banyaknya komunitas PHP
▪ Aman
Setelah aplikasi installer XAMPP berhasil di unduh, langkah selanjutnya adalah menginstall
XAMPP.
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.
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.
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.
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>
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 :
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 :
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";
}
}
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()
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:
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 &.
<?
define("GAJI", 5000000); echo GAJI; echo "<br />"; define("GAJI", 50000);
?>
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.
Benar salah
214
- $_name
- $first_name - $3name - $name?
- $name3 - $first+name
- $name_3 - $first.name
- $first name
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:
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
e. Operator Logika
Operator logika hampir mirip dengan operator perbandingan, keduanya sama-sama
sebagai pengendali struktur program.
216
Tabel 6.6 Operator logika
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.
Latihan
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!
218
10) Operator yang digunakan untuk operasi penggabungan teks, adalah...
Topik 2
Penerapan Algoritma dalam Program PHP
A. PROGRAM PENGAMBILAN KEPUTUSAN DENGAN PHP
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:
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:
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:
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; }
?>
Setelah memasukan angka “8” pada inputan, maka tampilannya adalah sebagai berikut :
226
Gambar 6.13 Tampilan program pengambilan keputusan
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.
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)
}
?>
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.
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>
234
Gambar 6.17 Tampilan program sorting
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
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>";
238
Gambar 6.19 Tampilan program searching
Latihan
Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!
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
Tes 2
Jawablah Pertanyaan dibawah ini dengan tepat!
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
}
}
?>
if ($t == 2) {
echo "".
$i.",";
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.
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.
244