Anda di halaman 1dari 177

BUKU AJAR

LOGIKA & ALGORITMA

Tim Penulis :
Khairunnisa, S.Pd., M.Cs
Nurhadi, S.Kom., M.Kom
Andriyan Rizki Jatmiko, S.Si., M.Kom
Legito, ST., M.Kom
Erwin Ardias Saputra, S.T., M.T
Fizar syafa'at, S.Kom., M.Kom
Dewi Fatmarani Surianto, S.Kom., M.Kom
Rita Komalasari, S.Si., M.Kom
Iqbal Ramadhani Mukhlis, S.Kom., M.Kom
Sulistyowati, S.T., M.Kom
Teguh Ansyor Lorosae, M.Kom
Neni Nur Laili Ersela Zain, S.Si

Penerbit
BUKU AJAR
LOGIKA & ALGORITMA

Tim Penulis :
Khairunnisa, S.Pd., M.Cs
Nurhadi, S.Kom., M.Kom
Andriyan Rizki Jatmiko, S.Si., M.Kom
Legito, ST., M.Kom
Erwin Ardias Saputra, S.T., M.T
Fizar syafa'at, S.Kom., M.Kom
Dewi Fatmarani Surianto, S.Kom., M.Kom
Rita Komalasari, S.Si., M.Kom
Iqbal Ramadhani Mukhlis, S.Kom., M.Kom
Sulistyowati, S.T., M.Kom
Teguh Ansyor Lorosae, M.Kom
Neni Nur Laili Ersela Zain, S.Si

ISBN : 978-623-8345-19-9 (PDF)

Editor :
Efitra, M.Kom & Sepriano, M.Kom
Penyunting :
Nur Safitri
Desain sampul dan Tata Letak :
Yayan Agusdi
Penerbit :
PT. Sonpedia Publishing Indonesia
Redaksi :
Jl. Kenali Jaya No 166 Kota Jambi 36129 Telp. +6282177858344
Email : sonpediapublishing@gmail.com
Website : www.buku.sonpedia.com

Anggota IKAPI : 006/JBI/2023

Cetakan Pertama, Agustus 2023

Hak cipta dilindungi undang-undang


Dilarang memperbanyak karya tulis ini dalam bentuk dan dengan
cara Apapun tanpa ijin dari penerbit
KATA PENGANTAR

Puji syukur kepada Allah SWT yang telah memberikan rahmat dan
hidayah-Nya sehingga penulis dapat menyelesaikan buku ini
dengan baik. Buku ini berjudul “BUKU AJAR LOGIKA DAN
ALGORITMA". Tidak lupa kami ucapkan terima kasih bagi semua
pihak yang telah membantu dalam penulisan dan penerbitan buku
ini.

Logika dan algoritma merupakan dasar-dasar penting yang menjadi


landasan bagi pengembangan solusi permasalahan dalam
berbagai bidang teknologi.

Buku Ajar Logika & Algoritma ini sebagai panduan yang


komprehensif dalam memahami dan menguasai dua aspek krusial
dalam dunia pemrograman dan ilmu komputer dan buku ini dapat
digunakan oleh dosen dalam melaksanakan kegiatan pembelajaran
khususnya Program Studi Informatika dan bidang Ilmu Komputer
terkait lainnya. Buku ini umum dapat digunakan sebagai panduan
dan referensi mengajar menyesuaikan Rencana Pembelajaran
Semester tingkat Perguruan Tinggi masing-masing.

Secara garis besar, buku ajar ini pembahasan dimulai dari


pengantar Informatika . Buku ini disusun secara sistematis
mencakup beberapa topik penting, seperti definisi dan aspek
Informatika, hubungan Logika dan Komputer, Penghubung /
Operator Logika, Simbol Kebenaran dan Simbol Proposisi, Syarat
dan Ciri Algoritma, Tipe Data, Operator & Konstanta, Jenis dan
Simbol Flowchart, Pseudocode, Konsep penulisan kode program
di C++, Struktur percabangan IF, IF-ELSE,IF-ELSE,IF,dan Switch-
Case. Selain itu Buku ini juga menyajikan contoh kasus yang
membantu pembaca memahami penggunaan percabangan dalam
penyelesaian masalah. Contoh Kasus membuat algoritma untuk
kasus percabangan untuk penyelesaian.

BUKU AJAR LOGIKA & ALGORITMA i


Buku Ajar ini, ditulis dengan bahasa yang jelas dan mudah
dipahami, buku ajar ini dirancang untuk digunakan oleh dosen
dalam kegiatan pembelajaran mahasiswa. Kami berharap buku ini
memberikan wawasan berharga dan menjadi panduan yang
berguna dalam memahami dan mempelajari Logika & Algoritma.

Buku ini mungkin masih terdapat kekurangan dan kelemahan. Oleh


karena itu, saran dan kritik para pemerhati sungguh penulis
harapkan. Semoga buku ini memberikan manfaat dan menambah
khasanah ilmu pengetahuan.

Bima, Juli 2023


Tim Penulis

BUKU AJAR LOGIKA & ALGORITMA ii


DAFTAR ISI

KATA PENGANTAR .............................................................................. i


DAFTAR ISI ........................................................................................ iii
KEGIATAN BELAJAR 1 PENGANTAR (DEFINISI DAN ASPEK
INFORMATIKA) .................................................................................. 1
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. PENGERTIAN LOGIKA DAN ALGORITMA ....................................... 2
B. ASPEK-ASPEK DALAM INFORMATIKA ........................................... 3
C. FUNGSI LOGIKA DAN ALGORITMA ............................................... 4
D. JENIS-JENIS LOGIKA DAN ALGORITMA ......................................... 6
E. RANGKUMAN ............................................................................... 8
F. TES FORMATIF .............................................................................. 9
G. LATIHAN........................................................................................ 9
KEGIATAN BELAJAR 2 HUBUNGAN LOGIKA DAN KOMPUTER ............. 10
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. HUBUNGAN LOGIKA DAN KOMPUTER DALAM
PEMROGRAMAN ........................................................................ 11
B. HUBUNGAN LOGIKA DAN KOMPUTER DALAM KECERDASAN
BUATAN ...................................................................................... 14
C. HUBUNGAN LOGIKA DAN KOMPUTER DALAM VERIFIKASI
PERANGKAT LUNAK .................................................................... 17
D. HUBUNGAN LOGIKA DAN KOMPUTER DALAM DESAIN DAN
OPTIMALISASI SISTEM KOMPUTER ............................................ 17
E. HUBUNGAN LOGIKA DAN KOMPUTER DALAM KOMPUTASI
KUANTUM................................................................................... 19
F. RANGKUMAN ............................................................................. 20
G. TES FORMATIF ............................................................................ 20
H. LATIHAN...................................................................................... 21
KEGIATAN BELAJAR 3 OPERATOR LOGIKA ......................................... 22
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. PENGERTIAN OPERATOR ............................................................ 24

BUKU AJAR LOGIKA & ALGORITMA iii


B. OPERATOR ARITMATIKA ............................................................. 25
C. OPERATOR RELASI ...................................................................... 26
D. OPERATOR LOGIKA DASAR ......................................................... 28
E. OPERATOR LOGIKA LANJUTAN ................................................... 30
F. OPERATOR LOGIKA BITWISE ....................................................... 31
G. RANGKUMAN ............................................................................. 33
H. TES FORMATIF ............................................................................ 33
I. LATIHAN...................................................................................... 34
KEGIATAN BELAJAR 4 SIMBOL KEBENARAN DAN SIMBOL PROPOSISI . 35
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. LOGIKA PROPOSISI...................................................................... 36
B. ATURAN SINTAKTIK .................................................................... 37
C. NOTASI ........................................................................................ 39
D. RANGKUMAN ............................................................................. 41
E. TES FORMATIF ............................................................................ 42
F. LATIHAN...................................................................................... 44
KEGIATAN BELAJAR 5 SYARAT DAN CIRI ALGORITMA ....................... 45
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. DEFINISI ALGORITMA ................................................................. 46
B. ALASAN PENGGUNAAN ALGORITMA ......................................... 48
C. KELEBIHAN DAN KEKURANGAN MENGGUNAKAN ALGORITMA 50
D. SYARAT SEBUAH ALGORITMA .................................................... 52
E. CIRI SEBUAH ALGORITMA........................................................... 53
F. KONSEP DASAR ALGORITMA ...................................................... 55
G. STRUKTUR DASAR ALGORITMA .................................................. 57
H. ANALISIS ALGORITMA................................................................. 58
I. PEDOMAN MENYUSUN SEBUAH ALGORITMA ........................... 59
J. PENYELESAIAN MASALAH DENGAN ALGORITMA....................... 61
K. RANGKUMAN ............................................................................. 62
L. TES FORMATIF ............................................................................ 63
M. LATIHAN...................................................................................... 64
KEGIATAN BELAJAR 6 TIPE DATA ...................................................... 65
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN

BUKU AJAR LOGIKA & ALGORITMA iv


A. PENGERTIAN DATA ..................................................................... 66
B. INDENTIFIER................................................................................ 67
C. TIPE DATA DASAR ....................................................................... 69
D. VARIABEL .................................................................................... 72
E. KONVERSI TIPE DATA .................................................................. 73
F. RANGKUMAN ............................................................................. 74
G. TES FORMATIF ............................................................................ 75
H. LATIHAN...................................................................................... 76
KEGIATAN BELAJAR 7 OPERATOR DAN KONSTANTA .......................... 77
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. PENGERTIAN OPERATOR ............................................................ 78
B. SIFAT-SIFAT OPERATOR .............................................................. 78
C. JENIS-JENIS OPERATOR ............................................................... 78
D. OPERATOR ++ DAN OPERATOR – ............................................... 82
E. KONSEP DASAR KONSTANTA DAN CONTOHNYA ....................... 83
F. RANGKUMAN ............................................................................. 84
G. TES FORMATIF ............................................................................ 84
H. LATIHAN...................................................................................... 85
KEGIATAN BELAJAR 8 JENIS DAN SIMBOL FLOWCHART ..................... 86
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. PENGERTIAN FLOWCHART ......................................................... 87
B. FUNGSI FLOWCHART .................................................................. 88
C. SIMBOL/PEDOMAN FLOWCHART ............................................... 89
D. KEUNTUNGAN/KETERBATASAN FLOWCHART ............................ 94
E. JENIS-JENIS FLOWCHART ............................................................ 95
F. RANGKUMAN ............................................................................. 96
G. TES FORMATIF ............................................................................ 96
H. LATIHAN...................................................................................... 97
KEGIATAN BELAJAR 9 PSEUDOCODE ................................................. 98
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. PENGERTIAN PSEUDOCODE ....................................................... 99
B. FUNGSI PSEUDOCODE .............................................................. 101
C. SINTAKSIS PSEUDOCODE .......................................................... 102

BUKU AJAR LOGIKA & ALGORITMA v


D. ALUR LOGIKA PSEUDOCODE..................................................... 105
E. IMPLEMENTASI PSEUDOCODE ................................................. 108
F. RANGKUMAN ........................................................................... 109
G. TES FORMATIF .......................................................................... 110
H. LATIHAN.................................................................................... 111
KEGIATAN BELAJAR 10 KONSEP PENULISAN KODE PROGRAM DI C++ 112
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. SEJARAH BAHASA PEMROGRAMAN C++ .................................. 113
B. STRUKTUR PROGRAM C++........................................................ 113
C. ATURAN DASAR PROGRAM C++ ............................................... 116
D. IDENTIFIER PADA C++ ............................................................... 117
E. PERNYATAAN PENUGASAN DAN INISIALISASI .......................... 118
F. STATEMENT INPUT OUTPUT .................................................... 121
G. KOMENTAR ............................................................................... 126
H. RANGKUMAN ........................................................................... 129
I. TES FORMATIF .......................................................................... 129
J. LATIHAN.................................................................................... 130
KEGIATAN BELAJAR 11 STRUKTUR PERCABANGAN IF, IF-ELSE,
IF-ELSE IF, DAN SWITCH-CASE ......................................................... 131
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. PENGERTIAN PERCABANGAN ................................................... 132
B. PERCABANGAN KONDISI IF ....................................................... 134
C. PERCABANGAN KONDISI IF-ELSE .............................................. 136
D. PERCABANGAN KONDISI IF-ELSE IF .......................................... 137
E. SWITCH CASE ............................................................................ 139
F. RANGKUMAN ........................................................................... 141
G. TES FORMATIF .......................................................................... 142
H. LATIHAN.................................................................................... 143
KEGIATAN BELAJAR I2 APLIKASI PEMBELIAN MENU MAKANAN ....... 144
DESKRIPSI, KOMPETENSI DAN PETA KONSEP PEMBELAJARAN
A. PERUMUSAN MASALAH ........................................................... 145
B. DIAGRAM ALIR PROGRAM APLIKASI ........................................ 145
C. MEMBANGUN APLIKASI DENGAN C++ ..................................... 149

BUKU AJAR LOGIKA & ALGORITMA vi


D. RANGKUMAN ........................................................................... 155
E. TES FORMATIF .......................................................................... 156
F. LATIHAN.................................................................................... 156
DAFTAR PUSTAKA .......................................................................... 157
TENTANG PENULIS ......................................................................... 161

BUKU AJAR LOGIKA & ALGORITMA vii


KEGIATAN BELAJAR 1
PENGANTAR (DEFINISI DAN ASPEK INFORMATIKA)

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa mempelajari pengenalan dan konsep
dasar teoritis logika dan algoritma. Diharapkan mahasiswa memiliki
wawasan dan pemahaman untuk modal dasar mempelajari logika
dan algoritma lebih lanjut.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dan
mahasiswi memiliki pengetahuan dan kemampuan :
1. Mampu menguraikan definisi logika dan algoritma.
2. Mempu menjelaskan aspek informatika.
3. Mampu menjelaskan fungsi dan jenis-jenis logika dan algoritma.

PETA KONSEP PEMBELAJARAN

BUKU AJAR LOGIKA & ALGORITMA 1


A. PENGERTIAN LOGIKA DAN ALGORITMA

Logika adalah ilmu yang mempelajari cara berpikir yang tepat dan
benar. Ini melibatkan penelitian tentang prinsip-prinsip dasar
pemikiran rasional, inferensi, dan pembuktian. Logika membantu
kita dalam menganalisis argumen, mengidentifikasi kesalahan
berpikir, dan membangun pemikiran yang koheren dan konsisten.

Secara umum, logika terbagi menjadi dua cabang utama: logika


formal dan logika informal. Logika formal berkaitan dengan simbol-
simbol matematika dan aturan-aturan yang mengatur pemikiran
rasional. Ini mencakup proposisi logika, logika predikat, logika
fuzzy, dan logika modal, di antara lain. Logika formal digunakan
sebagai alat untuk memodelkan dan menganalisis berbagai jenis
pemikiran.

Sementara itu, logika informal berkaitan dengan cara berpikir


sehari-hari yang tidak diatur oleh simbol-simbol matematika. Ini
melibatkan penalaran dalam bahasa alami dan menganalisis
argumen berdasarkan asumsi, implikasi, dan kesalahan berpikir
umum. Logika informal berguna dalam berkomunikasi, memahami
argumen orang lain, dan menghasilkan argumen yang kuat.

Algoritma adalah urutan langkah-langkah terstruktur yang


digunakan untuk menyelesaikan masalah atau mencapai tujuan
tertentu. Ini adalah resep yang dapat diikuti untuk menjalankan
tugas tertentu. Algoritma melibatkan pemecahan masalah dengan
menguraikan masalah menjadi langkah-langkah yang lebih
sederhana, mengidentifikasi kondisi dan pengulangan, serta
mengatur langkah-langkah dalam urutan yang logis.

Algoritma dapat digunakan dalam berbagai bidang, termasuk


matematika, ilmu komputer, kecerdasan buatan, dan sebagainya.
Mereka merupakan dasar dari perangkat lunak, program komputer,
dan sistem komputasi lainnya. Algoritma sering dinyatakan dalam
bahasa pemrograman untuk dapat dieksekusi oleh komputer.

BUKU AJAR LOGIKA & ALGORITMA 2


Dalam merancang algoritma yang baik, penting untuk
mempertimbangkan efisiensi, kejelasan, dan keandalan. Algoritma
yang efisien akan menjalankan tugas dengan cepat dan
menggunakan sumber daya yang minimal. Algoritma yang jelas
akan mudah dipahami dan diikuti oleh orang lain. Algoritma yang
andal akan memberikan hasil yang benar dan dapat diandalkan
dalam berbagai situasi.

B. ASPEK-ASPEK DALAM INFORMATIKA

Aspek-informatika memiliki kaitan yang erat dengan logika dan


algoritma. Berikut adalah beberapa kaitan antara aspek-informatika
dengan logika dan algoritma:
1. Logika dalam Aspek-Informatika: Logika merupakan dasar
penting dalam pengembangan sistem dan program komputer.
Prinsip-prinsip logika digunakan untuk merancang algoritma
yang efektif dan memastikan kebenaran dan konsistensi dalam
pemrosesan informasi. Logika formal seperti logika proposisi dan
logika predikat sering digunakan dalam algoritma dan program
komputer untuk mengatur alur eksekusi dan mengambil
keputusan berdasarkan aturan logika.
2. Algoritma dalam Aspek-Informatika: Algoritma adalah langkah-
langkah terstruktur untuk menyelesaikan masalah atau
mencapai tujuan tertentu. Dalam aspek-informatika, algoritma
digunakan untuk memodelkan proses komputasi yang efisien
dan akurat. Algoritma memainkan peran penting dalam
pengembangan perangkat lunak, pemrosesan data,
pengembangan kecerdasan buatan, dan bidang-bidang lainnya
dalam informatika. Algoritma membantu dalam pemecahan
masalah dan pemrograman yang efektif.
3. Pemrograman dan Implementasi Algoritma: Aspek-informatika
mencakup penggunaan bahasa pemrograman dan lingkungan
pengembangan untuk menerapkan algoritma dalam bentuk
program komputer. Pemrograman memungkinkan implementasi
algoritma secara konkret dalam bahasa komputer yang dapat

BUKU AJAR LOGIKA & ALGORITMA 3


dieksekusi. Program-program yang dihasilkan menggunakan
algoritma untuk memanipulasi data, menghasilkan keluaran, dan
menjalankan tugas-tugas komputasi yang diinginkan.
4. Analisis Kompleksitas Algoritma: Aspek-informatika juga
melibatkan analisis kompleksitas algoritma, yang berfokus pada
mempelajari kinerja dan efisiensi algoritma dalam hal waktu
eksekusi dan penggunaan sumber daya. Analisis kompleksitas
membantu dalam memilih algoritma yang paling cocok untuk
menyelesaikan masalah tertentu dan memprediksi kinerja
mereka dalam skenario yang berbeda.

Dalam keseluruhan, aspek-informatika memberikan kerangka kerja


untuk menerapkan logika dalam algoritma dan menggunakan
algoritma untuk memanipulasi dan memproses informasi secara
efisien. Logika digunakan untuk merancang algoritma yang benar
dan konsisten, sementara algoritma memberikan panduan konkret
untuk melakukan komputasi yang diinginkan.

C. FUNGSI LOGIKA DAN ALGORITMA

Dalam logika, fungsi adalah konsep yang digunakan untuk


merepresentasikan hubungan antara satu atau lebih argumen
dengan suatu nilai atau hasil. Fungsi menggambarkan bagaimana
argumen-argumen tersebut berkontribusi untuk menghasilkan nilai
keluaran. Fungsi logika merujuk pada aturan atau hubungan antara
proposisi atau argumen logis. Fungsi logika digunakan untuk
memodelkan bagaimana proposisi atau argumen saling berinteraksi
dan bagaimana kebenaran keseluruhan diperoleh dari kebenaran
proposisi individu.

Beberapa jenis fungsi dalam logika termasuk:


1. Fungsi Proposisi: Fungsi proposisi menerima satu atau lebih
argumen proposisi dan menghasilkan proposisi baru sebagai
keluaran. Misalnya, fungsi AND (konjungsi) menerima dua
argumen proposisi dan menghasilkan proposisi yang benar
hanya jika kedua argumen benar.

BUKU AJAR LOGIKA & ALGORITMA 4


2. Fungsi Predikat: Fungsi predikat menerima argumen dan
menghasilkan nilai kebenaran (benar atau salah). Misalnya,
fungsi "lebih besar dari" adalah fungsi predikat yang menerima
dua angka sebagai argumen dan menghasilkan nilai benar jika
argumen pertama lebih besar dari argumen kedua.
3. Fungsi Arity: Fungsi arity mengacu pada jumlah argumen yang
diterima oleh fungsi. Misalnya, fungsi unary menerima satu
argumen, fungsi binary menerima dua argumen, dan fungsi
ternary menerima tiga argumen.

Dalam algoritma, fungsi adalah blok kode yang memiliki tugas


tertentu dan dapat dipanggil atau dieksekusi secara terpisah dari
bagian lain dari program. Fungsi membantu dalam memecah
masalah menjadi submasalah yang lebih kecil dan memfasilitasi
pemrograman modular dan pemakaian kembali kode. Beberapa
jenis fungsi dalam algoritma termasuk:
1. Fungsi Matematika: Fungsi matematika digunakan untuk
melakukan operasi matematika tertentu, seperti penjumlahan,
pengurangan, perkalian, pembagian, akar kuadrat, dan
sebagainya. Fungsi ini membantu dalam pemrosesan angka dan
perhitungan matematika dalam algoritma.
2. Fungsi String: Fungsi string digunakan untuk memanipulasi dan
memproses data dalam bentuk string. Misalnya, fungsi untuk
menggabungkan string, memotong string, mencari pola dalam
string, dan sebagainya. Fungsi string membantu dalam
manipulasi dan pemrosesan teks dalam algoritma.
3. Fungsi Kontrol: Fungsi kontrol digunakan untuk mengendalikan
aliran eksekusi dalam algoritma. Ini termasuk fungsi
pengambilan keputusan seperti if-else, switch-case, dan fungsi
pengulangan seperti for, while, do-while. Fungsi kontrol
memungkinkan algoritma untuk memilih tindakan yang tepat
berdasarkan kondisi yang ada.
4. Fungsi Khusus: Beberapa algoritma mungkin memerlukan fungsi
yang spesifik untuk memenuhi kebutuhan mereka. Misalnya,

BUKU AJAR LOGIKA & ALGORITMA 5


algoritma pencarian mungkin memerlukan fungsi untuk
membandingkan elemen-elemen

Pentingnya fungsi dalam algoritma adalah untuk memecah


kompleksitas masalah menjadi bagian-bagian yang lebih kecil,
meningkatkan keterbacaan kode, dan memungkinkan pemakaian
kembali kode. Dengan menggunakan fungsi, pengembang dapat
mengatur dan mengelompokkan kode dengan cara yang logis,
memisahkan tugas-tugas yang berbeda ke dalam unit yang
terpisah, dan mempermudah pengembangan, pemeliharaan, dan
pengujian algoritma secara keseluruhan.

D. JENIS-JENIS LOGIKA DAN ALGORITMA

Jenis-jenis logika yang umum digunakan dalam informatika adalah:


1. Logika Proposisi: Logika proposisi adalah logika yang berfokus
pada pengolahan proposisi atau pernyataan yang dapat bernilai
benar atau salah. Logika proposisi menggunakan operator logika
seperti negasi, konjungsi, disjungsi, implikasi, dan ekuivalensi
untuk menggabungkan dan memanipulasi proposisi. Proposisi
dalam logika proposisi tidak memiliki struktur internal yang
kompleks. Logika proposisi menggunakan operator logika
seperti negasi (¬), konjungsi (∧), disjungsi (∨), implikasi (→), dan
ekuivalensi (↔) untuk memanipulasi dan menganalisis proposisi.
2. Logika Predikat: Logika predikat adalah logika yang memperluas
logika proposisi dengan memasukkan variabel dan kuantor.
Logika predikat memungkinkan kita untuk melakukan analisis
yang lebih rinci tentang pernyataan dengan menggunakan
variabel dan kuantor seperti kuantor universal (∀) dan kuantor
eksistensial (∃), digunakan untuk memperkenalkan kuantifikasi
pada variabel dan menghubungkan variabel dengan predikat
dalam logika.
3. Logika Modal: Logika modal adalah logika yang melibatkan
konsep modalitas, yaitu konsep tentang keharusan,
kemungkinan, atau kebenaran dalam konteks tertentu. Logika

BUKU AJAR LOGIKA & ALGORITMA 6


modal menggunakan operator logika modal seperti "□" (box)
untuk menyatakan kebenaran yang tidak dapat dirubah dan "◇"
(diamond) untuk menyatakan kemungkinan. Logika modal
digunakan untuk menganalisis konsep seperti pengetahuan,
keyakinan, dan kemungkinan dalam sistem formal.
4. Logika Fuzzy: Logika fuzzy adalah logika yang memungkinkan
variabel memiliki nilai yang berkisar antara benar dan salah.
Dalam logika fuzzy, suatu pernyataan dapat memiliki tingkat
kebenaran yang berbeda-beda, bukan hanya benar atau salah.
Hal ini memungkinkan representasi yang lebih realistis dari
ketidakpastian dalam pemrosesan informasi.

Sedangkan, jenis-jenis algoritma yang umum digunakan dalam


informatika meliputi:
1. Algoritma Pencarian: Algoritma pencarian digunakan untuk
mencari elemen atau nilai tertentu dalam kumpulan data.
Algoritma pencarian digunakan untuk mencari elemen tertentu
dalam kumpulan data. Jenis algoritma pencarian termasuk
Pencarian Linier, Pencarian Binari, Pencarian Interpolasi,
Pencarian Hash dan Algoritma Pencarian Grafik
2. Algoritma Pengurutan: Algoritma pengurutan digunakan untuk
mengurutkan elemen dalam kumpulan data dalam urutan
tertentu. Contoh algoritma pengurutan termasuk Bubble Sort,
Insertion Sort, Quick Sort, dan Merge Sort.
3. Algoritma Grafik: Algoritma grafik digunakan untuk memodelkan
dan memanipulasi struktur data grafik. Contoh algoritma grafik
termasuk Algoritma Dijkstra, Algoritma Bellman-Ford, dan
Algoritma Depth-First Search (DFS) dan Breadth-First Search
(BFS).
4. Algoritma Greedy: Algoritma greedy adalah jenis algoritma yang
memilih tindakan yang paling optimal pada setiap langkah,
dengan harapan akan menghasilkan solusi global yang optimal.
Contoh algoritma greedy termasuk Algoritma Greedy Knapsack
dan Algoritma Greedy Dijkstra.

BUKU AJAR LOGIKA & ALGORITMA 7


5. Algoritma Dinamis: Algoritma dinamis melibatkan pembagian
masalah menjadi submasalah yang lebih kecil dan
memanfaatkan hasil yang sudah diketahui untuk menghasilkan
solusi yang optimal secara keseluruhan. Contoh algoritma
dinamis termasuk Algoritma Dynamic Programming Fibonacci
dan Algoritma Dynamic Programming Knapsack.

E. RANGKUMAN

Logika adalah cabang filsafat yang mempelajari tentang penalaran


dan kebenaran. Logika digunakan untuk memodelkan dan
menganalisis argumen, pernyataan, dan kesimpulan dalam
pemrosesan informasi. Jenis-jenis logika meliputi logika proposisi,
logika predikat, logika modal, dan logika fuzzy. Logika proposisi
berfokus pada manipulasi proposisi yang bernilai benar atau salah
menggunakan operator logika seperti negasi, konjungsi, disjungsi,
implikasi, dan ekuivalensi. Logika predikat memperluas logika
proposisi dengan memperkenalkan variabel dan kuantor. Logika
modal melibatkan konsep modalitas seperti keharusan,
kemungkinan, atau kebenaran dalam konteks tertentu. Logika fuzzy
memperluas logika tradisional dengan memperkenalkan tingkat
kebenaran yang berkisar antara 0 hingga 1.

Algoritma adalah serangkaian langkah atau prosedur logis yang


digunakan untuk memecahkan masalah atau mencapai tujuan
tertentu. Algoritma berfungsi untuk mengorganisasi, memanipulasi,
dan mengolah data dan informasi. Jenis-jenis algoritma meliputi
algoritma pencarian, algoritma pengurutan, algoritma grafik,
algoritma greedy, algoritma dinamis, dan algoritma backtracking.
Algoritma pencarian digunakan untuk mencari elemen tertentu
dalam kumpulan data. Algoritma pengurutan digunakan untuk
mengurutkan elemen dalam kumpulan data dalam urutan tertentu.
Algoritma grafik digunakan untuk memodelkan dan memanipulasi
struktur data grafik. Algoritma greedy membuat keputusan lokal
yang optimal pada setiap langkah. Algoritma dinamis membagi
masalah menjadi submasalah yang lebih kecil dan memanfaatkan

BUKU AJAR LOGIKA & ALGORITMA 8


hasil yang sudah diketahui. Algoritma backtracking mencoba solusi
secara bertahap, dan jika menemui jalan buntu, mundur dan
mencoba jalur lain. Kombinasi penggunaan logika dan algoritma
membantu dalam memecahkan masalah, mengoptimalkan proses,
dan membuat keputusan yang efisien dalam pemrosesan informasi.

F. TES FORMATIF

1. Berikan definisi logika predikat dan jelaskan perbedaannya


dengan logika proposisi.
2. Jelaskan konsep negasi, konjungsi, dan disjungsi dalam logika
proposisi dengan memberikan contoh konkret.
3. Apa itu kuantor universal (∀) dan kuantor eksistensial (∃) dalam
logika predikat? Berikan contoh penggunaan kuantor dalam
pernyataan predikat.
4. Jelaskan perbedaan antara algoritma pencarian linier (linear
search) dan algoritma pencarian biner (binary search). Kapan
kita menggunakan masing-masing algoritma?
5. Berikan langkah-langkah atau pseudocode untuk
mengimplementasikan algoritma pencarian biner pada sebuah
array terurut.
6. Apa kompleksitas waktu terbaik dan terburuk dari algoritma
pencarian linier dan algoritma pencarian biner?
7. Jelaskan perbedaan antara algoritma Bubble Sort dan algoritma
Quick Sort. Bagaimana kompleksitas waktu keduanya?
8. Jelaskan perbedaan antara algoritma Depth-First Search (DFS)
dan algoritma Breadth-First Search (BFS). Kapan kita
menggunakan masing-masing algoritma?

G. LATIHAN

1. Gambarkan langkah-langkah algoritma DFS pada grafik berikut:

BUKU AJAR LOGIKA & ALGORITMA 9


KEGIATAN BELAJAR 2
HUBUNGAN LOGIKA DAN KOMPUTER

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa mempelajari pengenalan dan konsep
dasar teoritis hubungan logika dan komputer. Diharapkan
mahasiswa memiliki wawasan dan pemahaman untuk modal dasar
mempelajari logika yang berhubungan dengan komputer.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dan
mahasiswi memiliki pengetahuan dan kemampuan :
1. Mampu menguraikan definisi hubungan logika dan komputer.
2. Mempu menjelaskan Aspek apa saja hubungan antara logika
dan computer

PETA KONSEP PEMBELAJARAN

BUKU AJAR LOGIKA & ALGORITMA 10


A. HUBUNGAN LOGIKA DAN KOMPUTER DALAM
PEMROGRAMAN

Logika adalah dasar pemrograman komputer. Konsep logika,


seperti pemikiran deduktif, inferensi, dan aljabar Boolean,
digunakan dalam merancang algoritma dan mengembangkan
program yang efisien. Logika memungkinkan pengembang untuk
mengatur instruksi-instruksi secara logis, membuat keputusan
berdasarkan kondisi tertentu, dan mengontrol aliran eksekusi
program.

