0% menganggap dokumen ini bermanfaat (0 suara)
420 tayangan67 halaman

Materi Pemrograman Dasar SMT 1

Pada semester ini mahasiswa akan mempelajari tiga materi pokok yaitu algoritma pemrograman, struktur data, dan pemrograman berorientasi objek. Materi algoritma pemrograman akan membahas konsep dan struktur algoritma serta pengenalan bahasa pemrograman.

Diunggah oleh

Dwi Kurniawati
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
420 tayangan67 halaman

Materi Pemrograman Dasar SMT 1

Pada semester ini mahasiswa akan mempelajari tiga materi pokok yaitu algoritma pemrograman, struktur data, dan pemrograman berorientasi objek. Materi algoritma pemrograman akan membahas konsep dan struktur algoritma serta pengenalan bahasa pemrograman.

Diunggah oleh

Dwi Kurniawati
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 67

Sekilas Tentang Materi Semester 1

Pada semester ini kita akan membahas 3 materi pokok :

Modul Pemrograman Dasar Page 1


Materi Pokok Bagian 1

Pada materi-materi semester 1


ini kalian akan mempelajari
berbagai konsep mengenai
algoritma dan pemrograman.

Kompetensi dasar :
 Memahami penggunaan data dalam algoritma dan konsep algoritma
pemrograman
 Menggunakan algoritma pemrograman untuk memecahkan permasalahan

Indikator :
 Mengetahui konsep algoritma
 Mengetahui struktur algoritma
 Mengenali algoritma menggunakan bahasa natural
 Mengenali variabel
 Mengenali tipe data
 Mengenali operator
 Mengetahui pseudocode dan flowchart

Tujuan:
 Siswa mampu mengetaui konsep algoritma
 Siswa mampu mengetahui struktur algoritma
 Siswa mampu mengenali algoritma menggunakan bahasa natural
 Siswa mampu memahami variabel
 Siswa mampu memahami tipe data
 Siswa mampu memahami operator
 Siswa mampu memahami pseudocode dan flowchart

Modul Pemrograman Dasar Page 2



I. Algoritma Pemrograman

Gambar 1.1 peta pikiran algoritma

Jadi setelah mencermati peta pikiran di atas


menurut kalian apa yang dimaksud dengan
algoritma dan pemrograman itu ?

……………………………………………………………………………

……………………………………………………………………………

……………………………………………………………………………

1.1 Konsep Algoritma

Jika kita membahas tentang algoritma tentu tidak akan lepas dari
pemrograman. Seperti yang kita ketahui saat ini pemrograman sudah menjadi
kegiatan yang sangat penting di era teknologi informasi saat ini. Berbagai macam

Modul Pemrograman Dasar Page 3


program yang ada saat ini baik program yang berjalan di komputer, desktop,
laptop, telepon genggam dan lainnya, tentu tidak tercipta begitu saja melainkan
melalui sebuah proses analisis dan perancangan yang tepat. Sebuah program
komputer pada dasarnya mengimplementasikan suatu algoritma. Jadi algoritma
adalah ide atau solusi dibalik program komputer apa pun.
secara sederhana algoritma adalah urutan langkah yang logis untuk
menyelesaikan masalah tertentu. Yang ditekankan adalah urutan langkah logis,
yang berarti algoritma harus mengikuti suatu urutan tertentu atau tidak boleh
melompat-lompat. secara definisi, algoritma adalah alur pemikiran logis yang
dapat dituangkan ke dalam bentuk tulisan. Dalam hal ini yang ditekankan adalah
alur pemikiran, sehingga algoritma seseorang dapat berbeda dengan algoritma
orang lain.
Kata algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-
Khwarizmi, ilmuwan persia yang menulis kitab Al Jabr W’al-muqalaba (Rules of
Restoration and Reduction) sekitar tahun 825 M, yang berasal dari Iran.
Algoritma kemudian masuk ke Indonesia bersamaan dengan masuknya teknologi
komputer ke Indonesia.

Ciri algoritma dan program yang baik :

Gambar 1.2 peta pikiran ciri algoritma dan program yang baik

1.1.1 Sistem Komputer


Suatu sistem komputer dapat bekerja karena terdapat tiga komponen yang
ada di dalamnya yaitu perangkat keras (hardware), perangkat lunak (software),
dan penggunan komputer (brainware) ketiganya saling berhubungan dan bekerja
sama sehingga hardware dapat diakses oleh brainware menggunakan software.

Perangkat keras Komputer Contoh:


 BASIC
 PASCAL
sistem operasi  FORTRAN
Perangkat lunak Bhs. Pemrograman  COBOL
Program aplikasi  C/C++/C#
 PROLOG
 LISP
Modul Pemrograman Dasar
Pengguna  Dsb. Page 4
Brainware

Gambar 1.3 hubungan tiga komponen pada sistem komputer

Karena algoritma lebih berfokus pada software maka akan dibahas lebih
detail mengenai software (program). Program adalah kumpulan instruksi
tersendiri yang biasa disebut source code. Kumpulan instruksi ini dibuat oleh
pembuat program. Jadi, program adalah kumpulan istruksi atau perintah yang
disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk
menyelesaikan suatu persoalan.

1.1.2 Masalah
Sebagai manusia pada dasarnya tentu kita tidak dapat lepas dari masalah
atau persoalan. Dan umumnya sebuah masalah tentu terdapak aktivitas yang dapat
dilakukan untuk menyelesaikannya.

Masalah adalah pertanyaan atau tugas yang kita cari jawabannya

Sebuah masalah harus diselesaikan dengan sebuah solusi. Masih ingat


hubungan antata solusi dengan algoritma di bagian pengenalan? Ya kita dapat
menyelesaikan berbagai masalah dengan solusi atau algoritma. Algoritma
tersebut harus dipikirkan secara logika di pikiran manusia dengan pemikiran yang
lebih mudah dimengerti agar dapat lebih mudah dimengerti oleh manusia dan data
dengan mudah dipetakan menjadi bahasa pemrograman untuk dieksekusi oleh
komputer.

Contoh beberapa masalah dalam kehidupan sehari-hari misalnya:


a. Diberikan setumpuk kartu pasien disebuah tempat praktek dokter yang
tersusun acak. Setiap kartu empunyai nomor registrasi pasien. Bagaimana
mengurutkan kartu-kartu tadi berdasarkan nomor urut pasien sehingga
tersusun nomor kecil di atas dan nomor besar di bawah? jawaban dari masalah
ini adalah barisan kartu pasien yang sudah terurut dari kecil ke besar.
b. Diberikan sebuah daftar yang berisi nama-nama mahasiswa baru yang
diterima disebuah perguruan tinggi. Daftar tersebut hanya berisi nomor peserta
ujian yang diterima. Carilah apakah seorang calon mahasiswa baru yang
nomor peserta ujiannya diketahui terdapat di dalam daftar tersebut? jawaban
dari masalah ini adalah “ya” jika nomor tersebut ditemukan di dalam daftar,
atau “tidak” jika tidak terdapat di dalam daftar.

Tentu masih banyak lagi masalah yang ada untuk dicari solusi
permasalahannya. Dari masalah yang muncul dalam dunia nyata banyak memiliki
kemiripan substansi. Oleh karena itu, secara generic kita sering mendeskripsikan
masalah-masalah yang muncul dengan menggunakan beberapa ukuran
(parameter).

Modul Pemrograman Dasar Page 5


1. 1.2
StrukturStruktur
Algoritma Algoritma

1.2.1 Pernyataan
Sebuah algoritma merupakan deskripsi langkah-langkah pelaksanaan suatu proses.
Setiap langkah di dalam algoritma dinyatakan dalam pernyataan (statement) atau
juga disebut dengan instruksi.

Gambar 1.4 pernyataan, proses dan aksi

Sebagai contoh:
Misalkan di dalam sebuah algoritma terdapat pernyataan:

Tulis “Hello, world”

Maka pernyatan tersebut menggambarkan aksi penulis pesan “Hello, world” .

Pernyataan :

Tambahkan a dengan 5

Maka pernyataan tersebut akan menggambarkan aksi menambahkan a dengan 5


dan hasil penjumlahan disimpan dalam peubah a lagi.

Pernyataan :

Jika hari = ‘senin’ maka tampilkan “masuk sekolah = 07.45”

Terdiri dari dua aksi, yaitu membandingkan nilai variabel hari dengan ‘senin’,
dan aksi menampilkan ‘masuk sekolah = 07.45’ jika perbandingan itu benar.

1.2.2 Konstruksi Dasar


Algoritma secara umum memiliki bentuk dasar, yaitu :
a. Runtunan (sekuensial)
Algoritma runtunan (sekuensial) banyak dijumpai pada kehidupan sehari-hari.
Algoritma ini terdiri dari satu atau lebih pernyataan, setiap pernyataan ditulis
dalam satu baris atau dipisahkan dengan tanda titik koma. Tiap pernyataanya
dikerjakan secara berurutan sesuai dengan urutannya di dalam teks algoritma.

Contoh kasus:
Ibu susi yang hendak memasak kentang, langkah-langkah yang dilakukannya
adalah sebagai berikut:

Modul Pemrograman Dasar Page 6


