Anda di halaman 1dari 56

Pembahasan Struktur Algoritma Percabangan

Struktur Algoritma Percabangan 1,2 Kondisi dan Percabangan Bersarang


Pengertian Struktur Algoritma Percabangan

Dalam Struktur Algoritma Percabangan Terdapat beberapa jenis algoritma percabangan,


Struktur percabangan tersebut diantaranya Algoritma Percabangan 1 Kondisi, 2 Kondisi, 3
Kondisi atau Lebih, dan Percabangan Bersarang. Sebelum pembahasan lebih lanjut kamu harus
mengerti terlebih dahulu mengenai hal ini

Dalam Struktur Algoritman Percabangan Biasanya Menggunakan Instruksi DIbawah ini :

IF (Kondisi1) THEN
pernyataan 1
ELSE IF (Kondisi 2) THEN
pernyataan 2
ELSE IF (Kondisi 3) THEN
pernyataan 3
ELSE
pernyataan 4
END IF

Dari instruksi diatas dapat disimpulkan bahwa dalam Kondisi ke 1 cukup dengan menggunakan
instruksi IF (Kondisi 1) THEN, sedangkan untuk kondisi berikutnya yaitu kondisi 2 hingga
seterusnya dan selain kondisi terakhir, maka menggunakan ELSE IF (Kondisi N) THEN,
Sedangkan untuk kondisi terakhir cukup menggunakan ELSE saja.

Apa itu IF THEN ELSE ?

IF, THEN, dan ELSE, adalah sebuah pernyataan yang ada Untuk keperluan pengambilan
keputusan. Dan untuk artinya IF diartikan sebagai JIKA, sedangkan THEN dapat anda artikan
dengan sebutan MAKA, sedangkan ELSE dapa anda artiken sebagai JIKA BUKAN / SELAIN ITU.
Jika kamu masih belum paham penggunaan IF THEN ELSE

Pernyataan IF

Pernyataan if digunakan Jika kondisi bernilai benar, maka pernyataan 1 akan dikerjakan
kemudian mengerjakan pernyataan 2 dan jika tidak memenuhi syarat (salah) maka akan
mengerjakan pernyataan 2 Dari pengertian tersebut dapat dilihat dari diagram alir berikut:
Pernyataan IF

Pernyataan IF – ELSE

Pernyataan if mempunyai pengertian, Jika kondisi bernilai benar, maka pernyataan -1 akan
dikerjakan kemudian kerjakan pernyataan 3dan jika tidak memenuhi syarat maka akan
mengerjakan pernyataan 2 kemudian kerjakan pernyataan 3 Dari pengertian tersebut dapat
dilihat dari diagram alir berikut

Percabangan IF – ELse

Dalam strukutur percabangan juga terdapat Kondisi, Apa itu Kondisi?

Apa itu Kondisi?

Kondisi dalam percabangan merupakan pembanding 2 buah operan dengan menggunakan


operator aritmatika. Nah untuk lebih jelasnya mengenai kondisi lihat dibawah :

 > (lebih besar)


 < (lebih kecil)
 >= (lebih besar atau sama dengan)
 <= (lebih kecil atau sama dengan)
 == (sama dengan)
 <> (tidak sama dengan)

Jika kamu sudah mengetahui dasar pemrograman tentang sturktur percabangan kita bisa lanjut
ke materi belajar percabangan berikutnya :

Percabangan 1 Kondisi

Struktur Algoritma percabangan 1 kondisi adalah algoritma percabangan yang hanya


menggunakan1 kondisi atau 1 keputusan saja, jika ketentuan tersebut terpenuhi maka instruksi
akan diproses, jika kondisi tidak terpenuhi maka akan dilewat atau diloncati.

Contoh Kasus : Nilai siswa akan gagal bila bernilai ≤ 60

Dari contoh Kasus diatas untuk penulisan algoritma sese

ALGORITMA BAHASA NATURAL

1. Mulai

2. Menentukan nilai siswa

3. Jika nilai siswa ≤ 60

4. Siswa dinyatakan Gagal

5. Selesai

Algoritma Pseuducode

Var :
nilai_siswa : integer
Pseudocode :
Read ( nilai siswa )
IF nilai siswa ≤ 60 THEN
write ( Siswa dinyatakan gagal )

Percabangan 2 Kondisi

Sturuktur Algoritma percabangan 2 kondisi adalah algoritma yang digunakan untuk


memecahkan kasus yang hanya menggunakan 2 ketentuan saja. Algoritma percabangan dengan
2 kondisi memiliki format dasar seperti berikut :

IF <kondisi>
THEN <pernyataan 1>
ELSE <pernyataan 2>

Pada format di atas, Jika <kondisi> bernilai benar maka pernyataan 1 dikerjakan. Sedangkan
jika tidak (<kondisi>bernilai salah), maka pernyataan yang dikerjakan adalah pernyataan 2.
Berbeda dengan percabangan 1 kondisi, pada percabangan dua kondisi ada dua pernyataan
untuk kedua kondisi,yaitu untuk <kondisi> yang bernilai benar dan <kondisi> yang bernilai
salah.

Contoh Kasus : Penggolongan nilai, dengan ketentuan:

1. Jika nilai >=75 maka Baik,


2. Jika tidak (nilai <75 maka Cukup)

ALGORITMA BAHASA NATURAL

Untuk penulisan algoritma nya sebagai berikut :

1. Mulai
2. Menentukan nilai siswa
3. Jika nilai siswa ( 0 – 100 ) > 75 Tergolong Baik
4. Jika nilai siswa ( 0 – 100 ) ≤ 75 Tergolong Cukup
5. Tampilkan hasil
6. Selesai
Algoritma Pseuducode

Var :
nilai_siswa : integer
Pseudocode
read (nilai siswa )
IF nilai siswa > 75 THEN
write ( tergolong baik )
ELSE
write ( tergolong cukup )

Percabangan Bersarang

Algoritma percabangan bersarang Adalah algoritma percabangan yang setiap pernyataan untuk
kondisi IF di dalamnya terdapat Instruksi IF Lagi. Sehingga struktur Algoritma percabangan
bersarang di dalam IF terdapat IF lagi.

Struktur algoritma percabangan bersarang adalah sebagai berikut:

IF(Kondisi a) THEN
IF(kondisi x)THEN
pernyataan 1
ELSE IF
pernyataan 2
ENDIF
ELSE
pernyataan b
ENDIF

Contoh Kasus Percabangan Bersarang

Sebuah usaha fotokopi mempunyai aturan sebagai berikut :


 Jika yang fotokopi statusnya adalah langganan, maka berapa lembar pun dia fotokopi,
harga perlembarnya Rp. 75,-
 Jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari 100 lembar harga
perlembarnya Rp. 100,-. Sedangkan jika lebih atau sama dengan 100 lembar maka harga
perlembarnya Rp. 85,-.

Penyelesaian:

Pada contoh ini, masalah terlihat lebih rumit. Ada dua percabangan yang terjadi. Yang pertama
adalah pemeriksaan apakah status seseorang pelanggan atau bukan. Kedua, apabila status
seseorang bukan pelanggan, maka dilakukan pemeriksaan berapa jumlah lembar fotokopi,
apakah lebih dari 100 lembar atau tidak.

Kita akan menggunakan Algoritma flowchart untuk menjalaskan mengenai Kasus Percabangan
Bersarang.

Algoritma Flowchart

percabangan bersarang
Algoritma Percabangan (1,2, 3 kondisi, percabangan bersarang dan contoh kasus)

Algoritma percabangan adalah salah satu instruksi dalam algoritma yang digunakan untuk
memberikan pilihan kepada program perintah mana yang harus diproses dan perintah mana
yang harus dilewati sesuai dengan kondisi yang diberikan.

Algoritma percabangan terkadang diperlukan untuk kasus-kasus tertentu, karena pada


kenyataannya alur pemrosesan kode program tidak selamanya berurutan dari baris instruksi
satu ke baris instruksi lainnya, namun terkadang program perlu diatur agar bisa meloncat pada
baris instruksi tertentu sesuai dengan kondisi yang terpenuhi.

Di dunia bahasa pemrograman atau algoritma, instruksi agar alur proses program bisa loncat
menuju baris instruksi tertentu sesuai dengan kondisi yang diberikan, itu disebut dengan instruksi
percabangan, pemilihan atau flow control.

Di dalam algoritma, instruksi percabangan dikategorikan menjadi beberapa jenis yaitu,


percabangan 1 kondisi, percabangan 2 kondisi, percabangan 3 kondisi, percabangan lebih dari
3 kondisi dan percabangan bersarang.

Untuk lebih memahami logika dari algoritma percabangan, baik percabangan 1 kondisi, 2
kondisi, 3 kondisi maupun percabangan bersarang, maka di artikel kali saya akan coba kupas
tuntas mengenai algoritma percabangan disertai dengan contoh kasus lengkap, baik kasus-kasus
khusus, maupun contoh kasus dalam kehidupan sehari-hari.

Algoritma Percabangan (1,2, 3 kondisi, percabangan bersarang dan contoh kasus)


Algoritma percabangan biasanya menggunakan instruksi