Pemrograman Logika adalah gaya pemrograman di mana program


berbentuk kumpulan kalimat dalam bahasa Logika
Simbolik(Genesereth & Chaudhri, 2020). Program yang ditulis
dengan gaya ini disebut program logika. Bahasa di mana program
ini ditulis disebut bahasa pemrograman logika. Sistem komputer
yang mengelola pembuatan dan pelaksanaan program logika
disebut logika sistem pemrograman.

Pemrograman Logika sering dikatakan deklaratif atau deskriptif dan


kontras dengan imperatif atau bersifat menentukan pendekatan
pemrograman yang terkait dengan bahasa pemrograman
tradisional.

Dalam pemrograman imperative / preskriptif, pemrogram


menyediakan program operasional terperinci untuk suatu sistem
dalam hal detail pemrosesan internal (seperti tipe data dan
penugasan variabel). Dalam menulis program seperti itu,
pemrogram biasanya mempertimbangkan informasi tentang area
aplikasi yang diinginkan dan tujuan dari program mereka, tetapi
informasi tersebut jarang dicatat dalam program yang dihasilkan,
kecuali dalam bentuk komentar yang tidak dapat dijalankan. Dalam
pemrograman deklaratif/deskriptif, pemrogram secara eksplisit
menyandikan informasi tentang area aplikasi dan tujuan program,
tetapi mereka tidak menentukan detail pemrosesan internal,
menyerahkannya kepada sistem yang menjalankan program
tersebut untuk memutuskan sendiri detail tersebut.

BUKU AJAR LOGIKA & ALGORITMA 11


Sebagai contoh intuitif dari perbedaan ini, pertimbangkan tugas
memprogram robot untuk bernavigasi dari satu titik di gedung ke
titik kedua. Program imperatif tipikal akan mengarahkan robot untuk
bergerak maju dalam jumlah tertentu (atau sampai sensornya
menunjukkan tempat yang sesuai); itu kemudian akan memberi
tahu robot untuk berbalik dan bergerak maju lagi; dan seterusnya
hingga robot tiba di tempat tujuan. Sebaliknya, program deklaratif
tipikal akan terdiri dari peta dan indikasi titik awal dan akhir pada
peta dan menyerahkannya kepada robot untuk memutuskan
bagaimana melanjutkannya.

Program logika adalah jenis program deklaratif yang


menggambarkan area aplikasi program dan tujuan yang ingin
dicapai oleh pemrogram. Ini berfokus pada what is true (apa benar)
dan what is wanted (apa diinginkan) dari pada how (bagaimana)
untuk mencapai tujuan yang diinginkan. Dalam hal ini, program
logika lebih dari spesifikasi dari sebuah penerapan.

Program logika biasanya lebih mudah dibuat dan lebih mudah untuk
dimodifikasi dari pada program tradisional. Pemrogram dapat
bertahan dengan sedikit atau tanpa pengetahuan tentang
kemampuan dan keterbatasan sistem yang menjalankan program
tersebut, dan mereka tidak perlu memilih metode khusus untuk
mencapai tujuan program mereka.

Program logika lebih mudah disusun daripada program tradisional.


Dalam menulis program logika, pemrogram tidak perlu membuat
pilihan yang sewenang-wenang. Akibatnya, program logika dapat
digabungkan satu sama lain dengan lebih mudah daripada program
tradisional di mana pilihan sewenang-wenang yang tidak perlu
dapat menimbulkan konflik.

Program logika juga lebih banyak bervariasi daripada program


tradisional. Suatu sistem yang menjalankan program logika dapat
dengan mudah beradaptasi dengan perubahan tak terduga pada
asumsi dan/atau tujuannya. Sekali lagi pertimbangkan robot yang
dijelaskan di bagian sebelumnya. Jika robot yang menjalankan

BUKU AJAR LOGIKA & ALGORITMA 12


program logika mengetahui bahwa sebuah koridor tiba-tiba tertutup,
ia dapat memilih koridor yang berbeda. Jika robot diminta untuk
mengambil dan mengirimkan beberapa barang di sepanjang jalan,
robot dapat menggabungkan rute untuk menyelesaikan kedua
tugas tersebut tanpa harus menyelesaikannya satu per satu.
Akhirnya, program logika lebih serba guna dari pada program
tradisional karena dapat digunakan untuk berbagai tujuan.

Pemrograman Logika dapat digunakan dengan sukses di hampir


semua area aplikasi. Namun, ini memiliki nilai khusus di bidang
aplikasi yang ditandai dengan sejumlah besar definisi dan batasan
serta aturan tindakan, terutama jika definisi dan batasan serta
aturan tersebut berasal dari berbagai sumber atau sering berubah.
Berikut ini adalah beberapa area aplikasi di mana Pemrograman
Logika telah terbukti sangat berguna(Genesereth & Chaudhri,
2020):
1. Sistem Basis Data. Dengan membuat konsep tabel basis data
sebagai rangkaian kalimat sederhana, Logika dapat digunakan
untuk mendukung sistem basis data. Misalnya, bahasa Logika
dapat digunakan untuk mendefinisikan tampilan virtual data
dalam bentuk tabel yang disimpan secara eksplisit; itu dapat
digunakan untuk menyandikan batasan pada basis data; dapat
digunakan untuk menentukan kebijakan kontrol akses; dan dapat
digunakan untuk menulis aturan pembaruan.
2. Lembar Kerja (worksheets). Lembar kerja menggeneralisasi
spreadsheet tradisional untuk menyertakan batasan logis serta
rumus aritmatika tradisional. Banyak sekali contoh kendala
seperti itu. Misalnya, dalam aplikasi penjadwalan, kita mungkin
memiliki batasan waktu atau batasan tentang siapa yang dapat
memesan kamar, contoh lain dalam aplikasi perjalanan kita
mungkin memiliki batasan pada orang dewasa dan bayi. Dalam
lembar program akademik, kita mungkin memiliki batasan
tentang berapa banyak mata kuliah dari berbagai jenis yang
harus diambil oleh siswa.
3. Integrasi data.Bahasa Logika. Dapat digunakan untuk
menghubungkan konsep-konsep dalam kosa kata yang berbeda

BUKU AJAR LOGIKA & ALGORITMA 13


dan dengan demikian memungkinkan pengguna untuk
mengakses berbagai sumber data yang heterogen secara
terintegrasi, memberikan setiap pengguna ilusi dari satu basis
data yang dikodekan dalam kosa katanya sendiri.
4. Manajemen Perusahaan. Pemrograman logika memiliki nilai
khusus dalam mengekspresikan dan mengimplementasikan
peraturan bisnis dari berbagai macam. Aturan bisnis internal
termasuk kebijakan perusahaan (misalnya, persetujuan biaya)
dan alur kerja (siapa melakukan apa dan kapan). Aturan bisnis
eksternal meliputi rincian kontrak dengan perusahaan lain,
konfigurasi dan aturan penetapan harga untuk produk
perusahaan, dan sebagainya.
5. Hukum Komputasi. Hukum Komputasi adalah cabang
Informatika Hukum yang berkaitan dengan representasi aturan
dan peraturan dalam bentuk yang dapat dihitung. Pengkodean
undang-undang dalam bentuk yang dapat dihitung
memungkinkan analisis hukum otomatis dan penciptaan
teknologi untuk membuat analisis tersebut tersedia bagi warga
negara, dan pemantau dan penegak hukum, serta profesional
hukum.
6. Aplikasi Game. Pemain game umum adalah sistem yang dapat
menerima deskripsi game sewenang-wenang saat berjalan dan
dapat menggunakan deskripsi tersebut untuk memainkan game
tersebut secara efektif tanpa campur tangan manusia. Dengan
kata lain, mereka tidak mengetahui aturannya sampai permainan
dimulai.

B. HUBUNGAN LOGIKA DAN KOMPUTER DALAM


KECERDASAN BUATAN

Dalam John McCarthy, salah satu pelopor AI, adalah orang pertama
yang mendefinisikan istilah artificial kecerdasan, kira-kira sebagai
berikut: Tujuan AI adalah untuk mengembangkan mesin yang
berperilaku seolah-olah cerdas. Untuk menguji definisi ini, kita dapat
membayangkan skenario berikut. Lima belas atau lebih mesin

BUKU AJAR LOGIKA & ALGORITMA 14


robotik kecil bergerak di atas ruang tertutup berukuran empat kali
empat meter permukaan persegi. Seseorang dapat mengamati
berbagai pola perilaku. Beberapa robot terbentuk kelompok kecil
dengan gerakan yang relatif sedikit. Lainnya bergerak dengan
damai melalui ruang dan menghindari tabrakan apapun. Yang lain
lagi tampaknya mengikuti seorang pemimpin. Perilaku agresif juga
terlihat. Apakah yang kita lihat adalah perilaku cerdas? Menurut
definisi McCarthy robot tersebut dapat dijelaskan sebagai cerdas.

Psikolog Valentin Braitenberg telah menunjukkan bahwa ini


tampaknya perilaku kompleks dapat dihasilkan oleh rangkaian listrik
yang sangat sederhana [Bra84]. Disebut kendaraan Braitenberg
memiliki dua roda, yang masing-masing digerakkan oleh motor
listrik independen. Kecepatan masing-masing motor dipengaruhi
oleh sensor cahaya yang menyala.

Menurut Winston dan Prendergast (1984), tujuan dari Kecerdasan


Buatan adalah:
1. Membuat mesin menjadi lebih pintar.
2. Memahami apakah kecerdasan (intelligence) itu.
3. Membuat mesin menjadi lebih berguna.

Definisi AI menurut Russel dan Norvig (Russel, Norvig, 2003) dapat


dikategorikan menjadi dua dimensi utama yang membahas
proses/penalaran berpikir (reasoning) dan perilaku/tindakan
(behavior). Selanjutnya definisi AI dapat dijabarkan lagi
berdasarkan kinerja (performance) dan rasionalitasnya.

Beberapa contoh penerapan aplikasi kecerdasan buatan di dalam


computer (Ritha, 2016):
1. Sistem Pakar
Program yang didalam digunakan untuk memecahkan masalah
yang caranya menirukan proses para pakar/ahli.
2. Pemrosesan Bahasa Alami
Pemrosesan Bahasa Alami memungkinkan pengguna komputer
untuk berkomunikasi dengan komputer dalam bahasa asli
mereka (bahasa manusia). sehingga dialog percakapan dapat

BUKU AJAR LOGIKA & ALGORITMA 15


menggantikan perintah yang sering digunakan dalam bahasa
komputer sehari-hari. Sekali lagi, bidang ini dipisahkan menjadi
dua bagian:
a. Pemahaman bahasa alami adalah studi tentang teknik yang
membantu komputer memahami instruksi yang diberikan
dalam bahasa manusia sehari-hari. Artinya bisa memahami
bahasa manusia.
b. Pembangkitan bahasa alami, juga dikenal sebagai sintesis
ucapan, memungkinkan komputer menghasilkan bahasa
manusia sehari-hari sehingga orang dapat memahami
komputer dengan mudah.

3. Pemahaman Ucapan/suara
adalah metode untuk membuat komputer memahami bahasa
lisan. Dengan menggunakan metode ini, seseorang dapat
berbicara dengan komputer dan berkomunikasi dengannya.
Ungkapan "pengenalan suara" menyiratkan bahwa fungsi
utamanya adalah untuk mengidentifikasi kata-kata yang
diucapkan tanpa harus memahami artinya, sedangkan
"pemahaman suara" adalah pekerjaan yang harus dilakukan.
Secara umum, teknik ini bertujuan untuk mengubah ucapan
manusia menjadi kata atau kalimat yang dapat dipahami oleh
komputer.
4. Sistem Sensor dan Robotika
Robotika mencakup sistem sensor seperti sistem pencitraan dan
penglihatan serta sistem pemrosesan sinyal. Robot, yang
merupakan mesin elektromekanis yang diprogram untuk
melakukan pekerjaan fisik, tidak sepenuhnya termasuk dalam
kategori kecerdasan buatan.
5. Komputer Visi
menggabungkan pengambilan keputusan dengan citra,
pemrosesan gambar, pengenalan pola, dan prosedur lainnya.
Terjemahan suatu pemandangan adalah tujuan utama visi
komputer. Kontrol kualitas produk industri sering menggunakan
visi komputer.

BUKU AJAR LOGIKA & ALGORITMA 16


C. HUBUNGAN LOGIKA DAN KOMPUTER DALAM
VERIFIKASI PERANGKAT LUNAK

Logika digunakan dalam verifikasi dan validasi perangkat lunak.


Metode-metode logika formal, seperti model-checking dan theorem
proving, digunakan untuk membuktikan kebenaran atau kesalahan
dalam spesifikasi dan implementasi perangkat lunak. Logika
membantu dalam menemukan bug atau kesalahan logika yang
dapat terjadi dalam program(Clarke et al., 2018).

Beberapa contoh logika theorem proving yang digunakan untuk


computer:
1. Logika digunakan untuk alasan tentang program. bukti
kebenaran lengkap, atau bukti tidak adanya crash.
2. Logika proposisi digunakan untuk penalaran tentang sirkuit
boolean.
3. Telah digunakan untuk verifikasi hasil matematika seperti
teorema 4 warna.
4. Digunakan untuk database.(database deklaratif)
5. Pemrosesan bahasa alami.(Resolusi anafora,penjawaban
pertanyaan)
6. Mesin pencari, ontologi, XML dan lain sebgaianya.

Sedangkan Pengertian model checking adalah metode yang


dibantu komputer untuk analisis dinamika sistem yang dapat
dimodelkan oleh sistem transisi keadaan. Yang dilihat dari
penelitian tradisi dalam logika matematika, bahasa pemrograman,
desain perangkat keras, dan teoretis ilmu computer. Model
checking sekarang banyak digunakan untuk verifikasi perangkat
keras dan perangkat lunak dalam industri.

D. HUBUNGAN LOGIKA DAN KOMPUTER DALAM DESAIN


DAN OPTIMALISASI SISTEM KOMPUTER

Logika juga digunakan dalam desain dan optimalisasi sistem


komputer. Dalam elektronika digital, logika digunakan untuk

BUKU AJAR LOGIKA & ALGORITMA 17


merancang rangkaian logika yang mengimplementasikan fungsi
logika Boolean. Komputer modern beroperasi berdasarkan logika
digital, di mana bit dan operasi logika digunakan untuk memproses
dan menyimpan informasi.

Beberapa contoh logika yang digunakan untuk desain dan


optimalisasi sistem untuk computer:
1. Logika Boolean: Logika Boolean memanipulasi dan
menggabungkan nilai biner (0 dan 1) dengan menggunakan
operator logika seperti AND, OR, dan NOT. Sirkuit logika digital
untuk merancang dan menyempurnakan sistem komputer
menggunakan logika boolean. Untuk memulai operasi hanya
ketika semua persyaratan terpenuhi, misalnya, gerbang logika
AND digunakan untuk mengaktifkan suatu tindakan hanya ketika
semua kondisi terpenuhi.
2. Logika Proposisi: Dengan menggunakan logika proposisi,
seseorang dapat memeriksa dan mengotak-atik proposisi yang
mungkin benar atau tidak benar. Sangat membantu untuk
membuat algoritma dan memprogram sistem komputer.
Pemrogram dapat menggunakan pernyataan IF-ELSE berbasis
logika proposisional, misalnya, untuk mengarahkan eksekusi
program.
3. Logika Predikat: Pernyataan dengan variabel atau parameter
digunakan dalam logika predikat. Penciptaan bahasa
pemrograman dan optimalisasi sistem komputer keduanya
menggunakannya. Misalnya, Anda dapat menggunakan
pernyataan SELECT dengan klausa WHERE di SQL (Structured
Query Language) untuk mengambil data yang cocok dengan
kriteria tertentu.
4. Logika Fuzzy: Logika fuzzy memperkenalkan skala abu-abu
dan memungkinkan pemrosesan nilai yang tidak hanya terbatas
pada benar atau salah. Ini membantu kontrol otomatis sistem
komputer dan proses pengambilan keputusan. Logika fuzzy
dapat digunakan, misalnya, dalam sistem kontrol kecepatan
motor untuk menentukan berapa banyak daya yang akan
disuplai ke motor berdasarkan faktor luar dan data sensor.

BUKU AJAR LOGIKA & ALGORITMA 18


5. Logika Kuantum: Penciptaan komputer kuantum
memanfaatkan logika kuantum. Logika ini menggabungkan
konsep mekanika kuantum seperti superposisi dan keterikatan,
yang membuatnya berbeda dari logika konvensional. Manipulasi
informasi kuantum dan optimalisasi algoritme dalam komputasi
kuantum dimungkinkan oleh logika kuantum.

E. HUBUNGAN LOGIKA DAN KOMPUTER DALAM


KOMPUTASI KUANTUM

Berikut adalah beberapa contoh logika komputasi kuantum yang


digunakan dalam computer:
1. Gerbang Kuantum:
Dalam komputasi kuantum, qubit dikendalikan oleh operasi logis
yang dikenal sebagai gerbang kuantum. Gerbang Hadamard (H),
gerbang Pauli (X, Y, Z), gerbang CNOT (Controlled-NOT), dan
gerbang Toffoli adalah beberapa jenis gerbang kuantum.
Gerbang ini memungkinkan superposisi, inversi, rotasi, dan
keterikatan qubit, di antara operasi lainnya.
2. Algoritma Kuantum:
Berbeda dengan komputer klasik, algoritma kuantum
menggunakan konsep mekanika kuantum untuk mengatasi
masalah yang menantang dengan lebih cepat. Metode Shor
untuk memfaktorkan bilangan besar, algoritme Grover untuk
mencari di basis data yang tidak terstruktur, dan algoritme
Deustch-Josza untuk menguji fungsi dengan probabilitas tertentu
adalah beberapa contoh algoritma kuantum yang terkenal.
3. Logika Kuantum: Menerapkan hukum dan prinsip logika ke
dunia komputasi kuantum dikenal sebagai logika kuantum.
Logika inferensi kuantum, yang menggunakan pengukuran qubit
untuk menyimpulkan kesimpulan, dan logika probabilitas
kuantum, yang memodelkan probabilitas peristiwa dalam sistem
kuantum, adalah beberapa contohnya.
4. Skema Kuantum: Dalam komputasi kuantum, skema kuantum
adalah kumpulan operasi logis yang dilakukan pada qubit untuk

BUKU AJAR LOGIKA & ALGORITMA 19


mencapai tujuan tertentu. Untuk menghasilkan efek yang
diinginkan, seperti keterikatan atau superposisi, yang
selanjutnya diterapkan pada pemrosesan informasi kuantum,
gerbang kuantum harus dipasang dalam urutan yang tepat.
5. Pemrograman Kuantum: menulis kode dan instruksi untuk
penggunaan komputasi kuantum dalam mengendalikan perilaku
qubit dikenal sebagai pemrograman kuantum. Qiskit, salah satu
bahasa pemrograman kuantum.

F. RANGKUMAN

Secara umum, logika menawarkan kerangka teoritis dan konseptual


penting untuk pembuatan dan penggunaan komputer.
Pemrograman terstruktur, penalaran induktif, dan pemrosesan
informasi yang efektif semuanya dimungkinkan oleh logika.
Interaksi antara logika dan komputer menawarkan landasan bagi
terciptanya teknologi komputer mutakhir dan sangat penting bagi
banyak aspek komputasi kontemporer.

Untuk dapat berinteraksi dengan komputer di butuhkan beberapa


cara yang diterapkan dengan logika. Dari logika tersebut diuraikan
dengan bahasa pemrograman sehingga tercipta suatu aplikasi
komputer dan dari aplikasi komputer tersebut sipengguna komputer
dapat berkomunikasi dengan komputer.

G. TES FORMATIF

1. Tuliskan beberapa beberapa aspek hubungan logika dan


komputer ?
2. Mengapa pemrograman sangat berguna dalam logika?
3. Tuliskan contoh metode yang digunakan untuk verifikasi
perangkat lunak?
4. Tuliskan beberapa contoh logika yang digunakan untuk desain
dan optimalisasi komputer?
5. Sebutkan bagian-bagian dari komputasi kuantum?

BUKU AJAR LOGIKA & ALGORITMA 20


H. LATIHAN

Tuliskan penulisan logika dalam bahasa pemrograman apa saja,


sehingga logika tersebut dapat digunakan untuk komunikasi antara
komputer dan pengguna komputer !

BUKU AJAR LOGIKA & ALGORITMA 21


KEGIATAN BELAJAR 3
OPERATOR LOGIKA

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa mempelajari konsep operator logika dasar
dan lanjutan untuk menguji kondisi dan mengambil keputusan
dalam pemrograman. Mahasiswa akan mempelajari bagaimana
operator logika digunakan untuk menggabungkan kondisi dan
membuat keputusan berdasarkan evaluasi logika serta
penerapannya dalam algoritma dan bahasa pemrograman. Materi
ini akan membantu mahasiswa memahami cara efektif
memecahkan masalah dengan menggunakan operator logika
dalam pemrograman.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dan
mahasiswi memiliki pengetahuan dan kemampuan :
1. Mampu memiliki pemahaman yang kuat tentang konsep operator
logika serta memahami cara kerja masing-masing operator.
2. Mampu menggunakan operator logika dalam pernyataan
pengambilan keputusan dengan menggabungkan operator
logika dan mengaplikasikan dalam pemrograman.
3. Mampu mengembangkan pengetahuan operator logika untuk
mengidentifikasi kondisi-kondisi yang harus diuji dan
memecahkan masalah sederhana sehingga dapat membuat
keputusan berdasarkan hasil evaluasi logika.

BUKU AJAR LOGIKA & ALGORITMA 22


PETA KONSEP PEMBELAJARAN

BUKU AJAR LOGIKA & ALGORITMA 23


A. PENGERTIAN OPERATOR

Operator adalah simbol atau tanda khusus yang digunakan dalam


pemrograman untuk melakukan operasi matematika,
perbandingan, logika, atau manipulasi data lainnya. Operator
digunakan untuk menggabungkan, memodifikasi, atau
memanipulasi nilai-nilai variabel atau konstanta dalam suatu
ekspresi. Nilai atau variabel tersebut selanjutnya dapat kita sebut
sebagai operand.

Operand adalah nilai atau variabel yang terlibat dalam operasi yang
dilakukan oleh operator. Dalam konteks pemrograman, operand
adalah data yang dimanipulasi atau dievaluasi menggunakan
operator. Dalam setiap operasi, operator membutuhkan satu atau
lebih operand untuk melakukan operasi yang ditentukan.

Berdasarkan sifatnya, operator dapat dibedakan menjadi tiga


macam, yaitu :
1. Unary Operator yang melibatkan sebuah operand.
Contohnya operator negasi yang hanya memiliki satu operand: -
7 , ~p, !a
2. Binary Operator yang melibatkan dua operand.
Contohnya operator penjumlahan yang membutuhkan 2
operand: 1+2, p>q, a&&b
3. Ternary Operator yang melibatkan tiga operand.
Contohnya operasi yang melibatkan lebih dari 2 atau 3 operand:
2*(3+7)

Selain dapat dikelompokkan berdasarkan sifatnya, operator juga


dapat dikelompokkan berdasarkan fungsi dan tujuannya sesuai
jenis operasi yang dilakukkanya. Berdasarkan jenis operasi yang
dilakukan operator terbagi menjadi operator aritmatika, operator
relasi dan operator logika hingga operator logika bitwise.

Operator aritmatika digunakan untuk melakukan operasi


matematika pada angka atau variabel numerik, seperti
penjumlahan, perkalian, dan sebagainya. Sementara itu, operator

BUKU AJAR LOGIKA & ALGORITMA 24


relasi digunakan dalam bahasa pemrograman untuk
membandingkan nilai antara dua ekspresi atau variabel,
menghasilkan nilai kebenaran (true atau false) berdasarkan hasil
perbandingan yang dilakukan. Operator logika, di sisi lain,
digunakan untuk menggabungkan dan memanipulasi hasil
pernyataan logika sehingga dapat mengontrol jalannya program.
Pembahasan lebih mendetail mengenai operator logika akan
dilakukan pada bab ini.

Sebelum lebih dalam memahami konsep dari operator logika, ada


beberapa operator yang perlu kita kenal terlebih dahulu yaitu
operator aritmatika dan operator relasi.

B. OPERATOR ARITMATIKA

Operator aritmatika adalah simbol-simbol khusus yang digunakan


untuk melakukan operasi matematika pada angka atau variabel
numerik. Operator aritmatika digunakan untuk melakukan
penjumlahan, pengurangan, perkalian, pembagian, dan operasi
lainnya pada bilangan dalam bahasa pemrograman.

Berikut adalah daftar operator aritmatika beserta penjelasan


tentang fungsi dan penggunaannya:
1. Operator Penjumlahan (+): Operator ini digunakan untuk
menjumlahkan dua nilai atau variabel.
Contohnya:
int a = 5; int b = 3;
int hasil = a + b; // hasil = 8
2. Operator Pengurangan (-): Operator ini digunakan untuk
mengurangkan dua nilai atau variabel.
3. Operator Perkalian (*): Operator ini digunakan untuk mengalikan
dua nilai atau variabel.
Contohnya:
int a = 5; int b = 3;
int hasil = a * b; // hasil = 15

BUKU AJAR LOGIKA & ALGORITMA 25


4. Operator Pembagian (/): Operator ini digunakan untuk membagi
dua nilai atau variabel. Jika kedua operand merupakan bilangan
bulat, maka operator ini akan melakukan pembagian bilangan
bulat (tanpa sisa). Jika salah satu atau kedua operand
merupakan bilangan desimal, maka operator ini akan melakukan
pembagian bilangan desimal.
5. Operator Modulo (%): Operator ini digunakan untuk
mendapatkan sisa pembagian antara dua bilangan bulat.
Contohnya:
int a = 10; int b = 3;
int hasil = a % b; // hasil = 1
6. Operator Increament (++) dan Operator Decrement (--): Operator
ini digunakan untuk menambah atau mengurangi nilai suatu
variabel sebesar 1. Operator increment (++) akan menambahkan
1 ke nilai variabel, sedangkan operator decrement (--) akan
mengurangkan 1 dari nilai variabel.
Contohnya:
int a = 5;
a++; // Nilai a menjadi 6
int b = 3;
b--; // Nilai b menjadi 2

C. OPERATOR RELASI

Operator relasi adalah simbol-simbol khusus yang digunakan untuk


membandingkan nilai antara dua ekspresi atau variabel. Operator
relasi menghasilkan nilai kebenaran (true atau false) berdasarkan
hasil perbandingan yang dilakukan. Perbandingan dilakukan
berdasarkan hubungan antara dua nilai atau variabel, seperti
kesamaan, ketidaksamaan, lebih besar, lebih kecil, lebih besar
sama dengan, atau lebih kecil sama dengan.

Berikut adalah daftar operator relasi dalam bahasa pemrograman


beserta penjelasan tentang fungsi dan penggunaannya:

BUKU AJAR LOGIKA & ALGORITMA 26


1. Operator Kesamaan (==): Operator ini digunakan untuk
memeriksa apakah dua nilai atau variabel sama. Jika nilai atau
variabel di sisi kiri operator sama dengan nilai atau variabel di
sisi kanan operator, maka hasilnya adalah true. Jika tidak sama,
hasilnya adalah false.
Contohnya:
int a = 5; int b = 3;
hasil = (a == b); // hasil = false
2. Operator Ketidaksamaan (!=): Operator ini digunakan untuk
memeriksa apakah dua nilai atau variabel tidak sama. Jika nilai
atau variabel di sisi kiri operator tidak sama dengan nilai atau
variabel di sisi kanan operator, maka hasilnya adalah true. Jika
sama, hasilnya adalah false.
Contohnya:
int a = 5; int b = 3;
hasil = (a != b); // hasil = true
3. Operator Lebih Besar (>): Operator ini digunakan untuk
memeriksa apakah nilai atau variabel di sisi kiri operator lebih
besar dari nilai atau variabel di sisi kanan operator. Jika benar,
hasilnya adalah true. Jika tidak, hasilnya adalah false.
Contohnya:
int a = 5; int b = 3;
hasil = (a > b); // hasil = true
4. Operator Lebih Kecil (<): Operator ini digunakan untuk
memeriksa apakah nilai atau variabel di sisi kiri operator lebih
kecil dari nilai atau variabel di sisi kanan operator. Jika benar,
hasilnya adalah true. Jika tidak, hasilnya adalah false.
5. Operator Lebih Besar Sama dengan (>=): Operator ini digunakan
untuk memeriksa apakah nilai atau variabel di sisi kiri operator
lebih besar atau sama dengan nilai atau variabel di sisi kanan
operator. Jika benar, hasilnya adalah true. Jika tidak, hasilnya
adalah false.
Contohnya:
int a = 5; int b = 3;
bool hasil = (a >= b); // hasil = true

BUKU AJAR LOGIKA & ALGORITMA 27


6. Operator Lebih Kecil Sama dengan (<=): Operator ini digunakan
untuk memeriksa apakah nilai atau variabel di sisi kiri operator
lebih kecil atau sama dengan nilai atau variabel di sisi kanan
operator. Jika benar, hasilnya adalah true. Jika tidak, hasilnya
adalah false.

D. OPERATOR LOGIKA DASAR

Operator logika adalah simbol atau tanda yang digunakan dalam


pemrograman untuk melakukan operasi logika pada satu atau lebih
nilai boolean yang hanya bernilai true atau false (1 atau 0). Dalam
pemrograman, operator logika memungkinkan kita untuk
mengambil keputusan berdasarkan kondisi-kondisi yang diberikan.
Operator membantu dalam mengendalikan alur program dan
mengontrol eksekusi kode berdasarkan hasil evaluasi logika.

Ada tiga jenis operator logika dasar yang digunakan dalam


pemrograman yaitu:
1. Operator Logika AND (&&): Menghasilkan nilai true jika kedua
operand bernilai true. Jika salah satu atau kedua operand
bernilai false, maka hasilnya adalah false.
Tabel Kebenaran (Truth Table) Operator Logika AND:

Operand1 Operand2 Hasil


True True True
True False False
False True False
False False False

Contoh penggunaan operator logika AND:


a = true;
b = false;
hasil = (a && b); // hasil = false

BUKU AJAR LOGIKA & ALGORITMA 28


2. Operator Logika OR (||): Menghasilkan nilai true jika salah satu
atau kedua operand bernilai true. Hanya jika kedua operand
bernilai false, hasilnya adalah false.
Tabel Kebenaran (Truth Table) Operator Logika OR:

Operand1 Operand2 Hasil


True True True
True False True
False True True
False False False

Contoh penggunaan operator logika OR:


a = true;
b = false;
hasil = (a || b); // hasil = true

3. Operator Logika NOT (!): Menghasilkan nilai yang berkebalikan


dari operandnya. Jika operand bernilai true, maka hasilnya
adalah false, dan sebaliknya.
Tabel Kebenaran (Truth Table) Operator Logika NOT:

Operand1 Hasil
True False
False True

Contoh penggunaan operator logika NOT:


a = true;
hasil = !a; // hasil = false

Operator logika dasar ini dapat digunakan secara terpisah atau


dikombinasikan untuk membentuk ekspresi logika yang lebih
kompleks. Operator logika digunakan dalam pengambilan
keputusan berdasarkan kondisi atau perbandingan dalam program,
seperti dalam pernyataan if-else atau perulangan.

BUKU AJAR LOGIKA & ALGORITMA 29


E. OPERATOR LOGIKA LANJUTAN

Operator logika lanjutan dalam pemrograman meliputi operator