1. Ibu Susi mengambil kantong kentang dari dalam rak
2. Ibu Susi mengambil panci dari dalam almari
3. Ibu Susi mengupas kentang
4. Susi mengembalikan sisa kentang dalam kantong ke dalam rak
5. Ibu Susi memasak kentang
6. Ibu Susi menghidangkan kentang yang sudah masak

Pada prinsipnya algoritma sekuensial


adalah alur pemikiran yang terstruktur,
terurut, pasti dan jelas untuk
menyelesaikan masalah. Dalam algoritma
ini terkadang adalangkah yang tidak
boleh ditukar urutannya

b. Pemilihan
Di dalam sebuah algoritma kadang kala terdapat sebuah instruksi yang
dikerjakan jika pada kondisi tertentu dipenuhi atau algoritma yang digunakan
untuk memilih salah satu dari beberapa pilihan yang ada, ini disebut algoritma
pemilihan atau percabangan.

Gambar 1.5 peta pikiran algoritma pemilihan

Contoh kasus:
Masih ingat dengan kasus Ibu Susi yang memasak kentang, pada kasus ini
memungkinkan terjadinya algoritma percabangan, jika langkah algoritmanya
kita tambahkan sebagai berikut:
1. Ibu Susi mengambil kantong kentang dari dalam rak
2. Ibu Susi mengambil panci dari dalam almari
3. Menurut kebiasaan Ibu Susi, pada hari biasa menggunakan baju warna
cerah sehingga dia harus menggunakan celemek. Pada hari Sabtu dan
Minggu dia menggunakan baju gelap. Maka perlu diperhatikan, sebelum
mengupas kentang, apakah Ibu Susi memakai celemek atau tidak.
4. Ibu Susi mengupas kentang
5. Ibu Susi mengembalikan sisa kentang dalam kantong ke dalam rak
6. Ibu Susi memasak kentang

Modul Pemrograman Dasar Page 7


7. Ibu Susi menghidangkan kentang yang sudah masak

Pada langkah ke-3 juga terdapat algoritma


pemilihan jika pada hari biasa Ibu Susi harus
memakai celemek, sedangkan pada hari sabtu dan
minggu tidak perlu karena bajunya tidak mudah
kotor. Ini artinya algoritma percabangan adalah
algoritma dimana programmer harus memilih
langkah yang harus dia lakukan berdasarkan
kondisi tertentu

c. Pengulangan
Dalam penullisan program pengulangan sangat penting, karena pemrogram
(programmer) tidak perlu menuliskan perintah berkali-kali ketika menginginkan
perintah yang sama.

Contoh kasus:
Pada kasus Ibu Susi memasak kentang, suatu ketika Ibu Susi menerima pesanan
memasak kentang, sehingga mengharuskan Ibu Susi memasak kentang yang
cukup banyak sesuai pesanan, dalam hal ini misalnya sejumlah 20 kentang.
Berdasarkan kasus baru kali ini akan diformulasikan kembali langkah-langkah
yang harus dikerjakan Ibu Susi, yaitu:
1. Ibu Susi mengambil kantong kentang dari dalam rak
2. Ibu Susi mengambil panci dari dalam almari
3. Menurut kebiasaan Ibu Susi, pada hari biasa menggunakan baju warna cerah
sehingga dia harus menggunakan celemek. Pada hari Sabtu dan Minggu dia
menggunakan baju gelap. Maka perlu diperhatikan, sebelum mengupas
kentang, apakah Ibu Susi memakai celemek atau tidak.
4. Ibu Susi mengupas kentang. Karena harus mengupas sebanyak 20 buah
kentang maka langkah ini akan diulangi sebanyak 20 kali
5. Ibu Susi mengembalikan sisa kentang dalam kantong ke dalam rak
6. Ibu Susi memasak kentang
7. Ibu Susi menghidangkan kentang yang sudah masak

Algoritma perulangan berarti terdapat satu atau


lebih kejadian yang harus diulang terus-menerus
sampai kondisinya tidak terpenuhi lagi

Modul Pemrograman Dasar Page 8


1.3 Penulisan Algoritma

Gambar 1.6 peta pikiran penulisan algoritma

Dari peta pikiran di atas dapat diketahui bahwa terdapat 3 cara penulisan
algoritma yaitu algoritma menggunakan bahasa natural, menggunakan
pseudocode, dan menggunakan flowchart.

1.3.1 Algoritma menggunakan bahasa natural

Sebagai manusia tentu kita akan mampu mengerti dan menjalankan prosedur
dalam membuat mie instan ketika membaca prosedur pembuatannya di belakang
bungkusnya, lalu bagaimana ketika kita menginginkan komputer mengerti
langkah-langkah yang kita inginkan sehingga menghasilkan hasil yang kita mau.
Ketika kita menginginkan sebuah komputer menjalankan perintah yang kita
inginkan maka kita harus memberikan perintah dengan langkah-langkah solusi
menggunakan bahasa yang dimengerti oleh komputer yang dikemas dalam bentuk
program komputer.

Algoritma dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami. Algoritma dapat ditulis dalam bahasa natural/bahasa sehari-hari (seperti
bahasa Indonesia, bahasa Inggris, dan lain-lain), contohnya adalah sebagai
berikut:

Modul Pemrograman Dasar Page 9


a. Algoritma memilih bilangan terbesar dari 3 buah bilangan :
1. Ambil bilangan pertama dan simpan nilai bilangan pertama tersebut ke
variabel maks.
2. Ambil bilangan kedua dan bandingkan nilainya dengan maks. Jika
bilangan kedua lebih besar dari maks, simpan nilai bilangan kedua ke
variabel maks.
3. Ambil bilangan ketiga dan bandingkan nilainya dengan maks. Jika
bilangan ketiga lebih besar dari maks, simpan nilai bilangan ketiga ke
variabel maks.
4. Tampilkan nilai dari variabel maks (yang merupakan bilangan terbesar).

b. Algoritma mengirim surat kepada teman :


1. Tulis surat pada secarik kertas surat
2. Ambil sampul surat atau amplop
3. Masukkan surat ke dalam amplop
4. Tutup amplop surat dengan lem perekat
5. Tulis alamat surat yg dituju, jika tdk ingat, lebih dahulu ambil buku alamat
dan cari alamat yg dituju, lalu tulis alamat tersebut pada amplop surat.
6. Tempelkan perangko pada amplop surat
7. Bawa surat ke kantor pos untuk diserahkan pada pegawai pos atau menuju
ke bis surat untuk memasukkan surat ke dlm kotak/bis surat.

c. Algoritma memasak mie instan.


1. Rebus air hingga mendidih.
2. Masukkan mie instan ke dalam air mendidih tersebut.
3. Tunggu beberapa hingga mie terlihat matang.
4. Jika mie sudah dirasa matang, angkat dan tiriskan.
5. Campurkan bumbu-bumbu, dan aduk hingga rata

d. Algoritma menghitung sisi miring segitiga siku - siku.


1. Masukkan nilai sisi a
2. Masukkan nilai sisi b
3. Hitung nilai
4. Hitung nilai c
5. Tampilkan nilai c

Pada dasarnya tidak ada notasi yang baku


dalam penulisan algoritma. Setiap orang
dapat membuat aturan penulisan dan
notasinya sendiri. Notasi yang digunakan
dalam menulis algoritma disebut dengan
notasi algoritmik.

Modul Pemrograman Dasar Page 10


LATIHAN :
Buatlah sebuah contoh kasus dan algoritma penyelesaiannya !!

Modul Pemrograman Dasar Page 11


1.3.2 Pseudocode

Gambar 1.7 peta pikiran pseudocode

Pseudocode berbeda dengan flowchart. Jika flowchart menggunakan simbol-


simbol berbentuk gambar untuk menjelaskan akur logika berpikir sehingga dapat
digunakan untuk membuat atau menjelaskan suat program, pseudocode
menggunakan bahasa (biasanya bahasa Inggris) sehingga tidak berupa gambar
lagi. Namun keduanya tetap memiliki tujuan yang sama, yaitu membantu
menuangkan alur pemikiran ke dalam bentuk tertulis sehingga dapat digunakan
untuk membuat atau menjelaskan program.

Berikut adalah peta pikiran yang memperjelas perbedaan antara flowchart


dan pseudocode.

Gambar 1.8 peta pikiran perbedaan algoritma, flowchart dan pseudocode

Modul Pemrograman Dasar Page 12


Perbedaan notasi Algoritma dan Pseudocode
Algoritma Pseudocode
Nilai A ditambah dengan 5 A  A+5
Cetak nilai A bila lebih besar dari IF > 10 THEN PRINT A
10
Dari dua bilangan A dan B, cari IF A > THEN PRINT A ELSE PRINT
bilangan yang terbesar B
Tabel 1.1 perbedaan notasi algoritma dan pseudocode

Penggunaan Dan Notasi Pseudocode

Berikut akan dijelaskan contoh penggunaan pseudocode. Contoh


penggunaan pseudocode adalah kasus mencari bilangan terbesar dari dua bilangan
yang dimasukkan.

Contoh algoritma untuk mengetahuibilangan terbesar dari dua buah bilangan:


Algoritma Pseudocode
1. Masukkan bilangan Input a
pertama

2. Masukkan bilangan kedua Input b

3. Jika bilangan pertama > IF a > b THEN DO step 4


bilangan kedua maka
kerjakan langkah 4. Jika
tidak, kerjakan langkah 5
4. Tampilkan bilangan Print a
pertama.