IF (Kondisi1) THEN

pernyataan 1

ELSE IF (Kondisi 2) THEN

pernyataan 2

ELSE IF (Kondisi 3) THEN

pernyataan 3

ELSE

pernyataan 4

END IF

Untuk Kondisi ke 1 cukup menggunakan instruksi IF (Kondisi 1) THEN, sedangkan untuk kondisi
2 dan seterusnya selain kondisi terakhir, maka menggunakan ELSE IF (Kondisi N) THEN,
sementara untuk kondisi terakhir cukup menggunakan ELSE saja.

Memahami Apa itu IF THEN ELSE ?


IF dapat diartikan sebagai (JIKA), sedangkan THEN dapat anda artikan dengan sebutan MAKA,
sedangkan ELSE dapa anda artiken sebagai (JIKA BUKAN / SELAIN ITU).

Memahami Apa itu Kondisi ?

Kondisi, umumnya akan membandingkan 2 buah operan dengan menggunakan operator


aritmatika seperti:

 > (lebih besar)


 < (lebih kecil)
 >= (lebih besar atau sama dengan)
 <= (lebih kecil atau sama dengan)
 == (sama dengan)
 <> (tidak sama dengan)

Contoh :

IF( nilai >=80) THEN

write("LULUS")

ELSE

weite("GAGAL")

END IF

Instruksi di atas jika diterjemahkan adalah, IF="jika nilai lebih besar atau sama dengan 80, maka
cetak kata LULUS", ELSE="jika tidak (artinya nilainya lebih kecil dari 80) maka GAGAL".

Yang diberikan warna merah tebal itu adalah bagian kondisi, dengan operan nilai dan angka
80, sedangkan operator yang digunakan adalah >= (lebih besar atau sama dengan), harap
diingat kondisi biasanya selalu membandingkan 2 buah operan dengan operator artimatika.

Semoga dengan uraian singkat di atas anda punya gambaran apa itu percabangan.

Algoritma percabangan 1 kondisi


Algoritma percabangan 1 kondisi adalah algoritma percabangan yang hanya menggunakan1
kondisi atau ketentuan saja, jika kondisi terpenuhi maka instruksi akan diproses, jika tidak
terpenuhi maka akan dilewat atau diloncati.

Contoh:
Algoritma untuk menentukan usia balita, jika usia lebih kecil atau sama dengan 5 tahun maka
balita.

Pseudocode:

program cek_usia

deklarasi

var usia:integer

algoritma

read(usia)

IF(usia <5) THEN

write("BALITA")

ENDIF

Pada contoh di atas usia diinput oleh pengguna, usia kemudian dicek, jika usia lebih kecil dari
lima maka cetak tulisan "BALITA" sedangkan jika tidak maka instruksi write("BALITA") akan
dilewati.

Algoritma Percabangan 2 kondisi


Algoritma percabangan 2 kondisi adalah algoritma untuk memecahkan kasus yang hanya
menggunakan 2 ketentuan saja.

Struktu percabangan 2 kondisi adalah sebagai berikut:

IF (Kondisi 1) THEN

pernyataan 1

ELSE

pernyataan 2

ENDIF

Contoh algoritma 2 kondisi:

Algoritma untuk menentukan Lulus dan Tidak Lulus nilai siswa, dengan ketentuan:
1. Jika nilai >=75 maka lulus,

2. Jika tidak (nilai <75 maka tidak lulus)

Jawab:

program kelulusan

deklarasi

var nilai:integer

algoritma:

read(nilai)

IF (nilai >=75) THEN

write("LULUS")

ELSE

write("TIDAK LULUS")

ENDIF

Atau Kasus di atas bisa juga ditulis seperti di bawah ini:

program kelulusan

deklarasi

var nilai:integer

algoritma:

read(nilai)

IF (nilai <75) THEN

write("TIDAK LULUS")

ELSE

write("LULUS")

ENDIF
Untuk 2 kondisi, maka algoritma akan melibatkan instruksi percabangan IF (kondisi) THEN.....
ELSE......, artinya jika 2 kondisi maka instruksi kata IF hanya 1 jumlahnya lainnya menggunakan
kata ELSE.

Algoritma Percabangan 3 Kondisi


Algoritma tiga kondisi merupakan algoritma yang dapat digunakan untuk memecahkan kasus
yang memiliki 3 kondisi.

Untuk algoritma 3 kondisi maka strukturnya adalah:

IF (kondisi 1) THEN
pernyataan 1
ELSE IF(kondisi 2) THEN
pernyataan 2
ELSE
pernyataan 3.
ENDIF

Untuk kondisi pertama selalu menggunakan IF (Kondisi 1) THEN, sedangkan untuk kondisi
kedua dan seterusnya selain kondisi terakhir, menggunakan ELSE IF (kondisi n) THEN, dan
untuk kondisi terakhir menggunakan ELSE saja.

Contoh algoritma dengan 3 kondisi:


Algoritma untuk mencari nilai dalam bentuk abjad A,B atau C, dengan ketentuan
1. Jika nilai >80 maka nilai A
2. jika nilai >=70 dan <=80 maka B
3. selain itu (nilai <70) maka C

Jawab:
program cari_nilai
deklarasi
var nilai:integer
algoritma
read(nilai)
IF(nilai>80)THEN
write("A")
ELSE IF(nilai>=70 AND nilai <=80) THEN
write("B")
ELSE
write("C")
ENDIF

Algoritma lebih dari 3 kondisi


Kondisi dalam algoritma bisa lebih dari 3 kondisi, strukturnya akan selalu sama, untuk kondisi
pertama maka menggunakan IF (kondisi 1) ELSE...., sedangkan untuk kondisi ke 2 dan
seterusnya selain kondisi terakhir yaitu menggunakan ELSE IF (kondisi n) THEN....., sedangkan
untuk kondisi terakhir baru menggunaakn ELSE....saja.

Format untuk algoritma 3 kondisi atau lebih adalah sebagai berikut:

IF(Kondisi 1) THEN
pernyataan 1
ELSE IF(Kondisi 2) THEN
pernyataan 2
ELSE IF (kondisi 3) THEN
pernyataan 3
ELSE IF(kondisi 4) THEN
pernyataan 4
...
...
...
...
...
ELSE IF(kondisi N) THEN
pernyataan N
ELSE
pernyataan terakhir
ENDIF

Contoh algoritma lebih dari 3 kondisi sama halnya dengan 3 kondisi di atas, namun
ketentuannya lebih dari 3. bisa 4, 5 dan seterusya.

c. Algoritma Percabangan Bersarang


Algoritma percabangan bersarang merupakan bentuk algoritma percabangan dimana pada
setiap setiap pernyataan untuk kondisi IF di dalamnya terdapat Instruksi IF Lagi.

Algoritma percabangan bersarang artinya di dalam IF terdapat IF lagi. Struktur algoritma


percabangan bersarang adalah sebagai berikut:

IF(Kondisi a) THEN
IF(kondisi x)THEN
pernyataan 1
ELSE IF
pernyataan 2
ENDIF
ELSE
pernyataan b
ENDIF

Intinya algoritma percabangan disebut percabangan bersarang jika di dalam percabangan ada
percabangan lagi, banyak yang menyebut juga dengan sebutan di dalam IF ada IF lagi.
Struktur Algoritma Percabangan dan Contoh Soal Struktur Algoritma Percabangan

Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-
kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan
program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai
percabangan/pemilihan atau keputusan.

Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu kondisi yang
disyaratkan dipenuhi. Pada proses seperti ini simbol flowchart Decision harus digunakan. Simbol
decision akan berisi pernyataan yang akan diuji kebenarannya. Nilai hasil pengujian akan
menentukan cabang mana yang akan ditempuh.

Struktur percabangan untuk masalah batasan umur. Sebuah aturan untuk menonton sebuah film
tertentu adalah sebagai berikut, jika usia penonton lebih dari 17 tahun maka penonton
diperbolehkan dan apabila kurang dari 17 tahun maka penonton tidak diperbolehkan nonton.
Buatlah flowchart untuk permasalahan tersebut?

Penyelesaian:

Permasalahan diatas merupakan ciri permasalahan yang menggunakan struktur percabangan.