logika XOR, NAND dan NOR.
1. Operator Logika XOR (exclusive OR) (^): digunakan untuk
memeriksa apakah salah satu dari dua operandnya bernilai true,
tetapi tidak keduanya. Jika hanya satu operand yang bernilai
true, maka hasilnya akan menjadi true. Jika kedua operand
bernilai false atau keduanya bernilai true, hasilnya akan menjadi
false. Operator logika XOR direpresentasikan dengan simbol ^.
Tabel Kebenaran (Truth Table) Operator Logika XOR:

Operand1 Operand2 Hasil


True True False
True False True
False True True
False False False

Contoh penggunaan operator logika OR:


a = true; b = false;
hasil = (a ^ b); // hasil = true

2. Operator Logika NAND (not AND): merupakan kebalikan dari


operator logika AND. Hasil dari operator NAND adalah false jika
kedua operandnya bernilai true, dan true untuk semua kondisi
lainnya. Operator logika NAND dapat direpresentasikan dengan
simbol "!" diikuti oleh simbol "&".
Tabel Kebenaran (Truth Table) Operator Logika XOR:

Operand1 Operand2 Hasil


True True False
True False True
False True True
False False True

BUKU AJAR LOGIKA & ALGORITMA 30


Contoh penggunaan operator logika NAND:
a = true; b = false;
hasil = !(a && b); // hasil = true

3. Operator Logika NOR (not OR): merupakan kebalikan dari


operator logika OR. Hasil dari operator NOR adalah true jika
kedua operandnya bernilai false, dan false untuk semua kondisi
lainnya. Operator logika NOR dapat direpresentasikan dengan
simbol "!" diikuti oleh simbol "|".
Tabel Kebenaran (Truth Table) Operator Logika XOR:

Operand1 Operand2 Hasil


True True False
True False False
False True False
False False True

Contoh penggunaan operator logika NOR:


a = true; b = false;
hasil = !(a && b); // hasil = true

F. OPERATOR LOGIKA BITWISE

Operator logika bitwise digunakan untuk melakukan operasi bit per


bit pada nilai-nilai bilangan bulat. Operator logika bitwise bekerja
pada level bit individu dalam representasi biner dari nilai-nilai
tersebut. Dalam operasi bitwise, setiap bit dari operand
dioperasikan secara terpisah. Misalnya, operator AND bitwise
menghasilkan 1 jika kedua bit operandnya adalah 1, sedangkan
operator OR bitwise menghasilkan 1 jika setidaknya satu bit
operandnya adalah 1. Operator NOT bitwise membalikkan setiap bit
dalam representasi biner.

BUKU AJAR LOGIKA & ALGORITMA 31


Hubungan antara operator logika dan operator logika bitwise adalah
bahwa keduanya bekerja dengan nilai-nilai biner dan menghasilkan
nilai logika berdasarkan operasi yang dilakukan. Namun, operator
logika bekerja pada nilai-nilai logika (true/false), sedangkan
operator logika bitwise bekerja pada level bit individu dalam nilai-
nilai bilangan bulat. Operator logika digunakan untuk evaluasi logika
secara keseluruhan, sementara operator logika bitwise digunakan
untuk operasi pada tingkat bit dalam representasi biner. Operator
logika bitwise terdiri dari AND bitwise (&), OR bitwise (|), XOR
bitwise (^), dan NOT bitwise (~).
1. Operator logika bitwise AND (&): menghasilkan nilai 1 (true) pada
bit output jika kedua bit operandnya adalah 1 (true). Jika salah
satu atau kedua bit operandnya adalah 0 (false), maka hasilnya
adalah 0 (false).

Contoh penggunaan operator logika bitwise AND:


int a = 5; // Representasi biner: 0101
int b = 3; // Representasi biner: 0011
int hasil = a & b; // Operasi bitwise AND
// Hasil: 0001 (nilai desimal: 1)

2. Operator logika bitwise OR (|): menghasilkan nilai 1 (true) pada


bit output jika salah satu atau kedua bit operandnya adalah 1
(true). Jika kedua bit operandnya adalah 0 (false), maka hasilnya
adalah 0 (false).

Contoh penggunaan operator logika bitwise OR:


int a = 5; // Representasi biner: 0101
int b = 3; // Representasi biner: 0011
int hasil = a | b; // Operasi bitwise OR
// Hasil: 0111 (nilai desimal: 7)

3. Operator logika bitwise XOR (^): menghasilkan nilai 1 (true) pada


bit output jika hanya satu dari kedua bit operandnya adalah 1
(true). Jika kedua bit operandnya sama (keduanya 0 atau
keduanya 1), maka hasilnya adalah 0 (false).

BUKU AJAR LOGIKA & ALGORITMA 32


Contoh penggunaan operator logika bitwise XOR:
int a = 5; // Representasi biner: 0101
int b = 3; // Representasi biner: 0011
int hasil = a ^ b; // Operasi bitwise XOR
// Hasil: 0110 (nilai desimal: 6)

4. Operator logika bitwise NOT (): membalikkan setiap bit dalam


representasi biner operandnya. Jika bit operand adalah 0, maka
hasilnya menjadi 1, dan jika bit operand adalah 1, maka hasilnya
menjadi 0.

Contoh penggunaan operator logika bitwise NOT:


int a = 5; // Representasi biner: 0101
int hasil = ~a; // Operasi bitwise NOT
// Hasil: 1010 (nilai desimal: -6)

G. RANGKUMAN

Operator logika digunakan untuk operasi pada nilai logika


(true/false). Operator AND menghasilkan true jika kedua operand
true, OR menghasilkan true jika salah satu operand true, dan NOT
menghasilkan kebalikan nilai operand. Operator logika digunakan
dalam pengambilan keputusan dan perulangan. Operator logika
bitwise (AND bitwise, OR bitwise, XOR bitwise, NOT bitwise)
bekerja pada tingkat bit dalam representasi biner. Operator logika
dan operator logika bitwise terkait karena keduanya beroperasi
pada nilai biner, tetapi dengan fokus yang berbeda. Pemahaman
yang baik tentang operator logika penting dalam pengembangan
program yang efisien dan logis.

H. TES FORMATIF

1. Berdasarkan tabel kebenaran operator logika AND, jika salah


satu operand bernilai false, maka hasilnya adalah...

BUKU AJAR LOGIKA & ALGORITMA 33


a) True
b) False
c) Compiler error
d) Tergantung pada kondisi lainnya

2. Apa hasil dari ekspresi berikut?


a = true; b = false; hasil = a && b;
a) True
b) False
c) Compiler error
d) Runtime error

3. Jika a = 3, b = 4, dan c = 5, apa hasil dari ekspresi berikut?


hasil = (a < b) && (b < c);
a) True
b) False
c) Compiler error
d) Runtime error

I. LATIHAN

1. Jelaskan perbedaan antara operator logika AND (&&), OR (||),


dan NOT (!). Berikan contoh penggunaan masing-masing
operator dengan menggunakan dua nilai boolean.
2. Apa itu operator logika XOR (exclusive OR)? Jelaskan
penggunaan dan aturan evaluasi dari operator logika XOR.
Berikan contoh penggunaan operator XOR dalam sebuah
ekspresi.

BUKU AJAR LOGIKA & ALGORITMA 34


KEGIATAN BELAJAR 4
SIMBOL KEBENARAN DAN SIMBOL PROPOSISI

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa mempelajari pengenalan konsep logika
Proposisi , aturan sintaktik,dan notasi.Diharapkan mahasiswa
memiliki pemahaman logika proposisi mengenai simbol kebenaran
dan simbol proposisi.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dan
mahasiswi memiliki pengetahuan dan kemampuan :
1. Membedakan antara kalimat deklaratif dan kalimat bukan
deklaratif,
2. Menggunakan atau mengimplementasikan aturan sintaktik untuk
membentuk kalimat logika proposisional,
3. Menggunakan atau mengimplementasikan aturan sintaktik untuk
menentukan apakah kalimat yang diberikan merupakan kalimat
logika proposisional atau bukan.

PETA KONSEP PEMBELAJARAN

BUKU AJAR LOGIKA & ALGORITMA 35


A. LOGIKA PROPOSISI

Kalimat-kalimat dalam logika proposisi dibentuk dari simbol-simbol,


yang disebut proposisi-proposisi (propositions). Simbol-simbol yang
dimaksud dikelompokkan menjadi dua, yaitu :
1. Simbol-simbol kebenaran (truth symbols) true dan false
2. Simbol-simbol proposisi (propositional symbols)

P, Q, R, S, P1, Q1, R1, S1, P2, Q2, R2, S2, ... (untuk simbol-simbol
proposisi digunakan huruf-huruf besar P, Q, R, atau S, dan bisa
dengan menambahkan indeks- indeks numerik untuk membuat
simbol-simbol yang berbeda, perhatikan contoh).

Dalam pembicaraan tidak resmi (informal discussion), huruf-huruf


skrip E, F, G, dan H, dan mungkin dengan subskrip (indeks) numerik
seperti E1, F1, G1, dan H1, akan digunakan untuk menyatakan
kalimat. Perhatikan bahwa E, F, G, dan H adalah nama-nama
kalimat.

Setelah mengetahui komponen-komponen pembentuk kalimat,


yaitu proposisi yang terdiri dari simbol kebenaran dan simbol
proposisional, selanjutnya dibicarakan bagaimana cara (atau aturan
untuk) membentuk kalimat logika proposisional dari proposisi-
proposisi.

Kalimat-kalimat dalam logika proposisional dibangun dari proposisi-


proposisi (yaitu, simbol-simbol kebenaran dan simbol-simbol
proposisional) dengan menerapkan penghubung- penghubung
proposisional (propositional connectives):
not, and, or, if-then, if-and-only-if, if-then-else
secara berulang-ulang sebanyak yang diperlukan.

Penghubung-penghubung proposisional (propositional


connectives) not, and, or, if- then, if-and-only-if, if-then-else bisa
dianalogikan dengan operator, di mana proposisi- proposisi yang
dihubungkan bisa dianggap sebagai operannya. Kemudian, cara
penggunaannya secara lengkap dituangkan dalam aturan sintaktik.

BUKU AJAR LOGIKA & ALGORITMA 36


B. ATURAN SINTAKTIK

Kalimat dibentuk menurut aturan-aturan (rules) berikut:

(aturan proposisi) setiap proposisi, yaitu suatu simbol kebenaran


atau suatu simbol proposisi merupakan kalimat.
I. (aturan negasi) apabila F kalimat, maka negasi (negation)
nya (not F) merupakan kalimat.
II. (aturan konjungsi) apabila F dan G kalimat, maka demikian
juga konjungsi (conjunction) nya, yaitu (F and G),
selanjutnya F maupun G disebut conjuncts dari (F and G).
III. (aturan disjungsi) apabila F dan G kalimat, maka demikian
juga disjungsi (disjunction) nya, yaitu (F or G), selanjutnya F
maupun G disebut disjuncts dari (F or G).
IV. (aturan implikasi) apabila F dan G kalimat, maka demikian
juga implikasi (implication) nya, 1. yaitu if F then G.
Selanjutnya F disebut antecedent dan G disebut consequent
dari if F then G. Kalimat if G then F disebut converse dari
kalimat if F then G.
V. (aturan ekuivalensi) apabila F dan G kalimat, maka
demikian juga ekuivalensi (equivalence) nya, yaitu (F if and
only if G), selanjutnya F disebut sisi-kiri (left-hand side) dan
G disebut sisi-kanan (right-hand side) dari F if and only if G.
VI. (aturan kondisional) apabila F, G dan H kalimat, maka
demikian juga kondisional (conditional) nya, yaitu if F then G
else H). Selanjutnya F, G, dan H masing-masing disebut
klausa-if (if-clause), klausa-then (then-clause), dan klausa-
else (else-clause) dari kondisional if F then G else H).

Dalam masing-masing aturan, kalimat-kalimat F, G, dan H


digunakan untuk mengkonstruksikan kalimat yang lebih kompleks
(yaitu, kalimat yang melibatkan lebih dari satu konektif), dengan
salah satu aturan-aturan di atas, dan selanjutnya disebut
komponen- komponen kalimat. Sehingga komponen-komponen
kalimat if F then G adalah anteseden F dan konsekuen G.

BUKU AJAR LOGIKA & ALGORITMA 37


Kemudian, setiap kalimat tengahan (intermediate sentence) yang
digunakan dalam pembentukan kalimat E, termasuk E sendiri
merupakan kalimat bagian (subsentence) dari E. Sehingga
subsentence dari E adalah E sendiri, komponen-komponen dari E,
dan subsentences dari komponen-komponen tersebut. Kalimat-
kalimat bagian dari E selain E sendiri disebut kalimat bagian sejati
(proper subsentences) dari E. Sebagaimana pengertian himpunan
(set) dan himpunan bagian (subset).

Contoh 1.1 - Kalimat Logika Proposisional


Pada bagian ini kita akan menggunakan (atau menerapkan) aturan-
aturan sintaktik untuk memperlihatkan bahwa suatu ekspresi (yaitu,
kombinasi antara simbol-simbol dan

operator-operator/konektif-konektif) adalah kalimat logika


proposisional. Kita akan memulai dengan ekspresi yang paling
sederhana.

Ekspresi E: true adalah kalimat logika proposisional. Karena true


ditulis (dicetak) miring, berarti true merupakan simbol kebenaran.
Sehingga menurut definisi proposisi, true merupkan proposisi.
Sedangkan aturan sintaktik nomor I (aturan proposisi) menyatakan
bahwa setiap proposisi adalah kalimat logika proposisional. Oleh
karena itu, karena true adalah proposisi, maka true merupakan
kalimat logika proposisional. Untuk membuktikan bahwa true
adalah kalimat logika proposisional kita membutuhkan kesepakatan
tentang simbol kebenaran (true yang dicetak miring disepakati
sebagai simbol kebenaran), definisi proposisi (yaitu, bahwa
proposisi terdiri dari dua kelompok yang salah satunya adalah
simbol kebenaran), dan yang terakhir aturan sintaktik nomor I
(aturan proposisi).

Contoh 1.2 Bukan Kalimat Logika Proposisional


1. Perlihatkan bahwa ekspresi F: if not(if A then R) then not(P and
notB).
2. Cara cepat untuk memperlihatkan bahwa ekspresi F bukan
kalimat logika proposisional adalah dengan pengamatan. Dari

BUKU AJAR LOGIKA & ALGORITMA 38


pengamatan, ekspresi F memuat simbol-simbol A, B, P dan R.
Sementara menurut definisi, A dan B bukan simbol
proposisional, sehingga A dan B keduanya bukan proposisi
(karena proposisi hanya bisa berupa simbol kebenaran atau
simbol proposisional, dan jelas bahwa A dan B bukan simbol-
simbol kebenaran). Karena ada elemen pembentuk ekspresi
yang bukan proposisi, maka tak satupun aturan bisa diterapkan.
Kesimpulannya ekspresi F bukan kalimat logika proposisional.
Jadi secara umum, ketika tidak ada aturan sintaktik yang bisa
digunakan untuk memparafrase, maka ekspresi tersebut bukan
kalimat logika proposisional.

C. NOTASI

Untuk menyatakan kalimat logika proposisional bisa digunakan


beberapa notasi yang berbeda, dalam modul ini digunakan tiga
macam notasi: matematika, pseudocode (Englishlike), dan function.
Yang membedakan antara notasi satu dan yang lain adalah pada
penghubung proposisional.

Tabel 1 memperlihatkan pasangan 1 - 1 antara ketiga notasi.

Matematika Pseudocod Function Jenis /


e
not not(. ....... ) uner (unary)

or or(...., ..... ) biner (binary)

and and(...., .. ) biner (binary)


if-then ifthen(...., .. ) biner (binary)
if-and- ifandonlyif( . , biner (binary)
tidak if-then- ifthenelse(. , terner
ada else

BUKU AJAR LOGIKA & ALGORITMA 39


Konektif if-then-else umumnya tidak termuat dalam sistem logika
konvensional (lihat Tabel 1). Akan tetapi, dalam pembahasan buku
ini telah dipilih notasi pseudocode demi kejelasan dalam teks. Di
samping itu, pemilihan notasi yang digunakan juga bertujuan untuk
lebih mendekatkan dengan notasi-notasi kode program. Pembaca
mungkin lebih suka menggunakan notasi matematika yang lebih
ringkas dalam penulisan. Di samping itu, masih banyak buku yang
dalam pembahasannya menggunakan notasi matematika yang
dimaksud. Oleh karena itu, di dalam modul ini dibicarakan
keduanya, bahkan ditambah satu notasi function.

Penulisan kalimat logika proposisional dengan notasi matematika


dan pseudocode khususnya, bahwa pasangan-pasangan kurung
dalam kalimat bisa dihilangkan apabila tidak diperlukan untuk
menunjukkan struktur kalimat. Sebagai contoh, kalimat

(not(P and (notQ)))

bisa ditulis sebagai not(P and (notQ)), tanpa adanya ambiguitas


(ambiguity). Akan tetapi, apabila pasangan kurung di dalam kalimat
not(P and notQ) dihilangkan menjadi notP and notQ, maka bisa
ditafsirkan dengan jelas dan tunggal, yaitu (notP) and (notQ) dan
berbeda nilai dengan kalimat aslinya, meskipun tidak ada
ambiguitas.

Sebaliknya untuk kalimat

G: if not(P if and only if R) then if (Q and notS) then notQ else P

memuat ambiguitas, karena kalimat G bisa ditafsirkan sebagai

G1: if not(P if and only if R) then (if (Q and notS) then notQ) else P

atau

G2: if not(P if and only if R) then (if (Q and notS) then notQ else P).

Secara sintak else di kalimat G1 merupakan pasangan if yang


pertama, sementara else di kalimat G2 merupakan pasangan if

BUKU AJAR LOGIKA & ALGORITMA 40


kedua. Sehingga, untuk menghindari ambiguitas maka pasangan
kurung mutlak diperlukan.

Untuk tujuan kejelasan, kadang-kadang digunakan pasangan


kurung siku [ dan ], atau kurung kurawal { dan } dari pada
menggunakan beberapa pasangan kurung ( dan ). Di samping itu,
akan sering digunakan indentasi dibanding pasangan kurung (dan)
untuk menunjukkan struktur kalimat. Sehingga kalimat E dari contoh
di atas bisa ditulis sebagai
not(P or Q)
if and only if
(notP) and (notQ).

Sedangkan kalimat
F : (if ((P or Q) and (if Q then R)) then (if (P and Q) then (notR)))

D. RANGKUMAN

➢ Bahasa logika proposisional atau logika proposisional terdiri dari


kalimat-kalimat yang dibangun (dibuat) dari unsur pembentuk
kalimat yang disebut proposisi-proposisi dengan menerapkan
aturan-aturan sintaktik berulang-ulang sebanyak yang
diperlukan.
➢ Proposisi terdiri dari dua kelompok: simbol kebenaran dan simbol
proposisional.
➢ Simbol kebenaran digunakan true dan false yang dicetak miring
untuk membedakan dengan nilai kebenaran true dan false.
➢ Simbol proposisional dinyatakan dengan huruf-huruf besar P, Q,
R, S, P1, Q1, R1, S1, P2, Q2, R2, S2, ...
➢ Aturan sintaktik juga bisa digunakan untuk menentukan apakah
sebuah ekspresi merupakan kalimat logika proposisional atau
bukan.
➢ Pengertian kalimat bagian di dalam logika proposisional serupa
dengan pengertian himpunan bagian dalam teori himpunan

BUKU AJAR LOGIKA & ALGORITMA 41


E. TES FORMATIF

1. Di antara kalimat-kalimat berikut, pilih satu kalimat yang selalu


bernilai benar.
a. Setelah hari senin saya akan berangkat ke Perancis.
b. Jika saya berangkat, apa kamu berangkat ?
c. Mobil yang berwarna merah itu rodanya kempes.
d. Indonesia merupakan negara pengekspor beras terbesar di
dunia.
e. Sekarang hari minggu atau sekarang bukan hari minggu.

2. Di antara kalimat-kalimat berikut, pilih satu kalimat yang selalu


bernilai benar.
a. Seandainya saya ada waktu, saya akan berangkat.
b. Tahun depan mahasiswa bimbingan skripsi saya bisa wisuda
dan belum bisa wisuda.
c. Apakah besok libur ?
d. Jika hari tidak hujan, banyak anak-anak bermain di taman.
e. Silahkan keluar dari ruangan ini !

3. Di antara ekspresi-ekspresi berikut, pilih yang merupakan


kalimat bahasa logika proposisional.
a. if (P or C) then notR
b. not(and (if P then (P or Q) else S))
c. (R if and only if P) if and only if not(P if and only if R)
d. if not then (if B then R) else Q
e. (if then Q else R) or notP

4. Tentukan kalimat logika proposisional yang memuat tiga simbol


proposisional dan satu konektif.
a. AP or (if R then S)
b. Q if and only if (not(P or Q) and P)
c. not((R or if P then S) and P)
d. if P then if Q then P
e. P and (Q and R)

BUKU AJAR LOGIKA & ALGORITMA 42


5. Tentukan kalimat logika proposisional yang memuat tiga simbol
proposisional dan tiga konektif.
a. P or (if R then S)
b. Q if and only if (not(P or Q) or P)
c. not((R and if P then S) and P)
d. if P then if Q then P
e. P and (Q and R)

6. Tentukan kalimat logika proposisional yang memuat tiga simbol


proposisional, satu simbol kebenaran dan tiga konektif.
a. (P or (if true then S)) and Q
b. Q if and only if (not(P or Q) or P)
c. not((R and if P then R) and false)
d. if P then if Q then P
e. P and (Q and R)
7. Diketahui kalimat logika proposisional E: if false then (P and
notQ) else R. Tentukan salah satu kalimat bagian dari E.
a. false and P
b. if false then P else R
c. if false then notQ else R
d. P and Q else R
e. P and notQ

8. Diketahui kalimat logika proposisional F: (if notQ then (P or


notR)) if and only if (P and (Q or notS)). Tentukan salah satu
kalimat bagian dari F.
a. not(Q or notP)
b. if notQ then (P or R)
c. (P and notR)
d. P and (Q or notS)
e. if P then (Q or S) if and only if R

9. Diketahui dua kalimat logika proposisional E: not(if notP then (S


and Q)) dan F: (P or Q) and notR. Dengan menerapkan konektif
if-then pada kalimat E dan F, tentukan salah satu kemungkinan
hasilnya.

BUKU AJAR LOGIKA & ALGORITMA 43


a. if not(if notP then (S and Q)) then (P and notR)
b. if not(if notP then (S and Q)) then ((P or Q) and notR)
c. if (P or Q) and notR then if notP then (S and Q)
d. if not((P or Q) and notR) then (P or Q) and notR
e. if not((P or Q) and notR) then (P or Q)

F. LATIHAN

1. Tentukan 10 simbol proposisil yang syah (legal) atau


diperbolehkan dalam bahasa logika proposisi.
2. Buat 5 contoh kalimat logika proposisi yang memuat 2 simbol
proposisi dan 2 konektif.
3. Buat 5 contoh kalimat logika proposisi yang memuat 1 simbol
kebenaran, 3 simbol proposisi dan 3 konektif.
4. Perlihatkan bahwa ekspresi-ekspresi berikut merupakan kalimat-
kalimat logika proposisi.
a) if P then if Q then R
b) notQ or R and notR
c) if not(notP if and only if S) then (P if and only if notS)
d) (if notP then Q else notR) if and only if (notQ and (P or S))
e) not(if (P or Q) then (Q and R) else (if R then S))

BUKU AJAR LOGIKA & ALGORITMA 44


KEGIATAN BELAJAR 5
SYARAT DAN CIRI ALGORITMA

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa dapat mengenal konsep dasar sebuah
algoritma yang meliputi syarat, ciri, konsep struktur serta cara
menganalisis sebuah algoritma. Pada bab ini diharapkan
mahasiswa memiliki wawasan dan pemahaman yang luas dalam
mengembangkan sebuah algoritma.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dapat
memiliki pengetahuan dan kemampuan dalam hal :
1. Mampu menjelaskan definisi algoritma serta motivasi dalam
penggunaan algoritma.
2. Mampu menguraikan kelebihan dan kekurangan dalam
menggunakan algoritma.
3. Mampu menjelaskan syarat, ciri, konsep, dan struktur
sebuah algoritma.
4. Mampu menganalisis sebuah algoritma sesuai dengan
kasus atau permasalahan yang akan dipecahkan.

BUKU AJAR LOGIKA & ALGORITMA 45


PETA KONSEP PEMBELAJARAN

A. DEFINISI ALGORITMA

Perkembangan teknologi yang semakin maju, perancangan dan


pembuatan chip yang semakin mudah, membuat perkembangan
teknologi software dan hardware mengalami lonjakan kemajuan
yang sangat pesat. Dukungan chip yang lebih efisien dengan
ukuran kecil dan kecepatan tinggi, membuat pengembangan
algoritma semakin pesat dan beragam. Optimalisasi proses dalam
sebuah algoritma dan didukung oleh chip dengan kemampuan
tinggi membuat algoritma dapat bekerja secara efisien dapat
memproses inputan dalam jumlah besar.

Algoritma adalah langkah-langkah terperinci dan terstruktur yang


digunakan untuk menyelesaikan suatu masalah atau mencapai
suatu tujuan. Dalam konteks komputasi, algoritma adalah urutan

BUKU AJAR LOGIKA & ALGORITMA 46


instruksi yang terdefinisi dengan baik yang dapat dieksekusi oleh
komputer untuk menyelesaikan suatu tugas atau masalah.

Algoritma dapat digunakan untuk memecahkan berbagai jenis


masalah, baik sederhana maupun kompleks. Algoritma digunakan
dalam berbagai bidang, termasuk ilmu komputer, matematika, ilmu
data, kecerdasan buatan, dan banyak lagi.

berikut merupakan beberapa definisi algoritma dari beberapa pakar


dunia diantaranya:
1. Abu Ja’far Muhammad Ibnu Musa Al-khawarizmi merupakan
seorang ahli dalam bidang matematika, astronomi, astrologi dan
geografi yang berasal dari Irak. Menurutnya algoritma adalah
suatu metode khusus untuk menyelesaikan sebuah masalah.
2. Donald E. Knuth merupakan seorang ilmuwan komputer terkenal
dan saat ini menjadi seorang profesor di stanford university.
Menurutnya algoritma adalah sekumpulan aturan-aturan
berhingga yang memberikan deretan proses-proses untuk
menyelesaikan suatu masalah yang khusus.
3. David Bolton merupakan seorang senior software developer
menyebutkan bahwa algoritma adalah deskripsi dari suatu
prosedur yang berakhir dengan sebuah output.
4. Andrei Andreyevich Markov adalah seorang matematikawan
yang berasal dari Rusia. Menurutnya Algoritma adalah hal umum
untuk dipahami sebagai suatu keputusan yang tepat untuk
mendefinisikan proses komputasi yang mengarahkan dari data
awal hingga hasil yang diinginkan.

Jika digabungkan definisi algoritma dari beberapa pakar maka


dapat dikatakan algoritma suatu urutan proses yang disusun secara
prosedural dan sistematis untuk menyelesaikan suatu masalah.
Dalam komputasi, algoritma yang baik adalah algoritma yang dibuat
sesuai dengan problem yang ingin diselesaikan. dalam hal ini untuk
menyelesaikan sebuah problem yang tidak begitu rumit maka tidak
perlu menggunakan algoritma yang rumit dan memakan banyak
resource. Efisien dalam algoritma dapat dianalogikan seperti jika
ingin memotong sebuah ranting pohon yang berukuran kecil maka

BUKU AJAR LOGIKA & ALGORITMA 47


mungkin hanya diperlukan sebuah pisau dan tidak perlu
menggunakan gergaji mesin. Setiap orang memiliki cara yang
berbeda dalam membangun sebuah algoritma, start dan prosesnya
mungkin berbeda namun memiliki output yang sama. Setiap
algoritma memiliki kelebihan dan kekurangan sehingga diperlukan
sebuah analisis yang baik dalam memilih dan menggunakan
sebuah algoritma.

B. ALASAN PENGGUNAAN ALGORITMA

Algoritma merupakan istilah yang umumnya digunakan pada


bidang ilmu komputer dan turunannya untuk menjelaskan atau
mendeskripsikan sebuah metode untuk pemecahan masalah yang
terstruktur dan dapat dipahami dalam bentuk sebuah program
komputer.

Algoritma pemrograman pada saat ini semakin berkembang


dengan pesat. Teknologi yang lahir semakin beragam dan bahkan
telah menjadi bagian dalam kehidupan kita sehari-hari. Seperti
contoh algoritma search yang digunakan pada google, dengan
kemampuan yang sangat cepat hingga bisa melakukan index jutaan
website hanya dalam waktu kurang dari 1 detik.

Alasan mengapa algoritma sangat berkembang yaitu karena


algoritma merupakan suatu skill atau kemampuan yang memiliki
potensi untuk memecahkan suatu masalah yang kompleks dengan
waktu eksekusi yang sangat cepat. Bahkan sebuah algoritma yang
baik dapat menyingkat sebuah langkah kerja menjadi lebih efisien.
Sebuah program yang dibuat dengan menggunakan algoritma yang
baik dapat memproses data jutaan lebih cepat dibandingkan
program yang dibuat tanpa menggunakan algoritma.

Jika dilihat dari berbagai aspek mengapa algoritma harus menjadi


cara dalam menyelesaikan sebuah masalah yang kompleks adalah
sebagai berikut:

BUKU AJAR LOGIKA & ALGORITMA 48


1. Efisiensi: Salah satu motivasi utama dalam penggunaan
algoritma adalah untuk mencapai efisiensi dalam menyelesaikan
tugas atau masalah. Algoritma yang baik dapat membantu
mengoptimalkan penggunaan sumber daya seperti waktu,
tenaga, atau ruang, sehingga meningkatkan efisiensi
operasional.
2. Akurasi: Algoritma sering digunakan untuk mencapai tingkat
akurasi yang tinggi dalam pengolahan data atau pengambilan
keputusan. Dengan algoritma yang tepat, pengguna dapat
menghasilkan solusi yang lebih akurat dan dapat diandalkan.
3. Otomatisasi: Algoritma memungkinkan proses yang manual atau
berulang untuk diotomatisasi. Hal ini dapat menghemat waktu
dan usaha, serta mengurangi kesalahan manusia dalam
eksekusi tugas-tugas yang repetitif.
4. Pengembangan Perangkat Lunak: Dalam pengembangan
perangkat lunak, algoritma digunakan untuk merancang logika
dan alur kerja yang diinginkan. Motivasi di sini adalah untuk
menciptakan perangkat lunak yang dapat berfungsi dengan baik,
menghasilkan output yang benar, dan memberikan pengalaman
pengguna yang baik.
5. Pengambilan Keputusan: Algoritma digunakan dalam sistem
pengambilan keputusan untuk menganalisis data dan
memberikan rekomendasi atau keputusan yang didasarkan pada
informasi yang tersedia. Penggunaan algoritma dalam hal ini
dapat dipengaruhi oleh preferensi atau kebijakan subjektif yang
ditentukan oleh pengguna atau organisasi.
6. Kecerdasan Buatan: Dalam bidang kecerdasan buatan,
algoritma digunakan untuk mengembangkan model dan alat
yang dapat belajar dan mengambil keputusan sendiri. Motivasi
di sini adalah untuk menciptakan sistem yang dapat beradaptasi,
memperbaiki kinerja mereka seiring waktu, dan menghadapi
situasi yang kompleks.

Subjektivitas juga dapat mempengaruhi penggunaan algoritma.


Misalnya, pengguna mungkin memiliki preferensi atau kebutuhan
yang spesifik, dan mereka dapat memilih algoritma yang sesuai

BUKU AJAR LOGIKA & ALGORITMA 49