5. Tampilkan bilangan kedua Print b

Tabel 1.2 penggunaan notasi algoritma dan pseudocode

Contoh lain penggunaan pseudocode :


Contoh algoritma mencari luas persegi panjang
Algoritma Pseudocode
1. Masukkan panjang Input panjang

2. Masukkan lebar Input lebar

3. Nilai luas adalah panjan x Luas  panjang x lebar


lebar
4. Tampilkan luas Print Luas

Tabel 1.3 contoh penggunaan notasi algoritma dan pseudocode

Modul Pemrograman Dasar Page 13


Pseudocode juga menggunakan notasi tertentu yang bersifat umum. Namun tidak
semua botasi dalam pseudocode bersifat universal karena belum terstandarisasi.
Ada beberapa konvensi yang bisa diikuti, sebagai berikut:

Simbol Bahasa Inggris Penjelasan Simbol Dalam Bahasa


Pemrograman
ab gets Pemberian nilai dari a =
ke b
a ˅ b and Operator logika &&
antara a dan b
a ˄ b or Operator logika ||
antara a or b
¬a not Negasi dari a !
a=b is equal to Apakah a equal ==
dengan b
a≠b is not equal to Apakan a tidak equal !=
dengan b
a<b is less than Apakah a kurang dari <
b
a≤b is less than or Apakah a kurang dari <=
equal to sama dengan b
a>b is greater than Apakah a lebih besar >
dari b
a≥b is greater than or Apakah a lebih besar >=
equal to dari sama dengan b
a≈b approximately a hampir sama dengan N/A
b
⌈a⌉ ceiling Mengambil nilai ceil()
integer terbesar dari
pembulatan ke atas
⌊a⌋ floor Mengambil nilai floor()
integer terkecil dari
pembulatan ke bawah
aϵA element of a adalah anggota Tidak ada
himpunan A
A ⊆B subset Jimpunan A adalah Tidak ada
anggota himpunan B
A⊂B proper subset Himpunan A adalah Tidak ada
proper subset dari
himpunan B
Tabel 1.4 simbol-simbol penggunaan pseudocode

Modul Pemrograman Dasar Page 14


pseudocode bukan merupakan kode program yang
ditulis mengunakan bahasa pemrograman tertentu,
melainkan kode simbol yang membuat alur pemikiran
programmer dapat ditulis dengan mudah ke dalam
bahasa pemrograman tertentu. Namun tujuan
pseudocode dan flowchart hampir sama, yaitu sebagai
sarana menuangkan pemikiran programmer ke dalam
bentuk yang lebih mudah dipahami.

1.3.3 Flowchart
a. Pengertian Flowchart (diagram alir)
Sedikit mengingat tentang pengertian algoritma yang dibahas pada materi
sebelumnya, algoritma adalah suatu urutan atau alur pemikiran seseorang yang
harus dapat dituangkan secara tertulis. Salah satu caranya adalah dengan
menggunakan simbol-simbol yang memang sudah standar pada dunia
pemrograman komputer. Gambar atau simbol tersebut disebut dengan flowchart.
Dengan menggunakan flowchart (diagram alir) maka seorang programmer
dapat memberikan idenya secara tertulis sehingga dapat dipahami oleh
programmer lain, oleh klien atau oleh tim kerjanya.

b. Fungsi flowchart
Secara umum flowchart berfungsi untuk dua keperluan, yaitu:

Gambar 1.9 peta pikiran fungsi flowchart

Modul Pemrograman Dasar Page 15


c. Penggunaan flowchart
Mengingat pengertian flowchart sebelumnya bahwa flowchart merupakan
alur pemikiran yang dituangkan ke dalam bentuk gambar/simbol. Dengan
demikian perlu dipelajari terlebuh dahulu bentuk-bentuk gambar/simbol standar
beserta fungsinya masing-masing. Berikut adalah table simbol-simbol flowchart:

Simbol Nama Fungsi


TERMINATOR Permulaan/akhir program

GARIS ALIR Arah aliran program


(FLOW LINE)
PREPARATION Proses inisialisasi /
Pemberian harga awal

PROSES Proses perhitungan/


Proses pengolahan data

INPUT/OUTPUT DATA Proses input/output data,


parameter, informasi

PREDEFINED Permulaan sub program/


PROCESS proses menjalankan sub
(SUB PROGRAM) program

DECISION Perbandingan pernyataan,


penyeleksian data yang
memberikan pilihan
untuk langkah
selanjutnya

ON PAGE Penghubung bagian-


CONNECTOR bagian flowchart yang
berada pada satu halaman

Modul Pemrograman Dasar Page 16


OFF PAGE Penghubung bagian
CONNECTOR bagian flowchart yang
berada pada halaman
berbeda

Tabel 1.5 simbol-simbol menggunakan flowchart

Modul Pemrograman Dasar Page 17


d. Kaidah pembuatan flowchart:

START Merupakan awal dari kegiatan

READ Merupakan perintah untuk membaca data dari suatu alat


input

Merupakan kegiatan pemecahan masalah sesuai dengan


PROSES
persoalan

WRITE
Merupakan perintah untuk menampilkan hasil proses

END Mengakhiri kegiatan pengolahan

e. Pedoman pembuatan flowchart:

Gambar 1.10 pedoman pembuatan flowchart

Modul Pemrograman Dasar Page 18


f. Beberapa contoh flowchart :

Algoritma menghitung keliling dan luas lingkaran

Algoritma ini merupakan algoritma sekuensial biasa, dimana pengguna harus


memasukkan jari-jari lingkaran, dilanjutkan dengan penghitungan luas dan
keliling sesuai rumus. Yang perlu diperhatikan adalah simbol-simbol flowchart
harus digunakan sesuai fungsi masing-masing.

Start

Input jari-jari
(r)

Luas 3.14*r*r

Keliling2*3.14*r

Stop

Modul Pemrograman Dasar Page 19


Algoritma pencari bilangan terbesar dari 3 bilangan

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

Start

Input bilangan a,b,c

yes
a>b && a>c Bilangan terbesar= a

no
yes

b>a && b>c Bilangan terbesar= b

no yes

c>a && c>b Bilangan terbesar= c

no
Stop

Modul Pemrograman Dasar Page 20


Algoritma mencari jalan pulang aman

Algoritma ini sering ditemui pada kehidupan sehari-hari dimana pengguna sering
bertemu dengan pilihan/alternatif pada dunia nyata. Pada algoritma ini harus
diketahui jam pulang kantor terlebih dahulu dan kemudian dari jam tersebut baru
dapat ditentukan berdasarkan kondisi yang lain seperti cuaca dan kemacetan lalu
lintas pada jam sibuk kantor. Masing-masing alternatif bisa dipilih oleh pengguna.

Start

Jam pulang kantor

Cuaca cerah

Jam <5 sore

Jalur utama macet

Jalur alternatif B Jalur utama Jalur alternatif A

Sampai dirumah dengan aman

Stop

Modul Pemrograman Dasar Page 21


Algoritma menampilkan 10 bilangan asli pertama

Algoritma mengunakan perulangan untuk mengulang setiap bilangan asli yang


ditemukan. Bilangan asli adalah bilangan yang dimulai dari 1 hingga N, semuanya
positif. Cara menampilkan bilangan asli adalah dengan melakukan inisialisasi
variabel pencacah (counter) dengan nilai 1, kemudian dilakukan perulangan
secara terus-menerus dimana setiap perulangan akan menambah nilai pencacah
dengan angka satu lalu ditampilkan ke layar monitor.

start

X 1

X <= 10 no

yes
Output x

x x +1

Stop

Modul Pemrograman Dasar Page 22


Eksperimen/explore:

Studi kasus, buatlah algoritma dan pseudocode :


1. Kejadian login ke www.facebook.com
2. Kejadian memesan makanan
3. Kejadian setor uang di bank

………………………………………………………………………………

Modul Pemrograman Dasar Page 23


Ubahlah diagram flowchart di bawah ini menjadi pseudocode
1. Flowchart perhitungan jumlah ratusan, puluhan, dan satuan dari sebuah
angka (contoh if tidak bertingkat)

2. Flowchart perhitungan jumlah ratusan, puluhan, dan satuan dari sebuah angka
(contoh if tidak Flowchart bonus yang bisa didapatkan dari pembelian barang
tertentu (contoh if bertingkat)bertingkat)

Modul Pemrograman Dasar Page 24


1.6. Pengenalan tipe data

Nah.. setelah ini kita akan mempelajari


berbagai macam tipe data. Kira kira apa dan
bagaimana ya?

Gambar 1.11 peta pikiran tipe data

Dari peta pikiran di atas dapat disimpulkan bahwa tipe data adalah suatu jenis
nilai yang dapat dinyatakan dalam bentuk konstanta atau variabel dan operator
yang dapat digunakan untuk mendefinisikan objek data yang akan dimanipulasi
dalam sebuah program. Serta terdapat 2 jenis tipe data yaitu tipe data dasar
(primitive data type) dan tipe data bentukan (defined data type).

Modul Pemrograman Dasar Page 25


1.6.1 Tipe Data Bilangan
a. Bilangan Bulat

Gambar 1.12 peta pikiran bilangan bulat

Berikut adalah contoh penulisan variabel dengan menggunakan bahasa algoritmik,


dan bahasa pemrograman C.