Hal ini ditandai dengan adanya pernyataan jika .. maka ...(atau If ... Then dalam Bahasa Inggris.
Pada gambar tersebut, tampak penggunaan simbol Decision. Pada simbol ini terjadi
pemeriksaan kondisi, yaitu apakah usia lebih dari 17 tahun atau tidak. Jika jawaban ya maka
program akan menghasilkan keluaran teks “Silahkan Menonton”, sedangkan jika input usia
kurang dari 17 tahun maka program akan menghasilkan keluaran teks “Anda Tidak Boleh
Menonton”.

Struktur percabangan untuk perhitungan dua buah bilangan. Dalam suatu perhitungan nilai P
= X + Y. Jika P positif, maka Q = X * Y, sedangkan jika negative maka nilai Q = X/Y. Buatlah
flowchart untuk mencari nilai P dan Q ?

Penyelesaian:

Pada contoh ini input yang dibutuhkan adalah nilai X dan Y, sedangkan proses pemeriksaan
kondisi dilakukan pada nilai P apakah positif (termasuk 0) ataukah negative.

Kedua contoh di atas merupakan contoh struktur percabangan sederhana yang melibatkan
hanya satu percabangan. Pada masalah-masalah yang lebih rumit, kita akan menjumpai lebih
banyak percabangan. Kita juga akan menjumpai suatu struktur percabangan berada di dalam
struktur percabangan yang lain, atau yang biasa disebut nested (bersarang).

Perhatikan contoh-contoh berikut:


Sebuah usaha fotokopi mempunyai aturan sebagai berikut:

· jika yang fotokopi statusnya adalah langganan, maka berapa lembar pun dia fotokopi, harga
perlembarnya Rp. 75,-

· jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari 100 lembar harga
perlembarnya Rp. 100,-. Sedangkan jika lebih atau sama dengan 100 lembar maka harga
perlembarnya Rp. 85,-.

Buat flowchart untuk menghitung total harga yang harus dibayar jika seseorang memfotokopi
sejumlah X lembar.

Penyelesaian:

Pada contoh ini, masalah terlihat lebih rumit. Ada dua percabangan yang terjadi. Yang pertama
adalah pemeriksaan apakah status seseorang pelanggan atau bukan. Kedua, apabila status
seseorang bukan pelanggan, maka dilakukan pemeriksaan berapa jumlah lembar fotokopi,
apakah lebih dari 100 lembar atau tidak.

Pada soal ini kita juga menjumpai apa yang disebut sebagai nested. Perhatikan pernyataan pada
syarat kedua dari persoalan di atas, jika yang fotokopi bukan langganan, maka jika dia fotokopi
kurang dari 100 lembar harga perlembarnya Rp. 100 pernyataan jika yang kedua berada di
dalam jika yang pertama.

Input yang dibutuhkan untuk permasalahan ini adalah status orang yang fotokopi dan jumlah
lembar yang difotokopi. Sehingga variable input yang digunakan adalah:

· Status untuk status orang yang fotokopi

· JLF untuk jumlah lembar yang difotokopi

Selain itu terdapat variable dengan nama HPP yang digunakan untuk menyimpan harga per
lembar dan TH untuk menyimpan nilai total harga. Perhatikan, variable Status bertipe data
char, sehingga penulisannya harus menggunakan tanda “ “.

Struktur percabangan bersarang untuk masalah kelulusan siswa. Aturan kelulusan siswa pada
mata pelajaran Pemrograman Web diterapkan sebagai berikut:
Jika nilai ujian tengah semester (UTS) lebih besar dari 70 maka siswa dinyatakan lulus dan Nilai
Akhir sama dengan nilai UTS. x Jika nilai UTS kurang atau sama dengan 70 maka siswa
dinyatakan lulus jika Nilai Akhir lebih besar atau sama dengan 60 dimana Nilai Akhir = (nilai
UTS x 40%) + (nilai UAS x 60%).

Buatlah flowchart penyelesaian masalah tersebut apabila output yang diinginkan adalah NIM,
Nama Siswa, Nilai Akhir dan Status Kelulusan?

Penyelesaian:

Pada contoh ini, ada dua percabangan. Yang pertama adalah pemeriksaan apakah nilai UTS
siswa lebih dari 70. Kedua, apabila nilai UTS tidak lebih dari 70, maka dilakukan pemeriksaan
apakah nilai akhir lebih dari 60. Input yang dibutuhkan untuk permasalahan ini adalah NIM,
nama siswa, nilai UTS, dan nilai UAS.

Sehingga variable input yang digunakan adalah: NIM untuk Nomor induk siswa, nama untuk
nama siswa, NUTS untuk nilai ujian tengah semester, dan NUAS untuk nilai ujian akhir semester.
Sedangkan variabel ouput terdiri dari NA yang digunakan untuk menyimpan nilai akhir dan
Status untuk menyimpan status kelulusan.
Algoritma Dalam Kehidupan Sehari-Hari Dalam Bahasa Natural Dan Flowchart

Posted by informasi populer

3/26/2019

Algoritma ialah urutan langkah-langkah logis untuk menuntaskan suatu persoalan yang disusun
secara sistematis dan logis. Kata Logis merupakan kata kunci dalam Algoritma sebab langkah-
langkah dalam Algoritma harus bersifat logis (nyata) dan harus sanggup ditentukan bernilai
salah atau benar.

Proses semacam algoritma bahwasanya banyak dijumpai dalam kehidupan sehari-hari.


menyerupai salah satu Contohnya saat Anda membaca resep masakan, selain bahan-bahan yang
digunakan, Anda juga akan melihat mekanisme atau urutan langkah-langkah untuk
menciptakan kuliner tersebut.

Prosedur dalam resep menyerupai itu bahwasanya menyatakan semacam algoritma. Prosedur
itu merupakan suatu urutan yang memandu orang untuk melaksanakan suatu proses.

Dalam kehidupan sehari-hari ada aneka macam proses-proses yang mewakili proses algoritma,
baik algoritma bahasa natural, algoritma flowchart atau algoritma pseudocode.

Di artikel kali ini aku akan coba uraikan algoritma dalam kehidupan sehari-hari yang akan
disajikan dalam bahasa natural dan flowchart.

Tapi sebelum pada pola kasus aku akan coba jelaskan kembali apa itu algoritma bahasa natural
dan algoritma flowchart. Mengenai penulisan algoritma ini bahwasanya sudah dibahas di artikel
sebelumnya wacana 3 cara penyajian algoritma.

Pengertian algoritma bahasa natural ?


Algoritma bahasa natural merupakan cara penyajian suatu algoritma yang paling sederhana dan
paling gampang untuk dimengerti. Algoritma ditulis dengan bahasa yang kita gunakan sehari-
hari (bahasa indonesia), atau bahasa apapun yang dipahami.

Ketika menyajikan algoritma dalam bahasa natural, maka ada beberapa hal yang perlu
diperhatikan, urutan langkah-langkah harus dimulai dengan kata mulai / Start dan diakhiri
dengan kata selesai / stop, atau anda juga sanggup memakai istilah dengan bahasa lainnya yang
serupa, Start dituliskan sebagai ‘inisialisasi’ atau ‘Mulai’, sedangkan End sendiri dituliskan sebagai
‘selesai’ dan dituliskan pada selesai algoritma.
Pengertian Algoritma Flowchart ?
Flowchart adalah suatu skema dengan simbol-simbol tertentu yang menggambarkan urutan
proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya
dalam suatu program.

Ternyata langkah-langkah untuk menuntaskan persoalan dalam algoritma selain sanggup


memakai bahasa natural, anda juga sanggup memakai flowchart, namun untuk memakai
flowchart anda setidaknya harus memahami simbol-simbol yang dipakai oleh flowchart.

Contoh Algoritma Bahasa natural dan flowchart dalam kehidupan sehari-hari ?


Berikut ialah beberapa pola algoritma bahasa natural dan flowchart dalam kehidupan sehari-
hari:

1. Mengirim Surat ke kantor Pos


a. Algoritma bahasa natural:

1. Mulai

2. Siapkan kertas dan kartu ucapak

3. Siapkan amplop

4. Siapkan alat tulis

5. Mulai menulis ucapan

6. memasukan kertas ke dalam amplop

7. Lem amplop

8. Tulis alamat tujuan di belakang amplop

9. Apakah ada perangko, kalau ada temple perangko, kalau tidak ada beli dulu

10. Tempel perangko

11. pergi ke kantor pos

12. Poskan surat tersebut

13. selesai

B. Algoritma Flowchart mengirim surat


2. Makan
Contoh kasus algoritma ke 2 dalam kehidupan sehari-hari ialah acara makan, berikut ialah
penyajian algoritma flowchart untuk kasus makan:

A. Algoritma Bahasa Natural

1. Mulai

2. Cuci Tangan

3, Ambil Alat makan (sendok, garpu, piring)

4. Ambil nasi dan taruh di atas piring

5. Ambil lauk, taruh lauk di atas nasi


6.Ambil Air minum di gelas

7. Baca doa sebelum makan

8. Makan

9. Sesudah makan baca doa sesuah makan

10.Cuci piring

11 Selesai.

B. Algoritma Flowchart

3. Tidur
Aktivitas berikutnya yang sanggup dipecahkan dalam algoritma ialah proses tidur, algoritma
flowchartnya ialah sebagai berikut:

A. Algoritma Bahasa Natural


1. Mulai
2. Membersihkan diri (mandi, basuh muka, kaki dan tangan)
3. Ganti baju tidur
4. Pergi ke kamar
5. Naik ke daerah tidur
6. Membaca Doa sebelum tidur
7. Tidur
8. Selesai
B. Algoritma Flowchart

4. Memasak Mie instant


Berikut ialah penyajian algoritma flowchart untuk permasalahan dalam kehidupan sehari-hari
memasak mie:

A. Algoritma bahasa natural


Sama dengan deskripsi pada gambar
B. Algoritma Flowchart

5. Menanak Nasi
Algoritma flowchart menanak nasi ialah sebagai berikut:
Kesimpulan
Ada aneka macam pola permasalahan dalam kehidupan sehari-hari yang sanggup dipecahkan
memakai algoritma flowchart.

Untuk menciptakan algoritma flowchart intinya harus dimulai dengan simbol terminator
dengan goresan pena Mulai / start atau selesai / end / finish.

Simbul lainnya yang dipakai harus sesuai dengan kasus yang ingin dipecahkan, sehingga alur
proses yang terjadi gampang untuk dipahami.
ALGORITMA PERCABANGAN 1 KONDISI DAN 2 KONDISI

ALGORITMA PERCABANGAN
Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-
kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan
program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai
percabangan/pemilihan atau keputusan. Algoritma percabangan pada pemrograman umumnya
menggunakan kata kunci IF (jika), THEN (maka), dan ELSE (selainnya). Berikut kelompok saya
akan mejelaskan tentang algoritma percabangan 1 kondisi dan 2 kondisi beserta contoh
kasusnya.
ALGORITMA PERCABANGAN 1 KONDISI
Algoritma percabangan dengan 1 kondisi memiliki format dasar seperti berikut :
IF <kondisi>
THEN <pernyataan>
Pada format diatas , jika <kondisi> bernilai benar maka <pernyataan> dikerjakan, sedangkan
jika bernilai salah, maka <pernyataan> tidak dikerjakan dan proses langsung keluar dari
percabangan.
Contoh Kasus : Nilai siswa akan gagal bila bernilai ≤ 60
ALGORITMA BAHASA NATURAL

1. Mulai
2. Menentukan nilai siswa
3. Jika nilai siswa ≤ 60
4. Siswa dinyatakan Gagal
5. Selesai

PSEUDOCODE
Var :
nilai_siswa : integer
Pseudocode :
Read ( nilai siswa )
IF nilai siswa ≤ 60 THEN
write ( Siswa dinyatakan gagal )
FLOWCHART
ALGORITMA PERCABANGAN 2 KONDISI
Algoritma percabangan dengan 2 kondisi memiliki format dasar seperti berikut :
IF <kondisi>
THEN <pernyataan 1>
ELSE <pernyataan 2>
Pada format di atas, Jika <kondisi> bernilai benar maka pernyataan 1 dikerjakan. Sedangkan
jika tidak (<kondisi>bernilai salah), maka pernyataan yang dikerjakan adalah pernyataan 2.
Berbeda dengan percabangan 1 kondisi, pada percabangan dua kondisi ada dua pernyataan
untuk kedua kondisi,yaitu untuk <kondisi> yang bernilai benar dan <kondisi> yang bernilai
salah.
Contoh Kasus : Penggolongan nilai
ALGORITMA BAHASA NATURAL

1. Mulai
2. Menentukan nilai siswa
3. Jika nilai siswa ( 0 – 100 ) > 75 Tergolong Baik
4. Jika nilai siswa ( 0 – 100 ) ≤ 75 Tergolong Cukup
5. Tampilkan hasil
6. Selesai

PSEUDOCODE
Var :
nilai_siswa : integer
Pseudocode
read (nilai siswa )
IF nilai siswa > 75 THEN
write ( tergolong baik )
ELSE
write ( tergolong cukup )
FLOWCHART
Percabangan Java if, else-if, if-else, switch
Percabangan adalah suatu pilihan atau opsi dengan kondisi tertentu. Jika kondisi yang menjadi syarat
terpenuhi, maka opsi atau pilihan dijalankan, jika tidak maka sebaliknya. Dalam java terdapat 4 macam
jenis percabangan, if, if-else, else-if, dan juga switch. Keempat jenis ini memiliki penggunaan masing-
masing. Berikut penjelasan mengenai penggunaan tiap-tiap percabangan :

 if : Percabangan if ini digunakan jika kita hanya memiliki satu pernyaatan yang akan dijalankan
dengan syarat tertentu. Sintaks if seperti berikut :

if(kondisi){
pernyataan
}
Jika kondisi benar, maka pernyataan akan dijalankan.
Contoh :
public class coba{
public static void main (String [] args){
int a=0;
if (a==0)
System.out.println("Nilai a = 0");
if (a==1)
System.out.println("Nilai a = 1");
}
}
Output : Program akan menampilkan nilai a = 0 saja, karena pada if yang kedua, kondisi tidak
memenuhi atau salah.

 if else : Percabangan if else digunakan saat kita memiliki dua pernyataan dengan syarat tertentu.
Sintaks if-else seperti berikut :

if(kondisi){
pernyataan1
}else{
pernyataan2
}
Jika hasil dari if benar, maka pernyataan1 yang dijalankan, sedangkan jika salah, pernyataan dua yang
akan dijalankan.
Contoh :
public class coba{
public static void main (String [] args){
int a=0;
if (a==0)
System.out.println("Nilai a = 0");
else
System.out.println("Nilai a = 1");
}
}
Output : program akan menampilkan nilai a = 0, karena kondisi if bernilai benar, jika pada inisialisasi
nilai a tidak bernilai 0, maka program akan menampilkan nilai a = 1.

 else -if : percabangan yang digunakan saat kita memiliki banyak kondisi (lebih dari 2) dan banyak
pernyataan (lebih dari 2). Sintaks dari else-if seperti berikut :

if(kondisi){
pernyataan1
}elseif(kondisi2){
pernyataan2
}else(kondisi3){
pernyataan3
}
else {
penyataan4
}
jika kondisi1 benar, maka pernyataan1 akan dijalankan, jika kondisi2 benar, maka penyataan2 akan
dijalankan, jika semua kondisi salah, maka penyataan4 yang akan dijalankan saja.
Contoh :

public class coba{


public static void main (String [] args){
int a=2;
if (a==0)
System.out.println("Nilai a = 0");
else if(a==1)
System.out.println("Nilai a = 1");
else if(a==2)
System.out.println("Nilai a = 2");
}
}
Output : Program akan menampilkan nilai a = 2 saja, karena pada else-if yang ketiga atau dengan
pernyataan a==2 bernilai benar, sedangkan pernyataan yang lain tidak dijalankan karena kondisi tidak
memenuhi.

 switch-case : percabangan yang digunakan saat kita memiliki banyak kondisi (lebih dari 2) dan
banyak pernyataan (ledbih dari 2). Sebenarnya switch-case ini hampir sama dengan else if, hanya
saja sintaksnya yang berbeda. Sintaks dari switch-case seperti berikut :

switch (variabel) {
case nilai1: pernyataan1;
break;
case nilai2: pernyataan2;
break;
default: pernyataan3;
}
Jika nilai variabel yang ditunjuk bernilai sesuai nilai1, maka pernyataan1 akan dijalankan, jika nilai
variabel yang ditunjuk bernilai sesuai nilai2, pernyataan2 dijalankan, jika tidak ,maka pernyataan3 yang
akan dijalankan.

public class coba{


public static void main (String [] args){
int a=3;
switch (a) {
case 1:
System.out.println("Nilai a=1");break;
case 2:
System.out.println("Nilai a=2"); break;
case 3:
System.out.println("Nilai a=3");break;
default:
System.out.println("Nilai a=4"); break
}
}
}
Output : Program akan menampilkan nilai a = 2 saja, karena kondisi bernilai benar, perhatika break
dibelakang pernyataan, jika break ini dihapus, maka semua pernyataan akan dijalankan. Break digunakan
untuk keluar dari switch-case saat 1 pernyataan sudah dijalankan.
A. If-Else

1. Buatlah sebuah program untuk menghitung salah satu diantara luas segitiga, luas persegi
panjang atau luas lingkaran dengan menggunakan rumus berikut :

 Luas Segitiga = 0.5 x alas x tinggi


 Luas Persegi Panjang = panjang x lebar
 Luas Lingkaran = 3.14 x jari-jari x jari-jari.

Untuk pembuktiannya silahkan coba seperti berikut :

Berikut program untuk menghitung diantara Luas Segitiga, Luas Persegi Panjang, atau Luas
Lingkaran.

Algoritma Deskriptif
Masukkan Pilihan untuk menghitung luas Segitiga, Luas Persegi Panjang, atau Luas Lingkaran.
a. Jika memilih menghitung Luas Segitiga, maka :

 Masukkan Alas
 Masukkan Tinggi
 Luas segitiga=0.5*alas*tinggi
 Tampilkan hasil luas segitiga

b. Jika memilih menghitung luas persegi panjang, maka :

 Masukkan panjang
 Masukkan lebar
 Luas persegi panjang=panjang*lebar
 Tampilkan hasil luas persegi panjang

c. Jika menghitung luas lingkaran, maka :

 Masukkan Jari-jari
 Luas lingkaran = 3.14*(Jari-jari*Jari-jari)
 Hasil luas lingkaran

Program
# include <iostream.h>
# include <conio.h>
main ()
{
int pilihan;
double alas, tinggi, segi3;
double panjang, lebar, lpp;
double jari2, luas_lingkaran;

cout<<" Masukkan Pilihan"<<endl;


cout<<"1. Menghitung Luas Segitiga"<<endl;
cout<<"2. Menghitung Luas Persegi Panjang"<<endl;
cout<<"3. Menghitung Luas Lingkaran"<<endl<<endl;
cout<<"Pilih (1/2/3) : ";
cin>>pilihan;
cout<<endl;

if (pilihan == 1)
{
cout<<"\t Menghitung Luas Segitiga \n";
cout<<"Masukkan Alas : ";
cin>>alas;

cout<<"Masukkan Tinggi : ";


cin>>tinggi;

segi3=0.5*alas*tinggi;
cout<<"Luas Segitiga = "<<segi3<<endl;
}

else if (pilihan==2)
{
cout<<"\t Menghitung Luas Persegi Panjang \n";
cout<<"Masukkan Panjang : ";
cin>>panjang;

cout<<"Masukkan Lebar : ";


cin>>lebar;

lpp=panjang*lebar;
cout<<"Luas Persegi Panjang = "<<lpp<<endl;
}

else if (pilihan==3)
{
cout<<"\t Menghitung Luas Lingkaran \n";
cout<<"Masukkan Jari-Jari : ";
cin>>jari2;

luas_lingkaran=3.14*(jari2*jari2);
cout<<"Luas Lingkaran = "<<luas_lingkaran<<endl;
}
else
{
cout<<"Maaf, Anda Salah Memilih"<<endl;
}
getch();
}

Hasil Run :
Silahkan coba buat seperti berikut :
- Silahkan pilih : 1
- Masukkan Nilai Alas : 3
- Masukkan Nilai Tinggi : 5

Maka hasilnya adalah 7.5

2. Buatlah program untuk menghitung total pembayaran pemasangan baru rekening pelanggan
PLN. Untuk pemasangan baru ditambah dengan Ppn 10% dan administrasi 5% dari harga untuk
setiap sambungan. Berikut tabel pemasangan :

Berikut program untuk membuat program pemasangan baru PLN :

Algoritma Deskriptif
- Masukkan Nama Lengkap
- Masukkan Pilihan Jenis Pelanggan [Rumah Tangga/Industri]
- Jika pilih Rumah Tangga, maka sambungan yang akan di pilih yakni :
a. jika memilih sambungan Kurang dari 450 watt, maka harga sambungan Rp. 650.000
b. jika memilih sambungan 451 - 900 watt, maka harga sambungan Rp. 650.000
c. jika memilih sambungan 901 - 1.200 watt, maka harga sambungan Rp. 1.200.000
d. jika memilih sambungan 1.201 - 2.200 watt, maka harga sambungan Rp. 1.500.000
e. jika memilih sambungan 2.201 - 4.400 watt, maka harga sambungan Rp. 1.750.000

- Jika pilih Industri, maka sambungan yang akan dipilih yakni :


a. jika memilih sambungan 4.401 - 9.500 watt, maka harga sambungan Rp. 2.250.000
b. jika memilih sambungan 9.501 - 12.000 watt, maka harga sambungan Rp. 2.750.000
c. jika memilih sambungan 12.001 - 16.000 watt, maka harga sambungan Rp. 3.250.000
d. jika memilih sambungan 16.001 - 22.000 watt, maka harga sambungan Rp. 4.500.000
e. jika memilih sambungan diatas 22.001 watt, maka harga sambungan Rp. 6.750.000

- Biaya Ppn=0.1*harga sambungan


- Biaya adminitrasi=0.05*harga sambungan
- Total pembayaran = harga sambungan + hasil ppn + hasil adminitrasi
- Tampilhan Harga sambungan, Biaya Ppn, Biaya adminitrasi, dan total pembayaran
Program
1. Versi if-else
# include <iostream.h>
# include <conio.h>

main ()
{
char nama[20],kode;
int rt,industri;
long int harga, total;
double ppn=0.1,ppnt,admin=0.05,admint;

cout<<"\n\t\t\t PT. Perusahaan Listrik Negara (PLN) \n";


cout<<"\t\t\t Pemasangan Baru Renkening Pelanggan\n";
gotoxy (5,5);
cout<<"-----------------------------------------------------------------------\n";

gotoxy (5,6); cout<<"| Kode ";


gotoxy (12,6); cout<<"| Jenis Pelanggan";
gotoxy (30,6); cout<<"| No.";
gotoxy (36,6); cout<<"| Sambungan";
gotoxy (59,6); cout<<"| Harga";
gotoxy (75,6); cout<<"|\n";

gotoxy (5,7);
cout<<"|---------------------------------------------------------------------|\n";

gotoxy (5,8); cout<<"| A.";


gotoxy (12,8); cout<<"| Rumah Tangga";
gotoxy (30,8); cout<<"| 1";
gotoxy (36,8); cout<<"| Dibawah 450 Watt";
gotoxy (59,8); cout<<"| Rp. 650.000";
gotoxy (75,8); cout<<"|\n";

gotoxy (5,9); cout<<"| ";


gotoxy (12,9); cout<<"| ";
gotoxy (30,9); cout<<"| 2";
gotoxy (36,9); cout<<"| 451 - 900 Watt";
gotoxy (59,9); cout<<"| Rp. 850.000";
gotoxy (75,9); cout<<"|\n";

gotoxy (5,10); cout<<"| ";


gotoxy (12,10); cout<<"| ";
gotoxy (30,10); cout<<"| 3";
gotoxy (36,10); cout<<"| 901 - 1.200 Watt";
gotoxy (59,10); cout<<"| Rp. 1.200.000";
gotoxy (75,10); cout<<"|\n";

gotoxy (5,11); cout<<"| ";


gotoxy (12,11); cout<<"| ";
gotoxy (30,11); cout<<"| 4";
gotoxy (36,11); cout<<"| 1.201 - 2.200 Watt";
gotoxy (59,11); cout<<"| Rp. 1.500.000";
gotoxy (75,11); cout<<"|\n";

gotoxy (5,12); cout<<"| ";


gotoxy (12,12); cout<<"| ";
gotoxy (30,12); cout<<"| 5";
gotoxy (36,12); cout<<"| 2.201 - 4.400 Watt";
gotoxy (59,12); cout<<"| Rp. 1.750.000";
gotoxy (75,12); cout<<"|\n";

gotoxy (5,13);
cout<<"|---------------------------------------------------------------------|\n";

gotoxy (5,14); cout<<"| B.";


gotoxy (12,14); cout<<"| Industri";
gotoxy (30,14); cout<<"| 6";
gotoxy (36,14); cout<<"| 4.401 - 9.500 Watt";
gotoxy (59,14); cout<<"| Rp. 2.250.000";
gotoxy (75,14); cout<<"|\n";

gotoxy (5,15); cout<<"|";


gotoxy (12,15); cout<<"|";
gotoxy (30,15); cout<<"| 7";
gotoxy (36,15); cout<<"| 9.501 - 12.000 Watt";
gotoxy (59,15); cout<<"| Rp. 2.750.000";
gotoxy (75,15); cout<<"|\n";

gotoxy (5,16); cout<<"|";


gotoxy (12,16); cout<<"|";
gotoxy (30,16); cout<<"| 8";
gotoxy (36,16); cout<<"| 12.001 - 16.000 Watt";
gotoxy (59,16); cout<<"| Rp. 3.250.000";
gotoxy (75,16); cout<<"|\n";

gotoxy (5,17); cout<<"|";


gotoxy (12,17); cout<<"|";
gotoxy (30,17); cout<<"| 9";
gotoxy (36,17); cout<<"| 16.001 - 22.000 Watt";
gotoxy (59,17); cout<<"| Rp. 4.500.000";
gotoxy (75,17); cout<<"|\n";

gotoxy (5,18); cout<<"|";


gotoxy (12,18); cout<<"|";
gotoxy (30,18); cout<<"| 10";
gotoxy (36,18); cout<<"| Diatas 22.001 Watt";
gotoxy (59,18); cout<<"| Rp. 6.750.000";
gotoxy (75,18); cout<<"|\n";

gotoxy (5,19);
cout<<"-----------------------------------------------------------------------\n";
cout<<"\n\t\t\t Input Data Pelanggan Baru\n";
cout<<" Masukkan Nama Lengkap : ";
cin>>nama;

cout<<" Pilih Kode Pelanggan (A/B) : ";


cin>>kode;
if (kode=='A' || kode=='a')
{
cout<<" Pilih Jenis Sambungan [1-5] : ";
cin>>rt;

if (rt==1)
{
harga=650000;
}

else if (rt==2)
{
harga=850000;
}

else if (rt==3)
{
harga=1200000;
}

else if (rt==4)
{
harga=1500000;
}

else if (rt==5)
{
harga=1750000;
}

else
{
cout<<"\t\a Anda Salah Memasukkan Kode\n";
harga=0;
}
}

else if (kode=='B' || kode=='b')


{
cout<<" Pilih Jenis Sambungan [6-10] : ";
cin>>industri;

if (industri==6)
{
harga=2250000;
}
else if (industri==7)
{
harga=2750000;
}

else if (industri==8)
{
harga=3250000;
}

else if (industri==9)
{
harga=4500000;
}

else if (industri==10)
{
harga=6750000;
}
else
{
cout<<"\t\a Anda Salah Memasukkan Kode\n";
harga=0;
}
}

else
{
cout<<"\t Anda Salah Memasukkan Kode\n";
harga=0;
}

admint=admin*harga;
ppnt=ppn*harga;
total=harga+ppnt+admint;

cout<<"\n\t Output Data";


cout<<"\n\t Rincian Pembayaran\n";
cout<<" Harga Sambungan : Rp. "<<harga<<endl;
cout<<" Biaya PPN 10% : Rp. "<<ppnt<<endl;
cout<<" Biaya Adminitrasi 5% : Rp. "<<admint<<endl;
cout<<" Total Pembayaran : Rp. "<<total<<endl;
getch();
}

2. Versi if-else dan switch


# include <iostream.h>
# include <conio.h>

main ()
{
char nama[20],kode;
int rt,industri;
long int harga, total;
double ppn=0.1,ppnt,admin=0.05,admint;

cout<<"\n\t\t\t PT. Perusahaan Listrik Negara (PLN) \n";


cout<<"\t\t\t Pemasangan Baru Renkening Pelanggan\n";
gotoxy (5,5);
cout<<"-----------------------------------------------------------------------\n";

gotoxy (5,6); cout<<"| Kode ";


gotoxy (12,6); cout<<"| Jenis Pelanggan";
gotoxy (30,6); cout<<"| No.";
gotoxy (36,6); cout<<"| Sambungan";
gotoxy (59,6); cout<<"| Harga";
gotoxy (75,6); cout<<"|\n";

gotoxy (5,7);
cout<<"|---------------------------------------------------------------------|\n";

gotoxy (5,8); cout<<"| A.";


gotoxy (12,8); cout<<"| Rumah Tangga";
gotoxy (30,8); cout<<"| 1";
gotoxy (36,8); cout<<"| Dibawah 450 Watt";
gotoxy (59,8); cout<<"| Rp. 650.000";
gotoxy (75,8); cout<<"|\n";

gotoxy (5,9); cout<<"| ";


gotoxy (12,9); cout<<"| ";
gotoxy (30,9); cout<<"| 2";
gotoxy (36,9); cout<<"| 451 - 900 Watt";
gotoxy (59,9); cout<<"| Rp. 850.000";
gotoxy (75,9); cout<<"|\n";

gotoxy (5,10); cout<<"| ";


gotoxy (12,10); cout<<"| ";
gotoxy (30,10); cout<<"| 3";
gotoxy (36,10); cout<<"| 901 - 1.200 Watt";
gotoxy (59,10); cout<<"| Rp. 1.200.000";
gotoxy (75,10); cout<<"|\n";

gotoxy (5,11); cout<<"| ";


gotoxy (12,11); cout<<"| ";
gotoxy (30,11); cout<<"| 4";
gotoxy (36,11); cout<<"| 1.201 - 2.200 Watt";
gotoxy (59,11); cout<<"| Rp. 1.500.000";
gotoxy (75,11); cout<<"|\n";

gotoxy (5,12); cout<<"| ";


gotoxy (12,12); cout<<"| ";
gotoxy (30,12); cout<<"| 5";
gotoxy (36,12); cout<<"| 2.201 - 4.400 Watt";
gotoxy (59,12); cout<<"| Rp. 1.750.000";
gotoxy (75,12); cout<<"|\n";

gotoxy (5,13);
cout<<"|---------------------------------------------------------------------|\n";

gotoxy (5,14); cout<<"| B.";


gotoxy (12,14); cout<<"| Industri";
gotoxy (30,14); cout<<"| 6";
gotoxy (36,14); cout<<"| 4.401 - 9.500 Watt";
gotoxy (59,14); cout<<"| Rp. 2.250.000";
gotoxy (75,14); cout<<"|\n";

gotoxy (5,15); cout<<"|";


gotoxy (12,15); cout<<"|";
gotoxy (30,15); cout<<"| 7";
gotoxy (36,15); cout<<"| 9.501 - 12.000 Watt";
gotoxy (59,15); cout<<"| Rp. 2.750.000";
gotoxy (75,15); cout<<"|\n";

gotoxy (5,16); cout<<"|";


gotoxy (12,16); cout<<"|";
gotoxy (30,16); cout<<"| 8";
gotoxy (36,16); cout<<"| 12.001 - 16.000 Watt";
gotoxy (59,16); cout<<"| Rp. 3.250.000";
gotoxy (75,16); cout<<"|\n";

gotoxy (5,17); cout<<"|";


gotoxy (12,17); cout<<"|";
gotoxy (30,17); cout<<"| 9";
gotoxy (36,17); cout<<"| 16.001 - 22.000 Watt";
gotoxy (59,17); cout<<"| Rp. 4.500.000";
gotoxy (75,17); cout<<"|\n";

gotoxy (5,18); cout<<"|";


gotoxy (12,18); cout<<"|";
gotoxy (30,18); cout<<"| 10";
gotoxy (36,18); cout<<"| Diatas 22.001 Watt";
gotoxy (59,18); cout<<"| Rp. 6.750.000";
gotoxy (75,18); cout<<"|\n";

gotoxy (5,19);
cout<<"-----------------------------------------------------------------------\n";

cout<<"\n\t\t\t Input Data Pelanggan Baru\n";


cout<<" Masukkan Nama Lengkap : ";
cin>>nama;

cout<<" Pilih Kode Pelanggan (A/B) : ";


cin>>kode;
if (kode=='A' || kode=='a')
{
cout<<" Pilih Jenis Sambungan [1-5] : ";
cin>>rt;
switch (rt)
{
case 1:
harga=650000;
case 2:
harga=850000;
case 3:
harga=1200000;
case 4:
harga=1500000;
case 5:
harga=1750000;
default:
cout<<"\t\a Anda Salah Memasukkan Kode\n";
harga=0;
}
}

else if (kode=='B' || kode=='b')


{
cout<<" Pilih Jenis Sambungan [6-10] : ";
cin>>industri;
switch (industri)
{
case 6:
harga=2250000;
case 7:
harga=2750000;
case 8:
harga=3250000;
case 9:
harga=4500000;
case 10:
harga=6750000;
default:
cout<<"\t\a Anda Salah Memasukkan Kode\n";
harga=0;
}
}

else
{
cout<<"\t Anda Salah Memasukkan Kode\n";
harga=0;
}

admint=admin*harga;
ppnt=ppn*harga;
total=harga+ppnt+admint;
cout<<"\n\t Output Data";
cout<<"\n\t Rincian Pembayaran\n";
cout<<" Nama Pelanggan : "<<nama<<endl;
cout<<" Harga Sambungan : Rp. "<<harga<<endl;
cout<<" Biaya PPN 10% : Rp. "<<ppnt<<endl;
cout<<" Biaya Adminitrasi 5% : Rp. "<<admint<<endl;
cout<<" Total Pembayaran : Rp. "<<total<<endl;
getch();
}

Maka jika di Run hasilnya seperti berikut.

3. Buatlah program untuk menghitung gaji bersih dari seorang karyawan, dengan ketentuan
sebagai berikut:

 Karyawan memperoleh tunjangan istri 10% dari gaji pokok apabila statusnya sudah
menikah.
 Memperoleh tunjangan anak apabila mempunyai anak. Jumlah anak kecil dari 2 maka
tunjangan anak 5% dari gaji pokok, sedangkan jumlah anak lebih besar dari 2 maka
tunjangan anak 10% dari gaji pokok.
 Gaji bersih diperoleh dari tunjangan istri + tunjangan anak + gaji pokok.
 Berikut program untuk menghitung daftar gaji karyawan :

#include <iostream.h>
#include <conio.h>

main()
{
char nama[30];
int status,anak;
long int gaji_pokok, tunj_nikah, tunj_anak,gaji_bersih;
cout<<"\t Input Data\n";
cout<<" Nama Karyawan : ";
cin>>nama;
cout<<" Gaji Pokok : ";
cin>>gaji_pokok;
cout<<" Status Pernikahan\t\n";
cout<<" (1.Nikah, 2.Belum) [1/2] : ";
cin>>status;
if (status==1)
{
tunj_nikah=0.1*gaji_pokok;
cout<<" Jumlah Anak : ";
cin>>anak;
if (anak<2)
{
tunj_anak=0.05*gaji_pokok;
}
else
{
tunj_anak=0.1*gaji_pokok;
}
}

else if (status==2)
{
tunj_nikah=0;
}

else
{
cout<<" Anda Salah Memasukkan Kode\n";
}

gaji_bersih=gaji_pokok+tunj_nikah+tunj_anak;

cout<<"\n\t Input Data\n";


cout<<" Nama Karyawan : "<<nama<<endl;
cout<<" Gaji Pokok : Rp. "<<gaji_pokok<<endl;
cout<<" Tunjangan Nikah : Rp. "<<tunj_nikah<<endl;
cout<<" Tunjangan Anak : Rp. "<<tunj_anak<<endl;
cout<<" Gaji Bersih : Rp. "<<gaji_bersih<<endl;
getch();
}
Hasil Run :


Soal Pilihan ganda dan jawaban
Pemprograman Dasar ,Dasar Struktur
Algoritma,Struktur Kontrol & Perulangan,
Penerapan dari Algoritma ke
Program,Array,Fungsi

Dasar Struktur Algoritma

1. Siswa mampu Mendeskripsikan struktur algoritma

 Bagian persiapan dari sebuah algoritma disebut dengan bagian ....

a. Deskripsi

b. Deklarasi

c. Header

d. Preparation

e. Prosedur

 Bagian yang menjelaskan serangkaian instruksi untuk memproses inputan dan menghasilkan output
adalah bagian ....

a. Deskripsi
b. Deklarasi

c. Header

d. Preparation

e. Prosedur

2. Siswa mampu Mendeskripsikan pengenalan variable

 Berikut ini pernyataan yang benar mengenai variabel, kecuali ....

a. Digunakan untuk menyimpan nilai

b. Boleh diberikan nama dengan bebas

c. Tidak boleh ada dua nama variabel yang sama

d. Digunakan untuk menyimpan nilai input

e. Digunakan untuk menyimpan nilai output

 Berikut ini penggunaan yang benar mengenai nama variable, kecuali....

a. Float nilai

b. Int a

c. Char nama lengkap

d. Char alamat

e. Int usia

3. Siswa mampu Mendeskripsikan pengenalan tipe data

 Berikut ini variabel yang pasti memiki tipe data integer yaitu ....

a. PanjangBalok

b. LuasPersegi

c. TotalGaji

d. JumlahAnak

e. NilaiTertinggi

4. Siswa mampu Mendeskripsikan pengenalan operator

 Operasi 22 MOD 4 memberikan hasil ....

a. 5

b. 5,5
c. 2

d. FALSE

e. TRUE

 Int a = 12, int b = 3, int hasil = a % b

Maka nilai hasil adalah ....

a. 0

b. 1

c. 2

d. 4

e. 9

5. Siswa mampu penggunaan pseudocode

 Berikut ini pernyataan yang benar mengenai pseudocode kecuali...

a. Menggunakan bahasa mirip bahasa pemrograman

b. Bahasanya harus baku, tidak boleh ada kesalahan

c. Memudahkan implementasi ke bahasa pemrograman

d. Menggunakan kata-kata kunci sebagaimana bahasa pemrograman

e. Dapat diubah ke bahasa natural dan sebaliknya

6. Siswa mampu penggunaan flowchart

Simbol apakah flowchart diatas?

a. Terminator

b. Input/output

c. Proses

d. Pemilihan

e. Preparasi


Simbol apakah flowchart diatas?

a. Terminator

b. Input/output
c. Proses

d. Pemilihan

e. Preparasi

Struktur Kontrol & Perulangan

7. Siswa mampu Mendeskripsikan Struktur percabangan 1 kondisi

Jika <kondisi> bernilai benar maka pernyataan dikerjakan, sedangkan jika tidak,
maka pernyataan tidak dikerjakan dan proses langsung keluar dari percabangan adalah penjelasan
dari percabangan ....

a. 1 kondisi

b. 2 kondisi

c. Lebih dari 2 kondisi

d. Percabangan bersarang

e. Perulangan

8. Siswa mampu Mendeskripsikan struktur percabangan 2 kondisi

 Jika <kondisi> bernilai benar maka pernyataan1 dikerjakan. Sedangkan jika tidak (<kondisi> bernilai
salah), maka pernyataan yang dikerjakan adalah pernyataan2. Hal tersebut adalah penjelasan dari
percabangan...

a. 1 kondisi

b. 2 kondisi

c. Lebih dari 2 kondisi

d. Percabangan bersarang

e. Perulangan

9. Siswa mampu Mendeskripsikan struktur percabangan 2 kondisi atau lebih

 Jika <kondisi1> dicek nilai kebenarannya. Jika benar, maka dikerjakan pernyataan1. Jika salah, maka
dicek nilai kebenaran <kondisi2>. Jika <kondisi2> benar, maka dikerjakan pernyataan2. Jika tidak
algoritma akan mengecek ke kondisi berikutnya dengan cara yang sama dengan yang sebelumnya.
Terakhir, jika semua kondisi bernilai salah, maka pernyataan yang dikerjakan adalah Pernyataan(n+1).
Hal tersebut adalah penjelasan dari percabangan...

a. 1 kondisi

b. 2 kondisi
c. Lebih dari 2 kondisi

d. Percabangan bersarang

e. Perulangan

10. Siswa mampu Mendeskripsikan struktur percabangan bersarang

 Struktur dimana ada percabangan di dalam percabangan disebut ....

a. 1 kondisi

b. 2 kondisi

c. Lebih dari 2 kondisi

d. Percabangan bersarang

e. Perulangan

11. Siswa mampu Mendeskripsikan struktur perulangan dengan kondisi diawal

Penggunaan WHILE DO adalah struktur perulangan dengan ....

a. Kondisi di awal

b. Kondisi di akhir

c. 1 kondisi

d. 2 kondisi

e. Lebih dari 2 kondisi

12.  Penggun


aan REPEAT UNTIL adalah struktur perulangan dengan ....

a. Kondisi di awal

b. Kondisi di akhir

c. 1 kondisi

d. 2 kondisi

e. Lebih dari 2 kondisi

13. Siswa mampu Mendeskripsikan struktur perulangan dengan kondisi akhir diinputkan user

Berikut ini pernyataan yang benar mengenai perulangan dengan kondisi akhir

diinputkan pengguna, kecuali ....


a. Kondisi dapat di awal atau di akhir perulangan

b. Inputan pengguna sebagai sentinel dapat diberikan sebelum perulangan

c. Inputan pengguna sebagai sentinel dapat diberikan di dalam perulangan

d. Inputan pengguna sebagai sentinel dapat diberikan setelah perulangan

e. Dapat menggunakan REPEAT UNTIL

14. Siswa mampu Mendeskripsikan struktur perulangan sebagai pencacah naik

 Syarat tipe data variabel pencacah adalah ....

a. Dapat dihitung

b. Tipe data apa saja

c. Harus integer

d. Bilangan real

e. Karakter

15. Siswa mampu Mendeskripsikan struktur perulangan sebagai pencacah turun

Berikut ini pernyataan yang benar mengenai algoritma perulangan dengan

pencacah turun,kecuali ....

a. Dapat dikonversikan dalam bentuk WHILE DO

b. Dapat menggunakan variabel bertipe data karakter sebagai pencacah

c. Banyaknya iterasi sudah ditentukan

d. Tidak dapat diubah dalam bentuk pencacah naik

e. Dapat digunakan sebagai algoritma untuk menentukan baris bilangan

Penerapan dari Algoritma ke Program

16. Siswa mampu Mengidentifikasi permasalahan kompleks sebagai studi kasus

 Terdapat algoritma berikut.

1) READ nama