dengan preferensi tersebut. Selain itu, algoritma dapat memiliki
beberapa interpretasi atau pendekatan yang berbeda dalam
menyelesaikan masalah yang sama, dan pengguna dapat memilih
pendekatan yang paling sesuai dengan kebutuhan mereka atau
yang mereka anggap paling efektif.

Penggunaan algoritma juga dapat dipengaruhi oleh faktor sosial,


etis, dan hukum. Pertimbangan seperti privasi data, keadilan, dan
keamanan dapat mempengaruhi bagaimana algoritma diterapkan
dan digunakan dalam konteks tertentu.

Dalam kesimpulannya, motivasi penggunaan algoritma meliputi


efisiensi, akurasi, otomatisasi, pengembangan perangkat lunak,
pengambilan keputusan, dan kecerdasan buatan.

C. KELEBIHAN DAN KEKURANGAN MENGGUNAKAN


ALGORITMA

Penggunaan algoritma memiliki sejumlah kelebihan dan


kekurangan yang perlu dipertimbangkan. Berikut ini adalah
beberapa contoh kelebihan dan kekurangan penggunaan algoritma:

Kelebihan:
1. Efisiensi: Algoritma yang baik dapat meningkatkan efisiensi
dalam menyelesaikan tugas atau masalah dengan
menggunakan sumber daya yang terbatas, seperti waktu,
tenaga, atau ruang.
2. Akurasi: Algoritma dapat memberikan tingkat akurasi yang tinggi
dalam pengolahan data atau pengambilan keputusan, terutama
jika algoritma tersebut telah diuji, dikembangkan, dan
disempurnakan secara luas.
3. Konsistensi: Algoritma dapat memastikan konsistensi dalam
eksekusi tugas atau proses. Jika algoritma diberikan input yang
sama, ia akan menghasilkan output yang sama setiap kali
dieksekusi.

BUKU AJAR LOGIKA & ALGORITMA 50


2. Otomatisasi: Algoritma memungkinkan otomatisasi proses yang
manual atau berulang, menghemat waktu dan usaha manusia,
serta mengurangi potensi kesalahan manusia.
3. Pengembangan Perangkat Lunak: Algoritma adalah dasar untuk
merancang logika dan alur kerja dalam pengembangan
perangkat lunak. Dengan menggunakan algoritma yang tepat,
pengembang dapat menciptakan perangkat lunak yang
berfungsi dengan baik dan menghasilkan output yang
diharapkan.

Kekurangan:
1. Terbatas pada Input dan Output: Algoritma hanya dapat
menghasilkan output berdasarkan input yang diberikan. Jika
inputnya tidak lengkap atau tidak akurat, maka hasil yang
dihasilkan oleh algoritma juga mungkin tidak akurat atau tidak
memuaskan.
2. Bergantung pada Kualitas Data: Algoritma sangat tergantung
pada kualitas data yang digunakan sebagai input. Jika data yang
digunakan buruk atau tidak representatif, algoritma mungkin
menghasilkan hasil yang tidak akurat atau tidak bermakna.
2. Ketidakmampuan dalam Menghadapi Ketidakpastian: Algoritma
sering didesain untuk menangani situasi yang terdefinisi dengan
jelas. Mereka mungkin tidak efektif dalam menghadapi
ketidakpastian atau situasi yang kompleks, di mana variabel-
variabelnya sulit diprediksi atau ada banyak faktor yang saling
mempengaruhi.
3. Ketergantungan pada Pengetahuan Manusia: Algoritma
membutuhkan pengetahuan manusia yang baik untuk
merancang, mengimplementasikan, dan memahami konteks di
mana algoritma tersebut akan digunakan. Tanpa pemahaman
yang baik, algoritma mungkin tidak diimplementasikan dengan
benar atau tidak menghasilkan hasil yang diinginkan.
4. Potensi Bias: Algoritma dapat mencerminkan atau memperkuat
bias yang ada dalam data atau desain mereka. Jika algoritma
dikembangkan dengan menggunakan data yang bias atau

BUKU AJAR LOGIKA & ALGORITMA 51


parameter yang tidak adil, mereka dapat menghasilkan hasil
yang tidak adil atau diskriminatif.

Dalam mengimplementasikan algoritma, penting untuk


mempertimbangkan kelebihan dan kekurangan yang terkait dengan
konteks dan tujuan penggunaan algoritma tersebut.

D. SYARAT SEBUAH ALGORITMA

Sebuah algoritma harus memenuhi beberapa syarat agar dianggap


sebagai algoritma yang valid dan efektif. Berikut adalah beberapa
syarat yang harus dipenuhi oleh sebuah algoritma:
1. Jelas dan Terdefinisi: Sebuah algoritma harus dijelaskan dengan
jelas dan terperinci, sehingga setiap langkahnya dapat dipahami
dengan baik. Setiap langkah dalam algoritma harus dinyatakan
secara spesifik dan tidak ambigu.
2. Terbatas: Algoritma harus memiliki langkah-langkah yang
terbatas dan berhenti setelah jumlah langkah tertentu. Algoritma
tidak boleh berjalan tanpa henti atau mengulang langkah tertentu
secara tak terbatas.
3. Terstruktur: Algoritma harus memiliki struktur yang terorganisasi
dengan baik. Ini berarti ada aturan dan kontrol alur yang jelas
untuk menjalankan setiap langkah. Struktur yang baik membantu
menjaga algoritma agar terorganisasi dan mudah diikuti.
4. Input dan Output: Algoritma harus memiliki input yang jelas, yaitu
data atau informasi yang diperlukan untuk memulai eksekusi
algoritma. Selain itu, algoritma harus menghasilkan output yang
diinginkan atau solusi yang diharapkan setelah menjalankan
langkah-langkahnya.
5. Deterministik: Algoritma harus memiliki perilaku yang
deterministik. Artinya, jika diberikan input yang sama, algoritma
akan menghasilkan output yang sama setiap kali dieksekusi.
Tidak boleh ada keambiguan atau ketidaktepatan dalam
langkah-langkah algoritma.
6. Efisien: Algoritma yang baik harus efisien dalam menggunakan
sumber daya seperti waktu dan ruang. Algoritma harus

BUKU AJAR LOGIKA & ALGORITMA 52


dirancang untuk menyelesaikan masalah dengan cara yang
paling efisien dan efektif, mengoptimalkan penggunaan sumber
daya yang tersedia.
7. Memecahkan Masalah: Algoritma harus dirancang untuk
memecahkan masalah atau mencapai tujuan tertentu. Langkah-
langkah dalam algoritma harus diarahkan untuk mengatasi
masalah yang dihadapi dan menghasilkan solusi yang
diinginkan.
8. Fungsional: Algoritma harus memiliki instruksi atau langkah-
langkah yang dapat dieksekusi secara nyata. Setiap langkah
harus dapat dilakukan dengan menggunakan operasi atau
tindakan yang dapat diimplementasikan.
9. Validasi: Algoritma harus diuji dan diverifikasi untuk memastikan
bahwa mereka dapat menghasilkan output yang diharapkan
dengan benar. Validasi algoritma melibatkan pengujian dengan
input yang berbeda untuk memastikan kebenaran dan
konsistensi hasilnya.
10. Dokumentasi: Algoritma harus didokumentasikan dengan baik,
termasuk deskripsi yang jelas, langkah-langkah, dan
pemahaman tentang konteks dan tujuan algoritma tersebut.
Dokumentasi yang baik membantu orang lain memahami dan
mengimplementasikan algoritma dengan benar.

Memenuhi syarat-syarat ini akan membantu memastikan bahwa


algoritma tersebut dapat diimplementasikan dan dieksekusi dengan
benar, dan menghasilkan hasil yang diharapkan atau solusi yang
diinginkan.

E. CIRI SEBUAH ALGORITMA

Sebuah algoritma memiliki beberapa ciri yang membedakannya dari


sekumpulan instruksi atau langkah acak. Berikut adalah beberapa
ciri khas sebuah algoritma:
1. Keterdefinisian: Sebuah algoritma harus memiliki langkah-
langkah yang didefinisikan secara jelas dan spesifik. Setiap

BUKU AJAR LOGIKA & ALGORITMA 53


langkah dalam algoritma harus memiliki makna yang dapat
dipahami dengan jelas dan dijalankan tanpa ambigu.
2. Input dan output: Algoritma harus menerima input yang
diperlukan untuk melakukan operasi atau pemrosesan tertentu.
Selain itu, algoritma harus menghasilkan output yang diharapkan
atau solusi dari masalah yang ingin diselesaikan.
3. Terbatas: Algoritma harus memiliki batasan yang jelas dalam hal
waktu dan ruang. Ini berarti algoritma harus dapat
menyelesaikan tugasnya dalam waktu yang terbatas dan
menggunakan sumber daya yang terbatas (seperti memori atau
CPU).
4. Deterministik: Sebuah algoritma harus memiliki perilaku yang
deterministik. Artinya, jika diberikan input yang sama, algoritma
akan selalu menghasilkan output yang sama. Tidak boleh ada
keambiguan atau ketidakpastian dalam langkah-langkah yang
dijalankan.
5. Terdapat terminasi: Algoritma harus memiliki kondisi terminasi
yang jelas. Ini berarti algoritma harus dapat berhenti atau
menghentikan eksekusinya setelah menyelesaikan tugas yang
diinginkan. Algoritma tidak boleh berjalan secara tak terbatas.
6. Efisien: Algoritma idealnya harus efisien dalam melakukan
tugasnya. Ini berarti algoritma harus membutuhkan jumlah
langkah atau operasi yang wajar dan menggunakan sumber
daya yang seefisien mungkin.
7. Relevansi: Algoritma harus relevan dengan tugas atau masalah
yang ingin diselesaikan. Algoritma harus dapat menghasilkan
solusi yang memadai dan sesuai dengan kebutuhan pengguna.
8. Berulang: Algoritma dapat terdiri dari langkah-langkah yang
dapat diulang atau berulang dalam rangka mencapai tujuan yang
diinginkan. Pengulangan dapat digunakan untuk memproses
data secara berulang, mengulang langkah-langkah dalam
struktur pengulangan, atau rekursi.
9. Dapat digeneralisasi: Algoritma yang baik dapat digunakan untuk
menyelesaikan masalah yang serupa dalam berbagai situasi
atau kondisi yang berbeda. Algoritma harus memiliki fleksibilitas

BUKU AJAR LOGIKA & ALGORITMA 54


untuk diterapkan dalam skenario yang berbeda tanpa perubahan
yang signifikan.
10. Validasi dan analisis: Algoritma harus dapat diuji, divalidasi, dan
dianalisis untuk memastikan kebenaran dan kinerjanya.
Pengujian dan analisis algoritma membantu memastikan bahwa
algoritma dapat bekerja dengan benar dan sesuai dengan
kebutuhan.

Ciri-ciri di atas membantu membedakan algoritma dari serangkaian


instruksi acak atau prosedur yang tidak terstruktur. Sebuah
algoritma yang baik harus memenuhi ciri-ciri tersebut untuk
memberikan solusi yang efektif dan dapat diandalkan terhadap
masalah yang ingin diselesaikan.

F. KONSEP DASAR ALGORITMA

Konsep dasar algoritma mencakup beberapa elemen kunci yang


membentuk dasar pemahaman dan desain algoritma. Berikut
adalah konsep dasar yang penting dalam algoritma:
Langkah-langkah Terurut: Algoritma terdiri dari serangkaian
langkah-langkah terurut yang harus diikuti secara berurutan untuk
mencapai tujuan tertentu. Setiap langkah memiliki tugas atau
instruksi spesifik yang harus dilakukan.

Kontrol Alur: Algoritma menggunakan kontrol alur untuk mengatur


jalannya langkah-langkah. Kontrol alur dapat berupa struktur
percabangan (seperti if-else statement atau switch-case statement)
untuk membuat keputusan berdasarkan kondisi tertentu, atau
struktur perulangan (seperti for loop atau while loop) untuk
mengulang langkah-langkah tertentu berulang kali.

Variabel dan Operasi: Algoritma menggunakan variabel untuk


menyimpan dan memanipulasi data. Variabel dapat digunakan
untuk menyimpan nilai, dan operasi dapat dilakukan pada variabel
untuk memanipulasi nilai tersebut. Operasi dapat berupa operasi

BUKU AJAR LOGIKA & ALGORITMA 55


matematika, operasi logika, atau operasi string, tergantung pada
jenis data yang dioperasikan.

Pengendalian Input dan Output: Algoritma menerima input dari


pengguna atau sumber lainnya dan menghasilkan output sebagai
hasil dari eksekusi langkah-langkah. Input dan output dapat berupa
data numerik, teks, file, atau bentuk lainnya, tergantung pada jenis
masalah yang sedang diselesaikan.

Struktur Data: Algoritma dapat melibatkan penggunaan struktur


data seperti array, list, stack, queue, atau tree. Struktur data
membantu mengatur dan mengelola data dengan cara yang efisien
dan efektif.

Pengendalian Kesalahan: Algoritma dapat mengandung


mekanisme untuk mengendalikan dan menangani kesalahan yang
mungkin terjadi selama eksekusi. Ini bisa berupa penggunaan
pernyataan kondisional atau pengecualian untuk mendeteksi dan
menangani kesalahan.

Rekursi: Rekursi adalah konsep di mana sebuah fungsi atau


algoritma dapat memanggil dirinya sendiri. Rekursi sering
digunakan untuk menyelesaikan masalah yang dapat dipecahkan
secara berulang atau memiliki struktur hierarkis.

Efisiensi dan Kompleksitas: Algoritma harus dirancang untuk


mencapai tujuan secara efisien dan dengan kompleksitas yang
dapat diterima. Efisiensi mengacu pada penggunaan sumber daya
yang minimal, seperti waktu dan ruang, sementara kompleksitas
mengukur seberapa banyak waktu atau ruang yang dibutuhkan oleh
algoritma seiring dengan ukuran masalah yang diberikan.

Pseudocode dan Diagram Alir: Untuk merancang dan


menggambarkan algoritma, sering digunakan pseudocode atau
diagram alir. Pseudocode adalah kombinasi antara bahasa
pemrograman dan bahasa manusia yang digunakan untuk
mendeskripsikan langkah-langkah algoritma dengan lebih

BUKU AJAR LOGIKA & ALGORITMA 56


terperinci. Diagram alir menggunakan simbol dan panah untuk
menggambarkan urutan langkah-langkah dalam algoritma.

Konsep dasar ini membentuk landasan untuk merancang,


menganalisis, dan mengimplementasikan algoritma yang efektif
dan efisien dalam menyelesaikan berbagai masalah.

G. STRUKTUR DASAR ALGORITMA

Struktur dasar algoritma terdiri dari tiga elemen utama: urutan,


percabangan, dan perulangan. Kombinasi dari ketiga elemen ini
memungkinkan pengendalian alur logika dalam algoritma. Berikut
adalah penjelasan singkat tentang masing-masing elemen tersebut:
1. Urutan: Urutan adalah elemen dasar dalam algoritma di mana
langkah-langkah dieksekusi secara berurutan, satu demi satu.
Algoritma akan menjalankan setiap langkah dalam urutan yang
ditentukan, tanpa ada percabangan atau perulangan. Urutan
memberikan alur logika yang terstruktur dalam algoritma.

Contoh:
```
Langkah 1: Membaca input dari pengguna
Langkah 2: Melakukan operasi matematika pada input
Langkah 3: Menampilkan output hasil operasi
```

2. Percabangan: Percabangan digunakan ketika ada keputusan


yang harus dibuat berdasarkan kondisi tertentu. Algoritma akan
memeriksa kondisi dan kemudian menjalankan langkah-langkah
yang sesuai tergantung pada hasil evaluasi kondisi tersebut.
Percabangan memberikan fleksibilitas dalam algoritma untuk
memilih alur yang berbeda tergantung pada situasi.

Contoh:
```
Jika kondisi A benar, maka jalankan Langkah X

BUKU AJAR LOGIKA & ALGORITMA 57


Jika kondisi A salah, maka jalankan Langkah Y
```
3. Perulangan: Perulangan digunakan ketika ada langkah-langkah
yang perlu diulang berulang kali. Ini memungkinkan algoritma
untuk menjalankan serangkaian instruksi berulang kali sampai
kondisi tertentu terpenuhi. Perulangan memungkinkan
pengulangan tugas tanpa perlu menulis instruksi yang sama
berulang kali.

Contoh:
```
Selama kondisi A terpenuhi, lakukan Langkah X
```

Dalam algoritma yang lebih kompleks, struktur dasar ini sering


dikombinasikan secara berulang, sehingga membentuk alur
logika yang lebih kompleks dan fleksibel. Struktur dasar ini
memungkinkan pengendalian alur logika dan pengambilan
keputusan yang efektif dalam algoritma.

H. ANALISIS ALGORITMA

Analisis dalam algoritma adalah proses untuk mempelajari dan


mengevaluasi kinerja atau efisiensi dari sebuah algoritma. Analisis
ini melibatkan pengukuran dan pemodelan matematis untuk
memahami sejauh mana algoritma tersebut dapat menyelesaikan
tugas dengan menggunakan sumber daya yang tersedia.

Tujuan utama dari analisis algoritma adalah untuk memprediksi dan


memahami kinerja algoritma secara objektif. Beberapa aspek yang
sering dianalisis dalam algoritma meliputi:

Waktu Eksekusi: Analisis ini bertujuan untuk memahami seberapa


cepat algoritma dapat menyelesaikan tugasnya. Waktu eksekusi
sering diukur dengan kompleksitas waktu algoritma, yang dapat
dinyatakan dalam notasi Big O. Analisis ini membantu dalam

BUKU AJAR LOGIKA & ALGORITMA 58


membandingkan efisiensi algoritma dan memilih algoritma yang
paling cepat untuk masalah yang diberikan.

Penggunaan Memori: Analisis ini melibatkan pemodelan


penggunaan memori oleh algoritma. Ini membantu dalam
memahami berapa banyak memori yang akan digunakan algoritma
saat dieksekusi. Penggunaan memori algoritma dapat dinyatakan
dalam kompleksitas ruang, yang juga dapat dinyatakan dalam
notasi Big O.

Kompleksitas Algoritma: Kompleksitas algoritma mengukur


seberapa banyak waktu atau ruang yang dibutuhkan oleh algoritma
seiring dengan ukuran masalah yang diberikan. Analisis
kompleksitas membantu dalam memahami seberapa efisien
algoritma dalam menangani masalah yang semakin besar. Hal ini
penting dalam memilih algoritma yang tepat untuk memenuhi
kebutuhan dan keterbatasan sumber daya yang ada.

Analisis Kasus Terbaik, Kasus Terburuk, dan Rata-rata: Algoritma


dapat memiliki performa yang berbeda tergantung pada kondisi
input yang diberikan. Oleh karena itu, analisis algoritma melibatkan
analisis kasus terbaik (best-case), kasus terburuk (worst-case), dan
kasus rata-rata (average-case). Ini membantu dalam memahami
kinerja algoritma secara komprehensif dan melihat bagaimana
algoritma berperilaku dalam berbagai skenario.

Analisis dalam algoritma sangat penting karena membantu dalam


memilih algoritma yang tepat untuk masalah yang diberikan,
memahami keterbatasan sumber daya yang terlibat, dan membuat
keputusan yang lebih baik dalam desain dan pengembangan
perangkat lunak.

I. PEDOMAN MENYUSUN SEBUAH ALGORITMA

Berikut ini adalah beberapa pedoman yang dapat membantu dalam


menyusun sebuah algoritma:

BUKU AJAR LOGIKA & ALGORITMA 59


1. Pahami Masalah: Mulailah dengan memahami masalah yang
ingin Anda selesaikan. Analisis masalah dengan baik untuk
memahami kebutuhan dan tujuan yang harus dicapai dengan
menggunakan algoritma.
2. Buat Rencana Umum: Buat rencana umum atau pendekatan
strategis untuk menyelesaikan masalah tersebut. Pikirkan
langkah-langkah utama yang diperlukan untuk mencapai tujuan
tersebut.
3. Pemecahan menjadi Submasalah: Jika masalah kompleks,
pecahkan menjadi submasalah yang lebih kecil dan lebih mudah
dipecahkan. Identifikasi langkah-langkah yang diperlukan untuk
menyelesaikan setiap submasalah dan bagaimana mereka
saling terkait.
4. Gunakan Notasi yang Jelas: Gunakan notasi yang jelas dan
deskriptif untuk menyusun algoritma. Pseudocode atau diagram
alir dapat digunakan untuk menggambarkan langkah-langkah
dengan lebih terperinci. Pastikan langkah-langkah dan instruksi
yang digunakan dapat dipahami dengan jelas oleh pembaca.
5. Urutan Logis: Susun langkah-langkah algoritma dengan urutan
logis yang terstruktur. Langkah-langkah harus diatur sedemikian
rupa sehingga menjalankan algoritma dari awal ke akhir akan
menghasilkan solusi yang benar.
6. Gunakan Struktur Kontrol: Gunakan struktur kontrol seperti
percabangan (if-else statement, switch-case statement) dan
perulangan (for loop, while loop) untuk mengatur alur eksekusi
algoritma. Ini akan memungkinkan algoritma untuk membuat
keputusan berdasarkan kondisi tertentu atau mengulang
langkah-langkah tertentu sesuai kebutuhan.
7. Gunakan Nama Variabel yang Deskriptif: Gunakan nama
variabel yang deskriptif untuk memudahkan pemahaman dan
membantu dokumentasi. Nama variabel harus mencerminkan
jenis data atau informasi yang mereka wakili.
8. Validasi dan Pengujian: Pastikan algoritma yang Anda buat
sudah diuji dan diverifikasi dengan baik. Uji algoritma dengan
berbagai jenis input dan pastikan menghasilkan output yang
benar sesuai dengan tujuan yang diinginkan.

BUKU AJAR LOGIKA & ALGORITMA 60


9. Optimasi dan Efisiensi: Setelah algoritma berfungsi dengan
benar, periksa apakah ada ruang untuk mengoptimalkan kinerja
atau efisiensi algoritma. Identifikasi bagian yang mungkin
membutuhkan perbaikan dan pertimbangkan alternatif solusi
yang lebih efisien jika memungkinkan.
10. Dokumentasikan dengan Baik: Dokumentasikan algoritma
dengan baik, termasuk deskripsi yang jelas, langkah-langkah,
dan pemahaman tentang konteks dan tujuan algoritma tersebut.
Ini akan memudahkan orang lain untuk memahami dan
mengimplementasikan algoritma dengan benar.

Dengan mengikuti pedoman ini, Anda dapat menyusun algoritma


yang efektif, terstruktur, dan mudah dipahami. Ini akan membantu
dalam merancang solusi yang baik untuk masalah yang Anda
hadapi.

J. PENYELESAIAN MASALAH DENGAN ALGORITMA

Berikut adalah beberapa contoh problem yang bisa diselesaikan


dengan menggunakan algoritma:
1. Sorting (Pengurutan): Mengurutkan sekumpulan data dalam
urutan yang teratur, seperti pengurutan data dalam urutan naik
atau turun. Contoh algoritma yang digunakan untuk mengatasi
masalah ini adalah algoritma Bubble Sort, Selection Sort,
Insertion Sort, Merge Sort, Quick Sort, dan lain-lain.
2. Searching (Pencarian): Mencari elemen tertentu dalam
sekumpulan data. Contoh algoritma yang digunakan untuk
masalah ini adalah Linear Search, Binary Search, Interpolation
Search, dan lain-lain.
3. Graph Traversal (Lintasan Graf): Menemukan lintasan atau
rute dalam graf. Contoh algoritma yang digunakan adalah Depth-
First Search (DFS), Breadth-First Search (BFS), Dijkstra's
Algorithm, A* Search Algorithm, dan lain-lain.
4. Knapsack Problem (Masalah Knapsack): Memilih objek-objek
tertentu dari sekumpulan objek dengan bobot dan nilai yang
ditentukan agar memaksimalkan nilai total dan memenuhi

BUKU AJAR LOGIKA & ALGORITMA 61


batasan bobot tertentu. Contoh algoritma yang digunakan adalah
Algoritma Greedy, Algoritma Dynamic Programming, dan lain-
lain.
5. Travelling Salesman Problem (Masalah Salesman
Perjalanan): Menemukan rute terpendek yang melibatkan
kunjungan ke beberapa titik atau kota yang berbeda dan kembali
ke titik awal. Contoh algoritma yang digunakan adalah Algoritma
Brute Force, Algoritma Nearest Neighbor, Algoritma Simulated
Annealing, dan lain-lain.
6. Shortest Path Problem (Masalah Lintasan Terpendek):
Mencari lintasan terpendek antara dua titik dalam graf berbobot.
Contoh algoritma yang digunakan adalah Algoritma Dijkstra,
Algoritma Bellman-Ford, Algoritma Floyd-Warshall, dan lain-lain.
7. String Matching (Pencocokan String): Mencari kecocokan
pola tertentu dalam sebuah teks atau string. Contoh algoritma
yang digunakan adalah Algoritma Brute Force, Algoritma Knuth-
Morris-Pratt (KMP), Algoritma Boyer-Moore, dan lain-lain.
8. Tree Traversal (Lintasan Pohon): Melakukan pengolahan atau
pencarian pada struktur data pohon. Contoh algoritma yang
digunakan adalah Inorder Traversal, Preorder Traversal,
Postorder Traversal, dan lain-lain.

Ini hanya beberapa contoh dari banyak masalah yang bisa


diselesaikan dengan menggunakan algoritma. Terdapat beragam
algoritma yang dikembangkan untuk menyelesaikan berbagai
masalah dengan efisien dan efektif. Pemilihan algoritma yang tepat
tergantung pada masalah yang harus diselesaikan dan
keterbatasan sumber daya yang ada.

K. RANGKUMAN

Berdasarkan uraian materi tentang syarat dan ciri sebuah algoritma


maka dapat disimpulkan Algoritma adalah serangkaian langkah-
langkah logis yang terstruktur dan sistematis yang digunakan untuk
menyelesaikan masalah atau mengeksekusi suatu tugas secara
efisien. Dengan memenuhi syarat dan ciri suatu algoritma, maka

BUKU AJAR LOGIKA & ALGORITMA 62


algoritma dianggap baik dan dapat diandalkan untuk
menyelesaikan masalah dengan efisien. Penelitian dan
pengembangan algoritma terus berlanjut untuk meningkatkan
efisiensi dan kinerjanya dalam berbagai aplikasi dan bidang.
Adapun hal yang perlu diperhatikan dalam memilih dan
menggunakan sebuah algoritma adalah dengan menganalisis
sebuah algoritma. Analisis sebuah algoritma adalah proses
evaluasi dan penilaian kinerja suatu algoritma dalam
menyelesaikan masalah atau tugas tertentu. Tujuan utama dari
analisis algoritma adalah untuk memahami seberapa efisien
algoritma tersebut bekerja dalam hal waktu eksekusi dan
penggunaan sumber daya lainnya, seperti memori atau ruang
penyimpanan. Dengan melakukan analisis algoritma, kita dapat
membuat keputusan yang lebih baik dalam pemilihan algoritma
yang tepat untuk masalah tertentu dan mengoptimalkan kinerja
sistem secara keseluruhan. Selain itu, analisis algoritma menjadi
dasar penting dalam ilmu komputer dan pengembangan perangkat
lunak.

L. TES FORMATIF

1. Apa syarat utama yang harus dimiliki oleh sebuah algoritma?


a) Efisiensi waktu
b) Deskripsi tertulis
c) Penggunaan memori yang optimal
d) Terbatas dan jelas terdefinisi

2. Apa yang dimaksud dengan kompleksitas algoritma?


a) Efisiensi algoritma dalam penggunaan sumber daya
b) Jumlah operasi yang dilakukan algoritma pada skala tertentu
c) Proses analisis algoritma menggunakan notasi Big O
d) Pengaruh jenis input pada kinerja algoritma

3. Ciri yang membuat sebuah algoritma dapat diandalkan adalah:


a) Penggunaan sumber daya yang berlebihan
b) Ketergantungan pada bahasa pemrograman tertentu

BUKU AJAR LOGIKA & ALGORITMA 63


c) Jumlah langkah yang tidak terbatas
d) Konsistensi dalam menghasilkan output yang sama untuk
input yang sama

M. LATIHAN

Apa keterkaitan antara analisis kompleksitas algoritma dengan


efisiensi waktu dan penggunaan memori, dan bagaimana
pemahaman tentang kompleksitas algoritma dapat membantu
dalam pengembangan perangkat lunak yang lebih baik?

BUKU AJAR LOGIKA & ALGORITMA 64


KEGIATAN BELAJAR 6
TIPE DATA

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa mempelajari tipe data dalam pemrograman
memberikan pemahaman tentang bagaimana data diorganisir,
disimpan, dan diolah dalam program sehingga dengan mempelajari
tipe data pemrograman, mahasiswa diharapkan dapat
mengembangkan pemahaman yang kokoh tentang dasar-dasar
pemrograman dan meningkatkan kemampuan Anda dalam
mengembangkan program yang efisien, aman, dan dapat
diandalkan.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dan
mahasiswi memiliki pengetahuan dan kemampuan :
1. Mampu memiliki pemahaman yang kuat tentang tipe data dasar
dalam pemrograman, seperti tipe data angka (integer, float), teks
(string), boolean, dan karakter
2. Mampu menggunakan tipe data untuk menerima masukan
(input) dari pengguna dan menghasilkan keluaran (output) yang
tepat.
3. Mampu menggunakan pengetahuan tentang tipe data untuk
memecahkan masalah pemrograman sederhana.

BUKU AJAR LOGIKA & ALGORITMA 65


ETA KONSEP PEMBELAJARAN

A. PENGERTIAN DATA

Data merupakan bentuk jamak dari bahasa Latin dengan kata


"datum", yang berarti fakta atau sesuatu yang diberikan. Secara
umum, data adalah kelompok simbol-simbol yang teratur dan
mewakili kuantitas, tindakan, benda, dan sebagainya. Dalam
konteks yang lebih umum, data mewakili angka, karakter, dan
simbol-simbol lain yang berfungsi sebagai masukan untuk proses
komputer.

Data dapat berupa berbagai bentuk, seperti suatu keadaan,


gambar, suara, huruf, angka, matematika, bahasa, atau simbol-
simbol lainnya. Data ini dapat digunakan sebagai bahan untuk
melihat lingkungan, objek, kejadian, atau konsep tertentu.

Dalam pengolahan data komputer, data digunakan sebagai


masukan untuk menjalankan berbagai jenis operasi atau
perhitungan. Data dapat diproses, dianalisis, atau dimanipulasi
dengan menggunakan algoritma atau program komputer untuk

BUKU AJAR LOGIKA & ALGORITMA 66


menghasilkan informasi yang berguna atau untuk mencapai tujuan
tertentu.

Dengan demikian, data merupakan representasi yang sistematis


dari berbagai hal di dunia nyata, yang digunakan untuk memahami,
menganalisis, atau mengambil keputusan dalam berbagai konteks.

Data tidak memiliki arti atau makna yang jelas jika tidak diolah atau
diproses. Data yang telah diolah dan memiliki bentuk yang
bermakna disebut informasi. Data yang hanya mewakili simbol-
simbol dalam dirinya sendiri belum menjadi informasi kecuali dalam
konteks tertentu. Dalam komputer, data disimpan dalam memori
sebelum dan setelah diproses oleh mikroprosesor.

Setiap bahasa pemrograman dapat memiliki jenis data yang