Bahasa Algoritmik Bahasa C


bilangan : integer int bilangan;
bilangan <- 1 bilangan = 1;
Tabel 1.6 penulisan variabel dengan menggunakan bahasa algoritmik, dan bahasa
pemrograman C

b. Bilangan Riil (floating point)

Gambar 1.13 peta pikiran bilangan riil

Modul Pemrograman Dasar Page 26


Bilangan riil biasa digunakan untuk menyatakan bilangan yang membutuhkan
ketelitian dengan adanya nilai di belakang koma.

Berikut adalah cara mendeklarasikan bilangan riil dengan menggunakan bahasa


algoritmik dan bahasa pemrograman C:

Bahasa Algoritmik Bahasa C


nilai : real float nilai;
nilai <- 5.02 nilai = 5.02;
Tabel 1.7 mendeklarasikan bilangan riil dengan menggunakan bahasa algoritmik
dan bahasa pemrograman C

1.6.2 Tipe Data Teks


a. Karakter

Karakter atau biasa ditulis char pada pemrograman merupakan tope data untuk
menyimpan sebuah karakter atau gabungan karakter yang merepresentasikan
sebuah karakter.
Contoh karakter-karakter sebagai berikut:
Karakter Keterangan
\0 Karakter null (kosong)
\n Karakter newline (pindah baris)
\” Karakter tanda petik (“) agar tidak rancudengan pernyataan
string maka diberi tanda scape ‘\’
\’ Karakter tanda petik satu (‘) agar tidak rancu dengan
pernyataan karakter maka diberi tanda escape ‘\’
\\ Karakter backslash agar tidak rancu dengan tanda escape ‘\’
\? Karakter tanda tanya (?)
Tabel 1.8 contoh karakter

Penulisan nilai sebuah karakter dinyatakan di dalam dua buah tanda petik satu (‘)
sebagai berikut:
Bahas algoritmik Bahasa C
karakter ; char char karakter
karakter <- ‘A’ karakter = ‘A’;
karakter <- ‘?’ karakter = ‘?’;
karakter <- ‘2’ karakter = ‘2’;
Tabel 1.9 penulisan nilai sebuah karakter

Tipe data karakter tidak dapat dilakukan operasi aritmatika (tambah, kurang,
kali, bagi).

Modul Pemrograman Dasar Page 27


Operasi yang dapat dilakukan pada tipe karakter adalah operasi perbandingan.
Operator perbandingan yang berlaku untuk tipe karakter adalah:
Operator Keterangan
= Sama dengan
≠ Tidak sama dengan
< Kurang dari
> Lebih dari
≥ Lebih dari atau sama dengan
Tabel 1.10 operasi pada tipe karakter
Contoh:
‘a’ = ‘a’ Hasil : true
‘B’ = ‘b’ Hasil : false
‘C’ ≠ ‘ c’ Hasil : true
‘m’ < ‘z’ Hasil : true
‘Q’ > ‘Z’ Hasil : false

b. String
String adalah tipe data yang berupa kumpulan karakter (satu atau lebih) yang
berada di dalam dua buah tanda petik dua (“) dalam bahasa C dan tanda petik satu
(‘) dalam bahasa Pascal. Dalam aplikasinya dalam bahasa pemrograman biasanya
tipe string hanya dapat memuat karakter sebanyan 1 sampai 256 karakter.

Bahasa Algoritmik Bahasa C


kata : string char kata[4];

untuk mengisi variabel kata adalah


sebagai berikut :

kata[0] = ‘a’;
kata[1] = ‘+’;
kata[2] = ‘+’;
kata[3] = ‘\0’;

kata <- “ini adalah string” char kata[] = “ini adalah


string”

Banyak karakter tidak perlu ditulis


karena variabel kata langsung diisi
nilainya sehingga tempat yang
disediakan langsung disesuaikan
dengan panjang karakter di dalam
kumpulan karakter yang diisikan pada
variabel,hal ini hanya berlaku jika isi
variabel langsung diisikan pada saat
variabel di deklarasikan

Modul Pemrograman Dasar Page 28


Juga dapat ditulis dengan:

char* kata =”ini adalah


string”
Tabel 1.11 penjelasan string dengan bahasa algoritmik dan bahasa C

Representasi string pada bahasa pemrograman C


Pada bahasa apemrograman C tidak mengenal tipe string secara tersendiri, dalam
pemrograman bahasa C string dianggap sebagai sebuah tabel 1 x banyaknya
karakter yang dalam penyimpanannya diakhiri dengan karakter null (kosong)
sebagai tanda berakhirnya string oleh compiler.

‘b’ ‘a’ ‘h’ ‘a’ ‘s’ ‘a’ ‘‘ ‘C’ ‘\0’