2) READ OmsetJual

3) READ GajiPokok

4) Bonus =0
5) IF (OmsetJual)>100 THEN

6) Bonus = 1% x OmsetJual

7) TotalGaji=GajiPokok + Bonus

8) WRITE TotalGaji

Penjelasan yang tidak sesuai dengan algoitma di atas adalah.....

a. Nilai awal bonus adalah 0

b. Bonus adalah 1% dari omset jual

c. Bonus diberikan jika omset jual 100

d. Bonus diberikan jika omset jual lebih dari 100

e. Total gaji adalah gaji pokok ditambah dengan bonus

Array

17. Siswa mampu Mendeskripsikan Penggunaan array 1 dimensi

 Sekumpulan data yang bertipe sama dan antara data satu dengan data yang lain dibedakan dengan
indeksnya merupakan pengertian dari ....

a. Integer

b. Array

c. Variabel

d. Char

e. Booelan

18. Siswa mampu Mendeskripsikan penggunaan array multidimensi

 Array yang terdiri dari m buah baris (row) dan n buah kolom (column) adalah ….

a. Array satu dimensi

b. Variabel

c. Integer

d. Array dua dimensi

e. Array multidimensi

Fungsi

19. Siswa mampu Mendeskripsikan Deklarasi fungsi


 Subprogram yang berguna untuk membentuk program menjadi modul-modul sehingga lebih