berbeda, meskipun sebagian besar terbagi menjadi tiga kategori
umum, yaitu:
1. Data Numerik atau bilangan: Jenis data ini digunakan dalam
proses aritmatika atau operasi matematika lainnya. Data numerik
dapat berupa angka bulat (integer) atau angka desimal (float).
2. Data String: Jenis data ini terdiri dari rangkaian karakter. Data
string digunakan untuk proses yang tidak melibatkan operasi
matematis, tetapi lebih berfokus pada teks atau urutan karakter.
3. Data Logika: Data logika hanya memiliki dua nilai, yaitu benar
(true) dan salah (false). Data logika digunakan dalam proses
logika yang melibatkan ekspresi boolean, seperti pernyataan
kondisional atau operasi logika.

Perlu diingat bahwa meskipun jenis data ini umum dalam banyak
bahasa pemrograman, setiap bahasa dapat memiliki jenis data
tambahan atau variasi yang lebih spesifik sesuai dengan kebutuhan
dan fitur bahasa tersebut.

B. INDENTIFIER

Identifier (pengenal) dalam pemrograman merujuk pada nama yang


digunakan untuk mengidentifikasi entitas seperti variabel, fungsi,

BUKU AJAR LOGIKA & ALGORITMA 67


kelas, atau objek dalam program. Identifier berfungsi sebagai label
yang memberikan identitas unik kepada entitas tersebut dalam
konteks pemrograman.

Pengertian Identifier dalam dasar pemrograman adalah sebagai


berikut:
1. Identifier harus mengikuti aturan penamaan yang ditetapkan
dalam bahasa pemrograman yang digunakan. Beberapa
aturan umum antara lain:
a. Identifier dapat terdiri dari kombinasi huruf (a-z, A-Z), angka
(0-9), dan garis bawah (_).
b. Identifier harus dimulai dengan huruf atau garis bawah,
tidak boleh dimulai dengan angka.
c. Identifier bersifat case-sensitive, artinya huruf besar dan
huruf kecil dianggap berbeda.
d. Identifier tidak boleh menggunakan kata kunci (keywords)
yang telah ditetapkan dalam bahasa pemrograman.

2. Identifier sebaiknya dipilih dengan nama yang deskriptif dan


bermakna, sehingga memudahkan pemahaman dan
memperbaiki kesalahan pada kode. Sebagai contoh, dalam
program yang menghitung luas lingkaran, variabel "radius" atau
"luasLingkaran" adalah nama identifier yang lebih bermakna
daripada menggunakan identifier yang tidak relevan seperti "x"
atau "a".

3. Identifier tidak boleh menggunakan spasi atau karakter khusus


lainnya kecuali garis bawah (_) untuk menggantikan spasi. Jika
nama terdiri dari beberapa kata, biasanya digunakan gaya
penulisan seperti camel case (contoh: hitungLuasLingkaran)
atau snake case (contoh: hitung_luas_lingkaran) untuk
memisahkan kata-kata.

4. Identifier harus bersifat unik dalam ruang lingkup tertentu.


Dalam satu program, tidak boleh ada dua entitas yang
menggunakan identifier yang sama, seperti variabel atau fungsi
dengan nama yang sama.

BUKU AJAR LOGIKA & ALGORITMA 68


Menggunakan identifier yang baik dan sesuai aturan membantu
meningkatkan kejelasan dan keterbacaan kode, sehingga
memudahkan dalam pengembangan, pemeliharaan, dan kolaborasi
dalam pemrograman.

C. TIPE DATA DASAR

Dalam pemrograman, terdapat beberapa tipe data dasar yang


umum digunakan untuk menyimpan nilai dan melakukan operasi
pada data. Berikut adalah penjelasan lebih rinci tentang tipe data
dasar yang sering digunakan dalam pemrograman:
1. Integer: Tipe data integer digunakan untuk menyimpan bilangan
bulat (tanpa bagian pecahan) seperti 1, 10, -5, dan sebagainya.
Tipe data ini biasanya direpresentasikan oleh tipe data seperti int
(misalnya, dalam Python, C, atau Java) atau integer (misalnya,
dalam Pascal).
2. Floating-Point: Tipe data floating-point digunakan untuk
menyimpan bilangan dengan bagian pecahan atau desimal
seperti 3.14, -0.5, 2.71828, dan sebagainya. Tipe data ini
biasanya direpresentasikan oleh tipe data seperti float (misalnya,
dalam Python, C, atau Java) atau real (misalnya, dalam Pascal).
3. Character: Tipe data character digunakan untuk menyimpan
karakter tunggal seperti huruf, angka, atau simbol. Setiap
karakter dalam tipe data ini biasanya diasosiasikan dengan kode
ASCII atau Unicode. Tipe data ini biasanya direpresentasikan
oleh tipe data seperti char (misalnya, dalam C atau C++) atau
character (misalnya, dalam Pascal atau Fortran).
4. Boolean: Tipe data boolean hanya memiliki dua nilai yang
mungkin: true (benar) atau false (salah). Tipe data ini digunakan
untuk operasi logika, pengambilan keputusan, dan
perbandingan. Tipe data boolean biasanya direpresentasikan
oleh tipe data seperti bool (misalnya, dalam Python, C++, atau
C#) atau boolean (misalnya, dalam Pascal).
5. String: Tipe data string digunakan untuk menyimpan
serangkaian karakter. String dapat berisi satu atau lebih karakter,

BUKU AJAR LOGIKA & ALGORITMA 69


dan digunakan untuk memanipulasi teks atau data yang
dianggap sebagai teks. Tipe data ini biasanya direpresentasikan
oleh tipe data seperti str (misalnya, dalam Python), string
(misalnya, dalam C++ atau C#), atau char[] (misalnya, dalam C).
6. Array: Tipe data array digunakan untuk menyimpan kumpulan
elemen dengan tipe data yang sama. Array dapat berisi sejumlah
elemen yang diindeks dengan angka. Tipe data array sering
digunakan untuk menyimpan data terstruktur dalam jumlah yang
lebih besar. Tipe data array biasanya direpresentasikan dengan
sintaksis khusus tergantung pada bahasa pemrograman yang
digunakan.

Selain tipe data dasar ini, beberapa bahasa pemrograman juga


mendukung tipe data lainnya seperti tipe data struktur, tipe data
pointer, tipe data enumerasi, dan banyak lagi, yang dapat
digunakan untuk memodelkan data yang lebih kompleks atau
memenuhi kebutuhan khusus dalam pemrograman. Untuk lebih
jelas mengenai tipe data dasar dapat dilihat pada tabel tipe data
berikut ini :

Nama Keterangan Ukuran Jangkauan

Abjad/karakter
signed: -128 to
atau untuk
1 byte 127unsigned: 0
Char bilangan bulat
to 255
kecil

Bilangan bulat
signed: -32768 to
short int dengan
2 byte 32767unsigned:0 to
(short) jangkauan
65535
pendek

BUKU AJAR LOGIKA & ALGORITMA 70


signed: - 2147483648
to
Int Bilangan bulat 4 byte 2147483647unsi
gned: 0 to
4294967295
signed: -2147483648
Integer dengan to
long int jangkauan 4 byte 2147483647
(long) panjang unsigned: 0 to
4294967295

Boolean, dapat
(true or false) ibyte
Bool bernilai 1 byte
true or false
benar atausalah

Angka dengan
titik
Float mengambang 4 byte 10-37 to 1038
(bilangan
cacah)

Bilangan cacah
Double dengan 8 byte 10-307 to 10308
ketelitianganda

Bilangan cacah
denganketelitian
8 byte
long double ganda 8 byte
Panjang

Karakter lebar,
biasa dipakai
2 byte 1 karakter lebar
wchar_t untuk
Unicodekarakter

BUKU AJAR LOGIKA & ALGORITMA 71


D. VARIABEL

Variabel dalam dasar pemrograman adalah suatu lokasi


penyimpanan yang diberikan nama dan dapat diisi dengan nilai-nilai
data. Variabel memungkinkan program untuk menyimpan dan
mengelola data yang akan digunakan atau dimanipulasi selama
proses eksekusi. Setiap variabel memiliki tipe data tertentu, yang
menentukan jenis nilai yang dapat disimpan di dalamnya, seperti
integer, float, string, atau tipe data lainnya. Variabel juga memiliki
nama yang unik, yang digunakan untuk mengidentifikasinya di
dalam program.

Berikut adalah beberapa konsep yang terkait dengan variabel


dalam pemrograman:
1. Pendeklarasian Variabel: Proses mendefinisikan variabel
dengan menentukan tipe data dan memberikan nama unik untuk
variabel tersebut. Contohnya, dalam C++, Anda dapat
mendeklarasikan variabel integer dengan sintaksis seperti int
angka;.
2. Inisialisasi Variabel: Memberikan nilai awal ke variabel saat
variabel dideklarasikan. Contohnya, dalam C++, Anda dapat
menginisialisasi variabel integer dengan nilai awal seperti int
angka = 10;.
3. Penggunaan Variabel: Setelah variabel dideklarasikan dan
diinisialisasi, Anda dapat menggunakan variabel tersebut dalam
ekspresi, operasi, atau pernyataan di dalam program.
Contohnya, Anda dapat menggunakan variabel untuk melakukan
perhitungan matematika atau memanipulasi data.
4. Penamaan Variabel: Memilih nama yang deskriptif dan
bermakna untuk variabel sangat penting agar memudahkan
pemahaman program. Nama variabel biasanya terdiri dari huruf,
angka, dan karakter underscore (_) dan tidak boleh dimulai
dengan angka.
5. Ruang Penyimpanan: Variabel mengalokasikan ruang
penyimpanan di memori komputer untuk menyimpan nilai-nilai

BUKU AJAR LOGIKA & ALGORITMA 72


data yang terkait. Nilai variabel dapat berubah selama program
dieksekusi.

Variabel sangat penting dalam pemrograman karena


memungkinkan program untuk menyimpan dan mengakses data
yang diperlukan saat menjalankan tugas tertentu. Dengan
menggunakan variabel, program dapat beroperasi secara dinamis
dan dapat diadaptasi untuk memproses berbagai jenis input dan
menghasilkan output yang sesuai.

E. KONVERSI TIPE DATA

Konversi tipe data adalah proses mengubah nilai dari satu tipe data
ke tipe data lain dalam pemrograman. Ini diperlukan ketika Anda
ingin menggunakan nilai dengan tipe data tertentu dalam operasi
atau ekspresi yang memerlukan tipe data yang berbeda. Berikut
beberapa contoh konversi tipe data:
1. Konversi Eksplisit: Konversi eksplisit adalah proses mengubah
tipe data secara manual dengan menggunakan operasi atau
fungsi yang tersedia dalam bahasa pemrograman. Dalam
konversi eksplisit, programmer secara jelas dan sengaja
mengubah tipe data dari satu nilai ke tipe data lain yang
diinginkan.

Contoh: Mengubah sebuah bilangan pecahan (float) menjadi


bilangan bulat (int) dengan membuang bagian desimalnya.

2. Konversi Implisit: Konversi implisit adalah konversi tipe data


yang terjadi secara otomatis oleh kompiler atau interpreter tanpa
perlu tindakan eksplicit dari programmer. Konversi ini terjadi
ketika tipe data sumber dapat dikonversi secara aman ke tipe
data target tanpa kehilangan informasi.

Contoh: Mengisi variabel integer dengan nilai bilangan bulat.


Konversi implisit dari tipe data bilangan bulat ke tipe data integer
terjadi secara otomatis.

BUKU AJAR LOGIKA & ALGORITMA 73


3. Konversi antara Tipe Data Numerik: Konversi antara tipe data
numerik melibatkan mengubah nilai dari satu tipe data numerik
ke tipe data numerik lainnya. Ini bisa melibatkan konversi yang
memperluas (misalnya, dari tipe data yang lebih kecil ke tipe data
yang lebih besar) atau konversi yang memotong (misalnya, dari
tipe data yang lebih besar ke tipe data yang lebih kecil).

Contoh: Mengubah sebuah bilangan bulat (int) menjadi bilangan


pecahan (float) dengan menambahkan bagian desimal nol.

4. Konversi antara Tipe Data String dan Numerik: Konversi


antara tipe data string dan numerik melibatkan mengubah nilai
antara tipe data string yang berisi teks dan tipe data numerik
yang digunakan untuk operasi matematis.

Contoh: Mengubah sebuah angka yang tersimpan dalam bentuk


string menjadi tipe data numerik, seperti integer atau float,
sehingga dapat digunakan dalam operasi matematis.

Konversi tipe data adalah proses penting dalam pemrograman


untuk memastikan nilai yang sesuai dan konsisten digunakan dalam
berbagai operasi. Dalam melakukan konversi, perlu diperhatikan
potensi kehilangan informasi atau perubahan nilai yang tidak
diinginkan, serta batasan dan aturan yang berlaku untuk setiap tipe
data.

F. RANGKUMAN

Berdasarkan uraian membahas tentang tipe data dalam


pemrograman dan memberikan pemahaman tentang bagaimana
data diorganisir, disimpan, dan diolah dalam program. Mahasiswa
diharapkan dapat mengembangkan pemahaman yang kokoh
tentang dasar-dasar pemrograman dan meningkatkan kemampuan
dalam mengembangkan program yang efisien, aman, dan dapat
diandalkan. Kompetensi pembelajaran yang diharapkan setelah
mengikuti perkuliahan ini adalah pemahaman yang kuat tentang

BUKU AJAR LOGIKA & ALGORITMA 74


tipe data dasar dalam pemrograman, penggunaan tipe data untuk
menerima masukan dan menghasilkan keluaran yang tepat, serta
kemampuan dalam memecahkan masalah pemrograman
sederhana. Selain itu, pada Bab ini juga. terdapat pengantar bahasa
pemrograman yang menjelaskan tentang keinginan pengguna,
batasan, dan aturan yang berlaku untuk setiap tipe data.

G. TES FORMATIF

1. Tipe data yang digunakan untuk merepresentasikan bilangan


bulat adalah:
a. Integer
b. Float
c. String
d. Boolean
e. Charakter

2. Apa pengertian variabel dalam pemrograman?


a. Suatu lokasi penyimpanan dengan nilai tetap
b. Suatu lokasi penyimpanan dengan nama unik
c. Suatu lokasi penyimpanan yang tidak memiliki tipe data
d. Suatu lokasi penyimpanan yang tidak dapat diubah
e. Suatu metode penghitungan matematika

3. Apa yang dimaksud dengan pendeklarasian variabel?


a. Memberikan nilai awal ke variabel saat dideklarasikan
b. Mengubah tipe data variabel setelah dideklarasikan
c. Proses mendefinisikan variabel dengan menentukan tipe data
dan nama
d. Memberikan nama unik untuk variabel
e. Mengatur urutan eksekusi program

BUKU AJAR LOGIKA & ALGORITMA 75


H. LATIHAN

1. Jelaskan apa itu tipe data dalam pemrograman dan berikan


contoh tipe data dasar yang umum digunakan.

2. Jelaskan apa itu tipe data dalam pemrograman dan berikan


contoh tipe data dasar yang umum digunakan.

BUKU AJAR LOGIKA & ALGORITMA 76


KEGIATAN BELAJAR 7
OPERATOR DAN KONSTANTA

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa mempelajari pengenalan konsep, jenis,
dan penggunaan operator dan konstanta. Diharapkan mahasiswa
memiliki wawasan dan mampu membedakan serta menggunakan
berbagai operator dan konstanta yang ada dalam pemenuhan
konsep logika dan algoritma.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dan
mahasiswi memiliki pengetahuan dan kemampuan:
4. Mampu menjelaskan konsep operator aritmatika, penugasan,
dan pembanding
5. Mampu membedakan dan menerapkan operator-operator
tersebut dalam algoritma untuk melakukan berbagai operasi
aritmatika, pembanding, dan logika
6. Mampu menggunakan konstanta yang sesuai
7. Mampu menggunakan operator penugasan dan operator
increment/decrement untuk mengubah nilai variabel.

PETA KONSEP PEMBELAJARAN

BUKU AJAR LOGIKA & ALGORITMA 77


A. PENGERTIAN OPERATOR

Dalam Pemrograman, terdapat berbagai istilah yang sering


didengar hingga digunakan dalam membuat baris kode hingga
program yang diinginkan. Salah satunya adalah operator. Operator
merupakan instruksi atau perintah yang diberikan dengan tujuan
memperoleh hasil dari satu atau lebih operand. Operand adalah
nilai yang akan dihitung dan diproses dengan operator yang ada.
Contoh: jika terdapat sebuah operasi 10 + 5, maka angka 10 dan 5
disebut dengan operand, sedangkan tanda + merupakan sebuah
operator.

B. SIFAT-SIFAT OPERATOR

Dalam penggunaannya, operator dapat dikelompokkan


berdasarkan sifatnya. Terdapat tiga sifat operator, diantaranya:
1. Unary. Unary berarti operator yang melibatkan atau
menggunakan operand tunggal pada sebuah operasi.
Contohnya: -10
2. Binary. Binary berarti operator yang melibatkan atau
menggunakan dua buah operand pada sebuah operasi.
Contohnya: 3 x 9
3. Ternary. Ternary berarti operator yang melibatkan atau
menggunakan tiga buah operand pada sebuah operasi.
Contohnya: (10 %9) + 3 + 1

C. JENIS-JENIS OPERATOR

1) Operator Aritmatika
Operator aritmatika merupakan jenis operator yang digunakan
pada ekspresi atau proses matematika. Sebagai contoh: variabel
A bernilai 20 dan variabel B bernilai 10, maka berikut adalah
beberapa operator aritmatika yang dapat digunakan:

BUKU AJAR LOGIKA & ALGORITMA 78


Operator Deskripsi Contoh
- Merupakan A + B yang
operator menghasilkan 30
penjumlahan yang
berfungsi untuk
menjumlahkan atau
menambahkan
operand
- Merupakan A - B yang
operator menghasilkan 10
pengurangan yang
berfungsi untuk
mengurangkan
operand
* Merupakan A * B yang
operator perkalian menghasilkan 200
yang berfungsi
untuk mengalikan
operand
/ Merupakan A/B yang
operator pembagian menghasilkan 2
yang berfungsi
untuk membagi
operand
% Merupakan A%B yang
operator modulus menghasilkan 0
yang berarti sisa
bagi

2) Operator Penugasan
Operator Penugasan atau assignment operator merupakan jenis
operator yang berfungsi untuk memberikan nilai pada suatu
variabel. Operator ini digunakan dengan notasi tanda sama
dengan (“=”). Sebagai contoh: terdapat sebuah variabel lebar.
Jika ingin diberikan nilai pada variabel lebar tersebut, maka
penulisannya adalah sebagai berikut:
(1) lebar = 10;
(2) luas = lebar * tinggi;

BUKU AJAR LOGIKA & ALGORITMA 79


Penjelasan: maksud dari contoh (1) diatas adalah variabel “lebar”
diisi dengan nilai 10, sedangkan contoh (2) bermakna bahwa
variabel luas adalah variabel yang akan diisi dengan hasil
perhitungan antara variabel lebar dikali dengan variabel tinggi.

Selain pemberian notasi tunggal “=”, operator penugasan juga


dapat ditambahkan dengan tambahan operator aritmatika lain
disebelah kiri sebelum penulisan tanda sama dengan, seperti
berikut:
(a) A += B
(b) A -= B
(c) A *= B
(d) A /= B
(e) A %= B

Penjelasan: maksud dari contoh (a) diatas adalah menjumlahkan


nilai operan di sebelah kiri dengan nilai operan sebelah kanan,
kemudian memasukkan hasil perhitungannya ke dalam operan
di sebelah kiri, sehingga nilai dari operan sebelah kiri dalam hal
ini adalah A akan berubah. Penulisan A += B akan memberikan
hasil yang sama jika dituliskan dengan A = A + B. Begitupun
demikian dengan contoh pada (b),(c),(d),dan (e), dimana
terdapat operasi aritmatika terlebih dahulu antara nilai operan
sebelah kiri dengan nilai operan di sebelah kanan, kemudian
memasukkan hasilnya ke dalam operan di sebelah kiri.

3) Operator Perbandingan
Operator perbandingan biasa juga disebut dengan operator
relasional. Operator ini digunakan dengan tujuan
membandingkan dua operand atau dua buah nilai. Sebagai
contoh, diasumsikan terdapat dua variabel yakni variabel X dan
variabel Y, dengan nilai masing-masing adalah 50 dan 100,
maka berbagai operator perbandingan yang dapat digunakan
adalah sebagai berikut:

BUKU AJAR LOGIKA & ALGORITMA 80


Operator Deskripsi Contoh
== Merupakan jenis operator X == Y, maka
perbandingan yang bertujuan hasilnya adalah
untuk memeriksa apakah salah (false),
nilai kedua operand yang karena 50 tidak
dibandingkan sama atau sama dengan 100
tidak. Jika sama, maka luaran
yang dihasilkan adalah salah
(false). Perlu diperhatikan
bahwa operator ini bukan
memberi nilai namun
mengecek apakah sama atau
tidak
!= Merupakan jenis operator X != Y, maka
perbandingan yang bertujuan hasilnya adalah
untuk memeriksa apakah benar (true), karena
nilai kedua operand yang 50 tidak sama
dibandingkan sama atau dengan 100
tidak. Jika tidak sama, maka
luaran yang dihasilkan
adalah benar (true).
> Merupakan jenis operator X > Y, maka
perbandingan yang bertujuan hasilnya adalah
untuk memeriksa apakah salah (false),
nilai operand sebelah kiri karena 50 tidak
lebih besar daripada nilai lebih besar dari 100
operan sebelah kanan. Jika
lebih besar, maka luaran
yang dihasilkan adalah benar
(true)
< Merupakan jenis operator X < Y, maka
perbandingan yang bertujuan hasilnya adalah
untuk memeriksa apakah benar (false),
nilai operand sebelah kiri karena 50 < 100
lebih kecil daripada nilai
operan sebelah kanan. Jika
lebih kecil, maka luaran yang
dihasilkan adalah benar
(true)
>= Merupakan jenis operator X >= Y, maka
perbandingan yang bertujuan hasilnya salah

BUKU AJAR LOGIKA & ALGORITMA 81


Operator Deskripsi Contoh
untuk memeriksa apakah (false), karena 50
nilai operand sebelah kiri tidak lebih besar
lebih besar atau sama ataupun sama
dengan nilai operan sebelah dengan 100
kanan Jika ya, maka luaran
yang dihasilkan adalah benar
(true)
<= Merupakan jenis operator X <= Y, maka
perbandingan yang bertujuan hasilnya salah
untuk memeriksa apakah (false), karena 50
nilai operand sebelah kiri tidak lebih kecil
lebih kecil atau sama dengan ataupun sama
nilai operan sebelah kanan dengan 100.
Jika ya, maka luaran yang
dihasilkan adalah benar
(true)

D. OPERATOR ++ DAN OPERATOR –

Selain dari berbagai jenis operator yang telah dipaparkan


sebelumnya, terdapat dua jenis operator lain yang juga sering
digunakan dalam logika dan algoritma, yakni operator ++ dan
operator --. Operator ++ juga disebut dengan operator penaikan,
dimana operator ini bertujuan untuk menaikkan nilai variabel
sebesar satu. Berbanding terbalik dengan operator --, operator --
bertujuan untuk mengurangi atau menurunkan nilai variabel
sebesar satu. Sebagai contoh terdapat variabel x dengan tipe int
yang diberikan nilai 2 seperti pernyataan sebagai berikut:
int x = 2;
x++;
maka hasil dari x++ adalah 3. Hal ini terjadi karena terdapat
operator ++ yang berarti menaikkan atau menambah nilai variabel
x sebanyak satu, yakni dari nilai awal adalah 2 ditambah 1 menjadi
3. Hal ini sama saja jika ditulis seperti:
x = x + 1;

BUKU AJAR LOGIKA & ALGORITMA 82


x = 2 + 1;
maka x = 3;

Hal ini berlaku sama dengan operator --. Dengan menggunakan


contoh sama seperti:
int x = 2;
x--;

maka hasil dari x-- adalah 1. Hal ini terjadi karena terdapat operator
-- yang berarti mengurangi atau menurunkan nilai variabel x
sebanyak satu, sehingga dengan nilai awal adalah 2 dikurangi atau
diturunkan satu maka menjadi 1. Hasil yang sama diperoleh jika
penulisan seperti:
x = x – 1;
x = 2 – 1;
maka x = 1;

E. KONSEP DASAR KONSTANTA DAN CONTOHNYA

Konstanta merupakan suatu nilai yang telah ditetapkan diawal atau


dideklarasikan diawal pembuatan algoritma dimana nilai yang telah
ditetapkan tersebut sudah tidak dapat lagi diubah. Kata kunci dari
konstanta ini adalah const. Proses deklarasi konstanta dapat
dilakukan dengan menggunakan kata kunci const diawal sebelum
nama konstanta, sebagai contoh:
(1) const phi = 3.14;
(2) const username = user123;
(3) const password = p@$5w0rD;

Penjelasan: Contoh (1),(2),(3) merupakan tiga contoh deklarasi


konstanta dengan tiga nama konstanta berbeda yakni phi,
username, dan password. Contoh (1) berarti konstanta dengan
nama phi yang diberikan nilai tetap yakni 3,14. Contoh (2) berarti
konstanta username yang diberikan nilai tetap adalah user123,
serta contoh (3) berarti konstanta dengan nama password yang
dideklarasikan dengan nilai tetap adalah p@$5w0rD.

BUKU AJAR LOGIKA & ALGORITMA 83


F. RANGKUMAN

Operator dan konstanta adalah konsep penting dalam


pemrograman. Operator digunakan untuk melakukan operasi
matematika, perbandingan, logika, dan penugasan, sedangkan
konstanta adalah nilai tetap yang tidak berubah. Operator seperti
aritmatika, pembanding, logika, dan penugasan memungkinkan
pemrograman untuk melakukan operasi yang diperlukan dalam
program. Sementara itu, konstanta adalah nilai yang tetap dan tidak
dapat diubah selama program berjalan. Konstanta digunakan untuk
menyimpan nilai tetap seperti nilai matematika, panjang array, atau
parameter program yang tidak berubah. Misalnya, konstanta phi (π)
dengan nilai 3.14 sering digunakan dalam perhitungan lingkaran
atau operasi matematika lainnya. Penggunaan operator dan
konstanta sangat penting dalam pembuatan algoritma dan
pemecahan masalah melalui kode program, membantu pemrogram
dalam melakukan operasi dan menyimpan nilai yang dibutuhkan
dalam pengembangan aplikasi dan solusi program.

G. TES FORMATIF

1. Pernyataan berikut ini yang merupakan contoh penggunaan


operator penugasan atau assignment adalah
a) a > b
b) x += 5
c) a ++
d) != 3

2. Jika nilai x = 10 dan y = 15, hasil dari pernyataan berikut


adalah:
int hasil = 10 + 5;
hasil >= y;
a) 15
b) 10
c) true
d) false

BUKU AJAR LOGIKA & ALGORITMA 84


H. LATIHAN

Buatlah sebuah program sederhana menggunakan bahasa


pemrograman yang anda ketahui untuk menghitung luas dan
keliling sebuah lingkaran. Gunakan konstanta phi (π) dengan nilai
3.14 serta terapkan operator dan konstanta yang sesuai. Jelaskan
seluruh operator dan konstanta yang digunakan.

BUKU AJAR LOGIKA & ALGORITMA 85


KEGIATAN BELAJAR 8
JENIS DAN SIMBOL FLOWCHART

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa mempelajari pengenalan dan konsep
dasar teoritis flowchart. Diharapkan mahasiswa memiliki wawasan
dan pemahaman dalam hal keuntungan menggunakan flowchart
keterbatasan penggunaan flowchart, kapan menggunakan
flowchart, simbol dan pedoman flowchart, serta jenis-jenis
flowchart.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dan
mahasiswi memiliki pengetahuan dan kemampuan :
1. Mampu memahami flowchart serta keuntungan dan
keterbatasannya,
2. Mempu membuat langkah-langkah yang terlibat dalam
mendesain flowchart.

PETA KONSEP PEMBELAJARAN

BUKU AJAR LOGIKA & ALGORITMA 86


A. PENGERTIAN FLOWCHART

Ada cara lain untuk menulis algoritma, yaitu dengan menggunakan


program flowchart program. Flowchart program adalah cara
diagramatik untuk merepresentasikan algoritma yang digunakan
untuk menghasilkan solusi dari suatu masalah. Flowchart terdiri dari
simbol-simbol, yang dihubungkan satu sama lain dengan panah
yang menunjukkan jalur yang harus diikuti ketika bekerja melalui
flowchart. Setiap simbol bentuk yang berbeda mewakili yang
berbeda-beda dalam proses (Brown and Sargent 2021). Selain itu,
programmer menggunakannya untuk menggambarkan aliran data
dan instruksi saat memecahkan masalah. Flowcharting adalah
proses menggambar flowchart untuk sebuah algoritma.

Setiap flowchart berkaitan dengan satu proses atau sistem tertentu.


Dimulai dengan input data atau bahan ke dalam sistem dan
menelusuri semua prosedur yang diperlukan untuk mengubah input
menjadi bentuk output akhir. Simbol-simbol flowchart khusus
menunjukkan proses yang terjadi, tindakan yang dilakukan dalam
setiap langkah, dan hubungan antara berbagai langkah. Flowchart
dapat mencakup berbagai tingkat detail yang berbeda sesuai
kebutuhan, dari gambaran umum tingkat tinggi dari keseluruhan
sistem hingga diagram terperinci dari satu proses komponen dalam
sistem yang lebih besar. Bagaimanapun, flowchart menunjukkan
struktur keseluruhan proses atau sistem, melacak aliran informasi
dan bekerja melaluinya, dan menyoroti titik-titik pemrosesan dan
keputusan utama.

Flowchart umumnya digambar pada tahap awal merumuskan solusi


komputer. Flowchart sering kali memfasilitasi komunikasi antara
pemrogram dan pelaku bisnis. Flowchart ini memainkan peran
penting dalam pemrograman suatu masalah dan cukup membantu
dalam memahami logika masalah yang rumit dan panjang. Setelah
flowchart digambar, menjadi mudah untuk menulis program dalam
bahasa tingkat tinggi apa pun. Seringkali kita melihat bagaimana
flowchart sangat membantu dalam menjelaskan program kepada
orang lain. Oleh karena itu, adalah benar untuk mengatakan bahwa

BUKU AJAR LOGIKA & ALGORITMA 87


flowchart adalah suatu keharusan untuk dokumentasi yang lebih
baik dari sebuah program yang kompleks.

B. FUNGSI FLOWCHART

Flowchart adalah alat yang penting untuk peningkatan proses.


Dengan menyediakan representasi grafis, flowchart ini membantu
tim proyek untuk mengidentifikasi berbagai elemen proses dan
memahami keterkaitan di antara berbagai langkah. Flowchart juga
dapat digunakan untuk mengumpulkan informasi dan data tentang
suatu proses sebagai alat bantu untuk pengambilan keputusan atau
evaluasi kinerja. Sebagai contoh, pemilik biro iklan kecil yang
berharap untuk mengurangi waktu yang dibutuhkan untuk membuat
iklan cetak mungkin dapat menggunakan flowchart proses untuk
mengidentifikasi dan menghilangkan langkah-langkah yang tidak
perlu. Flowchart dapat digunakan untuk mendokumentasikan
hampir semua jenis sistem bisnis, mulai dari pergerakan material
melalui mesin dalam operasi manufaktur hingga aliran informasi
pelamar melalui proses perekrutan di departemen sumber daya
manusia. Flowchart dapat digunakan untuk menunjukkan urutan
langkah untuk melakukan pekerjaan apa pun. Serangkaian operasi
sederhana yang melibatkan penerimaan input, melakukan operasi
aritmatika pada input, dan menunjukkannya kepada pengguna
menunjukkan struktur logika urutan suatu program (Chaudhuri
2020).