Isi dari representasi penyimpanan string pada gambar diatas adalah “bahasa C”
dimana pada saat compiler membaca kose tersebut, maka compiler akan berhenti
membacanya sebagai string saat ditemukan karakter null (‘\0’) [ada tabel
penyimpanan string. Jika karakter null (‘\0’) tidak ditemukan oleh compiler
sampai pada ruang tabel dengan indeks yang terakhir maka akan terjadi peringatan
kesalahan (error).

Untuk representasi string yang menggunakan


char kata[] = “bahasa C”;
dan
char* kata = “bahasa C”;

tanda berhenti sedah didefinisikan oleh compiler secara otomatis, maka


penyimpanan karakter pada string-nya akan menjadi:

‘b’ ‘a’ ‘h’ ‘a’ ‘s’ ‘a’ ‘‘ ‘C’ ‘\0’

Modul Pemrograman Dasar Page 29


1.6.3 Tipe Data Boolean
a. Bilangan lojik ( boolean )

Gambar 1.14 peta pikiran bilangan lojik(boolean)

Boolean adalah sebuah tipe data untuk menyatakan pernyataan benar (true) atau
salah (false). Sehingga tipe data ini hanya dapat diisi dengan dua buah nilai yaitu
true dan false. Tipe data boolean biasanya digunakan sebagai penanda apakah
sebuah proses telah selesai dilakukan atau belum, misalnya sebagai berikut:

Bahasa manusia Bahasa algoritmik


Belajar pemrograman belum belajar_pemrograman : boolean
dilakukan belajar_pemrograman <- false
Belajar pemrograman sudah belajar_pemrograman : boolean
dilakukan belajar_pemrograman <- true
Tabel 1.12 penjelasan tipe data boolean
Cara deklarasi tipe data boolean :
Bahasa algoritmik Bahasa C
belajar_pemrograman : boolean int belajar_pemrograman
belajar_pemrograman <- true belajar_pemrograman = 1;
belajar_pemrograman <- false belajar_pemrograman = 0;
Tabel 1.13 deklarasi tipe data boolean

Bahasa pemrograman C tidak mengenal tipe data boolean


namun ada beberapa compiler yang mengenali tipe bool
sebagai pengganti boolean. oleh karena itu, secara umum
boolean pada bahasa C menggunakan angka integer
dimana 0 berarti false dan jika diisi nilai 1 berart true.

Modul Pemrograman Dasar Page 30


a. Tipe dasar yang diberi nama tipe baru
Tipe ini adalah nama baru yang diberikan kepada suatu tipe dasar. Hal ini
dilakukan untuk memudahkan pembacaan program dan pemahaman.
Tipe bentukan ini yakni membuat tipe dasar dengan kata kunci type

Contoh :

Type
Bilangan_Bulat : Integer;
Var
x : Bilangan_Bulat;

Bila variabel x bertipe Bilangan_Bulat maka variabel x bertipe integer

b. Tipe Terstruktur

Gambar 1.15 peta pikiran tipe terstruktur

Secara logika tipe terstruktur dapat dilogikakan sebagai sebuah kantong dari satu
kotak atau lebih, atau bahkan di dalamnya juga mengandung kantong lagi.
Atau dapat kita logikakan sebagai membuat sebuah jenis, misalkan jenis manusia,
maka memiliki tangan, kaki, kepala, dan bagian lainnya.

Lebih jelasnya lihat contoh pendeklarasian berikut, misalnya tipe data pukul yang
terdiri dari jam, menit, dan detik :

Logika pemikiran Bahasa algoritmik


Jenis/tipe pukul adalah sebuah
wadah yang memiliki kotak jam, tipe
kotak menit, dan kotak detik
yang dapat diisi. pukul : <
jam :integer,
menit :integer,
detik :integer
jam menit >

detik

Modul Pemrograman Dasar Page 31


Bahasa algoritmik Bahasa C

tipe typedef struct{

pukul : < Int jam;


jam :integer, Int menit;
menit :integer, Int detik;
detik :integer
> }pukul;
Tabel 1.14 deklarasi tipe terstruktur

1.7 Pengenalan Operator

Operator adalah simbol atau tanda yang jika diletakkan pada dua buah operan
dapat menghasilkan sebuah hasil. Misalkan tanda (+) jika diletakkan diantara dua
buah angka akan menghasilkan nilai dari penjumlahan kedua angka tersebut.
Operator memiliki beberapa jenis :

Gambar 1.15 peta pikiran jenis operator

Dalam bab ini kita akan mempelajari operator yang dapat digunakan dalam
perograman antara lain:

1.7.1 Operator Aritmetik

Operator aritmetik adalah operator biasa yang digunakan dalam matematika,


misalnya operator penjumlahan(+), operator pengurangan (-), dan lain sebagainya.
berikut beberapa operator aritmetik yang digunakan dalam operasi-operasi
pemrograman:
Keterangan Tipe data Tipe data Bahasa Bahasa C
operator operan hasil algoritmik
Operator integer integer * *
perkalian real real Contoh: Contoh:
2*5 2*5
Operator integer integer / /
pembagian real real Contoh: Contoh:
2/5 2/5

Modul Pemrograman Dasar Page 32


Untuk integer integer div (int) x/y
operasi Contoh:
pembagian 5 div 3
dua buah
operan,
untuk div
menghasilkan
bilangan
bulat hasil
tanpa koma.
(misal: 5 div 3
hasilnya 1)
Operator sisa integer integer mod %
pembagian Contoh: Contoh:
(modulo) 5 mod 3 5 % 3

(operator
untuk dua
buah operan
yang
menghasilkan
sisa
pembagian
misal 5 mod 3
hasilnya 2,
karena 5
dibagi 3
secara utuh
akan
menghasilkan
1 buah 3 dan
sisa
pembagian
adalah 2
Operator integer integer + +
penjumlahan real real Contoh: Contoh:
2+5 2+5
Operator integer integer - -
pengurangan real real Contoh: Contoh:
3-2 3-2
Tanda minus integer integer - -
real real Contoh: Contoh:
-5 -5
Tabel 1.15 macam-macam operasi aritmatika

Modul Pemrograman Dasar Page 33


Dalam bahasa C Dalam bahasa C
i = i +1 i = i - 1
Dapat disingkat menjadi Dapat disingkat menjadi
i++ i--

Dan Dan
i = i + 2 i = i - 2
dapat disingkat menjadi dapat disingkat menjadi
i+ = 2 i- = 2

Operator Relasi
Operator relasi adalah operator yang biasa digunakan untuk membandingkan dua
buah nilai, misalnya : a > b

Berikut beberapa operator relasi yang dapat digunakan dalam pemrograman:


Keterangan Operator Bahasa Algoritmik Bahasa C
operator sama dengan = ==
(=) contoh: contoh:
a=b a == b
operator tidak sama <> !=
dengan contoh: contoh:
a <> b a != b
operator lebih dari (>) > >
contoh: contoh:
a>b a>b
operator kurang dari < <
(<) contoh: contoh:
a<b a<b
operator lebih dari ≥ >=
sama dengan (≥) contoh: contoh:
a≥b a >= b
operator kurang daari ≤ <=
sama dengan (≤) contoh: contoh:
a≤b a <= b
Tabel 1.16 macam-macam operator relasi

operator relasi biasanya digunakan untuk menyatakan


sebuah kondisi dan menghasilkan nilai benar (1) dan salah
(0) misalkan kondisi dalam ungkapan berikut:

bahasa manusia bahasa algoritmik


jika a = b if a = b then
maka tulis output(“a sama dengan
“a sama dengan b” b”)

Modul Pemrograman Dasar Page 34


1.7.2 Operator Logika Boolean

Operator logika boolean adalah operator yang biasa digunakan untuk mengaitkan
dua buah ungkapan kondisi menjadi sebuah kondisi, biasanya digunakan untuk
melogikakan dua atau lebih kondisi.

operator –operator logika boolean yang biasa digunakan dalam pemrograman


sebagai berikut:
Keterangan Operator Bahasa Bahasa C
Algoritmik
operator dan and &&
Contoh: Contoh:
(operator logika yang (a > b)and(a (a > b)&&(a !=
menyatakan logika dan) <>b ) b)
Keterangan:
B: benar
S: salah
ungkapan ungkapan hasil
kondisi 1 kondisi 2 operator
logika
dan
B B B
B S S
S B S
S S S

Operator atau or ||
Contoh: Contoh:
(operator logika yang (a>b)or(a<>5) (a>b)||(a!=5)
menyatakan logika atau)
Keterangan:
B: benar
S: salah
Ungkapan Ungkapan Hasil
kondisi 1 kondisi 2 operator
logika
atau
B B B
B S B
S B B
S S S

operator bukan (negasi) not !


Contoh: Contoh:

Modul Pemrograman Dasar Page 35


not(a=b) !(a=b)
(operator logika yang
menyatakan logika bukan atau
negasi)

Keterangan:
B: benar
S: salah
ungkapan Hasil
kondisi 1 operator
logika bukan
B S
S B
Tabel 1.17 macam-macam logika boolean

Modul Pemrograman Dasar Page 36


Cek Pemahaman 1

1. Berikut ini adalah pernyataan-pernyataan yang benar tentang tipe data,


kecuali....
a. Tipe data dasar dapat langsung digunakan dalam sebuah program.
b. Tipe data adalah himpunan nilai yang dapat dimiliki oleh sebuah data.
c. Tipe data menentukan operasi apa yang dapat dilakukan pada data
tersebut.
d. Tipe data dan setiap variabel dan konstanta harus dideklarasikan di awal
program.
e. Pemilihan tipe data untuk sebuah variabel atau konstanta harus
mempertimbangkan kapasitas memori yang tersedia.

2. Berikut ini adalah karakter yang sebaiknya tidak digunakan dalam penamaan
variabel/ konstanta, kecuali
a. ‘#’
b. ‘/’
c. ‘;’
d. ‘_’
e. ‘<’

3. Nama lain dari flowchart adalah ….


a. Alur
b. Tree
c. Diagram
d. Algoritma
e. Bagan alir

4. Urutan langkah-langkah logis untuk menyelessaikan masalah yang disusun


secara sistematis disebut ….
a. Variabel
b. Tipe data
c. Flowchart
d. Konstanta
e. Algoritma
5. Yang dimaksud dengan konstanta adalah ….
a. Variabel tetap/konstan
b. Nilai dari suatu variabel
c. Variabel yang nilainya bersifat tetap dan bisa diubah-ubah
d. Variabel yang selalu membutuhkan masukan/inputan dari user
e. Variabel yang nilainya bersifat tetap dan tidak bisa diubah-ubah

Modul Pemrograman Dasar Page 37


6. Perhatikan pseudocode di bawah ini:
1. Mulai
2. x  1
3. a  1
4. Selama x <= 4 lakukan langkah 5
5. a  a * x
6. tampilkan a
7. selesai
apakah yang dihasilkan dari pseudocode di atas ?
a. a = 1
b. a = 2
c. a = 3
d. program tidak dapat berjalan
e. program akan berjalan dan tidak akan pernah berhenti karena infinite loop

7. Dalam materi flowchart, simbol dibawah ini disebut ….

a. Data
b. Process
c. Decision
d. Connector
e. Terminator

8. Apabila terjadi dua kondisi (benar atau salah), pada pembuatan flowchart
menggunakan simbol …
a. c.

b. d.

9. Simbol flowchart yang digunakan untuk penghubung dalam satu halaman


yang sama adalah …

c. c.

d. Dfgdsdf d.

10. Urutan instruksi-instruksi atau langkah-langkah yang menggunakan bahasa


awam disebut:

Modul Pemrograman Dasar Page 38


a. proses
b. program
c. algoritma
d. flowchart
e. pseudocode

11. Tentukan manakah nama-nama variabel berikut ini yang benar !


f. 2x
g. nama.guru
h. NamaGuru
i. harga/buku
j. harga buku

12. tipe data yang hanya mengenal kondisi true atau false pada bahasa
pemrograman C++, adalah :
a. Int
b. Bool
c. Char
d. String
e. Long int

13. Berikut ini yang bukan merupakan tipe data dasar (primitive data type) adalah
a. String
b. Karakter
c. Bilangan Riil
d. Bilangan Bulat
e. Bilangan Lojik

14. Tipe data yang cocok untuk menjelaskan data nama siswa adalah mengunakan
tipedata ….
f. Array
g. Integer
h. Varchar
i. Numeric
j. Date time

15. Tipe data yang cocok untuk menjelaskan data tanggal lahir adalah
mengunakan tipedata ….
a. Array
b. Integer
c. Varchar
d. Numeric
e. Date time

Modul Pemrograman Dasar Page 39


Materi Pokok Bagian 2

Pada bagian ini kita akan


mempelajari dan memahami konsep
percabangan dan macam-macamnya
untuk memecahkan suatu masalah
dengan algoritma percabangan.

Kompetensi dasar :

 Memahami struktur algoritma serta menganalisis data dalam suatu


algoritma percabangan
 Menggunakan algoritma percabangan untuk memecahkan permasalahan

Indikator :
 Mengetahui percabangan satu kondisi
 Mengetahui percabangan dua kondisi
 Mengetahui percabangan lebih dari dua kondisi
 Mengetahui percabangan bersarang

Tujuan:
 Siswa mampu memhami percabangan satu kondisi
 Siswa mampu memhami percabangan dua kondisi
 Siswa mampu memhami percabangan lebih dari dua kondisi
 Siswa mampu memhami percabangan bersarang

Modul Pemrograman Dasar Page 40



II. Algoritma Percabangan

Gambar 2.1 peta pikiran algoritma percabangan

Gambar 2.2 analogi algoritma percabangan

Dari gambar di atas terdapat sebuah contoh kasus dalam kehidupan sehari-hari
mengenai algoritma percabangan. Percabangan pada gambar di atas yaitu ketika
cuaca sedang hujan maka seorang anak memakai payung, sedangkan ketika cuaca
merah mak anak tersebut memakai topi.

Modul Pemrograman Dasar Page 41


Jadi setelah mencermati gambar di atas menurut kalian
apa yang dimaksud dengan algoritma percabangan?

……………………………………………………………………………

……………………………………………………………………………

……………………………………………………………………………

Jadi, pernyataan percabangan yang memungkinkan suatu pernyataan dieksekusi


hanya jika suatu kondisi terpenuhi atau tidak terpenuhi

Percabangan merupakan salah satu inti dari analisis


kasus pada pembuatan algoritma, sebuah kasus harus
dipikirkan penyelesaiannya dengan pemikiran ada
sebuah syarat dan proses atau aksi yang harus
dikerjakan jika syarat terpenuhi dan jika syarat tidak
terpenuhi.

2.1 Percabangan 1 kondisi (if)

Percabangan satu kondisi adalah jika blok program if untuk satu kondisi berarti
hanya ada sebuah blok aksi yang akan dikerjakan jika syarat kondisi terpenuhi.

Struktur if dibentuk dari pernyataan if dan sering digunakan untuk


menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi
atau bernilai benar, maka pernyataan yang ada di dalam blok if akan
diproses dan dikerjakan.

Modul Pemrograman Dasar Page 42


Pernyataan dilaksanakan jika dan hanya jika kondisi yang diinginkan
terpenuhi, jika tidak program tidak memberikan hasil apa-apa.

Modul Pemrograman Dasar Page 43


Bentuk umum algoritma if :

If (kondisi)
Pernyataan;

Gambar 2.3 Diagram flowchart if

Kondisi digunakan untuk menentukan


pengambilan keputusan.
Pernyataan dapat berupa pernyataan tunggal atau
majemuk.
Kondisi
akan dijalankan hanya jika kondisi bernilai benar
(≠ 0).

Modul Pemrograman Dasar Page 44


Contoh Kasus:
IF dipakai untuk menyelekssi seseorang boleh atau tidak boleh menonton film di
bioskop. Kondisi yang digunakan , jika usia sudah 17 tahun.

Gambar. 2.4. Program pengambilan keputusan dengan flowchart IF

Bentuk umum struktur kondisi if untuk satu kasus :


a. Deklarasi percabangan if satu kondisi:
Bahasa Algoritmik Bahasa C
if if (kondisi_percabangan){
kondisi_percabangan //proses
then ……………
{proses} }
……………………..
{end if}

Tabel 2.1 deklarasi percabangan if satu kondisi

2.2 Percabangan 2 kondisi (if-else)

Blok program if-else digunakan untuk menyatakan percabangan dua kondisi


dimana ada dua blok aksi yang dipilih untuk dikerjakan jika syarat kondisi aksi
terpenuhi.

Modul Pemrograman Dasar Page 45


Pembacaan
program
pada blok if else

Pemeriksaaan thd syarat


kondisi percabangan pada
deklarasi if

Menjalankan Menjalankan
blok if blok else

Gambar 2.5 alur algoritmapercabangan if else

Dalam struktur kondisi if.....else minimal terdapat dua pernyataan. Jika


kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama
yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan

Deklarasi percabangan dua kondisi adalah sebagai berikut:


Bahasa Algoritmik Bahasa C
if if (kondisi_percabangan){
kondisi_percabangan //proses
then ……………
{proses} }
…………………….. else
{end if} //proses
else ……………………..
{proses} }
……………………..
{end else}

Tabel 2.2 deklarasi percabangan if dua kondisi

yang kedua yang dilaksanakan. Bentuk umumnya adalah sebagai berikut :

If (kondisi)
pernyataan-1
else
pernyataan-2

Pernyataan1 dilaksanakan jika dan hanya jika kondisi yang diinginkan


terpenuhi, jika tidak, lakukan pernyataan2.
Jika tidak mempergunakan pernyataan else program tidak akan error,

Modul Pemrograman Dasar Page 46


namun jika mempergunakan pernyataan else tanpa didahului pernyataan
if, maka program akan error. Bentuk diagram flowchartnya dapat
digambarkan sebagai berikut :

Gambar 2.6 Diagram flowchart if else

Berikut contoh program pengembangan seseorang boleh atau tidak boleh


menonton film di bioskop. Kondisi yang digunakan seseorang boleh menonton
jika usia sudah 17 tahun :

Gambar. 2.7. Program pengambilan keputusan dengan flowchart if else

Modul Pemrograman Dasar Page 47


2.3 Percabangan bersarang (if dalam if)
Sebuah program mengijinkan blok percabangan if di dalam blok percabangan
lainnya, dan todak membatasi jenis percabangan apa yang boleh berada di dalam
percabangan lainnya.

Deklarasi percabangan if di dalam if adalah sebagai berikut:


Bahasa Algoritmik Bahasa C
if kondisi_1 then if (kondisi_1)
{proses jika kondisi_1 terpenuhi} {
if kondisi_1_1 then if (kondisi_1_1)
{ proses jika kondisi_1_1 {
terpenuhi} S;
{end if} }
if kondisi_1_2 then if (kondisi_1_2)
{ proses jika kondisi_1_1 {
terpenuhi atau tidak s;
terpenuhi dan kondisi s;
percabangan 1_2 terpenuhi} ...
{end if} }
{end if} }
else else
{proses jika kondisi percabangan {
1 tidak terpenuhi} s;
{end else} }

Tabel 2.3 deklarasi percabangan if dalam if

bentuk IF bersarang atau sering disebut nesteed if . Bentuk ini digunakan untuk
pemilihan pernyataan dari sejumlah kemungkinan tindakan.

Penyeleksian dilakukan secara bertingkat. Misalnya untuk menentukan kode hari,


atau kode bulan dan sebagainya, bisa memanfaatkan pernyataan bentuk If di
dalam If. Bentuk umumnya sebagai berikut :

if (kondisi_1)
pernyataan_1;
else if (kondisi_2)
pernyataan_2;
else if (kondisi_3)
pernyataan_3;
….
else if (kondisi_M)
pernyataan_M;
else
pernyataan_N;

Modul Pemrograman Dasar Page 48


Bentuk pernyataan di atas dapat digambarkan dengan flowchart berikut ini :

..
.

Gambar. 2.8. diagram flowchart nested if (if bersarang)

2.4 Switch case


Pernyataan switch digunakan untuk menjalankan salah satu pernyataan dari
beberapa kemungkinan pernyataan, berdasarkan nilai dari sebuah ungkapan dan
nilai penyeleksi. Hal ini dapat dikatakan sebagai pilihan berganda. Dengan kata
lain bentuk lain dari pernyataan If dalam If sebagaimana dikemukakan di atas.

Bentuk umum :

switch (ungkapan)
{
case ungkapan1 :
pernyataan_1 ;
break ;
case ungkapan2 :
pernyataan_2 ;
break ;
…….
case ungkapanN :
pernyataan_N ;
break ;
default : //opsional
pernyataan-lain;
}

Modul Pemrograman Dasar Page 49


Catatan :
Ungkapan dapat berupa ungkapan atau konstanta atau Variabel.
Pernyataan di atas dapat digambarkan dalam bentuk diagram alir sebagai berikut:

…….

Gambar. 2.7. diagram flowchart switch case

Latihan
1). Buatkan program dengan menggunakan formula IF – Else untuk menentukan
nilai kelulusan beserta predikatnya yang didasarkan pada skor yang diperoleh
tertentu, seperti tabel berikut ini :