sederhana, mudah dipahami dan dapat digunakan berulang kali adalah pengertian dari ...

a. fungsi

b. variabel

c. string

d. void

e. parameter

20. Siswa mampu Mendeskripsikan Pemberian parameter fungsi

Dalam pemrograman C++ bukanlah bahasa prosedural, karena prosedur tidak

mempunyai nilai balik. Untuk melakukan hal ini di dalam C++, maka harus membuat

suatu fungsi dengan tipe void, yang berarti tidak memiliki nilai balik (return value) adalah...

a. #include <iostream>

using namespace std;

int BertambahSatu (int X) {

int hasil;

hasil = X + 1;

return hasil;

tipe_data nama_fungsi (parameter){

Pernyataan_yang_akan_dilakukan;

……………

return nilai_kembali;

b. int main () {

int Bilangan, HASIL;

cout<<"Masukkan Bilangan Bulat : "<<endl;

cin>>Bilangan;

HASIL = BertambahSatu (Bilangan);

cout<<"Nilai keluaran : "<<HASIL;

return 0;
}

c. void nama_fungsi (parameter)

Pernyataan_yang_akan_dilakukan;

……………

d. void nama_fungsi (parameter)

Pernyataan_yang_akan_dilakukan;

……………

e. tipe_data nama_fungsi (parameter){

Pernyataan_yang_akan_dilakukan;

……………

return nilai_kembali;

Dasar Struktur Algoritma

21. Siswa mampu Menerapkan penulisan algoritma dalam pseudocode

Algoritma : Jika A>B dan A>C maka A paling besar

Maka pseudocode algoritma tersebut adalah ...

a. If (A>B;A>C) then write “A paling besar”

b. If (A<B;A>C) then write “A paling besar”

c. If (A>B;A<C) then write “A paling besar”

d. If (A<B;A<C) then write “A paling besar”

e. If (A=B;A>C) then write “A paling besar”

22. Siswa mampu Menentukan Logika dari penyelesaian masalah dengan struktur algoritma
 p=4

q=7

if (p>q) then

p=p-q

write p

Hasil dari algoritma diatas adalah....

a. 4

b. 7

c. 3

d. -3

e. 11

23. Siswa mampu Menentukan karakteristik tipe data pada sebuah variabel

 Jika a= 27.8, maka tipe data yang digunakan adalah ...

a. Integer

b. Char

c. Varchar

d. Float

e. Date

Struktur Kontrol & Perulangan

24. Siswa mampu Menentukan alur percabangan dari potongan baris kode program

 Algoritma

1) READ nama

2) READ OmsetJual

3) READ GajiPokok