Flowchart digunakan untuk mengkomunikasikan kepada orang lain


bagaimana suatu proses dilakukan. Flowchart umumnya digunakan
ketika sebuah proyek baru mulai merencanakan proyek tersebut.
Flowchart membantu memperjelas bagaimana segala sesuatunya
saat ini bekerja dan bagaimana hal tersebut dapat ditingkatkan.
Flowchart juga membantu dalam menemukan elemen-elemen
kunci dari sebuah proses, sambil menarik garis yang jelas antara di
mana satu proses berakhir dan proses berikutnya dimulai.
Mengembangkan flowchart akan merangsang komunikasi di antara

BUKU AJAR LOGIKA & ALGORITMA 88


para peserta dan membangun pemahaman yang sama mengenai
proses tersebut. Flowchart juga mengungkap langkah-langkah
yang berlebihan atau salah tempat. Flowchart digunakan untuk
membantu anggota tim, mengidentifikasi siapa yang memberikan
masukan atau sumber daya kepada siapa, menetapkan area
penting untuk pemantauan atau pengumpulan data,
mengidentifikasi area untuk perbaikan atau peningkatan efisiensi,
dan menghasilkan hipotesis tentang penyebabnya. Disarankan
agar flowchart dibuat melalui diskusi kelompok, karena setiap orang
jarang mengetahui keseluruhan proses dan komunikasi
berkontribusi pada peningkatan. Flowchart sangat berguna untuk
mendokumentasikan sebuah proses (sederhana atau kompleks)
karena memudahkan pemahaman terhadap proses tersebut.
Flowchart juga sangat berguna untuk mengkomunikasikan kepada
orang lain bagaimana sebuah proses dilakukan dan memungkinkan
pemahaman tentang logika sebuah proses.

Tujuan utama pembuatan flowchart adalah untuk


menemukan/menciptakan urutan langkah untuk menunjukkan
solusi dari suatu masalah melalui manipulasi aritmatika dan/atau
logika yang dapat diinstruksikan kepada komputer. Masalah-
masalah untuk pembuatan flowchart dan pengembangan algoritma
yang akan dibahas di sini terutama didasarkan pada prosedur-
prosedur komputasi.

Meskipun flowchart adalah alat desain yang relatif tua, namun tetap
populer di kalangan pemrogram komputer yang bekerja pada
analisis dan desain sistem. Dalam beberapa tahun terakhir, banyak
program perangkat lunak telah dikembangkan untuk membantu
para pebisnis membuat flowchart.

C. SIMBOL/PEDOMAN FLOWCHART

Flowchart biasanya menggunakan simbol-simbol khusus. Berikut ini


adalah simbol-simbol standar yang digunakan dalam flowchart
program:

BUKU AJAR LOGIKA & ALGORITMA 89


Terminal: digunakan untuk menunjukkan awal
dan akhir dari serangkaian proses yang
berhubungan dengan komputer
Input/Output: digunakan untuk menunjukkan
operasi input/output
Pemrosesan komputer: digunakan untuk
menunjukkan pemrosesan apa pun yang
dilakukan oleh sistem komputer
Pemrosesan yang telah ditentukan: digunakan
untuk menunjukkan proses yang tidak
didefinisikan secara khusus dalam flowchart
Komentar: digunakan untuk menulis
pernyataan penjelasan yang diperlukan untuk
memperjelas sesuatu.
Garis alir: digunakan untuk menghubungkan
simbol-simbol
Input/Output Dokumen: digunakan ketika input
berasal dari dokumen dan output menuju
dokumen
Keputusan: digunakan untuk menunjukkan titik
mana pun dalam proses di mana keputusan
harus dibuat untuk menentukan tindakan lebih
lanjut
Konektor dalam halaman: digunakan untuk
menghubungkan bagian-bagian dari flowchart
yang dilanjutkan pada halaman yang sama
Konektor di luar halaman: digunakan untuk
menghubungkan bagian-bagian dari diagram
alur yang dilanjutkan ke halaman terpisah
Delay: digunakan untuk menunjukkan
penundaan atau menunggu dalam proses untuk
mendapatkan input dari beberapa proses lain.

Panduan dasar untuk menggambar flowchart dengan simbol-simbol


di atas adalah:

BUKU AJAR LOGIKA & ALGORITMA 90


1. Dalam menggambar flowchart yang tepat, semua persyaratan
yang diperlukan harus dicantumkan dalam urutan yang logis.
2. Hanya simbol-simbol standar yang harus digunakan dalam
flowchart program.
3. Flowchart harus rapi, jelas, dan mudah diikuti. Tidak boleh ada
ruang untuk ambiguitas dalam memahami flowchart.
4. Flowchart harus dibaca dari kiri ke kanan atau dari atas ke
bawah.
5. Sebuah simbol proses hanya dapat memiliki satu garis aliran
yang keluar darinya.
6. Untuk simbol keputusan, hanya satu garis alir yang dapat
memasukinya, tetapi beberapa garis dapat meninggalkannya
untuk menunjukkan kemungkinan jawaban.
7. Simbol terminal hanya dapat memiliki satu garis alir di
berhubungan dengan mereka.

Mulai A

Langkah proses 1 Langkah proses 3

Pilihan 2
Langkah proses 4
Keputusan?

Langkah proses 5
Pilihan 1

Langkah proses 2 Langkah proses 6

A Selesai

Gambar 8.1: Flowchart Dasar


Sumber: (Learning 2023)

Membuat flowchart melibatkan langkah-langkah utama berikut ini:


1. Tentukan proses dan identifikasi ruang lingkup flow diagram
2. Mengidentifikasi anggota tim proyek yang akan dilibatkan dalam
pembuatan diagram alur proses

BUKU AJAR LOGIKA & ALGORITMA 91


3. Tentukan langkah-langkah berbeda yang terlibat dalam proses
dan keterkaitan antara langkah-langkah yang berbeda (semua
anggota tim harus membantu mengembangkan dan
menyepakati langkah-langkah yang berbeda untuk proses
tersebut)
4. Selesaikan diagram tersebut, libatkan individu lain yang terkait
sesuai kebutuhan dan lakukan modifikasi yang diperlukan
5. Gunakan flow diagram dan terus perbarui sesuai kebutuhan.

Contoh studi kasus:

Gambar 8.2: Sistem pemanas sentral


Sumber: (Brown and Sargent 2021)

Dalam sistem pemanas sentral yang dikontrol mikroprosesor,


pengguna memilih suhu yang diinginkan menggunakan layar
sentuh atau keypad. Mikroprosesor membaca data dari sensor suhu
di dinding dan membandingkannya dengan nilai yang diminta
pengguna. Jika lebih rendah, maka mikroprosesor akan
menyalakan ketel dan pompa. Jika lebih tinggi, mikroprosesor akan
mematikan keduanya. Agar mikroprosesor dapat memproses data
dari sensor suhu (yang merupakan sensor analog), mikroprosesor
menggunakan konverter analog-ke-digital untuk mengubah data ini
ke dalam bentuk digital yang dapat dimengerti. Sebagai hasil dari
input, mikroprosesor mungkin atau mungkin tidak mengirim sinyal
ke aktuator yang membuka katup gas di boiler dan/atau
menyalakan pompa. Mikroprosesor juga digunakan untuk

BUKU AJAR LOGIKA & ALGORITMA 92


mengontrol waktu di mana sistem menyalakan dan mematikannya.
Misalnya, pengguna dapat mengatur sistem untuk menyala
sebelum mereka bangun di pagi hari dan mengaturnya untuk mati
sebelum mereka pergi bekerja. Ketika sistem mati, mikroprosesor
mengabaikan semua pembacaan.

Algoritma sederhana menunjukkan cara kerja sistem:


1. Pengguna memasukkan suhu yang diperlukan menggunakan
keypad/layar sentuh
2. Mikroprosesor menyimpan suhu yang diperlukan sebagai nilai
yang telah ditetapkan sebelumnya
3. Mikroprosesor menerima suhu dari sensor
4. Mikroprosesor membandingkan suhu dari sensor dengan nilai
yang telah ditetapkan sebelumnya
5. Jika suhu dari sensor lebih rendah dari nilai yang telah ditetapkan
sebelumnya, mikroprosesor mengirimkan sinyal ke aktuator
untuk membuka katup gas
6. Jika suhu dari sensor lebih rendah dari nilai yang telah ditentukan
sebelumnya, mikroprosesor mengirimkan sinyal ke aktuator
untuk menyalakan pompa
7. Jika suhu lebih tinggi dari atau sama dengan nilai yang telah
ditentukan sebelumnya, mikroprosesor mengirimkan sinyal
untuk mematikan pompa dan menutup katup
8. Urutan ini diulangi sampai sistem dimatikan

Perhatikan bahwa flowchart telah digambar dengan


mengasumsikan suhu yang telah ditetapkan sebelumnya (yang
diperlukan) telah dimasukkan ke dalam sistem. Flowchart tidak
memperhitungkan apakah katup sudah terbuka/tutup atau apakah
pompa sudah hidup/mati. Ada kemungkinan flowchart ini bisa saja
berlanjut ke halaman lain. Simbol konektor telah ditambahkan ke
ujung garis alir untuk menunjukkan bagaimana mereka akan
diposisikan jika hal ini terjadi. Simbol konektor A, B, dan C akan
digambar di bagian atas halaman berikutnya dengan garis alir yang
sesuai mengalir ke simbol berikutnya jika flowchart dilanjutkan.

BUKU AJAR LOGIKA & ALGORITMA 93


Mulai

Apakah sistem dinyalakan? Tidak Selesai

Ya

Input suhu

apakah suhu < yang Tidak


ditetapkan sebelumnya?

Ya

Kirim sinyal Kirim sinyal


untuk membuka untuk menutup
katup katup

Kirim sinyal untuk


Kirim sinyal untuk
menyalakan
mematikan pompa
pompa

Gambar 8.3: Flowchart yang menggambarkan pemrosesan


yang dilakukan oleh mikroprosesor dalam sistem pemanas
sentral

D. KEUNTUNGAN/KETERBATASAN FLOWCHART

Daftar keuntungan dan keterbatasan penggunaan flowchart.


Keuntungan dari flowchart adalah sebagai berikut:
1. Komunikasi: Flowchart adalah cara yang lebih baik untuk
mengkomunikasikan logika dari sebuah sistem kepada semua
pihak.
2. Analisis yang efektif: Dengan bantuan flowchart, masalah dapat
dianalisis dengan cara yang lebih efektif.
3. Dokumentasi yang tepat: Flowchart program berfungsi sebagai
dokumentasi program yang baik, yang diperlukan untuk berbagai
tujuan.

BUKU AJAR LOGIKA & ALGORITMA 94


4. Pengkodean yang efisien: Flowchart berfungsi sebagai panduan
atau cetak biru selama fase analisis sistem dan pengembangan
program.
5. Debugging yang tepat: Flowchart membantu dalam proses
debugging. Pemeliharaan Program yang Efisien: Pemeliharaan
program operasi menjadi mudah dengan bantuan flowchart. Ini
membantu pemrogram untuk melakukan upaya yang lebih
efisien pada bagian tersebut.

Meskipun flowchart adalah alat yang berguna, ada beberapa


keterbatasan dalam menggunakan flowchart yang tercantum di
bawah ini:
1. Logika yang kompleks: Terkadang, logika program cukup rumit.
Dalam hal ini, flowchart menjadi rumit dan kikuk.
2. Perubahan dan Modifikasi: Jika diperlukan perubahan, flowchart
mungkin perlu digambar ulang sepenuhnya.
3. Reproduksi: Karena simbol diagram alur tidak dapat diketik,
reproduksi diagram alur menjadi masalah.

E. JENIS-JENIS FLOWCHART

Flowchart dapat diklasifikasikan ke dalam dua kategori:


1. Flowchart program
Flowchart program bertindak seperti cermin program komputer
dalam hal simbol flowchart. Flowchart ini berisi langkah-langkah
penyelesaian suatu unit masalah untuk mendapatkan hasil
tertentu. Pertama-tama kita akan fokus pada flowchart program.

Flowchart program adalah alat yang sangat berguna dalam


pengembangan program. Pertama, kesalahan atau kelalaian
dapat lebih mudah dideteksi dari flowchart program
dibandingkan dengan program karena flowchart program adalah
representasi bergambar dari logika program. Kedua, flowchart
program dapat diikuti dengan mudah dan cepat. Ketiga,
flowchart berfungsi sebagai jenis dokumentasi, yang mungkin

BUKU AJAR LOGIKA & ALGORITMA 95


sangat membantu jika kebutuhan untuk modifikasi program
muncul di masa depan.

2. Flowchart sistem
Flowchart sistem digunakan oleh analis sistem untuk
menunjukkan berbagai proses, sub-sistem, output, dan operasi
pada data dalam suatu sistem. Flowchart sistem berisi solusi dari
banyak unit masalah secara bersamaan yang terkait erat satu
sama lain dan berinteraksi satu sama lain untuk mencapai suatu
tujuan.

F. RANGKUMAN

Pada bab ini, kita telah mempelajari konsep flowchart. Flowchart


adalah representasi simbolis dari solusi untuk tugas yang diberikan.
Flowchart program dan Flowchart sistem adalah dua jenis flowchart.
Flowchart menggunakan banyak simbol/bentuk untuk menunjukkan
berbagai jenis instruksi.

G. TES FORMATIF

1. Cocokkan yang berikut ini:


Kolom A Kolom B
a) Konektor (i) menunjukkan urutan
eksekusi instruksi
b) Input/Output (ii) mewakili instruksi
aritmatika
dan pergerakan data
c) Proses (iii) menunjukkan jalan masuk
atau keluar ke bagian
lain dari flowchart.
d) Garis Aliran (iv) menunjukkan fungsi input /
output apa pun

2. Apa yang dimaksud dengan flowchart?

BUKU AJAR LOGIKA & ALGORITMA 96


3. Apa saja jenis-jenis flowchart?
4. Apa gunanya kotak keputusan dalam flowchart?
5. Berikan dua keuntungan dari flowchart.
6. Apa saja hal yang perlu dipertimbangkan dalam
mengembangkan flowchart?

H. LATIHAN

Gambarkan flowchart untuk yang berikut ini:


1. Mencetak lima angka ganjil pertama.

2. Membaca usia seseorang. Jika umurnya kurang dari 60 tahun,


maka cetaklah "Bukan Warga Lansia", jika tidak, cetaklah
"Warga Lansia".

BUKU AJAR LOGIKA & ALGORITMA 97


KEGIATAN BELAJAR 9
PSEUDOCODE

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa mempelajari pseudocode dalam
pemrograman. Bab ini memberikan pemahaman tentang
bagaimana sintaksis dan alur logika serta implementasi dari
pseudocode. Diharapkan mahasiswa memiliki wawasan dan
pemahaman tentang pseudocode untuk modal dasar mempelajari
dan mengembangkan program komputer yang baik dan handal.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dan
mahasiswi memiliki pengetahuan dan kemampuan :
1. Mampu memiliki pemahaman yang kuat tentang definisi
pseudocode.
2. Mampu menjelaskan fungsi dan manfaat pseudocode
3. Mampu menjelaskan sintaksis dan alur logika dalam
pseudocode.
4. Mampu menggunakan pengetahuan tentang pseudocode untuk
implementasi dalam pemrograman komputer.

PETA KONSEP PEMBELAJARAN

BUKU AJAR LOGIKA & ALGORITMA 98


A. PENGERTIAN PSEUDOCODE

Pseudo-code adalah kode atau tanda yang menyerupai (pseudo)


atau merupakan penjelasan cara menyelesaikan suatu masalah.
Pseudo-code sering digunakan oleh seseorang untuk menuliskan
algoritma dari suatu permasalahan.

Pseudo-code berisikan langkah-langkah untuk menyelesaikan


suatu permasalahan [hampir sama dengan algoritma], hanya saja
bentuknya sedikit berbeda dari algoritma.

Pseu : menyerupai, code : kode. Merupakan kode yang


menyerupai kode program yang sesungguhnya. Pseudocode
adalah bahasa perantara antara bahasa manusia dengan bahasa
pemrograman. Di dalam pseudocode memuat logika penyelesaian
masalah. Pseudocode harus berisi bahasa yang singkat, padat dan
jelas. Tidak ada aturan standar penulisan pseudocode, pseudocode
ditujukan untuk dibaca manusia, bukan dibaca oleh mesin
(komputer).

Pseudocode adalah cara untuk mengekspresikan algoritma secara


naratif menggunakan bahasa yang mirip dengan kode
pemrograman tetapi tidak terikat pada sintaksis tertentu.
Pseudocode adalah langkah awal dalam merancang algoritma
sebelum mengimplementasikannya dalam bahasa pemrograman
tertentu.

Pseudocode tidak memiliki aturan sintaksis yang ketat dan dapat


ditulis dalam bahasa manusia yang lebih mudah dipahami daripada
bahasa pemrograman. Tujuannya adalah memberikan pemahaman
yang jelas tentang alur logika yang diinginkan dari algoritma tanpa
perlu memikirkan detail implementasi yang spesifik.

Pseudocode biasanya digunakan untuk menggambarkan


serangkaian langkah atau prosedur yang harus dilakukan dalam
algoritma. Dalam pseudocode, penulisan dapat menggunakan kata-
kata, frasa, dan struktur sederhana yang terinspirasi dari bahasa

BUKU AJAR LOGIKA & ALGORITMA 99


pemrograman umum seperti if_else, loop, dan fungsi untuk
menggambarkan langkah-langkah yang terlibat dalam algoritma.

Contoh Sederhana dari pseudocode untuk mengilustrasikan cara


kerjanya:

Inisialisasi variabel x dengan 0


Inisialisasi variabel y dengan 1
Mengulang 10 kali:
Tampilkan nilai x
Tambahkan x dengan y
Tukar nilai x dan y
Selesai

Pseudocode

Algoritma
BUKU AJAR LOGIKA & ALGORITMA 100
B. FUNGSI PSEUDOCODE

Pseudocode memiliki beberapa fungsi yang penting dalam


pengembangan perangkat lunak. Berikut ini adalah fungsi-fungsi
dari pseudocode :
1. Merencanakan dan Merancang Algoritma: Pseudocode
memungkinkan pengembang perangkat lunak untuk
merencanakan dan merancang algoritma secara keseluruhan
sebelum melakukan implementasi di dalam bahasa
pemrograman tertentu. Dengan menggunakan pseudocode,
pengembang dapat memikirkan langkah-langkah yang
diperlukan untuk menyelesaikan masalah dan mengorganisir
alur logika secara terstruktur.
2. Klarifikasi dan Komunikasi: Pseudocode memberikan cara
yang lebih mudah dipahami untuk menjelaskan algoritma kepada
orang lain. Bahasa yang digunakan dalam pseudocode lebih
dekat dengan bahasa manusia daripada bahasa pemrograman,
sehingga memudahkan kolaborasi antara anggota tim,
pengembang, dan pemangku kepentingan lainnya. Pseudocode
juga berguna dalam komunikasi antara pengembang dan klien
atau pengguna akhir untuk memastikan pemahaman yang sama
tentang algoritma yang akan diimplementasikan.
3. Membantu Analisis dan Evaluasi: Pseudocode
memungkinkan pengembang untuk menganalisis algoritma
secara kritis sebelum implementasi. Dengan melihat
pseudocode, pengembang dapat mengidentifikasi masalah
potensial, memeriksa keefektifan dan efisiensi algoritma, dan
melakukan perbaikan atau optimasi yang diperlukan sebelum
memulai proses pengkodean.
4. Mengatasi Keterbatasan Bahasa Pemrograman: Pseudocode
memungkinkan pengembang untuk menggambarkan algoritma
tanpa harus mempertimbangkan sintaksis bahasa pemrograman
tertentu. Ini memberikan fleksibilitas dalam merancang solusi
tanpa terikat pada aturan atau batasan tertentu. Selain itu,
dengan menggunakan pseudocode, pengembang dapat dengan

BUKU AJAR LOGIKA & ALGORITMA 101


mudah mentransfer dan mengubah algoritma ke dalam bahasa
pemrograman lain jika diperlukan.
5. Perencanaan Modular: Pseudocode memungkinkan
pengembang untuk memecah algoritma yang kompleks menjadi
bagian-bagian yang lebih kecil dan lebih terorganisir. Dengan
menggunakan pseudocode, pengembang dapat merencanakan
modul-modul atau fungsi-fungsi yang berbeda, dan kemudian
menggabungkannya menjadi satu kesatuan. Hal ini membantu
dalam pemahaman, pemeliharaan, dan pengujian perangkat
lunak.
6. Memfasilitasi Debugging: Pseudocode dapat digunakan untuk
melakukan debugging atau memperbaiki kesalahan dalam
algoritma sebelum mengimplementasikannya dalam bahasa
pemrograman yang sebenarnya. Dengan memeriksa
pseudocode, pengembang dapat mengidentifikasi kesalahan
logika atau langkah-langkah yang tidak tepat sebelum
melangkah ke tingkat implementasi yang lebih rinci.
Pseudocode sangat berguna dalam fase perencanaan algoritma
karena membantu dalam memperjelas dan mengorganisir ide-ide
sebelum implementasi sebenarnya. Hal ini memungkinkan
pemrogram untuk memahami aliran logika, mendeteksi masalah
potensial, dan membuat perubahan jika diperlukan sebelum
menghabiskan waktu dan usaha untuk menulis kode yang
sebenarnya.

C. SINTAKSIS PSEUDOCODE

Sintaksis pseudocode tidak terstandarisasi secara resmi karena


pseudocode bukanlah bahasa pemrograman yang memiliki aturan
sintaksis yang kaku. Namun, ada beberapa konvensi umum yang
dapat digunakan untuk membuat pseudocode yang mudah
dipahami. Sintaksis pseudocode dapat dijelaskan sebagai berikut:
1. Penulisan langkah-langkah:
Pseudocode ditulis dalam langkah-langkah terpisah yang
menggambarkan alur logika dari algoritma. Setiap langkah

BUKU AJAR LOGIKA & ALGORITMA 102


biasanya dituliskan pada baris yang terpisah dan diawali dengan
angka atau simbol untuk membedakan antara langkah-langkah
yang berbeda.
2. Deklarasi Variabel:
Pseudocode memungkinkan programmer untuk
mendeklarasikan variabel-variabel yang diperlukan untuk
algoritma. Biasanya, variabel diberi nama yang deskriptif dan
diikuti oleh tipe datanya dalam tanda kurung. Misalnya:
`Deklarasikan variabel x sebagai bilangan bulat`.
3. Operator Aritmatika:
Pseudocode menggunakan operator aritmatika yang umum
seperti penjumlahan (+), pengurangan (-), perkalian (*),
pembagian (/), dan lain-lain. Operator ini digunakan untuk
melakukan operasi matematika pada variabel atau konstanta.
Contoh: `x = x + 1` untuk menambahkan 1 ke nilai variabel x.
4. Struktur Kontrol:
Pseudocode mencakup struktur kontrol seperti pengkondisian
dan perulangan untuk mengendalikan alur eksekusi algoritma.
5. Pengkondisian (IF):
Dalam pseudocode, pengkondisian sering digambarkan dengan
menggunakan struktur if_else. Contoh:


Jika x > 0 maka

Tampilkan "x adalah bilangan positif"

Selain itu,

Tampilkan "x adalah bilangan negatif atau nol"

```
6. Perulangan (Loop):
Pseudocode mendukung perulangan, seperti perulangan for
atau while. Contoh:

BUKU AJAR LOGIKA & ALGORITMA 103


```
Untuk setiap elemen dalam daftar:

Tampilkan elemen

```
7. Fungsi dan Prosedur:
Pseudocode memungkinkan programmer untuk mendefinisikan
fungsi atau prosedur yang dapat dipanggil dalam algoritma.
Fungsi dan prosedur biasanya diberi nama yang deskriptif dan
diikuti oleh parameter yang diperlukan dalam tanda kurung.
Fungsi:
```
Fungsi nama_fungsi(parameter):

Langkah-langkah di dalam fungsi

Hasilkan hasil

```
Contoh:
```
Fungsi jumlah(a, b):

Set hasil = a + b

Hasilkan hasil

```
Prosedur:
```
Prosedur nama_prosedur(parameter):
Langkah-langkah di dalam prosedur

```

BUKU AJAR LOGIKA & ALGORITMA 104


Contoh:
```
Prosedur tampilkan_pesan(pesan):

Tampilkan pesan

```

8. Komentar:
Programmer dapat menyisipkan komentar dalam pseudocode
untuk memberikan penjelasan atau dokumentasi tambahan
tentang algoritma. Komentar biasanya ditandai dengan simbol
tertentu, seperti tanda pagar (#) atau garis miring dua (//).
Contoh:
```
# Ini adalah komentar

// Ini juga adalah komentar

```

Meskipun tidak ada aturan sintaksis yang ketat untuk


pseudocode, penting untuk memperhatikan konsistensi dan
kejelasan dalam penulisan pseudocode. Pastikan langkah-
langkahnya mudah dipahami oleh orang lain dan menjelaskan
alur logika dengan jelas. Selain itu, gunakan nama variabel dan
fungsi yang deskriptif agar lebih mudah dipahami.

D. ALUR LOGIKA PSEUDOCODE

Alur logika dalam pseudocode merujuk pada urutan langkah-


langkah atau prosedur yang digunakan untuk menyelesaikan suatu
tugas atau masalah dalam algoritma. Alur logika tersebut mencakup
urutan, pengkondisian, perulangan, dan pemanggilan

BUKU AJAR LOGIKA & ALGORITMA 105


fungsi/prosedur. Berikut adalah beberapa contoh alur logika yang
umum digunakan dalam pseudocode:
1. Sequential (Urutan):
Langkah-langkah dieksekusi secara berurutan dari atas ke
bawah. Setiap langkah dilakukan satu per satu sesuai urutan
penulisannya. Contoh:

```
Set variabel x dengan nilai 5

Tambahkan 2 ke nilai x

Tampilkan nilai x

```
Pada contoh di atas, langkah-langkah dieksekusi secara
berurutan, yaitu mengatur nilai x, menambahkan 2 ke nilai x, dan
kemudian menampilkan nilai x.
2. Pengkondisian
Pseudocode menggunakan struktur pengkondisian seperti
if_else untuk mengambil keputusan berdasarkan kondisi yang
diberikan. Kondisi tersebut akan mengarahkan alur logika untuk
melakukan tindakan yang berbeda tergantung pada hasil
evaluasi kondisi.
Contoh:

```
Jika x lebih besar dari 10 maka

Tampilkan “x adalah bilangan besar”

Selain itu,

Tampilkan “x adalah bilangan kecil atau sama dengan 10”

```

BUKU AJAR LOGIKA & ALGORITMA 106


Pada contoh di atas, alur logika bergantung pada apakah nilai x
lebih besar dari 10 atau tidak. Jika kondisi terpenuhi, maka akan
menampilkan "x adalah bilangan besar", jika tidak, akan
menampilkan "x adalah bilangan kecil atau sama dengan 10".
3. Perulangan
Pseudocode menggunakan struktur pengkondisian seperti
if_else untuk mengambil keputusan berdasarkan kondisi yang
diberikan. Kondisi tersebut akan mengarahkan alur logika untuk
melakukan tindakan yang berbeda tergantung pada hasil
evaluasi kondisi.
Pseudocode mendukung perulangan seperti perulangan for,
while, atau do-while. Ini memungkinkan langkah-langkah yang
ditentukan untuk dieksekusi berulang kali selama kondisi tertentu
terpenuhi. Contoh:

```
Set variabel x dengan nilai 1

Selama x kurang dari atau sama dengan 10, lakukan:

Tampilkan nilai x

Tambahkan 1 ke nilai x

```
Pada contoh di atas, alur logika akan mengulangi langkah-
langkah dalam loop selama nilai x kurang dari atau sama dengan
10. Setiap iterasi akan menampilkan nilai x dan
menambahkannya dengan 1.
4. Pemanggilan Fungsi
Pseudocode memungkinkan pemanggilan fungsi atau prosedur
yang telah didefinisikan sebelumnya. Dengan pemanggilan ini,
Programmer dapat membagi algoritma menjadi bagian-bagian
yang lebih kecil dan dapat digunakan kembali. Contoh:

BUKU AJAR LOGIKA & ALGORITMA 107


```
Prosedur TampilkanPesan(m);

Tampilkan m

TampilkanPesan(“Hallo, dunia!”)