Buat diagram flowchartnya !!

Modul Pemrograman Dasar Page 50


Eksperimen / explore
Membuat algoritma penyelesaian masalah percabangan 1, 2, lebih dari 2 kondisi,
serta percabangan bersarang

1. Buat sebuah algoritma yang menyatakan sebuah bilangan


ganjil atau genap.
2. Buat algoritma yang menerima masukan tiga buah sisi,
dimana jika semua sisis sama maka tampilkan “termasuk
kubus”, jika ada sisi yang tidak sama maka tampilkan
“bukan kubus”.
3. Buatlah algoritma yang menerima sebuah masukan berupa
jam lembur, jika jam lembur kurang dari 12 jam maka akan
menampilkan gaji lembur sebesar Rp 100.000, jika jam
lembur sama dengan 1 jam maka akan menampilkan gaji
lembur sebesar Rp 200.000, jika jam lebur lebih dari 12
jam maka akan menampilkan gaji lembur sebesar Rp
300.000

Modul Pemrograman Dasar Page 51


Cek Pemahaman 2
1. Struktur pemilihan terdiri atas komponen-komponen berikut ini, kecuali…
a. Kondisi pemilihan
b. Alternatif aksi daari nilai kondisi
c. Aksi
d. Reaksi
e. Parameter kondisi
2. Perhatikan porongan algoritma berikut ini:
IF badan belum bersih THEN
Teruskan mandi
ELSE
Mandi selesai
ENDIF
Menurut potongan algoritma tersebut,mandi selesai jika…
a. Sabun habis
b. Tangan capek
c. Sudah terlalu lama
d. Badan sudah bersih
e. Mandi tidak diteruskan
3. Berikut ini adalah contoh kondisi yang tidak dapat digunakan untuk
pemilihan, yaitu…
a. angka1 > angka2
b. gaji = 100000
c. baju = baru
d. a * b <= 0
e. pilihan a,b,c,d salah
4. perhatikan potongan algoritma berikut ini:
input (harga)
IF harga = 12500 then
Beli
ENDIF
Pernyataan manakah yang benar tentang algoritma di atas?
a. Jika harga <12500 maka lakukan aksi beli
b. Jika harga >12500 maka lakukan aksi beli
c. Jika harga = 12500 maka program tidak melakukan apapun
d. Jika harga <> 12500 maka program tidak melakukan apapun
e. Jika harga <> 12500 maka program error
5. Dalam struktur IF…THEN…ELSE…, klausa IF dapat diartikan…
a. Jika
b. Maka
c. Jika tidak
d. Sebaiknya
e. Apapun yang terjadi
6. Perhatikan potongan algoritma berikut ini:
Input (n)
p = n * 2
IF p mod 2 = 0 THEN
Output (p/2)
ELSE
Output (p*2)
ENDIF