4) Bonus =0

5) IF (OmsetJual)>100 THEN

6) Bonus = 1% x OmsetJual

7) TotalGaji=GajiPokok + Bonus

8) WRITE TotalGaji
Jika OmsetJual adalah 100 maka ....

a. TotalGaji > GajiPokok

b. TotalGaji < GajiPokok

c. TotalGaji = GajiPokok

d. TotalGaji = 1%xOmsetJual

e. TotalGaji > 1% x OmsetJual

25. Siswa mampu Menerapkan Struktur Perulangan dengan kondisi diawal

 Perhatikan algoritma berikut:

Algoritma UlangAlik

Variabel i, a n : integer

1) n = 10

2) a = 2

3) i = 1

4) WHILE a <= 3n DO

5) a = a+4

6) WRITE a

7) END

Output dari algoritma di atas adalah ....

a. 28

b. 29

c. 30

d. 31

e. 32

26. Siswa mampu Menerapkan Perulangan dengan kondisi diinputkan user

 Perhatikan algoritma berikut:

Algoritma UlangAlik

Variabel i, a n : integer

1) n = 10

2) a = 2
3) i = 1

4) WHILE a <= 3n DO

5) a = a+4

6) WRITE a

7) END

Jika nilai n dan a diganti dengan nilai berturut-turut adalah 5 dan 20 maka output algoritma di atas
adalah ...