```
Pada contoh di atas, alur logika memanggil prosedur
"TampilkanPesan" dengan argumen "Hallo, dunia!". Prosedur ini
akan menampilkan pesan yang diberikan.

E. IMPLEMENTASI PSEUDOCODE

Implementasi pseudocode yaitu menerjemahkan atau menulis


pseudocode menjadi kode dalam bahasa pemrograman yang
sesuai. Implementasi ini melibatkan mengubah langkah-langkah
dan struktur kontrol dalam pseudocode menjadi sintaksis yang valid
dalam bahasa pemrograman yang digunakan. Implementasi
pseudocode:
1. Pemilihan Bahasa Pemrograman:
Pertama, programmer perlu memilih bahasa pemrograman
yang ingin digunakan untuk mengimplementasikan
pseudocode. Pilihlah bahasa pemrograman yang sesuai
dengan tujuan dan lingkungan pengembangan programmer.
2. Terjemahkan langkah-langkah:
• Perhatikan setiap langkah dalam pseudocode dan
terjemahkan langkah-langkah tersebut ke dalam sintaksis
bahasa pemrograman yang digunakan.
• Gunakan struktur bahasa pemrograman yang sesuai untuk
menginisialisasi variabel.
3. Terjemahkan Struktur Kontrol:
• Terjemahkan struktur pengkondisian dan perulangan
dalam pseudocode ke dalam sintaksis yang sesuai dalam
bahasa pemrograman yang digunakan.

BUKU AJAR LOGIKA & ALGORITMA 108


• Pastikan untuk menulis kondisi dengan benar dan
memasukkan langkah-langkah yang sesuai di dalam blok
if_else atau loop.
4. Fungsi dan Prosedur:
• Jika pseudocode menggunakan fungsi atau prosedur,
pastikan untuk menulis fungsi dan prosedur tersebut dalam
bahasa pemrograman yang digunakan.
• Deklarasikan fungsi dengan tipe data pengembalian yang
benar, parameter yang sesuai, dan langkah-langkah yang
diperlukan di dalamnya.
5. Perhatikan Sintaksis Bahasa Pemrograman:
• Pastikan untuk memahami dan mengikuti sintaksis bahasa
pemrograman yang digunakan.
• Perhatikan tanda kurung, titik koma, tanda kurung kurawal,
tanda kutip, dan aturan sintaksis lainnya yang berlaku
dalam bahasa pemrograman yang digunakan.
6. Uji dan Perbaiki:
• Setelah mengimplementasikan pseudocode menjadi kode
dalam bahasa pemrograman, lakukan pengujian untuk
memastikan bahwa algoritma berjalan dengan benar.
• Jika terdapat kesalahan atau bug, lakukan perbaikan dan
iterasi untuk mengoptimalkan kode.
Penting untuk dicatat bahwa setiap bahasa pemrograman memiliki
sintaksis dan fitur yang berbeda. Oleh karena itu, saat
mengimplementasikan pseudocode, perlu memahami sintaksis
bahasa pemrograman yang digunakan dan mengubah pseudocode
menjadi kode yang sesuai.

F. RANGKUMAN

Pseudocode adalah alat yang kuat dalam pengembangan


perangkat lunak yang membantu dalam merencanakan,
merancang, menganalisis, dan berkomunikasi tentang algoritma.
Dengan demikian, pseudocode adalah alat yang berguna dalam

BUKU AJAR LOGIKA & ALGORITMA 109


pengembangan algoritma, membantu pemrogram dalam
merencanakan, memahami, dan berkomunikasi tentang algoritma
sebelum dilakukan implementasi dalam bahasa pemrograman yang
spesifik.Pseudocode dapat diimplementasikan dengan
menerjemahkannya ke dalam bahasa pemrograman yang sesuai.
Implementasi melibatkan mengubah langkah-langkah dan struktur
kontrol dalam pseudocode menjadi sintaksis yang valid dalam
bahasa pemrograman yang digunakan. Pseudocode fleksibel dan
tidak terbatas pada batasan bahasa pemrograman tertentu. Ini
memungkinkan pemrogram untuk fokus pada logika dan alur
algoritma tanpa terikat oleh sintaksis atau aturan tertentu.

G. TES FORMATIF

1. Penjelasan bukan merepresentasikan pseudocode adalah:


a) Deskripsi kode yang menggunakan bahasa yang mirip
dengan bahasa pemrograman.
b) Langkah dan kode yang sama dengan algoritma
c) Langkah-langkah atau proses algoritma secara jelas dan
mudah dipahami
d) Kode Semu

2. Bahasa perantara antara manusia dengan pemrograman


Alur logika yang tidak digunakan dalam pseudocode ?
a) Pengkondisian
b) Perulangan
c) Debbuging
d) Struktur Kontrol
e) Fungsi dan Prosedur
3. Apa yang dimaksud dengan Struktur Kontrol?
Pengkondisian dan inisialisasi awal
a) Pengkondisian dan perulangan
b) Pengkondisian dan pengisian
c) Pengkondisian dan struktur data
d) Pengkondisian dan komentar

BUKU AJAR LOGIKA & ALGORITMA 110


H. LATIHAN

1. Jelaskan penulisan pseudocode untuk menghitung keliling dan


luas lingkaran!

2. Jelaskan penulisan pseudocode untuk menghitung nilai rata-


rata dari sejumlah bilangan!

BUKU AJAR LOGIKA & ALGORITMA 111


KEGIATAN BELAJAR 10
KONSEP PENULISAN KODE PROGRAM DI C++

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa mempelajari pengenalan dan konsep
dasar teoritis bahasa pemrograman C++ dan
pengimplementasiannya. Diharapkan mahasiswa memiliki
pemahaman dan kemampuan untuk membuat program dengan
menggunakan bahasa pemrograman C++.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dan
mahasiswi memiliki pengetahuan dan kemampuan :
1. Mampu menjelaskan struktur program dan elemen-elemen
dalam program C++
2. Mampu menulis kode program C++ untuk penyelesaian berbagai
kasus

PETA KONSEP PEMBELAJARAN

BUKU AJAR LOGIKA & ALGORITMA 112


A. SEJARAH BAHASA PEMROGRAMAN C++

Bahasa pemrograman komputer C++ diciptakan pada awal tahun


1980 oleh Bjarne Stroustrup di AT&T Bell Laboratories berdasarkan
ANSI (American National Standard Institute). Pada awal
penciptaannya, bahasa C++ disebut “C with Class”, karena bahasa
ini merupakan pengembangan bahasa C yang dipercanggih
dengan menambahkan fasiltas kelas. Pada tahun 1983 – 1984,
bahasa “C with Class” ini disempurnakan lagi dengan
menambahkan fasilitas overloading operator, yang akhirnya bahasa
ini berganti nama menjadi C++. Simbol ++ menyatakan operator
penaikan pada bahasa C, yang digunakan untuk menunjukkan
bahwa bahasa C++ ini merupakan bahasa pengembangan C
dengan versi yang lebih canggih dari C. Borland International
sebagai perusahaan pengembang perangkat lunak, merilis
compiler Turbo C++ dan Borland C++ pada tahun 1990-an. Kedua
compiler ini digunakan untuk melakukan kompilasi kode program
C++. Perbedaannya adalah Turbo C++ dijalankan di lingkungan
DOS, sedangkan Borland C++ dijalankan di lingkungan DOS dan
juga Windows.

B. STRUKTUR PROGRAM C++

Setiap bahasa pemrograman memiliki struktur / gaya


penulisan yang berbeda-beda., demikian juga dengan
bahasa C++. Struktur bahasa C++ dapat dilihat di bawah ini:
[Preprocessor Directive] pengarah compiler, yaitu
untuk mengatur proses
kompilasi
[Deklarasi Global] pendeklarasian variabel
atau konstanta yang
digunakan secara global
[Function Prototipe] pendeklarasian prototipe
fungsi

BUKU AJAR LOGIKA & ALGORITMA 113


main() deklarasi fungsi utama
{ menandakan awal
program
[Deklarasi Lokal] pendeklarasian variabel
atau konstanta yang
digunakan secara lokal
<statement> ; perintah-perintah
program

} menandakan akhir
program
[Function Definition] pendefinisian fungsi

Untuk pendefinisan fungsi (function definition), dapat juga


diletakkan setelah pendeklarasian prototipe fungsi (function
prototipe).

Contoh program C++ dapat dilihat pada Gambar 11.1 :

BUKU AJAR LOGIKA & ALGORITMA 114


Pengarah compiler

Pendeklatrasian prototipe fungsi

Deklarasi variabel global

Deklarasi fungsi utama

Pemanggilan fungsi
Awal dan akhir program
utama global
Pendefinisian fungsi

Deklarasi variabel lokal

Gambar 10.1 Contoh program C++


( Sumber : pribadi )

Baris #include <iostream> bukanlah sebuah pernyataan,


sehingga penulisannya tidak perlu disertakan / diakhiri dengan
tanda titik koma. Baris ini merupakan instruksi kepada compiler
untuk menyisipkan file lain pada saat program dikompilasi. (Kadir,
2003). File iostream merupakan file header yang berisi berbagai
objek yang berhubungan dengan operasi input output pada stream.

BUKU AJAR LOGIKA & ALGORITMA 115


Perintah using namespace std digunakan untuk
memberitahukan kepada compiler bahwa semua fungsi / class
/ file yang terdapat pada package namespace akan digunakan
dalam program. Namespace sendiri merupakan sebuah
package dalam bahasa C++ yang berisi class, object, function
untuk proses yang terkait dengan input output.

C. ATURAN DASAR PROGRAM C++

Dalam penulisan kode program C++, terdapat beberapa aturan


yang harus diikuti, antara lain:
1. Kata kunci (key word) harus ditulis dengan huruf kecil.
Key word adalah kata baku yang menjadi dasar perintah pada
bahasa pemrograman. Terdapat beberapa key word pada
bahasa pemrograman C++, seperti pada Tabel 11.1:

Tabel 10.1 Key word pada bahasa pemrograman C++


( Sumber : pribadi)
asm auto bool break
case catch char class
delete do double enum
else dynamic_cast explicit extern
false float for friend
goto if inline int
long mutable namespace new
operator private protected public
register reinterpret_cast return short
signed sizeof static struct
switch static_cast template this
throw true typedef try
typeid typename unsigned union

Tabel 10.1 Key word pada bahasa pemrograman C++ (Lanjutan)


( Sumber : pribadi)
using virtual volatile void
wchar_t while

BUKU AJAR LOGIKA & ALGORITMA 116


2. Penulisan program (penamaan : fungsi, variabel, konstanta,
label, dll) bersifat case sensitive, artinya penulisan dengan
menggunakan huruf besar dan huruf kecil dianggap berbeda.
3. Penamaan variabel, konstanta, label, dan fungsi, harus
mengikuti aturan penamaan identifier.
4. Setiap pernyataan / statement / ekspresi dalam program harus
diakhiri dengan tanda titik koma / semicolon (;), kecuali pada :
statement awal pengujian dan perulangan, pendeklarasian
fungsi utama, pendefinisan fungsi, dan pendeklarasian pengarah
compiler.

D. IDENTIFIER PADA C++

Identifier / pengenal dalam pemrograman digunakan untuk


memberikan nama pada variabel, fungsi, label, tipe data, konstanta
struktur, dan objek (Kadisr 2003). Terdapat beberapa aturan
pemberian nama identifier pada program C++, yaitu:
1. Hanya terdiri dari huruf, angka, dan garis bawah (underscore).
2. Hanya boleh diawali dengan huruf.
3. Tidak boleh menggunakan reserved keyword / kata kunci.
4. Tidak lebih dari 31 karakter.
5. Menggunakan gari bawah (underscore) sebagai pemisah antar
kata.
6. Bersifat case sensitive.

Berikut contoh penamaan identifier, seperti pada Tabel 10.2 :

Tabel 10.2 Contoh penamaan identifier


(Sumber : pribadi)
BENAR SALAH
Nama 1Nama
total_biaya total-biaya
GajiBersih Gaji Bersih
A 4
persen %
Floata float

BUKU AJAR LOGIKA & ALGORITMA 117


Tabel 10.2 Contoh penamaan identifier (Lanjutan)
(Sumber : pribadi)
BENAR SALAH
Double Double
myFisrt_C myFirst.C

E. PERNYATAAN PENUGASAN DAN INISIALISASI

Penugasan (assignment) di dalam sebuah pemrograman adalah


suatu perintah untuk memasukkan nilai ke dalam variabel. Dalam
bahasa C++, penugasan menggunakan operator assignment, yaitu
tanda sama dengan (=). Untuk membaca pernyataan penugasan
ini, dilakukan dari kanan ke kiri, berbeda dengan pembacaan
statement aritmatika / matematika.
Sintaks : variabel = ekspresi ;
Contoh : a=1; (1)
B=a*9; (2)
Pada statement (1) berarti memasukkan nilai 1 ke dalam variabel a.
Pada statement (2) berarti melakukan operasi perkalian antara isi
variabel a dengan nilai 9, selanjutnya hasil perkalian dimasukkan ke
dalam variabel B.
Contoh program C++ untuk penggunaan operator assignment
dapat diligat pada Gambar 10.2:

BUKU AJAR LOGIKA & ALGORITMA 118


Gambar 10.2 Contoh penggunaan operator assignment pada
program C++
(Sumber : pribadi)
Hasil eksekusi program diatas dapat dilihat pada Gambar 11.3 :

Gambar 10.3 Tampilan eksekusi program operator assignment


Inisialisai variabel merupakan pemberian nilai awal ke dalam
sebuah variabel sekaligus mendeklarasikan tipe data dari variabel
tersebut, dengan menggunakan operator assignment. (Prinz, 2002)

Sintaks : tipe_data nama_variabel = nilai_awal;

BUKU AJAR LOGIKA & ALGORITMA 119


Contoh : int panjang = 20 ; (1)
int panjang = lebar = 20 ; (2)
int panjang = 20, lebar = 30 ; (3)

Pada statement (1) berarti variabel panjang dideklarasi sebagai


variabel bertipe data integer dan diisi dengan nilai awal 20.

Pada statement (2) berarti variabel panjang dan lebar dideklarasi


sebagai variabel bertipe data integer, dan variabel panjang dan
lebar diisi dengan nilai awal yang sama yaitu 20.

Pada statement (3) berarti variabel panjang dan lebar dideklarasi


sebagai variabel bertipe data integer, namun diisi dengan nilai awal
yang berbeda. Variabel panjang diisi dengan nilai awal 20,
sedangkan variabel lebar diisi dengan nilai awal 30.

Contoh program C++ untuk proses inisialisasi variabel dapat dilihat


pada Gambar 10.4:

Gambar 10.4 Contoh inisialisasi variabel pada program C++


(Sumber : pribadi)

BUKU AJAR LOGIKA & ALGORITMA 120


Hasil eksekusi program diatas dapat dilihat pada Gambar 10.5:

Gambar 10.5 Tampilan eksekusi program inisialisasi variabel


(Sumber : pribadi)

F. STATEMENT INPUT OUTPUT

Dalam bahasa C++, untuk memasukkan dan menampilkan data


menggunakan statement:
1. Statement Output
Statement output digunakan untuk mengarahkan data ke
standard output (normalnya layar) (Kadir, 2003)
Sintaks : cout << “format” << argumen << … ;

Keterangan:
• format berupa keterangan / pesan / teks yang akan
ditampilkan ke layar.
Untuk mencetak output ini, keterangan / pesan / teks yang
akan ditampilkan harus ditulis diantara dua tanda petik
ganda ( ” ).
• argumen berupa variabel, konstanta atau ekspresi.
Untuk mencetak ouput ini, nama variabel / konstanta /
ekspresi tidak perlu ditulis diantara tanda petik.
Tanda << merupakan operator “penyisipan / peletakan”.
Operator ini mengarahkan operand (data) yang di sebelah
kanannya ke obyek yang dikirinya.

BUKU AJAR LOGIKA & ALGORITMA 121


Contoh : a = 1 ;
cout << a ; (1)
cout << “Surabaya” ; (2)

Pada statement (1), berarti isi variabel a diarahkan ke cout,


yang memberikan hasil tampilan di layar berupa nilai 1.

Pada statement (2), berarti string “Surabaya” diarahkan ke


cout, yang memberikan hasil tampilan di layar berupa tulisan
Surabaya.

File header yang diperlukan : iostream.h

Contoh program C++ untuk menampilkan data dengan


menggunakan statement output dapat dilihat pada Gambar
10.6 :

Mencetak pesan

Mencetak isi variabel

Gambar 10.6 Contoh penggunaan statement output pada


program C++
(Sumber : pribadi)

BUKU AJAR LOGIKA & ALGORITMA 122


Hasil eksekusi program diatas dapat dilihat pada Gambar 10.7:

Gambar 10.7 Tampilan eksekusi program penggunaan


statement output
(Sumber : pribadi)
2. Statement Input
Statement input digunakan untuk menerima masukan /
membaca data dari piranti input (normalnya keyboard) (Kadir,
2003).

Sintaks : cin >> variabel ;

Tanda >> disebut operator "pengambilan dari“. Operator ini


mengarahkan data inputan dari keyboard ke obyek yang
dikanannya (variabel penyimpannya).

Contoh : cin >> a ; (1)


Pada contoh (1), data inputan dari keyboard akan diarahkan ke
obyek penyimpan yaitu variabel a.
File header yang diperlukan : iostream.h.
Pada saat melakukan penginputan data dengan statement
input, variabel yang menampung data yang diinputkan harus
sudah dideklarasikan terlebih dahulu. Dan alangkah baiknya
tampilkan pesan sebelum proses penginputan. Hal ini
dikarenakan pada saat program dieksekusi, hanya
menampilkan kursor berkedip-kedip tanpa tahu harus
melakukan apa.
Contoh program C++ untuk pembacaan data tanpa perintah
cetak pesan dapat dilihat pada Gambar 10.8 :

BUKU AJAR LOGIKA & ALGORITMA 123


Gambar 10.8 Contoh penggunaan statement input tanpa
perintah cetak pesan pada program C++
(Sumber : pribadi)
Hasil eksekusi program diatas dapat dilihat pada Gambar 10.9:

Gambar 10.9 Tampilan eksekusi program penggunaan


statement input tanpa perintah cetak pesan
(Sumber : pribadi)
Dari hasil eksekusi program diatas, terlihat kursor berkedip-
kedip tanpa ada pesan apapun. Hal ini berarti komputer
menunggu inputan data yang dimasukkan oleh user melalui

BUKU AJAR LOGIKA & ALGORITMA 124


piranti input (keyboard), untuk kemudian data tersebut dibaca
oleh komputer dan dimasukkan / disimpan dalam variabel.
Bandingkan program diatas dengan program pada Gambar
10.10 berikut :

Gambar 10.10 Contoh penggunaan statement input dengan


perintah cetak pesan pada program C++
(Sumber : pribadi)
Hasil eksekusi program diatas dapat dilihat pada Gambar
10.11:

(a) (b)

(c)

BUKU AJAR LOGIKA & ALGORITMA 125


Gambar 10.11 Tampilan eksekusi program penggunaan
statement input dengan perintah cetak pesan
(Sumber : pribadi)
Gambar 10.11 (a) menunjukkan bahwa saat program
dieksekusi, maka akan tercetak pesan “Masukkan data umur :“
terlebih dahulu sebelum proses penginputan / pembacaan
data. Kursor berkedip-kedip menunggu inputan data (berupa
nilai umur) dari keyboard. Setelah diinputkan data nilai 20 dan
dilanjutkan menekan tombol Enter, maka otomatis nilai 20 akan
dibaca oleh komputer dan disimpan dalam variabel umur, dan
selanjutnya akan tercetak pesan kedua “Masukkan data
alamat”. Kursor berkedip-kedip lagi untuk menunggu inputan
data (berupa nilai string alamat) dari keyboard, seperti pada
Gambar 10.11 (b). Kemudian setelah diinputkan inputkan data
string “Surabaya”, maka otomatis nilai string tersebut akan
dibaca oleh komputer dan disimpan dalam variabel alamat,
seperti pada Gambar 10.11 (c).
Proses pembacaan data juga bisa dilakukan untuk data lebih
dari satu. Sintaks :
cin >> variabel1 >> variabel2 >> ... ;
Contoh : cin >> x >> y ; (2)
Pada contoh diatas, dua buah data dapat dimasukkan dari
keyboard dengan pemisah berupa SPASI, TAB atau ENTER.

G. KOMENTAR

Komentar merupakan bagian dari program namun komentar


tidak ikut di baca atau di eksekusi atau kata lain komentar
tidak akan mempengaruhi jalannya program. Komentar
sangat membantu programmer atau orang lain dalam
memahami program, karena berupa penjelasan-penjelasan
mengenai program / bagian-bagian program.

BUKU AJAR LOGIKA & ALGORITMA 126


Penjelasan bisa berupa :
• Tujuan / fungsi program.
• Keterangan saat program dibuat / direvisi.
• Keterangan lain tentang kegunaan sejumlah pernyataan
dalam program.

Ada 2 jenis komentar dalam C++:


1. Menggunakan tanda : //
Digunakan untuk menuliskan komentar yang terdiri dari 1
baris saja, gaya penulisan ini hanya di kenal di C++
Contoh :
int a,b,c; //pendeklarasian variabel
2. Menggunakan tanda : /*...*/
Digunakan untuk menuliskan komentar sebanyak satu
baris atau lebih. Komentar dimulai dengan tanda /* dan
akan berakhir sampai di temukan tanda */.
Contoh :
/*proses mencetak pesan secara berulang-ulang
sebanyak 5 x */
for (i = 1; i <= 5; i++)
cout << “SELAMAT” ;

Contoh penggunaan komentar dalam program C++ dapat


dilihat pada Gambar 10.12:

BUKU AJAR LOGIKA & ALGORITMA 127


Hasil eksekusi program diatas dapat dilihat pada Gambar 10.13:

Gambar 10.13 Tampilan eksekusi program penggunaan komentar

Gambar 10.13 menunjukkan bahwa kehadiran komentar di dalam


program C++ tidak membawa pengaruh terhadap hasil eksekusi
program. Atau dengan kata lain komentar tidak mempengaruhi hasil
logika dari program,walaupun komentar itu ada di dalam program.

BUKU AJAR LOGIKA & ALGORITMA 128


H. RANGKUMAN

Bahasa C++ merupakan bahasa pemrograman tingkat tinggi yang


digunakan untuk membuat aplikasi komputer, yang mudah
dipelajari dan diadaptasi oleh semua platform. C++ memiliki struktur
/ gaya program yang berdeda dengan bahasa pemrograman yang
lain dan bersifat case sensitive. Beberapa hal yang perlu
diperhatikan dalam menulis kode program C++ adalah aturan dasar
penulisan atau sintaks, elemen dasar pemrograman dan logika.
Aturan dasar dalam penulisan kode program C++ harus dipenuhi,
agar program dapat dikompilasi. Karena pada dasarnya kesalahan
dalam pemrograman hanya ada dua macam, yakni kesalahan
sintaks (syntax error) dan kesalahan logika (logical error). Jika
terjadi kesalahan penulisan sintaks, maka program jelas tidak akan
mungkin dapat dikompilasi / dijalankan, dan programmer harus
memperbaiki penulisan sintaks program sesuai kaidah bahasa
pemrograman yang digunakan. Namun jika terjadi kesalahan
logika, maka program akan tetap bisa dikompilasi / dijalankan,
namun akan memberikan hasil ekseskusi yang tidak sesuai. Dan
yang tak kalah penting dalam kesuksesan membuat program
adalah logika. Bagaimana seorang programmer memahami sebuah
permasalahan yang akan diselesaikan dan kemudian menyusun
langkah-langkah penyelesaian permasalahan tersebut untuk
kemudian dituangkan dalam bentuk program.

I. TES FORMATIF

1. Jelaskan apa yang dimaksud dengan identifier, dan sebutkan


aturan penamaan identifier !

2. Jelaskan perbedaan kedua perintah berikut :


cout << harga ;
cout << “harga” ;

BUKU AJAR LOGIKA & ALGORITMA 129


3. Apakah komentar adalah bagian dari program? Sebutkan dan
jelaskan jenis-jenis komentar !

J. LATIHAN

Buatlah sebuah program C++ untuk menghitung :


1. Luas lingkaran
2. Luas segitiga

Dimana nilai diameter, alas, dan tinggi diinputkan lewat keyboard.

BUKU AJAR LOGIKA & ALGORITMA 130


KEGIATAN BELAJAR 11
STRUKTUR PERCABANGAN IF, IF-ELSE, IF-ELSE IF,
DAN SWITCH-CASE

DESKRIPSI PEMBELAJARAN
Pada materi ini mahasiswa belajar tentang sintaksis dasar,
bagaimana membuat kondisi logis, dan bagaimana mengubah jalur
eksekusi program berdasarkan kebenaran kondisi. Mahasiswa juga
mempelajari cara menggunakan operator perbandingan dan
operator logika untuk membuat kondisi yang lebih kompleks.

KOMPETENSI PEMBELAJARAN
Setelah mempelajari materi ini diharapkan memberikan
pengalaman belajar kepada mahasiswa dan memiliki kompetensi
yang diharapkan:
1. Mahasiswa diharapkan memiliki pemahaman yang kuat tentang
konsep dasar percabangan, termasuk pemahaman tentang
kondisi, ekspresi boolean, dan bagaimana struktur percabangan
bekerja.
2. Mahasiswa perlu mengembangkan kemampuan logika
pemrograman yang baik. Ini melibatkan kemampuan untuk
menganalisis masalah, mengidentifikasi kondisi, dan merancang
struktur percabangan yang sesuai untuk menyelesaikan
masalah tersebut.
3. Mahasiswa diharapkan mampu mengimplementasikan struktur
percabangan dengan benar dalam kode program. Mereka harus
dapat menulis sintaks yang tepat, memahami bagaimana
mengatur blok kode, dan menggunakan kondisi yang sesuai.
4. Mahasiswa harus dapat menghubungkan konsep percabangan
dengan pemecahan masalah yang lebih luas. Mereka harus
dapat mengidentifikasi situasi di mana penggunaan
percabangan akan membantu dalam menyelesaikan masalah
dengan lebih efisien dan efektif.

BUKU AJAR LOGIKA & ALGORITMA 131


5. Mahasiswa yang kompeten dalam belajar percabangan akan
mampu mengaplikasikan konsep tersebut secara kreatif. Mereka
akan dapat mengembangkan solusi yang inovatif dan
menggunakan percabangan untuk mengatasi tantangan
pemrograman yang kompleks.

PETA KONSEP PEMBELAJARAN

A. PENGERTIAN PERCABANGAN

Istilah percabangan dalam pemrograman merupakan alur program


yang bercabang. Percabangan juga dikenal dengan istilah
penyeleksian, control flow, decision, struktur kondisi, dan struktur if.

BUKU AJAR LOGIKA & ALGORITMA 132


Didalam percabangan, program memiliki satu bahkan lebih dari satu
kondisi yang didalamnya ada sebuah instruksi yang dilaksanakan
jika kondisi tertentu dapat terpenuhi. Hal ini memungkinkan program
untuk membuat keputusan dan melakukan tindakan yang berbeda
tergantung pada kondisi yang diberikan. Sebagai contoh, apabila
suatu kondisi tersebut terpenuhi (true) maka program akan
menjalankan blok kode program, sebaliknya apabila kondisi
tersebut tidak terpenuhi (false) maka program tidak akan
menjalankan blok kode program. Pernyataan penyeleksian yang
mencari kebenaran disebut conditional expression atau harus
berupa bilangan Boolean.

Terdapat beberapa jenis percabangan yang umum digunakan


dalam pemrograman, di antaranya:
1. Kondisi “if"
Pernyataan "if" digunakan untuk mengevaluasi kondisi tertentu
dan menjalankan blok kode hanya jika kondisi tersebut
terpenuhi. Jika kondisi bernilai benar (true), blok kode dalam
pernyataan "if" akan dieksekusi.

2. Kondisi "if-else"
Pernyataan "if-else" digunakan untuk mengevaluasi kondisi
tertentu. Jika kondisi bernilai benar (true), blok kode dalam
pernyataan "if" akan dieksekusi. Jika kondisi bernilai salah
(false), blok kode dalam pernyataan "else" akan dieksekusi.

3. Kondisi "if-else-if "


Pernyataan ini digunakan untuk mengevaluasi beberapa kondisi
secara berurutan. Setiap kondisi dievaluasi secara berurutan
dan blok kode yang terkait dengan kondisi yang cocok akan
dieksekusi. Jika tidak ada kondisi yang cocok, blok kode dalam
bagian "else" akan dieksekusi (jika ada).

4. Kondisi "switch case"


Pernyataan "switch case" digunakan untuk memilih satu dari
beberapa blok kode yang akan dieksekusi berdasarkan nilai

BUKU AJAR LOGIKA & ALGORITMA 133


suatu ekspresi. Program akan memeriksa nilai ekspresi dan
menjalankan blok kode yang cocok dengan nilai tersebut.

Percabangan memungkinkan program untuk mengambil keputusan


dan melakukan tindakan yang berbeda tergantung pada kondisi
yang ada. Ini sangat penting dalam mengendalikan alur program
dan membuat program yang lebih dinamis dan responsif terhadap
input dan kondisi yang berbeda.

B. PERCABANGAN KONDISI IF

Pernyataan if adalah bentuk pernyataan percabangan yang paling


sederhana. Bentuk percabangan ini digunakan untuk memutuskan
apakah suatu pernyataan atau blok pernyataan tertentu akan
dieksekusi atau tidak, jika kondisi tertentu benar maka blok
pernyataan dieksekusi, namun jika salah maka tidak akan
dieksekusi. if hanya memiliki 1 blok pilihan yang akan dieksekusi
jika kondisi bernilai benar.

Bagian kondisi berperan sebagai penentu dari struktur


percabangan. Jika kondisi terpenuhi (menghasilkan nilai boolean
true), blok kode program akan dijalankan. Jika konidisi tidak
terpenuhi (menghasilkan nilai boolean false), blok kode program
tidak akan dijalankan. Blok kode program yang di maksud adalah
semua kode yang berada di antara tanda kurung kurawal “{” dan “}”
(body).

Berikut ini adalah contoh kode program percabangan if dalam


pemrograman C++:

BUKU AJAR LOGIKA & ALGORITMA 134


Diawal kode program, variabel a diisi dengan angka 4 dan variabel
b diisi dengan angka 5. Pada baris 10 terdapat kondisi if (a < b),
yakni apakah variabel a berisi angka yang lebih kecil dari b? Apabila
kondisi yang dihasilkan bernilai benar (true), maka blok kode
program akan dijalankan.

Selain contoh kode program diatas, if dapat dibuat dengan


menambahkan beberapa kondisi sebagai berikut:

BUKU AJAR LOGIKA & ALGORITMA 135


Kode program diatas memiliki 3 buah kondisi, yakni if (a > b), if (a <
b), serta if (a == b). Setiap kondisi if akan diperiksa dan jika operasi
perbandingan menghasilkan nilai true, maka blok tersebut yang
akan diproses.

C. PERCABANGAN KONDISI IF-ELSE

Dalam pemrograman, struktur if-else adalah suatu mekanisme yang


memungkinkan program untuk melakukan pemilihan kondisional.
Dengan menggunakan struktur if-else, program dapat memutuskan
untuk menjalankan satu blok kode jika suatu kondisi terpenuhi
(true), dan menjalankan blok kode lainnya jika kondisi tersebut tidak
terpenuhi (false).

Secara umum, struktur if-else terdiri dari dua blok kode yang
berbeda, blok if dan blok else. Blok if berisi pernyataan atau
serangkaian pernyataan yang akan dieksekusi jika kondisi yang
diberikan benar atau terpenuhi. Jika kondisi pada blok if tidak
terpenuhi, maka program akan melanjutkan ke blok else (jika ada)
dan menjalankan statement yang ada di dalamnya.

Berikut adalah contoh penggunaan struktur if-else dalam bahasa


pemrograman C++:

BUKU AJAR LOGIKA & ALGORITMA 136


Dalam contoh diatas, program akan meminta pengguna untuk
memasukkan sebuah angka. Kemudian, menggunakan struktur if-
else, program akan memeriksa apakah angka tersebut lebih besar
dari 0. Jika iya, maka program akan mencetak "Angka yang Anda
masukkan adalah positif." Jika tidak, program akan mencetak
"Angka yang Anda masukkan bukanlah positif."

D. PERCABANGAN KONDISI IF-ELSE IF

Struktur if-else if adalah perluasan dari struktur if-else yang


memungkinkan untuk mengevaluasi beberapa kondisi secara
berurutan. Jika kondisi pertama tidak terpenuhi, program akan
memeriksa kondisi kedua, dan seterusnya. Jika satu kondisi
terpenuhi, blok kode yang sesuai akan dieksekusi, dan program
akan keluar dari struktur if-else if tanpa mengevaluasi kondisi-
kondisi berikutnya.

BUKU AJAR LOGIKA & ALGORITMA 137


Berikut adalah contoh penggunaan struktur if-else if dalam bahasa
pemrograman C++:

Dalam contoh di atas, program akan meminta pengguna untuk


memasukkan sebuah nilai. Kemudian, menggunakan struktur if-
else if, program akan mengevaluasi nilai tersebut berdasarkan
kondisi yang disediakan. Jika nilai lebih besar dari 90, program akan
mencetak "Nilai Anda A". Jika tidak, program akan memeriksa
kondisi berikutnya, yaitu jika nilai lebih besar dari 80, dan
seterusnya. Jika tidak ada kondisi yang terpenuhi, program akan

BUKU AJAR LOGIKA & ALGORITMA 138


menjalankan blok else dan mencetak "Nilai Anda E". Dengan
menggunakan struktur if-else if, pengguna dapat memeriksa
beberapa kondisi secara berurutan dan menjalankan blok kode
yang sesuai dengan kondisi yang terpenuhi pertama kali.

E. SWITCH CASE

Switch case adalah struktur kontrol dalam pemrograman yang


digunakan untuk memilih salah satu dari beberapa blok kode untuk
dieksekusi berdasarkan nilai ekspresi yang diberikan. Dalam switch
case, ekspresi tersebut dievaluasi, dan kemudian program akan
mencocokkan nilai ekspresi dengan beberapa kemungkinan nilai
yang mungkin terjadi.

Kondisi switch case terdiri dari 2 bagian, yakni perintah switch


dimana terdapat nama variabel yang akan diperiksa, serta 1 atau
lebih perintah case untuk setiap nilai yang akan diperiksa.

Di awal kode program, terdapat perintah switch untuk menginput


variabel yang akan diperiksa. Kemudian terdapat beberapa perintah
case yang diikuti dengan sebuah nilai. Jika isi dari nama_variabel
sama dengan salah satu nilai ini, maka blok kode program akan
dijalankan. Jika ternyata tidak ada kondisi case yang dipenuhi, blok
default di baris paling bawah-lah yang akan dijalankan. Didalam

BUKU AJAR LOGIKA & ALGORITMA 139


setiap block case, diakhiri dengan perintah break agar struktur case
langsung berhenti begitu kondisi terpenuhi.

Berikut adalah contoh penggunaan switch case dalam bahasa


pemrograman C++:

Di baris 10 terdapat perintah untuk meminta user menginput salah


satu huruf antara ‘A’ – ‘E’. Nilai huruf ini kemudian disimpan ke
dalam variabel nilai yang sudah di set ber tipe data char. Kondisi
switch case dimulai pada baris 12. Di sini terdapat perintah switch
(nilai) yang artinya kita ingin memeriksa isi dari variabel nilai.
Seluruh block switch berada di dalam tanda kurung kurawal yang
dimulai dari baris 12 sampai 30.

BUKU AJAR LOGIKA & ALGORITMA 140


Di baris 13 terdapat perintah case ‘A’: Ini artinya jika variabel nilai
berisi karakter ‘A‘, maka jalankan isi dari block case, yakni perintah
cout << “Sangat Baik” << endl. Lalu terdapat perintah break di baris
15 agar struktur case lain tidak perlu di proses lagi. Setiap kasus di
dalam switch case biasanya diakhiri dengan pernyataan break yang
digunakan untuk keluar dari struktur switch dan mencegah program
mengeksekusi kasus-kasus berikutnya. Jika break tidak ada, maka
program akan melanjutkan mengeksekusi kasus-kasus berikutnya
setelah kasus yang cocok ditemukan.

Di baris 16 terdapat perintah case kedua, yakni case ‘B’:. Sama


seperti sebelumnya, blok ini akan dijalankan jika variabel nilai berisi
huruf ‘B‘. Demikian seterusnya sampai case ‘E’ : di baris 25. Jika
ternyata tidak ada nilai yang sesuai, maka block default di baris 28
yang akan di eksekusi.

Struktur switch case ini terlihat lebih rapi dan efisien daripada
struktur if-else if. Namun switch case juga memiliki batasan, dimana
tidak bisa dipakai untuk kondisi yang lebih kompleks seperti
perbandingan dengan tanda lebih besar dari ” > “, maupun
penggabungan kondisi. Struktur switch case ini hanya cocok untuk
operasi perbandingan sederhana, dimana nilai yang diperiksa
hanya terdiri dari nilai yang tetap.

F. RANGKUMAN

Berdasarkan uraian di atas, mulai dari percabangan, kondisi if, if-


else, if-else if sampai switch case. Percabangan adalah mekanisme
yang memungkinkan program untuk membuat keputusan
berdasarkan kondisi yang diberikan. Struktur if adalah bentuk dasar
percabangan yang digunakan untuk mengevaluasi kondisi tunggal.
Jika kondisi terpenuhi, blok kode di dalam if akan dieksekusi.
Struktur if-else adalah pengembangan dari struktur if. Jika kondisi
di if terpenuhi, blok kode di dalam if akan dieksekusi. Jika tidak, blok
kode di dalam else akan dieksekusi. Struktur if-else if digunakan
ketika ada beberapa kondisi yang perlu dievaluasi secara

BUKU AJAR LOGIKA & ALGORITMA 141


berurutan. Jika kondisi pertama terpenuhi, blok kode di dalam if
akan dieksekusi. Jika tidak, program akan memeriksa kondisi
kedua, dan seterusnya. Struktur switch case digunakan untuk
memilih satu dari beberapa blok kode yang akan dieksekusi
berdasarkan nilai ekspresi yang diberikan. Nilai ekspresi akan
dicocokkan dengan beberapa kasus yang mungkin terjadi, dan blok
kode di dalam kasus yang cocok akan dieksekusi. Dalam setiap
percabangan, pernyataan break digunakan untuk keluar dari
struktur dan menghentikan evaluasi kondisi lebih lanjut. Tanpa
break, program akan melanjutkan mengeksekusi kasus-kasus
berikutnya dalam switch case. Selain itu, percabangan juga dapat
berisi blok else if tambahan di dalam struktur if-else atau switch case
untuk mengevaluasi kondisi yang lebih kompleks. Pemilihan
struktur percabangan yang tepat tergantung pada kompleksitas
kondisi dan kebutuhan program. Percabangan merupakan bagian
penting dalam pemrograman yang memungkinkan program untuk
mengambil keputusan berdasarkan kondisi yang terjadi. Dengan
menggunakan struktur percabangan yang tepat, Anda dapat
mengontrol alur program sesuai dengan logika yang diinginkan.

G. TES FORMATIF

1. Pernyataan mana yang akan dieksekusi jika kondisi dalam if


adalah salah (false)?
a. Blok kode di dalam if.
b. Blok kode di dalam else.
c. Keduanya akan dieksekusi.
d. Tidak ada yang dieksekusi.

2. Dalam struktur if-else if, kondisi di dalam else if dievaluasi jika:


a. Kondisi di dalam if benar (true).
b. Kondisi di dalam if salah (false).
c. Kondisi di dalam if dan else benar (true).
d. Kondisi di dalam if salah (false) dan kondisi di dalam else
benar (true).

BUKU AJAR LOGIKA & ALGORITMA 142


3. Dalam switch case, pernyataan break digunakan untuk:
a. Melanjutkan ke kasus berikutnya.
b. Menghentikan evaluasi kondisi dan keluar dari switch case.
c. Memeriksa kasus-kasus lain.
d. Menandai akhir dari blok kode dalam switch case.

H. LATIHAN

1. Tulislah sebuah program menggunakan struktur if yang meminta


pengguna untuk memasukkan angka dan mencetak "Angka
yang Anda masukkan adalah positif" jika angka tersebut lebih
besar dari 0.

2. Tulislah sebuah program menggunakan struktur if-else yang


meminta pengguna untuk memasukkan suhu dalam derajat
Celsius dan mencetak "Suhu air dalam keadaan cair" jika suhu
lebih besar dari 0, dan mencetak "Suhu air dalam keadaan beku"
jika suhu sama dengan atau kurang dari 0.

3. Tulislah sebuah program menggunakan if-else if yang meminta


pengguna untuk memasukkan bilangan bulat dan mencetak
"Bilangan positif" jika bilangan tersebut lebih besar dari 0,
mencetak "Bilangan negatif" jika bilangan tersebut kurang dari 0,
dan mencetak "Bilangan nol" jika bilangan tersebut adalah 0

4. Tulislah sebuah program menggunakan switch case yang


meminta pengguna untuk memasukkan angka bulan (dalam
bentuk angka) dan mencetak nama bulan yang sesuai.

BUKU AJAR LOGIKA & ALGORITMA 143


KEGIATAN BELAJAR I2
APLIKASI PEMBELIAN MENU MAKANAN

DESKRIPSI PEMBELAJARAN
Pada bab ini mahasiswa mempelajari cara membangun suatu
program aplikasi untuk penyelesaian masalah dalam kehidupan
nyata. Setelah mempelajari bagian ini, diharapkan mahasiswa
mampu membuat dan mengembangkan sendiri suatu aplikasi untuk
penyelesaian masalah dalam kehidupan nyata.

KOMPETENSI PEMBELAJARAN
Setelah mengikuti perkuliahan ini diharapkan mahasiswa dan
mahasiswi memiliki pengetahuan dan kemampuan :
1. Mampu merumuskan masalah kehidupan nyata yang dapat
diselesaikan menggunakan program aplikasi.
2. Mampu mengkontruksikan rancangan diagram alir dalam
pembuatan program aplikasi.
3. Mampu membuat program aplikasi sesuai diagram alir dengan
Bahasa pemrograman C++.

PETA KONSEP PEMBELAJARAN

Perumusan Masalah

Rancangan Diagram Alir

Membangun Program

BUKU AJAR LOGIKA & ALGORITMA 144


A. PERUMUSAN MASALAH

Suatu program aplikasi dibangun atau dibuat jelas karena ada


permasalahan yang harus diselesaikan. Sehingga pada tahap awal
untuk dapat membuat suatu program aplikasi, maka kita harus tau
terlebih dahulu masalah apa yang sekiranya bisa diselesaikan dan
bagaimana cara penyelesaiannya. Sebagai contoh pada bab ini
akan dibangun suatu program aplikasi sederhana pembelian
makanan dengan mengambil studi kasus di Richeese Factory.
Berikut adalah perumusan masalah yang diberikan agar arah
pengerjaan menjadi jelas.
1. Bagaimana data yang akan dipakai untuk pembuatan program
sederhana aplikasi pembelian menu makanan di Richeese
Factory?
2. Bagaimana diagram alur dari program sederhana aplikasi
pembelian menu makanan di Richeese Factory?
3. Bagaimana pembangunan program Bagaimana diagram alur
dari program sederhana aplikasi pembelian menu makanan di
Richeese Factory dengan Bahasa C++?

Jawaban dari kondisi pertama adalah : data yang diperlukan


meliputi data daftar item makanan dan minuman yang dijual di
Richeese Factory, selanjutnya kita membutuhkan data harga
masing-masing item. Dalam kasus ini karena di Richeese factory
makanan dan minumannya ada pengelompokan, maka kita
membutuhkan data dummy berupa kode tiap-tiap kelompok untuk
dapat memanggil himpunan item yang masuk dalam kelompok
tertentu. Berikut adalah data yang akan kita gunakan :

B. DIAGRAM ALIR PROGRAM APLIKASI

Untuk memudahkan dalam penulisan dan pengkoreksian syntax


pada program aplikasi, dibuatlah beberapa sub-program utama
atau sebuah fungsi. Diasumsikan dalam tampilan utama terdiri dari
dua pilihan yaitu “Melihat daftar menu” dan “Melakukan pembelian”
sehingga rancangan diagram alir yang mungkin sebagai berikut :

BUKU AJAR LOGIKA & ALGORITMA 145


Gambar 12.1 Diagram Alir Program Utama

Selanjutnya sesuai pada Gambar 12.1 terdapat fungsi “List Menu”


dan fungsi “Purchase”. Untuk fungsi “List Menu”, diagram alir yang
mungkin adalah sebagai berikut :

BUKU AJAR LOGIKA & ALGORITMA 146


Gambar 12.2 Diagram Alir Fungsi “List Menu”

Pada diagram alir “List Menu” terdapat 9 case pilihan berdasarkan


data item makanan dan minuman Richeese Factory yang terbagi
menjadi 8 kelompok seperti pada sub bab (A). Sengaja
ditambahkan 1 case pilihan lainnya yaitu untuk melihat semua menu

BUKU AJAR LOGIKA & ALGORITMA 147


yang ada. Selanjutnya perhatikan pada Gambar 12.2, kita memiliki
fungsi “allmenu” dan “submenu", rancangan diagram alir yang
mungkin untuk fungsi “submenu” adalah sebagai berikut :

Gambar 12.3 Diagram Alir Fungsi “submenu”

Sedangkan untuk fungsi “allmenu” diagram alir yan mungkin adalah


sebagai berikut :

Gambar 12.4 Diagram Alir Fungsi “allmenu”

Selanjutnya untuk fungsi “Purchase” dengan input adalah pesanan


ke-1 sampai ke-k (k lebih besar atau sama dengan satu), maka
diagram alir yang mungkin adalah :

BUKU AJAR LOGIKA & ALGORITMA 148


Gambar 12.5 Diagram Alir Fungsi “Purchase”

C. MEMBANGUN APLIKASI DENGAN C++

Setelah menentukan diagram alir program aplikasi, pada sub bab


ini kita akan membuat program nya dengan menggunakan Bahasa

BUKU AJAR LOGIKA & ALGORITMA 149


C++. Perharikan bahwa syntax ini tidaklah urut, untuk memberi
pemahaman pembuatan program yang sistematis secara konsep.

Persiapan

Memasukkan data dari CSV

Program utama

BUKU AJAR LOGIKA & ALGORITMA 150


Fungsi “List Menu”

BUKU AJAR LOGIKA & ALGORITMA 151


Fungsi “allmenu”

Fungsi “submenu”

BUKU AJAR LOGIKA & ALGORITMA 152


Fungsi “Purchase”

Setelah program dijalankan maka kita akan mendapatkan hasil


program seperti tampilan berikut :

BUKU AJAR LOGIKA & ALGORITMA 153


Gambar 12.6 Tampilan Awal Program Aplikasi

Gambar 12.7 Tampilan Saat Melihat Pilihan Menu 2

BUKU AJAR LOGIKA & ALGORITMA 154


Gambar 12.8 Tampilan Saat Melakukan Pemesanan

D. RANGKUMAN

Pada bab ini dibangun suatu program aplikasi sederhana pembelian


makanan dengan mengambil studi kasus di Richeese Factory.
Perumusan masalah yang diberikan meliputi data yang dibutuhkan,
diagram alir yang dibentuk, dan bagaimana membangun program
dalam Bahasa C++. Program terdiri dari program utama dan sub-
sub program dibawahnya, hal ini untuk memudahkan pengkodean
dalam bahasa pemrograman.

BUKU AJAR LOGIKA & ALGORITMA 155


E. TES FORMATIF

1. Perumusan masalah program aplikasi sederhana pembelian


makanan di Richeese Factory, kecuali ?
a. Data yang diperlukan
b. Diagram alir yang dibentuk
c. Pembangunan program dengan bahasa C++
d. Batasan script program
e. Salah semua

2. Berikut adalah subprogram program aplikasi sederhana


pembelian makanan di Richeese Factory, kecuali ?
a) Void listmenu ()
b) Void allmenu ()
c) Void submenu ()
d) Void purchase ()
e) Int main ()

F. LATIHAN

Buatlah program aplikasi sederhana dengan memakai data asli !

BUKU AJAR LOGIKA & ALGORITMA 156


DAFTAR PUSTAKA

Al Fatta, H. 2006. Dasar Pemrograman C++. Yogyakarta: Penerbit.


Andi.

Ali, Ridho Barakbah., 2013, Logika dan Algoritma. Surabaya :


Politeknik Elektronika Negeri Surabaya.

Barakbah, Aliridho (2017) Logika dan Algoritma Dalam


Perancangan Sistem, Edisi ke-2, Bandung: Lingga Jaya.

Bergmann, M., Moor, J., & Nelson, J. (2014). The logic book (6th
edition). New York: McGraw Hill.

Brown, Graham, and Brian Sargent. 2021. Cambridge International


A Level Information Technology. London: Hodder Education.

Chaudhuri, A. B. 2020. The Art of Programming through Flowcharts


& Algorithms. Dulles: Mercury Learning and Information.

Clarke, E. M., Henzinger, T. A., Veith, H., & Bloem, R. (2018).


Handbook of model checking. In Handbook of Model
Checking. https://doi.org/10.1007/978-3-319-10575-8

Davis, W. S. 2019. Pseudocode. In The Information System


Consultant’s Handbook (pp. 465-472). CRC Press.

Esabella, Shinta. 2021. Dasar-Dasar Pemrograman. Sumbawa:


Olat Maras Publishing.

Frieyadie. 2006. Panduan Pemrograman C++. Yogyakarta:


Penerbit. Andi.

Genesereth, M., & Chaudhri, V. K. (2020). Introduction to Logic


Programming. In Synthesis Lectures on Artificial Intelligence
and Machine Learning (Vol. 14, Issue 1, pp. 1–219).
https://doi.org/10.2200/S00966ED1V01Y201911AIM044

Goodrich, Michael T, dkk. 2014. Data Structures and Algorithms in


JavaTM.. Amerika: Don Fowley.

Hariyono ,Harry 2019. ‘Belajar Pemrograman C++ dengan Mudah


dan Cepat’, Jakarta.

BUKU AJAR LOGIKA & ALGORITMA 157


Hariyono ,Harry 2019. Belajar Pemrograman C++ dengan Mudah
dan Cepat. Jakarta.

Harumy, T.Henny, dkk. 2016. Belajar Dasar Algoritma &


Pemrograman C++. Sleman: Deepublish

Ismah. 2017. Pemrograman Komputer Dasar-dasar Python. Jakarta


: Fakultas Ilmu Pendidikan Universitas Muhammadiyah.

Jubile Enterprise. 2019. Lancar Java dan Javascript. Jakarta:


Kompas Gramedia

Kadir, Abdul 2015 ‘Dasar Pemrograman dengan Bahasa C’


Yogyakarta.

Kadir, Abdul 2015 ‘Dasar Pemrograman dengan Bahasa C’


Yogyakarta.

Kadir, Abdul. (2003). Pemrograman C++ Membahas Pemrograman


Berorientasi Objek Menggunakan Turbo C++ dan Borland
C++, edisi 2. Yogyakarta: Andi Offset.

Kadir, Abdul. 1995. Pemrograman Berorientasi Objek C++.


Yogyakarta: Penerbit. Andi.

Kadir, Abdul. 2015. Dasar Pemrograman dengan Bahasa C.


Yogyakarta.

Kadir, Abdul. 2019. Logika Pemrograman Menggunakan C++.


Jakarta: Kompas Gramedia

Learning, Distance Open. 2023. “INTRODUCTION TO C++.”


INSTITUTE OF DISTANCE & OPEN LEARNING. Retrieved
June 28, 2023 (https://mu.ac.in/distance-open-learning).

Manna, Z., & Waldinger, R. (1990). The logical basis for computer
programming: Deductive systems (volume 2). Boston:
Addison-Wesley.

Meyers, Scott. 2015. Effective Modern C++. Amerika: Penerbit.


O’Reilly Media.

Muhidin, Asep. 2010. Pemrograman Bahasa C++. Penerbit.


Zeyrank.

BUKU AJAR LOGIKA & ALGORITMA 158


Munir, Rinaldi 2015 ‘Pemrograman C++ untuk Orang Awam’,
Bandung.

Munir, Rinaldi. 2015. Pemrograman C++ untuk Orang Awam,


Bandung.

Prakasa, Aditya Yudha 2018. ‘Dasar Pemrograman Java untuk


Pemula’, Bandung.

Prakasa, Aditya Yudha 2018. ‘Dasar Pemrograman Java untuk


Pemula’, Bandung.

Prakasa, Aditya Yudha. 2018. Dasar Pemrograman Java untuk


Pemula. Bandung.

Pratiwi, E. L. (2020). Konsep Dasar Algoritma Dan Pemrograman


Dengan Bahasa Java. Poliban Press.

Prinz, Ulla Kirch & Prinz, Peter. (2002). A Complete Guide to


Programming in C++. USA : Jones and Bartlett Publishers.

Raharjo, B. 2004. Mengungkap Rahasia Pemrograman Dalam C++.


Bandung: Penerbit. Informatika.

Ritha, N. (2016). Kecerdasan Buatan Berbasis Problem Based


Learning. Kecerdasan Buatan Berbasis Problem Based
Learning, 1–85.

Rosen, K.H. (2012). Discrete mathematics and its applications (7th


edition). New York: McGraw Hill.

Sari, Y. (2017). Logika Algoritma, Pseudocode, Flowchart, dan C++.


Perahu Litera.

Siahaan, Vivian. 2019. Pemrograman C++ Untuk SMA/SMK dan


Mahasiswa. Jakarta: Sparta Publisher

Sianipar, R. H. 2012. Pemrograman C++ : Dasar Pemrograman


Berorientasi Objek. Yogyakarta: Penerbit. Andi.

Sianipar, R. H., & Mangiri. 2013. C++ Untuk Programmer. Bandung:


Penerbit. Informatika.

Sitorus, L. (2015). Algoritma dan pemrograman. Penerbit Andi.

BUKU AJAR LOGIKA & ALGORITMA 159


Stroustrup, Bjarne. 2014. Programming principle and practice using
C++. Amerika: Penerbit. Pearson education.

Utami, E., & Raharjo, S. (2004). Logika Algoritma dan


implementasinya dalam bahasa python di GNU/Linux.
Penerbit Andi.

Wahyono, Teguh 2020. ‘Dasar Pemrograman: Konsep dan


Implementasi dalam Bahasa Python’, Yogyakarta.

Wahyono, Teguh 2020. ‘Dasar Pemrograman: Konsep dan


Implementasi dalam Bahasa Python’, Yogyakarta.

Wahyono, Teguh. 2020. Dasar Pemrograman: Konsep dan


Implementasi dalam Bahasa Python. Yogyakarta.

BUKU AJAR LOGIKA & ALGORITMA 160


TENTANG PENULIS

Khairunnisa, S.Pd.,M.Cs., Seorang Penulis


dan Dosen Prodi Ilmu Komputer Universitas
Muhammadiyah Bima. Lahir di Bima, 01 Januari
1990, Nusa Tenggara Barat. Penulis
merupakan anak ke-11 dari sebelas bersaudara
dari pasangan bapak H. Umar (alm) dan Ibu
Kalisom (Almh). Ia menamatkan pendidikan
program Sarjana (S1) di Universitas Pendidikan
Indonesia Bandung prodi Pendidikan Ilmu
Komputer dan menyelesaikan program
PascaSarjana (S2) di Universitas Gadjah Mada
Yogyakarta Prodi Ilmu Komputer konsentrasi
Sistem Cerdas.

Nurhadi, S.Kom., M.Kom.


Penulis lahir di Bekasi, Jawa Barat bulan
Nopember 1978. Penulis menamatkan
pendidikan dasar dan menengah di Bekasi,
pendidikan terakhir S2 di universitas Budi Luhur
Jakarta Program studi Magister Ilmu Komputer.
Memulai karir sebagai IT sejak tahun 2002
sebagai Technikal Support, kemudian menjadi
network administrator. Karir di Programmer di
mulai sebagai programmer vb 6 dan beralih ke
programmer VB.Net dengan databases SQL
Server. Saat ini sebagai dosen di STMIK Pranata Indonesia dan
aktif sebagai SAP Abap Spesialist. Penulis merupakan anak ke-
empat dari enam bersaudara dari pasangan bapak Nisin
(Almarhum) dan dan Ibu Wati. Buku yang telah ditulis dan terbit
berjudul di antaranya: Buku ajar menggunakan Microsoft Visual
Studio dan SQL Server, Cyber Crime di Era Digital, KEAMANAN

BUKU AJAR LOGIKA & ALGORITMA 161


SISTEM INFORMASI: Prinsip Dasar, Teori, dan Rekayasa
Penerapan Konsep.
Penulis juga aktif membuat video pembelajaran, salah satunya
tentang pemrograman visual basic dan SQL server yang dapat di
lihat di channel youtube penulis di https://bit.ly/PDMVBSQL.

Andriyan Rizki Jatmiko, S.Si., M.Kom.


Seorang penulis dan dosen Prodi Sistem
Informasi Universitas Merdeka Malang. Lahir di
kota Malang, 29 April 1993 Jawa Timur. Penulis
merupakan anak Kedua dari dua bersaudara
dari pasangan bapak Andi Poerwanto dan Ibu
Sri Herdiyanti. Pendidikan program Serjana
(S1) Universitas Negeri Malang di Kota Malang
Prodi Matematika dan lulus pada tahun 2017
dan menempuh program Pasca Sarjana (S2) di
Institut Teknologi Sepuluh Nopember Surabaya
dengan prodi Sistem Informasi konsentrasi di bidang Sistem
Enterprise lulus pada tahun 2020. Bidang keahlian penulis meliputi
Audit dan Tata Kelola Sistem Informasi, Data Forensic, serta
Pemodelan dan simulasi sistem.

Legito, S.T., M.Kom


Seorang penulis dan Dosen Program Studi
Teknik Informatika Sekolah Tinggi Teknologi
Sinar Husni Deli Serdang Sumatera Utara. Lahir
di Medan, 29 September 1979. Penulis
merupakan anak ketiga dari empat bersaudara
dari pasangan bapak Alm. Nasrun dan Ibu
Satinem. ia menamatkan pendidikan program
Sarjana (S1) di Program Studi Teknik
Informatika Sekolah Tinggi Teknologi Sinar
Husni Deli Serdang Sumatera Utara dan menyelesaikan program
Pasca Sarjana (S2) di Universitas Sumatera Utara Fakultas Ilmu

BUKU AJAR LOGIKA & ALGORITMA 162


Komputer konsentrasi di bidang Komunikasi data dan Jaringan
Komputer. Buku yang telah ditulis dan terbit berjudul di antaranya:
Arsitektur dan Organisasi Komputer (Konsep dan Prinsip Dasar).
Pengantar Ilmu Komputer (Pengenalan Dasar Komputer dan
Teknologi Informatika Terkini) . Pengantar Teknologi Informasi
(Dasar-dasar, Konsep, dan Aplikasi).

Erwin Ardias Saputra, S.T., M.T. Penulis


merupakan dosen pada program studi Teknik
Elektro Fakultas Teknik Universitas Tadulako.
Lahir di Palu, 13 Maret 1992 Sulawesi tengah.
Penulis menyelesaikan sarjana di Jurusan
Teknik Elektro Universitas Tadulako dan
magister di Jurusan Teknik Elektro Institut
Teknologi Sepuluh Nopember Surabaya.
Penulis menyukai hal-hal yang berbau
teknologi seperti IoT dan AI.

Fizar Syafa’at, S.Kom., M.Kom.


Seorang penulis dan dosen tetap Prodi Sistem
Informasi Institut Teknologi dan Bisnis Kalla
Kota Makassar. Lahir di desa Ampibabo, 04
September 1994 Sulawesi Tengah. Penulis
merupakan anak Pertama dari tiga bersaudara
dari pasangan bapak Munajah Mashoro dan Ibu
Andi Mamas. Pendidikan program Serjana (S1)
Universitas Tadulako di Kota palu Prodi Teknik
Informatika dan lulus pada tahun 2017 dan
untuk program Pasca Sarjana (S2) di Institut Teknologi Sepuluh
Nopember Surabaya dengan prodi Sistem Informasi konsentrasi di
bidang Sistem Enterprise Menyelesaikan Sekolah pada tahun 2020.
Bidang keahlian penulis meliputi Artificial Intelligence, Pemodelan
Sistem Simulasi dan Teknologi Augmented dan Virtual Reality.

BUKU AJAR LOGIKA & ALGORITMA 163


Dewi Fatmarani Surianto, S.Kom., M.Kom
Seorang Dosen Prodi Teknik Komputer,
Jurusan Teknik Informatika dan Komputer,
Fakultas Teknik Universitas Negeri Makassar.
Lahir di Kota Makassar, penulis merupakan
anak keempat dari enam bersaudara. Ia
menempuh Pendidikan S1 Sarjana pada
Program Studi Informatika Universitas Bakrie di
tahun 2012 dan lulus di tahun 2016.
Selanjutnya, ia melanjutkan studi Magister pada
Program Studi Informatika Telkom University dan lulus pada tahun
2019. Penulis juga memulai karir Dosen di salah satu Perguruan
Tinggi Swasta, Kalla Institute pada tahun 2021. Sebelum memulai
karir sebagai Dosen, penulis mengerjakan beberapa projek
pengembangan web. Saat ini, penulis fokus, tertarik dan mendalami
salah satu bidang ilmu sistem cerdas yakni Natural Language
Processing.

Rita Komalasari, S.Si., M.Kom.


Penulis merupakan dosen tetap di
perguruan tinggi vokasi di Bandung. Saat
ini penulis sudah memiliki jabatan fungsional
akademik lektor, alumni dari Ilmu Komputer
Universitas Padjadjaran dan Sistem Informasi
STMIK LIKMI. Penulis aktif menjadi editor dan
reviewer jurnal nasional serta aktif dalam
menulis artikel di jurnal nasional maupun
internasional serta menjadi editor dan
penulis buku. Selain itu pula penulis aktif
sebagai pengurus Asosiasi Pendidikan Tinggi Informatika dan
Komputer (APTIKOM) Propinsi Jawa Barat, Perkumpulan Auditor
Teknologi Informasi dan Komunikasi Indonesia (PASTIKINDO).
Penulis memiliki kompetensi Information Technology Expert
Auditor, ICT Project Manager dan System Analyst.

BUKU AJAR LOGIKA & ALGORITMA 164


Iqbal Ramadhani Mukhlis, S.Kom., M.Kom.
Seorang penulis dan dosen tetap Prodi
Informatika Universitas Hayam Wuruk
Perbanas, Surabaya. Lahir di Surabaya, 05
Maret 1993. Penulis merupakan anak Kedua
dari lima bersaudara dari pasangan bapak
Sunan dan Ibu Mukhlis Sabariyah. Pendidikan
program Sarjana (S1) Universitas Dr. Soetomo
di Kota Surabaya Prodi Teknik Informatika dan
lulus pada tahun 2015 dan untuk program
Pasca Sarjana (S2) di Institut Teknologi
Sepuluh Nopember Surabaya dengan prodi
Sistem Informasi konsentrasi di bidang Sistem Enterprise
Menyelesaikan Sekolah pada tahun 2019. Bidang keahlian penulis
meliputi Programming, Pemodelan Sistem Simulasi, dan Bisnis
Digital

Sulistyowati, S.T., M.Kom.


Penulis lahir di Banyuwangi tanggal 5 April
1977. Penulis adalah dosen tetap pada Jurusan
Sistem Informasi Fakultas Teknik Elektro dan
Teknologi Informasi, Institut Teknologi Adhi
Tama Surabaya mulai tahun 2000 sampai
sekarang. Penulis menyelesaikan pendidikan
S1 pada Jurusan Teknik Informatika di Institut
Teknologi Adhi Tama Surabaya dan
melanjutkan pendidikan S2 pada Jurusan
Teknik Informatika di Institut Teknologi Sepuluh
Nopember Surabaya. Bidang riset penulis adalah di bidang Riset
Operasi, Rekayasa Perangkat Lunak, Sistem Pendukung
Manajemen, dan Pemrograman. Kritik dan saran yang membangun
dapat disampaikan melalui email sulis_tyowati@itats.ac.id.

BUKU AJAR LOGIKA & ALGORITMA 165


Teguh Ansyor Lorosae, S.Kom, M.Kom.
Seorang Dosen Tetap Program Studi Ilmu
Komputer Fakultas Ilmu Komputer Universitas
Muhammadiyah Bima. Lahir di Dili, 18
November 1995 di Timor Timur. Penulis
merupakan anak ke-tiga dari tiga bersaudara
dari pasangan bapak Ir. Abdullah dan Ibu Dra.
Eni Rohayati. Pada tahun 2016, penulis
menamatkan Pendidikan Program Sarjana (S1)
di STMIK Amikom Yogyakarta dengan mengambil Jurusan Sistem
Informasi. Kemudian menyelesaikan Program Pasca Sarjana (S2)
pada tahun 2020 di Universitas Amikom Yogyakarta dengan
mengambil Jurusan Teknik Informatika konsentrasi di bidang
Business Intelligence.

Neni Nur Laili Ersela Zain, S.Si.


Seorang mahasiswi Pascasarjana di Institut
Teknologi Sepuluh Nopember Surabaya pada
program studi Matematika Murni. Pendidikan
Sarjana (S1) di tempuh di Universitas Airlangga
Surabaya pada program studi yang sama.
Beberapa penelitian yang telah publish adalah
Pemodelan Matematika Terhadap Penyebaran
Virus Komputer Dengan Probabilitas Kekebalan
pada jurnal Alifmatika : Jurnal Pendidikan dan
Pembelajaran Matematika. The Simulation Study of Normality Test
Using Kolmogorov-Smirnov, Anderson-Darling, and Sapiro-Wilk
pada jurnal Eigen Mathematics Journal.

BUKU AJAR LOGIKA & ALGORITMA 166


Penerbit :
PT. Sonpedia Publishing Indonesia

Redaksi :
Jl. Kenali Jaya No 166
Kota Jambi 36129
Tel +6282177858344
Email: sonpediapublishing@gmail.com
Website: www.sonpedia.com

Anda mungkin juga menyukai