Modul Pemrograman Dasar Page 52


Pernyataan manakah yang benar tentang algoritma di atas?
a. Berapapun nilai yang diinputkan, outputnya sama dengan niilai inputan
b. Jika inputannya adalah bilangan ganjil, outputnya adalah nilai inputan
dikali 2
c. Jika inputannya adalah bilangan genap, outputnya adalah nilai inputan
dibagi 2
d. Berapapun nilai yang diinputkan, outputnya adalah nilai inputan dikali dua
e. Berapapun nilai yang diinputkan, outputnya adalah nilai inputan dibagi
dua

7. Perhatikan potongan algoritma berikut ini:


Input (kelas)
SWITCH kelas
BEGIN
CASE ‘1’;
Output(‘Pengajar = Ana’)
Break
CASE ‘2’;
Output(‘Pengajar = Ani’)
Break
CASE ‘3’;
Output(‘Pengajar = Ina’)
Break
END
Apakah output dari algoritma di atas jika inputnya kelas = ‘4’?
a. ‘Pengajar = Ana’
b. ‘Pengajar = Ani’
c. ‘Pengajar = Ina’
d. Program error
e. ‘Tidak ada pengajar’

Modul Pemrograman Dasar Page 53


Materi Pokok Bagian 3

Pada bagian ini kita akan mempelajari dan


memahami konsep perulangan dan macam-
macamnya untuk memecahkan
permasalahan dengan algoritma
perulangan.

Kompetensi dasar :

 Memahami struktur algoritma serta menganalisa data dalam suatu


algoritma perulangan
 Memecahkan permasalahan dengan algoritma perulangan

Indikator :

 Mengetahui perulangan dengan kondisi di awal


 Mengetahui perulangan dengan kondisi di akhir
 Mengetahui perulangan dengan kondisi akhir diinputkan user
 Mengetahui perulangan sebagai pencacah naik
 Mengetahui perulangan sebagai pencacah turun

Tujuan:

 Siswa mampu memahami perulangan dengan kondisi di awal


 Siswa mampu memahami perulangan dengan kondisi di akhir
 Siswa mampu memahami perulangan dengan kondisi akhir diinputkan
user
 Siswa mampu memahami perulangan sebagai pencacah naik
 Siswa mampu memahami perulangan sebagai pencacah turun

Modul Pemrograman Dasar Page 54


III. Algoritma Perulangan

Gambar. 3.1 analogi algoritma perulangan

Perhatikan gambar di atas seorang anak yang dihukum menulis di papan tulis
karena tidak mengerjakan pekerjaan rumah, tentu dia akan merasa lelah
melakukan pekerjaan yang berulang-ulang. Nah! Pekerjaan yang mengulang-
ulang ini juga merupakan kondisi yang dapat terjadi pada pemrograman.

Pengulangan atau looping adalah suatu bagian yang bertugas melakukan kegiatan
mengulang suatu proses sesuai dengan yang diinginkan. Pengulangan merupakan
bagian yang penting dalam pemrograman karena dengan adanya pengulangan
pembuat program tidak perlu menulis kode program sebanyak pengulangan yang
diinginkan.

Pengulangan mempunyai beberapa bagian yang harus dipenuhi :

Modul Pemrograman Dasar Page 55


Gambar. 3.2 peta pikiran algoritma pengulangan (looping)

3.1 For for digunakan utuk menghasilkan pengulangan yang sudah jelas
Pengulangan

perlu dilakukan berapa kali. Jumlah pengulangannya diketahui atau dapat


ditentukan sebelum eksekusi.

Gambar. 3.3 peta pikiran algoritma pengulangan for

a. Pengulangan for hitung naik


Deklarasi penggunaan for menaik (ascending) :

For pencacah  nilai_awal to nilai_akhir do


Aksi
endfor

Pencacah (counter) haruslah dari tipe data yang


memiliki predecessor dan successor, yaitu integer
Modul Pemrograman Dasar Page 56
atau karakter
Misalkan untuk pengulangan for berikut:

for i <- 1 to 3 do
output (i)
{end for}

Berarti proses yang ada di dalam pengulangan for dilakukan mulai dari 1 sampai 3
(pengulangan dilakukan sebanyak 3 kali). Berikut adalah ilustrasi pengulangan for
di atas:

1. Pada saat masuk pengulangan pertama kali, nilai yang ada di dalam
kotak i adalah 1 (diawali dengan 1karena nilai awal yang diberikan
adalah 1 (i<- 1) kemudian masuk ke dalam blok for, lalu
menampilkan nilai dalam kotak i ke layar yaitu 1
1
tampilkan isi kotak 1 berarti menampilkan 1

2. Pada saat masuk pengulangan kedua kalinya, nilai yang ada di


dalam kotak i adalah 2 (karena ada i++ yang menyebabkan
perulangan berikutnya nilai i ditambah dengan 1) kemudian masuk
ke dalam blok for, lalu menampilkan nilai dalam kotak i ke layar
yaitu 2
2
tampilkan isi kotak 1 berarti menampilkan 2

Modul Pemrograman Dasar Page 57


3. Pada saat masuk pengulangan kedua kalinya, nilai yang ada di
dalam kotak i adalah 3 (karena ada i++ yang menyebabkan
perulangan berikutnya nilai i ditambah dengan 1) kemudian masuk
ke dalam blok for, lalu menampilkan nilai dalam kotak i ke layar
yaitu 3
3
tampilkan isi kotak 1 berarti menampilkan 3

4. Pada saat masuk pengulangan keempat kali maka pemeriksaan


apakah i ≤ 3 sudah tidak memenuhi lagi karena isi i sekarang adalah
4 di mana 4 tidak lebih kecil sama dengan dari 3, maka akan kelar
dari proses pengulangan for (berhenti menjalankan pengulangan
for).
4
keluar dari for karena 4 tidak lebih kecil dari sama
dengan 3

Terdapat 4 tahapan pada pengulangan for perhatikan tabel berikut :


Tahapan Deklarasi dalam keterangan
Pengulangan for
Inisialisasi i <- 1 tahapan mengeset nilai awal dari
pengulangan di mana pengulangan
dilakukan mulai dari angka 1
iterasi to tahapan pertambahan agar perulangan
dapat berjalan mulai dari nilai awal sampai
berhenti
terminasi nilai_berhenti merupakan nilai berhenti dari pengulangan
sehingga ada saat di mana pengulangan
harus berhenti
proses proses dalam proses yang perlu dilakukan dalam
pengulangan for pengulangan
Tabel 3.1 tahapan pengulangan for

b. Pengulangan for hitung turun


Deklarasi penggunaan for hitung turun (descending):

for pencacah  nilai_akhir downto nilai_awal do


Aksi
endfor

Contoh kasus pengulangan for hitung turun adalah sebagai berikut:


Misalkan untuk menulisakan angka 10 sampai angka 1 ke layar

Modul Pemrograman Dasar Page 58


Logika Pemikiran Manusia Bahasa Algoritmik
membuat kotak untuk menyimpan
penghitung / counter yang berjalan
pada perulangan for
pen ghitung : integer

Penghitung

untuk menghitung mulai dari 10 for penghitung <- 10 downto 1 do


sampai penghitung sama dengan 1 output (penghitung)
{end for}
tampilkan penghitung

dari 10 turun ke 1

? menampilkan isi kotak


penghitung

Penghitung

Tabel 3.2 contoh penggunaan pengulangan for

Penulisan pengulangan for hitung turun untuk kasus diatas adalah sebagai berikut:

Bahasa Algoritmik Bahasa C


{pengulangan for negatif} /*pengulangan for negatif*/

for i <- 10 downto 1 do for (i=10; i >= 1; i--){


{proses} //proses
………………….. ……………………
{end for} }

Tabel 3.3 penulisan pengulangan for hitung turun

3.2 While

Pengulangan while biasa digunakan jika jumlah pengulangan tidak diketahui atau
memiliki kemungkinan dapat dilakukan kurang dari batas pengulangan. Proses
perulangan akan terus berlanjut selama
kondisinya bernilai benar (≠0) dan akan berhenti bila kondisinya bernilai
salah (=0).
Deklarasi pengulangan while adalah sebagai berikut:

while kondisi do
aksi
endwhile

Modul Pemrograman Dasar Page 59


Pengujian ungkapan pada while dilakukan sebelum bagian pernyataan,
Oleh karena itu ada kemungkinan bagian pernyataan pada while tidak
dijalankan sama sekali, yaitu kalau kondisi yang pertama kali bernilai salah.
Perhtikan gambar flowchart berikut :

Gambar. 3.3 diagram flowchart while

Jika menggunakan while pastikan bahawa pada


suatu saat ungkapa pada while bernilai salah.
Jika tidak demikian pernyataan yang
mengikutinya akan dijalankan selamanya.

Misalkan pada pengulangan while berikut ini:

i : integer
{inisialisasi}
i <- 1

while i ≤ 5 do
{proses}
…………………
{iterasi}
i <- i + 1
{end while}

Penjelasan:
Pengulangan akan terus dilakukan selama nilai variabel i lebih kecil atau sama
dengan 5, di mana dalam pengulangan nilai i terus ditamabah dengan 1. Jika
kondisi berhenti pengulangan tidak pernah tercapai, maka pengulangan akan
dilakukan tanpa henti.

Jika pengulangan berjalan terus tanpa henti karena


kondisi berhenti tidak pernah tercapai, dapat ditekan
tombol ctrl+C untuk menghentikan jalannya program
(jika memakai compiler dengan
modeconsole/terminal/command prompt

Modul Pemrograman Dasar Page 60


Tahapan pengulangan while adalah sebagai berikut:
Tahapan Deklarasi dalam Keterangan
Pengulangan While
Inisialisasi integer i <- 1 tahapan mempersiapkan nilai awak
dari variabel yang berpengaruh
pada kondisi pengulangan dan
kondisi terminasi
Kondisi while i ≤ 5 kondisi persyaratan apakah blok
pengulangan pengulangan dieksekusi atau tidak
Proses proses dalam proses yang perlu dilakukan dalam
pengulangan while pengulangan
Iterasi i <- 1 + 1 tahapan pertambahan agar
pengulangan dapat berjalan disertai
dengan pertambahan nilai variabel
yang berpengaruh pada kondisi
pengulangan dan terminasi
Tabel 3.4 tahapan pengulangan while

Jangan pernah melupakan untuk menuliskan kode maju ke


depan (iterasi) pada pengulangan while, misalnya:
penghitung <- penghitung +1

jika tidak ada penambahan in pada algoritma pencarian di atas


maka pengulangan akan selalu memeriksa kotak pertama saat
masuk proses while karena penghitung tidak pernah
bertambah.
Ini menyebabkan pengulangan tanpa henti (looping forever)
karena angka atausyarat yang dijalankan tidak pernah
mencapai kondisi berhenti.

Buat Flowchart, Pseudocode, Algoritma


menampilkan nilai Z dari 2 dan pengulangan akan dihentikan setelah variabel Z
mencapai nilai 12
Algoritma
1. z  2
2. selama (z ≤ 12) kerjakan baris 3 sampai dengan 4, jika tidak kerjakan baris
5
3. menampilkan z
4. z  z + 1

Modul Pemrograman Dasar Page 61


5. selesai

Pseudocode
Menampilkan nilai 2 sampai dengan 12
z : int
z=2
while (z <= 12)
print(z)
z++

Flowchart :

3.3 Do While

Pengulangan do while adalah pengulangan yang biasa digunakan ketika jumlah


pengulangan tidak diketahui, namun pengulangan do while berbda dengan
pengulangan while karena kondisi pada pengulangan do while ada di bagian
bawah blok pengulangan.
Pengulangan do while minimal selalu dilakukan sekali karena kondisi
pengulangan ada di bagian bawah.

Deklarasi pengulangan do while adalah sebagai berikut:


Do
{
pernyataan 1;
pernyataan 2;

Pernyataan n;
} while (ungkapan)

Perhatikan bentuk flowchart do..while berikut ini :

Modul Pemrograman Dasar Page 62


Gambar. 3.4 diagram flowchart do while

Tahapan pengulangan do while:

Tahapan Deklarasi dala Keterangan


Pengulangan do while
Inisialisasi {inisialisasi} tahapan mengeset nilai awal dari
i <- 1 variabel yang berpengaruh pada
kondisi terminasi pengulangan

Proses proses dalam proses yang dilakukan dalam


pengulangan do while pengulangan

Iterasi i <- i + 1 tahapan pertambahan agar


pengulangan dapat berjalan disertai
dengan pertambahan nilai variabel
yang berpengaruh pada kondisi
pengulangan atau terminasi

Terminasi (i = 2) merupakan tahap di mana merupakan


pernyataan kapan pengulangan harus
tetap berjalan atau berhenti.
Tabel 3.5 tahapan pengulangan do while

Contoh penggunaan pengulangan repeat pada sebuah proses yang dilakukan


berulang di mana minimal dilakukan sekali kemudian ditanyakan kepada user
apakah proses akan dilakukan lagi atau tidak, misalnya sebagai berikut:

Logika Pemikiran Manusia Bahasa Algoritmik


membuat kotak jawaban untuk
menyimpan jawaban user
jawaban : char

jawaban

Modul Pemrograman Dasar Page 63


melakukan pengulangan menuliskan
“hello world” minimal sekali repeat
kemudian menanyakan kepada user
output(“hello world”)
apakah ingin menulis lagi, jika iya
maka user diminta menuliskan huru output(“apakah anda ingin
‘y’, jika tidak maka diminta menampilkan lagi?”)
menuliskan ‘t’ input(jawaban)

Hello world until (jawaban = ‘t’)

Apakah anda ingin


menampilkan lagi?
user

jawaban

Tabel 3.6 penggunaan pengulangan repeat logika pemikiran manusia dan bahasa
algoritmik

Bahasa Algoritmik Bahasa C

jawaban : char int main(){


char jawaban;

repeat do{
printf (“hello world\n”);
output(“hello world”) printf(“apakahanda ingin
menampilkan lagi”);
output(“apakah anda ingin scanf(“%c”, &jawaban);
menampilkan lagi?”) while(getchar() != ‘\n’);
input(jawaban) printf(“\n”);

until (jawaban = ‘t’) }while(jawaban == ‘y’);

return 1;
}
Tabel 3.7 penggunaan pengulangan repeat bahasa algoritmik dan bahasa C

Modul Pemrograman Dasar Page 64


menampilkan nilai Z dari 2 dan pengulangan akan dihentikan setelah variabel Z
mencapai nilai 12
Algoritma
1. z  2
2. menampilkan z
3. z  z +
4. selama (z ≤ 12) kerjakan baris 2 sampai dengan 3
Pseudocode
z : int
z=2
do
print(z)
z++
while(z <= 12)
Flowchart :

Perbedaan for, while dengan do while:

Gambar. 3.5 peta pikiran perbedaan for, while dan do while

3.4 Perulangan di dalam perulangan


Modul Pemrograman Dasar Page 65
Sebuah program mengizinkan blok pengulangan di dalam blok pengulangan
lainnya, dan tidak membatasi jenis pengulangan apa yang boleh berada di dalam
pengulangan lainnya, misalnya di dalam blok pengulangan for terdapat
pengulangan while, atau di dalam pengulangan while terdapat pengulangan do
while.

Perulangan for

Perulangan while

Perulangan repeat

Perulangan for

Gambar. 3.6 bentuk pengulangan di dalam pengulangan

Eksperimen/explore:

Buatlah algoritma penyelesaian masalah menggunakan logika


perulangan
1. Buatlah algoritma untuk menghitung rata-rata bilangan dari 1
sampai 10
2. Buatlah algoritma yang menerima masukan sebuah angka
masukan untuk menampilkan gambar bintang ke samping
sesuai dengan angka masukan , misal masukan angka adalah 5
maka akan mnampilkan : *****
3. Buatlah algoritma untuk menampilkan tampilan sebagai
berikut :
a. * b. *****
** ****
*** ***
**** **
***** *

Modul Pemrograman Dasar Page 66


Cek Pemahaman 3

1. Apakah yang dimaksud dengan kondisi berhenti dalam struktur pengulangan?


a. Kondisi yang menyebabkan iterasi berhenti
b. Kondisi yang menyebabkan program berhenti
c. Kondisi yang menyebabkan insialisasi berhenti
d. Kondisi yang akan berhenti saat iterasi berhenti
e. Kondisi yang akan berhenti saat program berhenti
2. Konstruksi pengulangan yang biasanya digunakan untuk menghasilkan
pengulangan sejumlah kali yang telah dispesifikasikan oleh pemrogram
adalah…
a. For
b. While
c. Repeat
d. Do while
e. If Then Else
3. Tipe data apakah yang dapat digunakan untuk variabel pencacah atau counter?
a. Real
b. Text
c. Float
d. Array
e. Integer
4. Sintaks pengulangan manakah yang melakukan pengecekan kondisi di akhir
pengulangan?
a. For
b. While
c. Repeat
d. Do While
e. If Then Else
5. Pernyataan manakah yang salah tentang variabel pencacah (counter)?
a. Variabel pencacah dapat bertipe integer maupun char
b. Nilai variabel pencacah terus berubah setiap kali iterasi
c. Nilai variabel pencacah tidak perlu diinisialisasi di awal iterasi
d. Nilai variabel pencacah akan berhenti berubahdi akhir pengulangan
e. Variabel pencacah mengendalikan jumlah iterasi dalam struktur
pengulangan

Modul Pemrograman Dasar Page 67

Anda mungkin juga menyukai