a. 20

b. 24

c. 28

d. 32

e. 36

27. Siswa mampu Menerapkan Struktur perulangan dengan kondisi diakhir

 Algoritma PerulanganAkhir

Variabel i, a, n : integer

1) i = 1

2) a = 5

3) n = 30

4) REPEAT

5) a = a+i*i

6) i=i+1

7) UNTIL a>n

8) WRITE a

9) END

Apakah keluaran dari algoritma diatas?

a. 19

b. 26

c. 35

d. 36

e. 40
28. Siswa mampu Menerapkan Struktur perulangan dengan kondisi akhir diinputkan user

 Algoritma ganjilGenap

Variabel n : integer

Pilihan : karakter

1) REPEAT

2) READ n

3) IF (n MOD 2 == 0) THEN

4) WRITE “Genap”

5) ELSE

6) WRITE “Ganjil”

7) WRITE “Ingin menghitung lagi? y/n”

8) READ pilihan

9) UNTIL (pilihan == “n”)

10) END

Pernyataan yang benar mengenai algoritma di atas adalah...

a. Input pengertian perulangan itu sendiri

b. Pengguna dapat menentukan bilangan ganjil genap sebanyak yang dia mau

c. Pengguna dapat berhenti jika dia tidak mengetikan karakter ‘y’

d. Algoritma di atas dapat diubah dalam struktur WHILE DO

e. Iteratornya adalah variabel pilihan

29. Siswa mampu Menerapkan Struktur perulangan sebagai pencacah naik

 Algoritma HitungUlang

Varabel a, i : integer

1) a = 0

2) FOR i = 1 To 100

3) IF (i mod 5 == 0)THEN

4) WRITE i

5) a = a+1

6) WRITE a
7) END

Nilai akhir a adalah ....

a. 0

b. 10

c. 20

d. 25

e. 100

30. Siswa mampu Menerapkan Struktur perulangan sebagai pencacah turun

 Algoritma HitungMundur

Variabel i, j : integer

1) FOR i = 10 DOWNTO 0 DO

2) WRITE “*”

3) END

Ada berapa banyak bintang yang tercetak?

a. 6

b. 7

c. 8

d. 9

e. 10

Penerapan dari Algoritma ke Program

31. Siswa mampu Menerapkan pembuatan kode program computer

5 Urutan proses yang benar dalam Flowchart adalah……..

a. Head Input Proses Output End

b. Input Loading Proses Output Stop

c. Start Read Proses Output Stop

d. Start Read Proses Write Stop

e. Head Read Loading Write End

Array

32. Siswa mampu Menerapkan Penggunaan array 1 dimensi


Int array [10] = {2,5,4,8,1,3,7,9,10,21}

Nilai array pada indeks 5 adalah ...

a. 2

b. 5

c. 3

d. 7

e. 9

33. Siswa mampu Menerapkan Penggunaan array multidimensi

$ibukota = array;

( array (“Jakarta”,”Indonesia”), array (“London”,”Inggris”));

Jika output adalah “Indonesia”, maka indeks array yang dipilih adalah

a. [0][0]

b. [0][1]

c. [1][0]

d. [1][1]

e. [1][2]

Fungsi

34. Siswa mampu Menerapkan penggunaan fungsi dalam kode program

// my first program in C++

#include <iostream.h>

#include <conio.h>

void main()

Cout<<”Hello My World !”;

Getch();

Dari program diatas, manakah yang termasuk fungsi...

a. Hello My World !
b. void main()

c. // my first program in C++

d. #include <iostream.h>

Dasar Struktur Algoritma

35. Siswa mampu Menyimpulkan hasil dari algoritma percabangan 1 kondisi

If nilai >75 then

Write “Lulus”

Jika diberikan nilai = 80, maka hasilnya adalah ....

a. Tidak Lulus

b. Lulus

c. Nilai 80

d. Nilai >75

e. Nilai diatas 75

36 . Siswa mampu Menganalisis berbagai contoh penerapan algoritma dasar dalam kehidupan sehari-hari

Algoritma percabangan dapat digunakan untuk beberapa kasus permasalahan berikut, kecuali ....

a. Menentukan kelulusan berdasarkan rata-rata

b. Menghitung sewa mobil di sebuah rental yang menyediakan banyak pilihan

c. Menentukan gaji berdasarkan golongan

d. Menentukan rata-rata seluruh siswa dalam satu kelas

e. Menentukan diagnosa penyakit

Struktur Kontrol & Perulangan

37. Siswa mampu Menyimpulkan hasil dari percabangan 2 kondisi

Dalam suatu percabangan diberikan

IF (NILAI > 80) THEN

WRITE “Hebat”

ELSE

WRITE “Good”

Interval nilai yang akan menghasilkan output “Good” adalah ....


a. Nilai>= 0

b. Nilai >70

c. Nilai <= 80

d. Nilai <=70

e. Nilai < 80

Penerapan dari Algoritma ke Program

38. Siswa mampu Memecahkan permasalahan kompleks sebagai studi kasus

Perhatikan program berikut

#include <iostream>

using namespace std;

int main (){

int x = 3.05;

cout << “Nilai x adalah ” << x << endl;

return 0

Kode program yang digaris bawahi terjadi error, seharusnya tipe data yang digunakan adalah...

a. char

b. long int

c. short int

d. signed long int

e. float

Array

39. Siswa mampu Menganalisis pengelompokkan data berdimensi dari kumpulan informasi

Nilai data kelas baris kedua kolom ketiga pada data berikut adalah....

Bulan ke Kelas A Kelas B Kelas C Kelas D

1 50 48 64 44

2 54 51 66 44

3 53 51 64 43

a. 50
b. 51

c. 44

d. 66

e. 43

Fungsi

40. Siswa mampu Menyimpulkan tentang cara kerja fungsi pada kode program

Perhatikan program berikut

#include <iostream>

Using namespace std;

Int main{

Int x, y, z = 20;

Cout << x << endl;

Cout << y << endl;

Cout << z << endl;

Return 0

Bagian yang digaris bawahi berfungsi untuk...

a. Memberi nilai x, y, z dengan nilai 20

b. Memberi nilai 20 pada z saja

c. Membuat variabel global

d. Semua jawaban salah

e. Semua jawaban benar

Anda mungkin juga menyukai