Anda di halaman 1dari 63

Nama : Ketut Riski Prananda

Nim : 2005551125

Kelompok :26

MODUL II
“PENYELEKSIAN KONDISI DAN PERULANGAN”

Tujuan

1. Mampu mengetahui penggunaan selection if, if-else, dan switch,


serta pengaplikasiannya dan penulisannya dalam C/C++.
2. Mampu mengetahui penggunaan repetition for, while, dan do-while
serta pengaplikasiannya dalam flowchart dan sintaks penulisan dalam
C/C++.
3. Mampu Mengetahui perbedaan metode perulangan rekursif dan iterative.

Tugas Pendahuluan

1. Jelaskan dan berikan contoh penggunaan selection if, if-else, dan


switch, serta buatlah contoh flowchart serta sintaks penulisannya dalam
C/C++!
2. Jelaskan dan berikan contoh penggunaan repetition for, while, dan do-
while serta buatlah contoh flowchart serta sintaks penulisannya dalam
C/C++!
3. Jelaskan perbedaan metode perulangan rekursif dan iteratif!
4. Buatlah diagram alir (flowchart), pseudocode (notasi algoritma), dan trace
dari program-program pada soal-soal di bawah ini beserta flowchart
masing-masing fungsi/prosedur pendukung yang digunakan!
Jawaban

1. Selection
Selection atau Seleksi adalah sebuah tahap dimana program akan
melakukan pengecekan kondisi. Seleksi bisa digunakan untuk menentukan bagian
program/statement mana yang akan dijalankan jika kondisi tertentu terpenuhi. Di
dalam bahasa C, kita dapat membuat seleksi dengan if else atau switch case.
Selection berfungsi untuk memecahkan persoalan dan mengambil satu keputusan
dari beberapa pilihan sesuai kondisi yang sedang dialami
program. Substatement di dalam badan pernyataan majemuk akan dieksekusi jika
kondisi kebutuhan tersebut terpenuhi. Alur pembacaan program akan mengalir
dari atas ke bawah yang dilakukan oleh CPU. Ketika CPU menemukan
pernyataan penyeleksian, sebelum CPU memilih dan mengekseskusi pilihan yang
ada, program akan memeriksa kondisi dari program saat itu. Jika kondisi sesuai
dengan keadaan program maka pilihan tersebut akan diekseskusi.

1.1 Pernyataan if
Pernyataan (Statement) if Merupakan salah satu pernyataan dari dua
pernyataan penyeleksian, yang memungkinkan kita untuk memanipulasi aliran
jalanya eksekusi program berdasarkan kondisi program pada saat itu. Dapat
membuat banyak pilihan yang terdiri dari pernyataan tunggal atau majemuk.
Kondisi dari pernyataan if berupa bilangan Boolean, jika kondisi sesuai (true)
maka pilihan tersebut akan dijalankan jika (false) maka pilihan tersebut akan
diabaikan.

#include<stdio.h>
Int main()
{
int i = 10;
if(i == 10)
{
printf(“Nilai I adalah 10”);
}
return 0;
}
Kode Program 1.1, Contoh Statement if
Kode program 1.1 merupakan bentuk umum dari kondisi if. Kondisi
digunakan untuk menentukan pengambilan keputusan. Pada contoh program
tersebut menunjukkan pengecekan apakah nilai dari variabel i adalah 10 atau
bukan. Jika nilai i adalah 10, maka perintah yang berada di dalam if akan
dijalankan. Jika tidak, maka kode akan melewati perintah yang ada didalam if
dan program tersebut dianggap sudah selesai.

Gambar 1.1, flowchart statemen if

Gambar 1.1 merupakan diagram dari sintaks dasar penulisan statement


if  pada program. Pada gambar tersebut terlihat mulai dari start, kemudian
terdapat pengecekan kondisi, jika kondisi true maka program akan bejalan sesuai
dengan statement, jika kondisi false maka program akan mengabaikan statement
hingga stop atau program tersebut berakhir.

1.2 Pernyataan if-else


Pada dasarnya, kondisi if-else adalah sebuah struktur logika program
yang di dapat dengan cara menyambung beberapa kondisi if-else menjadi
sebuah kesatuan. Statement if-else  dapat memuat dua kondisi, berbeda dengan
if yang hanya memuat satu kondisi. Jika kondisi pertama tidak terpenuhi atau
bernilai false, maka kode program akan lanjut ke kondisi if di bawahnya. Jika
pernyataan masih belum terpenuhi, maka program akan berlanjut lagi ke kondisi
if di bawahnya hingga blok else terakhir atau terdapat kondisi if yang
bernilai true.

#include <stdio.h>
 
int main()
{
  int a;
  printf("Input nilai ujian: ");
  scanf("%d",&a);
  printf("\n");

  if (a >= 75) {


    printf("Selamat, anda lulus \n");
  }
  else {
    printf("Maaf, silahkan coba lagi tahun depan \n");
  }
  return 0;
}
Kode Program 1.2 Deklarasi Statement If-Else
Pada contoh program 1.2 merupakan penggunaan statement if-else. Di
sini sterdapat sebuah kondisi if (a >= 75), jika variabel a berisi angka lebih besar
atau sama dengan 75 maka program akan menjalankan perintah output yaitu
“Selamat, anda lulus”. Kondisi else akan dijalakan ketika eksekusi statement
if menyatakan kondisi yang salah, variabel a bernilai lebih rendah dari 75, maka
else akan menjalankan perintah output berupa printf “Maaf, silahkan coba lagi
tahun depan“.
Gambar 1.2, flowchart statemen if-else

Gambar 1.2 merupakan diagram atau flowchart dari statement if-else.


Gambar tersebut menjelaskan bagaimana sebuah program bekerja dengan
menggunakan pernyataan if-else, jika kondisi terpenuhi maka program akan
menjalankan statement yang terdapat pada if, jika kondisi tidak sesuai atau tidak
terpenuhi maka program akan menjalankan statement if yang lainnya sampai
statement else.

1.3 Pernyataan Switch


Pernyataan atau statement  switch  adalah pernyataan
penyeleksian untuk memanipulasi jalanya aliran pada suatu  program
berdasarkan conditional expression pada program tersebut. Switch berfungsi
mengendalikan program agar dapat berjalan secara fleksibel atas keadaan program
dan keinginan pengguna. Dalam pernyataan switch, penyeleksian dilakukan
dengan memeriksa kondisi nilai dari suatu variabel bertipe integer, char atau
enum dan menemukan kesamaan data yang dicari oleh salah satu label case yang
ada.
#include <stdio.h>

int main()
{
    char nilai; //variabel lokal

printf(“Input Nilai Anda(A - C): \n);


scanf(“%d”, &nilai);

    switch (nilai)
    {
    case A:
        printf("Sangat Bagus\n");
        break;
    case B:
        printf("Bagus\n");
        break;
case c;
printf(“Tingkat lagi\n);
break;
    default:
        printf(“Maaf, format nilai tidak sesuai\n”);
    }
Return 0;
}
Kode Program 1.3 Deklarasi Statement Switch
Pada contoh program 1.3 merupakan contoh deklarasi dari statement atau
pernyataan switch dimana kondisinya terdapat pada masing-masing case yang
ada. Ketika program berjalan user diminta untuk menginput salah satu huruf
antara ‘A-C’. Pada program terdapat perintah switch(nilai) yang akan memeriksa
isi dari variabel nilai yang dimasukan. Ketika memasukan nilai ‘A’ maka program
akan menjalankan perintah case ‘A’ dan akan mengeluarkan output “Sangat
Bagus” diikuti dengan break yang digunakan untuk menghentikan eksekusi
program sesuai dengan blok. Pada program juga terdapat case ‘B’ dan ‘C’
dimana case tersebut akan dijalakan sama seperti dengan case ‘A’ jika user
menginput nilai yang sesuai dengan case tersebut.
Gambar 1.3, flowchart statemen switch

Pada gambar 1.3 merupakan diagram atau flowchart dari statement


switch pada sebuah program C/C++. Pada gambar diperlihatkan beberapa pilihan
dalam bentuk case yang berisikan sebuah statement.

2. Repetition
Repetition atau perulangan dalam Bahasa C/C++ sering disebut looping
merupakan proses yang dilakukan secara berulang-ulang dalam batas yang telah
ditentukan. Dengan menggunakan proses perulangan, penulisan kode program
dapat menjadi lebih efisien. Proses looping akan terus dilakukan sampai kondisi
yang ditentukan telah terpenuhi, jika sudah terpenuhi maka program akan berhenti
melakukan looping. Dalam bahasa C/C++, terdapat beberapa jenis statement
dalam looping, yaitu for, do-while, dan while.

2.1 Pernyataan for


Pernyataan atau perulangan for digunakan untuk mengeksekusi atau
menjalankan statement atau perintah dengan jumlah pengulangan yang telah
diketahui. Inisialisasi variabel, syarat dan operasi bilangan ditulis dalam satu
kelompok dan terpisah dari statement program yang akan dijalankan. Statement
program akan dijalankan berulang selama kondisi syarat masih terpenuhi atau
bernilai benar.

#include “stdio.h”

int main(){
int i;
for(i = 1; i<= 10; i++)
{
printf(“%d BAHASA C\n”, i);
}
return 0;
}
Kode Program 2.1 Deklarasi Perulangan for
Pada program 2.1 merupakan contoh deklarasi dari perulangan for
dimana terdapat kondisi untuk melakukan looping dan kapan loop tersebut
berhenti. Dalam statement for, perulangan akan terus dilakukan oleh program jika
kondisinya masih terpenuhi akan terus mencetak output berupa “BAHASA C”.
Looping berhenti ketika variabelnya tidak sesuai dengan kondisinya yaitu i<=
10. Contoh program di atas juga terdapat increment(i++) yang merupakan
update variable. Increment digunakan untuk menambah variabel sebanyak 1
angka.
Gambar 2.1, flowchart statement for

Gambar 2.1 merupakan diagram atau flowchart dari sintaks dasar


penulisan statement for pada sebuah program. Pada gambar tersebut terlihat
program akan terus berjalan apabila kondisi masih terpenuhi dan akan berhenti
melakukan perulangan hingga kondisi sudah tidak terpenuhi.

2.2 Pernyataan While


Statement while digunakan untuk mengulang suatu statement selama
kondisi syarat yang diberikan bernilai benar. Apabila kondisi bernilai salah, maka
statement atau perintah yang dideklarasikan di dalam perulangan while tidak
akan diulang. Pada statement while perulangan yang dilakukan belum diketahui
berapa kali akan diulangi. Pada statement while, pemeriksaan loop dilakukan di
bagian awal(sebelum tubuh loop), program akan diulangi selama kondisi bernilai
benar(true) dan akan berhenti jika kondisinya salah(false).
#include “stdio.h”

int main()
{
int x;
x = 1; /* awal variabel */
while (x < 10) /* Batas akhir perulangan */
{
printf(“%d Halo Dunia\n”, x);
x ++; /* variabel x ditambah dengan 1 */
}
return 0;
}
Kode Program 2.2, Deklarasi Perulangan while
Pada perulangan while di atas, proses atau perintah mencetak kata-kata
“Halo Dunia” akan terus dilakukan selama variabel x masih kurang atau sama
dengan 10. Setiap kali melakukan perulangan, nilai dari variabel x akan
bertambah 1. Pada program 2.2 pengecekan loop dilakukan dibagian awal, dalam
perulangan for, kondisinya ditulis dalam satu perintah, seperti for(i=1; i<5;
i++), sedangkan dalam perulangan while, ketiga kondisi ini dibuat terpisah.

Gambar 2.2, flowchart statement while


Gambar 2.2 merupakan diagram atau flowchart dari penulisan statement
while pada suatu program. Flowchart dari statement while hampir sama dengan
statement for, perulangan for digunakan jika jumlah sudah diketahui sudah
diketahui, sedangkan perulangan while digunakan apabila jumlah perulangan
belum diketahui.

2.3 Pernyataan do-while


Pernyataan do-while digunakan untuk mengulang suatu statement atau
perintah dimana program akan dijalakan terlebih dahulu sebelum dilakukan
pengecekan kondisi. Perulangan while dengan do-while hampir berbeda, letak
perbedaanya adalah pada bagian penulisan sintaksnya. Pada perulangan do-
while dilakukan dibagian akhir perulangan, sehingga perintah yang ada pada
instruksi do-while akan dijalankan satu kali sebelum kondisi dicek. Jika kondisi
benar, maka statement atau perintah akan dijalankan kembali dan proses
perulangan akan dijalankan terus menerus sampai kondisi bernilai salah.

#include <stdio.h>
main(){

int bilangan;
do{
printf("%d\n", bilangan);
bilangan += 20;
} while (bilangan <=100);
return 0;
}
Kode Program 2.3, Deklarasi Perulangan do-while

Pada program 2.3 merupakan contoh deklarasi perulangan do-while pada


bagian pernyataan dijalankan perulangan dan akan berhenti jika kondisi yang ada
di dalam while bernilai salah(false) atau tidak memenuhi. Dalam program tersebut
terjadi perulangan pada variabel bilangan dengan penambahan angka sebesar 20,
perulangan akan berhenti jika angkanya sudah tidak sesuai dengan kondisi while
yakni “bilangan <=100)”.
Gambar 2.3, flowchart statement do-while

Pada gambar 2.3 merupakan Gambar 2.2 merupakan diagram atau


flowchart dari penulisan statement do-while pada suatu program. Pada flowchart
diatas do-while mengeksekusi pernyataan atau statement terlebih dahulu setelah
itu program akan memeriksa kondisi, jika kondisinya sudah benar(true) maka
program akan mengeksukusi kembali pernyataan atau statement terus menerus
sampai kondisinya salah(false) maka program akan keluar dari pernyataan do-
while. Misalkan kondisi dari awal sudah salah(false), maka program masih bisa
dijalankan karena statement do-while mengeksekusi isi statement terlebih dahulu
sebelum mengecek kondisi.

3. Metode Perulangan
Pada bahasa pemrogramana C/C++ perulangan dibagi menjadi dua
metode. Pertama ada metode rekursif yang dapat memanggil dirinya sendiri.
Kedua, iterative yang bekerja sesuai dengan instruksi tertentu. Metode-metode
tersebut memiliki fungsi dan digunakan sesuai dengan kebutuhan penggunanya,
berikut merupakan penjelasan dan perbedaan dari kedua metode tersebut.
3.1 Metode Rekursif
Rekursif adalah suatu proses atau prosedur dari fungsi yang memanggil
dirinya sendiri secara berulang-ulang. Karena proses dalam Rekursif ini terjadi
secara berulang-ulang maka harus ada kondisi yang membatasi pengulangan
persebut, jika tidak maka proses tidak akan pernah berhenti sampai memori yang
digunakan untuk menampung proses tersebut tidak dapat menampung lagi
(Penuh).

3.2 Metode Iteratif


Iteratif merupakan perulangan yang melakukan proses perulangan
terhadap sekelompok intruksi. Perulangan dilakukan dalam batasan syarat
tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka perulangan akan
terhenti.

3.3 Perbedaan Rekursif dan Iteratif


Dari kedua metode tersebut, terdapat perbedaan dasarnya yaitu dalam
prosesnya. Metode rekursif memanggil dirinya sendiri sedangkan pada iteratif
hanya mengulang berdasarkan kondisi tertentu. Namun ada beberapa perbedaan
lain yang terdapat dalam kedua metode tersebut, berikut perbedaannya.

Tabel 3.1 Perbedaan Rekursif dan Iteratif


Rekursif Iteratif
Rekursif hanya menggunakan if. Iteratif menggunakan for, while, do-
while.
Rekursif merupakan fungsi itu sendiri. Iteratif dapat berjalan pada program yang
terdiri dari prosedur (Tidak terdapat fungsi).
Perulangan dengan batasan yang luas dalam Iteratif melakukan perulangan dengan
artian melakukan perulangan dalam skala yang batasan yang lebih sedikit.
besar.
Rekursif tidak bisa melakukan nested loop atau Iteratif dapat melakukan nested loop.
looping bersarang.
Pada tabel 3.1 merupakan perbedaan mendasar yang ada pada metode
rekursif dan iteratif. Kedua metode tersebut tidak memiliki perbedaan yang
terlalu signifikan, penggunaan metode tersebut dapat digunakan sesuai dengan
kebutuhan performa pada program atau aplikasi yang dibuat.
4. Flowchart, trace, pseudcode
Flowchart adalah suatu bagan dengan simbol tertentu yang
menggambarkan urutan proses pada program secara mendetail. Setiap program
yang dibuat belum tentu akan langsung berhasil, oleh karena itu diperlukan
serbuah trace untuk mengatasinya, dengan menggunakan trace, programmer
dapat mengetahu letak kesalahan pada program yang mereka buat. Berikut
merupakan contoh flowchart dan trace tentang penyeleksian kondisi dan
perulangan.

4.1 Program Zodiak

Program zodiak merupakan program yang mengalami beberapa tahapan


untuk membuat programnya. Pseudocode adalah deskripsi dari algoritma
pemrograman komputer yang menggunakan konvensi struktural dari suatu bahasa
pemrograman, dan ditujukan agar dapat dibaca oleh manusia dan bukan oleh
mesin. Beberapa tahapan tersebut adalah dimulai dari flowchart, membuat
pseudocode, dan di akhir membuat trace. Berikut merupakan penjelasan lebih
lanjut mengenai tahapannya.
a. Flowchart
Flowchart adalah adalah suatu bagan dengan simbol-simbol tertentu
yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu
proses (instruksi) dengan proses lainnya dalam suatu program. Berikut adalah
flowchart dari program zodiak.
Gambar 4.1 Flowchart Main Program Zodiak
Gambar 4.1 adalah flowchart dari main program zodiak yang berfungsi
untuk menentukan zodiak dengan menginputkan berdasarkan bulan dan tanggal
lahir. Program ini merupakan program yang menggunakan metode berupa kondisi
dan perulangan. Flowchart sub-program dapat dilihat pada bawah ini.
Gambar 4.2 Flowchart sub Program Zodiak
Gambar 4.2 adalah flowchart dari sub program zodiak yang berfungsi
untuk menentukan zodiak dengan menginputkan berdasarkan bulan dan tanggal
lahir. Program akan meminta user untuk menginputkan nilai variabel yang
ditentukan.
Gambar 4.3 Flowchart sub Program Zodiak
Gambar 4.3 adalah flowchart dari sub program zodiak yang berfungsi
untuk menentukan zodiak dengan menginputkan berdasarkan bulan dan tanggal
lahir. Program akan meminta user untuk menginputkan nilai variabel yang
ditentukan.

Gambar 4.4 Flowchart Menu Restart Program Zodiak


Gambar 4.1.3 adalah flowchart dari sub program zodiak yang berfungsi
untuk menentukan zodiak dengan menginputkan berdasarkan bulan dan tanggal
lahir. Hasil akan ditampilkan setelah proses selesai, user akan Kembali untuk
diminta untuk menginputkan pilihan untuk mengulang atau mengakhiri program.

b. Pseudcode
Pseudocode adalah deskripsi dari algoritma pemrograman komputer yang
menggunakan konvensi struktural dari suatu bahasa pemrograman, dan ditujukan
agar dapat dibaca oleh manusia dan bukan oleh mesin. Berikut adalah pseudocode
dari program zodiak.
Algoritma:Menu Utama Menentukan Zodiak
(Program ini dapat menentukan zodiak berdasarkan tahun, bulan
dan tanggal lahir. Program ini sebagai menu utama pada program
menentukan zodiac dengan menggunakan if-else)

Fungsi Menu() : void


Deklarasi: pilihan:int

Deskripsi:
BEGIN
1. Write(“1.Mulai”)
2. Write(“2.Keluar”)
3. Read pilihan
4. If pilihan < 1 or > 2 then
5. Print”Input pilihan 1 atau 2”
6. 1. Input()
7. 0. “TERIMA KASIH” and exit
8. End if
9. End
Kode Program 4.1 Pseudocode Main Program Zodiak
Kode program 4.1 merupakan kode program atau pseudocode dari
program zodiak. Program ini untuk menentukan zodiak dengan menginputkan
berdasarkan bulan dan tanggal lahir. Pada bagian ini adalah bagian dari tahapan
pseudocode. Berikut merupakan pseudocode sub program zodiak yang dpaat
dilihat di bawah ini.

Algoritma: Fungsi Sub-Menu Menentukan Zodiak


(Program ini adalah sebagai program input untuk tahun, bulan dan
tanggal lahir untuk menentukan zodiac)

Fungsi Sub-Menu() : void

Deklarasi:
Tahun:int
Bulan:int
Tanggal:int

Deskripsi:
BEGIN
1. Read Tahun
2. If tahun < 1500
3. Print”Tahun anda tidak sesuai”
4. End if
5. Read Bulan
6. If Bulan < 1 or > 12 then
7. Print”batas input 1-12!”
8. End if
9. Read Tanggal
10. If tanggal < 1 or > 31 then
11. Print”batas input 1-31”
12. Else if Tahun < 1500, bulan == 2 and tanggal > 29 then
13. Print”batas input bulan februari 1-29”
14. Else if Tahun > 1500, bulan == 2 and tanggal > 28 then
15. Print”batas input bulan februari 1-28”
16. Else if bulan == 4 and tanggal 30 then
17. Print”Batas input di bulan April hanya 1-30”
18. End if
19. If tanggal >= 21 and bulan == 3 or tanggal <= 19 or
bulan == 4
20. printf"Zodiak Anda adalah Aries"
21. If tanggal >= 20 and bulan == 4 or tanggal <= 20 or
bulan == 5
22. printf"Zodiak Anda adalah Taurus"
23. If tanggal >= 21 and bulan == 5 or tanggal <= 20 or
bulan == 6
24. printf"Zodiak Anda adalah Gemini"
25. If tanggal >= 21 and bulan == 6 or tanggal <= 22 or
bulan == 7
26. printf"Zodiak Anda adalah Cancer"
27. If tanggal >= 23 and bulan == 7 or tanggal <= 22 or
bulan == 8
28. printf"Zodiak Anda adalah Leo"
29. If tanggal >= 23 and bulan == 8 or tanggal <= 22 or
bulan == 9
30. printf"Zodiak Anda adalah Virgo"
31. If tanggal >= 23 and bulan == 9 or tanggal <= 22 or
bulan == 10
32. printf"Zodiak Anda adalah Libra"
33. If tanggal >= 23 and bulan == 10 or tanggal <= 21 or
bulan == 11
34. printf"Zodiak Anda adalah Scorpio"
35. If tanggal >= 22 and bulan == 11 or tanggal <= 21 or
bulan == 12
36. printf"Zodiak Anda adalah Sagitarius"
37. If tanggal >= 22 and bulan == 12 or tanggal <= 19 or
bulan == 1
38. printf"Zodiak Anda adalah Capricorn"
39. If tanggal >= 20 and bulan == 1 or tanggal <= 18 or
bulan == 2
40. printf"Zodiak Anda adalah Aquarius"
41. If tanggal >= 19 and bulan == 2 or tanggal <= 20 or
bulan == 3
42. printf"Zodiak Anda adalah Pisces"
43. End if
END
Kode Program 4.2 Pseudocode Sub Program Zodiak
Kode program 4.2 merupakan kode program atau pseudocode dari sub
program zodiak. Program ini untuk menentukan zodiak dengan menginputkan
berdasarkan bulan dan tanggal lahir. Pada bagian ini adalah bagian dari tahapan
pseudocode. Berikut merupakan flowchart sub program zodiak lainnya.

Algoritma : Fungsi Menu restart()


(Program ini adalah sebagai program untuk mengulang kembali
menuju menu utama program)

Fungsi restart() : void

Deklarasi :reset:int
Deskripsi:
BEGIN
1. if reset =1 then
2.   input()
3. else
4.   exit
5. end if
END
Kode Program 4.3 Pseudocode Sub Program Zodiak Restart
Kode program 4.3 merupakan kode program atau pseudocode dari sub
program zodiak. Program ini untuk menentukan zodiak dengan menginputkan
berdasarkan bulan dan tanggal lahir. Kemudian user akan disuruh memilih ingin
selesai menggunakan program ini atau mau mengulangi. Pada bagian ini adalah
bagian dari tahapan pseudocode.

c. Hasil Trace Program


Trace digunakan untuk menguji kebenaran kode program yang telah
dibuat. Dengan melakukan trace, kesalahan pada kode program akan mudah
ditemukan, sehingga dapat diperbaiki. Berikut merupakan hasil trace dari
program zodiak.

Tabel 4.1 Hasil Trace Program Zodiak


4. input 5. pilihan=1
6. tahun lahir= 2002
7. bulan lahir=5
8. tanggal lahir=18
9. prose 10. Zodiak()
s 11. if((tanggal >= 20 && bulan == 4) || (tanggal
<= 20 && bulan == 5)){
12. printf("\n\t\t ||Zodiak Anda adalah
Taurus||\n");
13. }
14. output 15. Zodiak Anda adalah Taurus
16. Program berhenti
Tabel 4.1 merupakan hasil trace dari program zodiak. Untuk memulai
proses menentukan zodiak dapat dilakukan dengan meng-input angka 1, setelah
itu user akan diminta untuk memasukkan tahun lahir, bulan lahir, dan tanggal
lahir. Pada contoh di atas, user memasukkan tahun lahir 2002, bulan lahir 5, dan
tanggal lahir 18. Setelah dicocokkan, program akan menampilkan zodiak user,
yaitu Taurus.
4.2 Program Menentukan Nilai Akhir Matakuliah
Program menentukan nilai akhir matakuliah merupakan program yang
mengalami beberapa tahapan untuk membuat programnya. Beberapa tahapan
tersebut adalah dimulai dari flowchart, membuat pseudocode, dan di akhir
membuat trace. Berikut merupakan penjelasan lebih lanjut mengenai tahapannya.
a. Flowchart
Flowchart adalah adalah suatu bagan dengan simbol-simbol tertentu
yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu
proses (instruksi) dengan proses lainnya dalam suatu program. Berikut adalah
flowchart dari program menentukan nilai akhir matakuliah.

Gambar 4.5 Flowchart Main Program Nilai Akhir


Gambar 4.5 adalah flowchart dari main program nilai akhir yang
berfungsi untuk menentukan nilai akhir matakuliah dengan menginputkan nilai
matakuliah yang didapatkan oleh mahasiswa. Flowchart sub program nilai akhir
dapat dilihat di bawah ini.
Gambar 4.6 Flowchart sub Program Nilai Akhir
Gambar 4.6 adalah flowchart dari sub program nilai akhir yang berfungsi
untuk menentukan nilai akhir matakuliah dengan menginputkan nilai matakuliah
yang didapatkan oleh mahasiswa. Flowchart sub program nilai akhir selanjutnya
dapat dilihat di bawah ini.

Gambar 4.7 Flowchart sub Program Nilai Akhir


Gambar 4.7 adalah flowchart dari sub program nilai akhir yang berfungsi
untuk menentukan nilai akhir matakuliah dengan menginputkan nilai matakuliah
yang didapatkan oleh mahasiswa. Pada sub program ini, user akan diminta untuk
menginput nilai dan mendapatkan nilai akhir mereka. Flowchart sub program
nilai akhir selanjutnya dapat dilihat di bawah ini.

Gambar 4.8 Flowchart sub Program Nilai Akhir


Gambar 4.8 adalah flowchart dari sub program nilai akhir yang berfungsi
untuk menentukan nilai akhir matakuliah dengan menginputkan nilai matakuliah
yang didapatkan oleh mahasiswa. Pada sub program ini, user akan diminta untuk
menginput nilai dan mendapatkan peringkat berupa huruf pada nilai akhir mereka.

b. Pseudocode
Pseudocode adalah deskripsi dari algoritma pemrograman komputer yang
menggunakan konvensi struktural dari suatu bahasa pemrograman, dan ditujukan
agar dapat dibaca oleh manusia dan bukan oleh mesin. Berikut adalah pseudocode
dari program nilai akhir.
Algoritma : Fungsi main – Program Menentukan Nilai Akhir
(Program ini adalah sebagai program utama dalam program
menenutkan nilai akhir. Pada fungsi main() diawali dengan
memilih dua pilihan yang ada, yaitu menghitung nilai akhir dan
keluar dari program.)

Deklarasi :
pilih : integer

Deskripsi :
BEGIN
1. READ(pilih)
2. SWITCH (pilih)
3. 1 :
4. hitungNilaiAkhir
5. 2 :
6. exit
7. END SWITCH CASE
END
Kode Program 4.4 Pseudocode Program Nilai Akhir
Kode program 4.4 merupakan kode program atau pseudocode dari
program nilai akhir. Program ini untuk menentukan nilai akhir dengan
menginputkan nilai matakuliah yang didapatkan oleh mahasiswa. Pada bagian ini
adalah bagian dari tahapan pseudocode. Berikut merupakan pseudocode sub
program nilai akhir yang dapat dilihat di bawah ini.

Algoritma : Program Menghitung Nilai Akhir


(Sub-program ini akan membaca absen, tugas 1, tugas 2, tugas3,
nilai kuis, nilai uts, dan nilai uas. Hasil dari program ini
berupa nilai akhir dan nilai huruf).

Deklarasi :
absen : integer
tugas1 : float
tugas2 : float
tugas3 : float
kuis : float
uts : float
uas : float
nilai_angka : float
nilai_huruf : float

Deskripsi :
BEGIN
1. READ absen
2. READ tugas1
3. READ tugas2
4. READ tugas3
5. READ kuis
6. READ uts
7. READ uas
8. nilai_angka = (5 * (absen / 15)) + (0.2 * ((tugas1 +
tugas2 + tugas3) / 3)) + (0.15 * kuis) + (0.3 * uts) + (0.3
* uas)
9. nilai_huruf=nilai_angka
10. IF(nilai_huruf>=80)
11. WRITE (A)
12. ELSE IF(nilai_huruf >=75)
13. WRITE (B+)
14. ELSE IF(nilai_huruf>=65)
15. WRITE (B)
16. ELSE IF(nilai_huruf >=60)
17. WRITE (C+)
18. ELSE IF(nilai_huruf>=55)
19. WRITE (C)
20. ELSE IF(nilai_huruf>=50)
21. WRITE (D+)
22. ELSE IF(nilai_huruf>=45)
WRITE (D)
23. END IF
24. WRITE(nilai_angka)
25. WRITE(nilai_huruf)
END
Kode Program 4.5 Pseudocode sub Program Menghitung Nilai Akhir
Kode program 4.5 merupakan kode program atau pseudocode dari sub
program nilai akhir. Program ini untuk menentukan nilai akhir dengan
menginputkan matakuliah yang didapatkan oleh mahasiswa. Pada bagian ini
adalah bagian dari tahapan pseudocode.

c. Hasil Trace Program


Trace digunakan untuk menguji kebenaran kode program yang telah
dibuat. Dengan melakukan trace, kesalahan pada kode program akan mudah
ditemukan, sehingga dapat diperbaiki. Berikut merupakan hasil trace dari
program menentukan nilai akhir.

Tabel 4.2 Hasil Trace Program Menentukan Nilai Akhir


input pilih=1
absensi= 12
tugas 1=90
tugas 2=90
tugas 3=90
kuis=90
UTS=90
UAS=90
proses hitungNilaiAkhir()
nilai_akhir = (5 * (absen / 15)) + (0.2 * ((tugas1 +
tugas2 + tugas3) / 3)) + (0.15 * quiz) + (0.3 * uts)
+ (0.3 * uas)
nilai_akhir=86.10
if (nilai_akhir>=80){
printf("A")
}

output Nilai Akhir: 86.10 (A)


Program berhenti
Tabel 4.2 merupakan hasil trace dari program menentukan nilai akhir.
Untuk memulai menghitung nilai akhir dapat dilakukan dengan meng-input angka
1, setelah itu user akan diminta untuk memasukkan absensi, nilai tugas, kuis, nilai
UTS, dan nilai UAS. Pada contoh di atas, user memasukkan absensi 12 dan untuk
nilai lainnya user memberi nilai 90. Setelah dilakukan perhitungan, nilai akhir
user adalah 86.10 dengan grade nilai A.

4.3 Program Konversi Bilangan Biner dan Desimal


Program mengkonversikan bilangan biner dan desimal merupakan
program yang mengalami beberapa tahapan untuk membuat programnya.
Beberapa tahapan tersebut adalah dimulai dari flowchart, membuat pseudocode,
dan di akhir membuat trace. Berikut merupakan penjelasan lebih lanjut mengenai
tahapannya.

a. Flowchart
Flowchart adalah adalah suatu bagan dengan simbol-simbol tertentu
yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu
proses (instruksi) dengan proses lainnya dalam suatu program. Berikut adalah
flowchart dari program konversi bilangan biner dan desimal.

Gambar 4.9 Flowchart Main Program Konversi Bilangan Biner dan Desimal
Gambar 4.9 adalah flowchart dari main program konversi bilangan biner
dan desimal. Program pengkonversian bilangan biner dan desimal ini
menggunakan metode kondisi dan perulangan. Flowchart sub program konversi
bilangan biner dan desimal dapat dilihat di bawah ini.
Gambar 4.10 Flowchart sub Program Konversi Bilangan Biner dan Desimal
Gambar 4.10 adalah flowchart dari sub program konversi bilangan
desimal dan biner Pada sub program ini, user akan diminta untuk menginput nilai
dari pilihan mereka. Flowchart sub program konversi bilangan biner dan desimal
selanjutnya dapat dilihat di bawah ini.
Gambar 4.11 Flowchart sub Program Biner ke Desimal
Gambar 4.11 adalah flowchart dari sub program konversi bilangan biner
ke desimal. Pada sub program ini, user akan diminta untuk menginput nilai berupa
biner dari pilihan mereka yang hasil yang diberikan dari pengkonversiannya
berupa bilangan dengan nilai desimal. Flowchart sub program konversi bilangan
biner dan desimal selanjutnya dapat dilihat di bawah ini.
Gambar 4.12 Flowchart sub Program Desimal ke Biner
Gambar 4.12 adalah flowchart dari sub program konversi bilangan
desimal ke biner. Pada sub program ini, user akan diminta untuk menginput nilai
berupa desimal dari pilihan mereka yang hasil yang diberikan dari
pengkonversiannya berupa bilangan biner.

b. Pseudocode
Pseudocode adalah deskripsi dari algoritma pemrograman komputer yang
menggunakan konvensi struktural dari suatu bahasa pemrograman, dan ditujukan
agar dapat dibaca oleh manusia dan bukan oleh mesin. Berikut adalah pseudocode
dari program konversi bilangan biner dan desimal.

Algoritma : Program Konveri Biner


(Program utama adalah program yang menjadikan penghubung dengan
sub-menu. Ketika dijalankan, program ini akan menghubungkan menu
utama ke sub program untuk menjalankan fungsionalitas program.).

Deklarasi :
-

Deskripsi :
begin
1. Begin
2. menu()
End
Kode Program 4.6 Pseudocode Program konversi bilangan biner dan desimal
Kode program 4.6 merupakan kode program atau pseudocode dari
program konversi bilangan biner dan desimal. Program ini bekerja dengan user
menentukan pengkonversian yang ingin dipilih, lalu kemudian menginput nilai
bilangan yang ditentukan. Pada bagian ini adalah bagian dari tahapan pseudocode.
Berikut merupakan pseudocode sub program konversi bilangan biner dan desimal
yang dapat dilihat di bawah ini.

Algoritma : Program Konversi Angka Biner


(Cara kerja program ini adalah dengan membaca satu nomer
yang diinputkan kemudian akan dilakukan perhitungan sesuai
operasi yang ditentukan dan akan memasukan nilai yang diperlukan
supaya program ini dapat menjalankan program dengan baik).

Deklarasi :
Pilihan : integer
Deskripsi :
Begin
1. read pilihan
2. switch(pilihan)
3. case 1:
4. bintodes()
5. break
6. case 2:
7. destobin()
8. break
9. default:
10. Print(“input tidak valid!”)
11. Break
12. End switch

END
Kode Program 4.7 Pseudocode sub Biner dan Desimal
Kode program 4.7 merupakan kode program atau pseudocode dari sub
program konversi bilangan biner dan desimal. Program ini bekerja dengan user
menentukan pengkonversian yang ingin dipilih, lalu kemudian menginput nilai
bilangan yang ditentukan. Pada bagian ini adalah bagian dari tahapan pseudocode.

Algoritma : Program Konversi Biner ke


Desimal(bintodes() )
(sub program ini akan membaca inputan bilangan biner yang
dipilih atau diinputkan kemudian akan dilakukan pengkonversian
bilangan yang sesuai dengan operasi yang ditentukan )

Deklarasi :
biner : integer
pilihan : integer
desimal : integer
hasil : integer
b : integer
a : integer

Deskripsi :
Begin
1. read biner
2. while (biner != 0)do
3. a=biner mod 10
4. desimal=desimal + a*(2^b)
5. binary=binary/10
6. ++b
7. END While
8. Hasil= desimal
9. Write hasil
10. Read pilihan
11. switch (pilihan)
12. case 1:
13. bintodes()
14. break
15. case 2:
16. menu()
17. break
18. default:
19. Print(“input tidak valid!”)
20. Break
21. End switch

END
Kode Program 4.8 Pseudocode sub Biner ke Desimal
Kode program 4.8 merupakan kode program atau pseudocode dari sub
program konversi bilangan biner dan desimal bagian biner ke desimal. Program
ini bekerja dengan user menentukan pengkonversian yang ingin dipilih, lalu
kemudian menginput nilai bilangan yang ditentukan. Pada bagian ini adalah
bagian dari tahapan pseudocode.

Algoritma : Program Konversi Bilangan Desimal Ke


Biner(destobin())
(sub program ini akan membaca input angka biner yang
dimasukan kemudian akan dilakukan konversi perhitungan yang
sesuai dengan operasi yang ditentukan )

Deklarasi :
desimal : integer
b: integer
hasil : integer
sisa : integer
a: integer
Pilihan : integer

Deskripsi :
begin
1. b=0
2. a=1
3. read desimal
4. While(desimal >= 1)do
5. desimal=desimal/2
6. sisa=desimal mod 2
7. b = b+(a*sisa)
8. a = a*10
9. END While
10. hasil=b
11. write hasil
12. Switch(pilihan)
13. case 1:
14. destobin()
15. break
16. case 2 :
17. menu()
18. break
19. default :
20. Print(“input tidak valid!”)
21. Break
22. End switch

End
Kode Program 4.9 Pseudocode sub Desimal ke Biner
Kode program 4.9 merupakan kode program atau pseudocode dari sub
program konversi bilangan biner dan desimal bagian desimal ke biner. Program
ini bekerja dengan user menentukan pengkonversian yang ingin dipilih, lalu
kemudian menginput nilai bilangan yang ditentukan. Pada bagian ini adalah
bagian dari tahapan pseudocode.

c. Hasil Trace Program


Trace digunakan untuk menguji kebenaran kode program yang telah
dibuat. Dengan melakukan trace, kesalahan pada kode program akan mudah
ditemukan, sehingga dapat diperbaiki. Berikut merupakan hasil trace dari
program konversi bilangan.

Tabel 4.1 Hasil Trace Program Konversi Bilangan


input pilih=1
bilangan desimal=3
proses desbin()
while(bil > 0){
i = bil%2;
if(i == 1){
sprintf(temp,"%d",i);
bil -= 1;
}else if(i == 0){
sprintf(temp,"%d",i);
}
hasil = concat(temp,hasil);
bil /= 2;
}
printf("%s dalam bilangan biner",hasil);
hasil=11

output Bilangan desimal 3 = 11 dalam bilangan biner


Program berhenti
Tabel 4 .1 merupakan hasil trace dari program konversi bilangan. Untuk
mengkonversi bilangan desimal ke biner dapat dilakukan dengan meng-input
angka 1, setelah itu user akan diminta untuk memasukkan bilangan desimal. Pada
contoh di atas, user memasukkan bilangan desimal 3 dan program akan
melakukan konversi terhadap bilangan desimal 3 ke dalam bilangan biner. Hasil
dari pengonversian bilangan desimal 3 adalah 11 dan nilai tersebut yang akan
ditampilkan ke layar.

4.4 Program Fibonacci Menggunakan Metode Rekursif dan Iteratif


Program Fibonacci merupakan program yang mengalami beberapa
tahapan untuk membuat programnya. Beberapa tahapan tersebut adalah dimulai
dari flowchart, membuat pseudocode, dan di akhir membuat trace. Berikut
merupakan penjelasan lebih lanjut mengenai tahapannya.
a. Flowchart
Flowchart adalah adalah suatu bagan dengan simbol-simbol tertentu
yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu
proses (instruksi) dengan proses lainnya dalam suatu program. Berikut adalah
flowchart dari program fibonacci.
Gambar 4.13 Flowchart Main Program Fibonacci
Gambar 4.13 adalah flowchart dari main fibonacci. Program Fibonacci
yang menggunakan metode kondisi dan perulangan. Flowchart sub program
Fibonacci dapat dilihat di bawah ini.
Gambar 4.14 Flowchart sub Program Fibonacci Rekursif
Gambar 4.14 adalah flowchart dari sub program Fibonacci rekursif. Pada
sub program ini, user akan diminta untuk menginput nilai untuk menjalankan
program Fibonacci ini dengan baik. Flowchart sub program fibonacci selanjutnya
dapat dilihat di bawah ini.
Gambar 4.15 Flowchart sub Program Fibonacci Iteratif
Gambar 3.47 adalah flowchart dari sub program Fibonacci iteratif. Pada
sub program ini, user akan diminta untuk menginput nilai untuk menjalankan
program Fibonacci ini dengan baik.

b. Pseudocode
Pseudocode adalah deskripsi dari algoritma pemrograman komputer yang
menggunakan konvensi struktural dari suatu bahasa pemrograman, dan ditujukan
agar dapat dibaca oleh manusia dan bukan oleh mesin. Berikut adalah pseudocode
dari program fibonacci.

Algoritma : Program Menu Utama Fibonacci


(Program ini akan merupakan main program Fibonacci dengan
menggunakan dua buah metode, yaitu metode iteratif dan rekrusif.
Pada menu utama program angka yang diinput oleh user mengarahkan
pada metode perhitungan rekrusif atau iteratif, jika user
menginputkan nilai yang tidak sesuai dengan pilihan, disana
telah terdapat validasi agar user tidak dapat memasukkan nilai
char atau nilai yang tidak sesuai).

Deklarasi :
pilihan : integer

Deskripsi :
Begin
1. read pilihan
2. switch(pilihan)
3. case 1:
4. rekursif()
5. break
6. case 2
7. iteratif()
8. break
9. case 3:
10. exit(0)
11. break
12. default:
13. Print(“Inputan tidak valid!”)
14. break
15. end switch
End
Kode Program 4.10 Pseudocode Main Program Fibonacc
Kode program 4.10 merupakan kode program atau pseudocode dari
program fibonacci. Program ini bekerja dengan user menentukan ketentuan yang
ingin dipilih, lalu kemudian menginput nilai bilangan yang ditentukan. Pada
bagian ini adalah bagian dari tahapan pseudocode. Berikut merupakan
pseudocode sub program fibonacci yang dapat dilihat di bawah ini.

Algoritma : Menu Program Perhitungan Fibonacci secara


Rekursif
(Sub-program menu perhitungan fibonacci dengan metode
rekursif akan meminta user untuk memasukan jumlah bilangan yang
dilakukan perhitungan fibonacci agar proses program Fibonacci
dengan metode rekursif dapat berjalan).

Deklarasi :
angka : integer
i : integer
deret_fibonacci_rekrusif() : integer

Deskripsi :
Begin
1. read angka
2. for i = 0, i < angka, i++ do
3. deret_fibonacci_rekrusif(angka)
4. if angka == 0 OR angka == 1
5. return angka
6. else if
7. return deret_fibonacci_rekursif (angka-1) +
deret_fibonacci_rekrusif(angka-2)
8. end if
9. write(deret_fibonacci_rekrusif(i))
10. End for
11. switch (pilihan)
12. case 1:
13. rekursif()
14. break
15. case 2:
16. menu()
17. break
18. case 3:
19. keluar()
20. break
16. default:
17. Print(“Input tidak valid!”)
18. break
19. End switch
End
Kode Program 4.11 Pseudocode sub Program Fibonacci Rekursif
Kode program 4.11 merupakan kode program atau pseudocode dari sub
program fibonacci. Program ini bekerja dengan user menentukan ketentuan yang
ingin dipilih, lalu kemudian menginput nilai bilangan yang ditentukan dengan
metode rekursif. Pada bagian ini adalah bagian dari tahapan pseudocode.

Algoritma : Menu Program Fibonacci Secara Iteratif


(Sub-program menu perhitungan fibonacci dengan metode
iteratif akan meminta user untuk memasukan jumlah bilangan yang
dilakukan perhitungan fibonacci agar proses program fibonacci
dengan metode iteratif dapat berjalan).
Deklarasi :
angka : integer
i : integer
deret_fibonacci_iteratif() : integer
a = 0
b = 1
c : integer
Deskripsi :

Begin
1. read angka
2. for i = 0, i < angka, i++ do
3. deret_fibonacci_rekrusif(angka)
4.
5. if angka == 0
6. return 0
7. if angka == 1
8. return 1
9. else
10. for i = 2, i <= angka, i++ do
11. c = a+b
12. a=b
13. b=c
14. return c
15. end for
16. end if
17. switch pilihan
18. case 1 :
19. default:
20. rekursif()
21. break
22. case 2:
23. menu()
24. break
25. case 3:
26. keluar()
27. break
28. default:
20. Print(“Input tidak valid!”)
21. break
29. End Switch
End
Kode Program 4.12 Pseudocode sub Program Fibonacci Iteratif
Kode program 4.12 merupakan kode program atau pseudocode dari sub
program fibonacci. Program ini bekerja dengan user menentukan ketentuan yang
ingin dipilih, lalu kemudian menginput nilai bilangan yang ditentukan dengan
metode iteratif. Pada bagian ini adalah bagian dari tahapan pseudocode.

c. Hasil Trace Program


Trace digunakan untuk menguji kebenaran kode program yang telah
dibuat. Dengan melakukan trace, kesalahan pada kode program akan mudah
ditemukan, sehingga dapat diperbaiki. Berikut merupakan hasil trace dari
program fibonacci.

Tabel 4.2 Hasil Trace Program Fibonacci


input pilih=1
jumlah deret=3
proses deret_fibonacci_iteratif ()
for(i=0;i<n;i++){
if(i==0){
bilangan[0]=0;
}else if(i==1){
bilangan[1]=1;
}else if(i>1){
bilangan[i]=bilangan[i-1]+bilangan[i-
2];
}
printf("%d ", bilangan[i]);
}
Bilangan[i]=0 1 1

output Deret fibonacci yang tampil adalah sebagai berikut: 0 1 1


Program berhenti
Tabel 4 .2 merupakan hasil trace dari program fibonacci. Untuk
menentukan deret fibonacci melalui metode iteratif dapat dilakukan dengan meng-
input angka 1, setelah itu masukkan jumlah deret yang diinginkan. Pada contoh di
atas, user ingin menampilkan 3 deret bilangan fibonacci.Hasil dari 3 deret
bilangan fibonacci adalah 0,1,1.

4.5 Program Hanoi


Program hanoi merupakan program yang mengalami beberapa tahapan
untuk membuat programnya. Beberapa tahapan tersebut adalah dimulai dari
flowchart, membuat pseudocode, dan di akhir membuat trace. Berikut merupakan
penjelasan lebih lanjut mengenai tahapannya.
a. Flowchart
Flowchart adalah adalah suatu bagan dengan simbol-simbol tertentu
yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu
proses (instruksi) dengan proses lainnya dalam suatu program. Berikut adalah
flowchart dari program hanoi.
Gambar 4.16 Flowchart Main Program Hanoi
Gambar 4.16 adalah flowchart dari main Hanoi. Program hanoi ini
menggunakan metode kondisi dan perulangan. Flowchart sub program hanoi
dapat dilihat di bawah ini.
Gambar 4.17 Flowchart sub Program Rekursif
Gambar 4.17 adalah flowchart dari sub program rekursif. Pada sub
program ini, user akan diminta untuk menginput nilai untuk menjalankan program
hanoi ini dengan baik. Flowchart sub program hanoi selanjutnya dapat dilihat di
bawah ini.
Gambar 4.18 Flowchart sub Program Hanoi Rekursif
Gambar 4.18 adalah flowchart dari sub program Hanoi rekursif. Pada sub
program ini, user akan diminta untuk menginput nilai untuk menjalankan program
hanoi ini dengan baik. Flowchart sub program hanoi selanjutnya dapat dilihat di
bawah ini.
Gambar 4.19 Flowchart sub Program Iteratif
Gambar 3.51 adalah flowchart dari sub program iteratif. Pada sub
program ini, user akan diminta untuk menginput nilai untuk menjalankan program
hanoi ini dengan baik. Flowchart sub program hanoi selanjutnya dapat dilihat di
bawah ini.

Gambar 4.20 Flowchart Sub Program Hanoi Iteratif


Gambar 3.52 adalah flowchart dari sub program Hanoi iteratif. Pada sub
program ini, user akan diminta untuk menginput nilai untuk menjalankan program
hanoi ini dengan baik.

b. Pseudocode
Pseudocode adalah deskripsi dari algoritma pemrograman komputer yang
menggunakan konvensi struktural dari suatu bahasa pemrograman, dan ditujukan
agar dapat dibaca oleh manusia dan bukan oleh mesin. Berikut adalah pseudocode
dari program hanoi.

Algoritma : Fungsi main – Program Menara Hanoi


(Program ini adalah sebagai program utama dalam program
kalkulator. Pada fungsi main() diawali dengan memilih dua
pilihan yang ada, yaitu metode rekursif dan metode iterative.
Untuk keluar dari program dapat menggunakan angka 0.)

Deklarasi :
pilih : integer

Deskripsi :
BEGIN
1. READ(pilih)
2. SWITCH (pilih)
3. 1 :
4. rekursif()
5. 2 :
6. iterative()
7. 0 :
8. exit
9. END SWITCH
END
Kode Program 4.13 Pseudocode Main Menu Program Hanoi
Kode program 4.13 merupakan kode program atau pseudocode dari
program hanoi. Pada bagian ini adalah bagian dari tahapan pseudocode. Berikut
merupakan pseudocode sub program hanoi yang dapat dilihat di bawah ini.

Algoritma : Program pindahHanoiRekursif (int n, char x,


char y, char z)
(Program ini digunakan untuk menentukan perpindahan
cakram dari menara hanoi dengan menggunakan metode rekursif.
Program ini akan membaca input jumlah cakram, kemudian akan
dilakukan perhitungan yang sesuai dengan operasi yang
ditentukan. Output berupa langkah pemindahan cakram dan jumlah
langkah minimum perpindahan cakram)

Deklarasi :
cakram: char

Deskripsi :
BEGIN
1. READ(cakram)
2. cakram=n
3. if(n>0)
4. CALL FUNCTION pindahHanoiRekursif(int n-1, x,
z, y)
5. WRITE (perpindahan cakram)
CALL FUNCTION pindahHanoiRekursif(nit n-1, y,
x, z)
6. END IF
END
Kode Program 4.14 Pseudocode Sub Program Pindah Hanoi Rekursif
Kode program 4.14 merupakan kode program atau pseudocode dari sub
program pindah hanoi dengan metode rekursif. Pada bagian ini adalah tahapan
pseudocode bagian sub program yang menjelaskan program tersebut lebih
kompleks. Berikut merupakan pseudocode sub program hanoi lainnya yang dapat
dilihat di bawah ini.

Algoritma : Program hanoiRekursif (int x)


(Program ini digunakan untuk menentukan jumlah langkah
minimum dalam pemindahan cakram dengan menggunakan metode
rekursif. Program ini akan membaca input jumlah cakram yang
diambil dari parameter x.Program akan menghitung jumlah langkah
minimum dari perpindahan cakram pada Hanoi tiga tiang)

Deklarasi :

Deskripsi :
BEGIN
1. READ(x)
2. IF(x==1)
3. if(n>0)
4. WRITE(1)
5. ELSE
WRITE(2*hanoiRekursif(x-1)+1)
6. END IF
END
Kode Program 4.15 Pseudocode Sub Program Hanoi Rekursif
Kode program 4.15 merupakan kode program atau pseudocode dari sub
program hanoi dengan metode rekursif. Pada bagian ini adalah tahapan
pseudocode bagian sub program yang menjelaskan program tersebut lebih
kompleks. Berikut merupakan pseudocode sub program hanoi lainnya yang dapat
dilihat di bawah ini.

Algoritma : Program rekursif ()


(Program ini adalah program yang akan menampilkan hasil
dari langkah-langkah perpindahan cakram pada menara Hanoi tiga
tiang dengan metode rekursif. Pada program ini juga, user dapat
kembali ke menu awal dan keluar dari program)

Deklarasi :
Cakram : int
Hasil : int
Reset : int

Deskripsi :
BEGIN
1. READ(cakram)
2. CALL FUNCTION pindahHanoiRekursif(cakram, ‘1’, ‘2’,
‘3’)
3. hasil=hanoiRekursif(cakram)
4. WRITE(hasil)
5. READ(reset)
6. IF(reset==1)
7. go to main()
8. ELSE IF(reset==2)
9. go to rekursif()
10. ELSE IF(reset==0)
11. Exit
12. END IF
13. END
Kode Program 4.16 Pseudocode Sub Program Rekursif
Kode program 4.16 merupakan kode program atau pseudocode dari sub
program hanoi dengan metode rekursif. Pada bagian ini adalah tahapan
pseudocode bagian sub program yang menjelaskan program tersebut lebih
kompleks. Berikut merupakan pseudocode sub program hanoi lainnya yang dapat
dilihat di bawah ini.

Algoritma : Program pindahHanoirekursif (int n)


(Program ini adalah program yang akan digunakan untuk
menentukan perpindahan cakram dari menara Hanoi tiga tiang.
Program ini menggunakan parameter untuk mengambil nilai cakram
sesuai dengan input user)

Deklarasi :
i : int
tower[‘1’, ‘2’, ‘3’] : char

Deskripsi :
BEGIN
1. READ()
2. IF(n%2==0)
3. tower[1]=’3’
Tower[2]=’2’
4. END IF
5. FOR (i=1 and i<(1to n))
6. WRITE(perpindahan cakram)
7. i++
8. END FOR
End
Kode Program 4.17 Pseudocode Sub Program Pindah Hanoi Rekursif
Kode program 4.17 merupakan kode program atau pseudocode dari sub
program pindah hanoi dengan metode rekursif. Pada bagian ini adalah tahapan
pseudocode bagian sub program yang menjelaskan program tersebut lebih
kompleks. Berikut merupakan pseudocode sub program hanoi lainnya yang dapat
dilihat di bawah ini.

Algoritma : Program iteratif ()


(Program ini adalah program yang akan menampilkan hasil
dari langkah-langkah perpindahan cakram pada menara Hanoi tiga
tiang dengan metode iteratif. Pada program ini juga, user dapat
kembali ke menu awal dan keluar dari program)

Deklarasi :
Cakram : int
Hasil : int
Reset : int
I : int
Temp =1 : int

Deskripsi :
BEGIN
1. READ(cakram)
2. CALL FUNCTION pindahHanoiIteratif(cakram)
3. FOR(i=0 and i<cakram)
4. temp =2*temp
5. If(i==cakram-1)
6. Temp=temp-1
7. END IF
8. END FOR
9. WRITE(langkah-langkah pemindahan cakram)
10. READ(reset)
11. IF(reset==1)
12. go to main()
13. ELSE IF(reset==2)
14. go to iterative()
15. ELSE IF(reset==0)
Exit
16. END IF
End
Kode Program 4.18 Pseudocode Sub Program Hanoi Iteratif
Kode program 4.18 merupakan kode program atau pseudocode dari sub
program hanoi dengan metode iteratif. Pada bagian ini adalah tahapan pseudocode
bagian sub program yang menjelaskan program tersebut lebih kompleks.

c. Hasil Trace Program


Trace digunakan untuk menguji kebenaran kode program yang telah
dibuat. Dengan melakukan trace, kesalahan pada kode program akan mudah
ditemukan, sehingga dapat diperbaiki. Berikut merupakan hasil trace dari
program menara hanoi.

Tabel 4.3 Hasil Trace Program Menara Hanoi


input pilih=1
jumlah cakram=2
proses rekursif()
pindahHanoiRekursif()
if(n>0) {
pindahHanoiRekursif(n-1,x,z,y);
printf("Pindahkan cakram %c dari tiang %c ke
tiang %c\n",cakram,x,z);
pindahHanoiRekursif(n-1,y,x,z);
}
Rekursif 1=cakram A dari tiang 1 ke tiang 2
Rekursif 2=cakram B dari tiang 1 ke tiang 3
Rekursif 3=cakram A dari tiang 2 ke tiang 3

output Pindahkan cakram A dari tiang 1 ke tiang 2


Pindahkan cakram B dari tiang 1 ke tiang 3
Pindahkan cakram A dari tiang 2 ke tiang 3
Jumlah langkah minimum 3 langkah

Program berhenti
Tabel 4 .3 merupakan hasil trace dari program menara hanoi. Untuk
menghitung langkah minimum pemindahan cakram melalui metode rekursif dapat
dilakukan dengan meng-input angka 1, setelah itu masukkan jumlah cakram yang
diinginkan. Pada contoh di atas, user memasukkan 2 buah cakram, lalu langkah
minimum pemindahan cakram sebanyak 3 langkah.

4.6 Program Angsuran


Program angsuran merupakan program yang mengalami beberapa tahapan untuk
membuat programnya. Beberapa tahapan tersebut adalah dimulai dari flowchart,
membuat pseudocode, dan di akhir membuat trace. Berikut merupakan penjelasan
lebih lanjut mengenai tahapannya.

a. Flowchart
Flowchart adalah adalah suatu bagan dengan simbol-simbol tertentu
yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu
proses (instruksi) dengan proses lainnya dalam suatu program. Berikut adalah
flowchart dari program angsuran.

Gambar 4.21 Flowchart Main Program Angsuran


Gambar 4.21 adalah flowchart dari main angsuran. Program angsuran ini
menggunakan metode kondisi dan perulangan. Flowchart sub program angsuran
dapat dilihat di bawah ini.
Gambar 4.22 Flowchart sub Program Angsuran
Gambar 4.22 adalah flowchart dari sub program angsuran. Pada sub
program ini, user menginputkan nilai dari variabel yang dibutuhkan untuk
menghitung angsuran yang harus dibayar berdasarkan pinjaman pokok, besar
bunga (menurun) dan lama pinjaman. Flowchart sub program angsuran
selanjutnya dapat dilihat di bawah ini.
Gambar 4.23 Flowchart sub Program Angsuran Restart
Gambar 4.23 adalah flowchart dari sub program angsuran restart. Pada
sub program ini, user menginputkan nilai dari variabel yang dibutuhkan untuk
menghitung angsuran yang harus dibayar berdasarkan pinjaman pokok, besar
bunga (menurun) dan lama pinjaman. Kemudian, user akan diberikan pilihan
berupa ingin mengulangi program atau tidak.

b. Pseudocode
Pseudocode adalah deskripsi dari algoritma pemrograman komputer yang
menggunakan konvensi struktural dari suatu bahasa pemrograman, dan ditujukan
agar dapat dibaca oleh manusia dan bukan oleh mesin. Berikut adalah pseudocode
dari program angsuran.

Algoritma:Halaman Utama Menghitung Angsuran


(Program ini akan membaca pokok pinjaman, bunga, lama
pinjaman yang akan disimpan pada variabel data. Program ini
sebagai halaman utama pada program menghitung angsuran dengan
mencetak ke data anggsuran agar dapat melakukan pengecekan data,
jika data salah user dapat menginput ulang data)

Fungsi Menu() : void

Deklarasi:
Pilihan = integer

Deskripsi:
BEGIN
1. Write(“1.Mulai Menghitung”)
2. Write(“2.Keluar”)
3. Read pilihan
4. If pilihan < 1 or > 2 then
5. Print”Input pilihan 1 atau 2”
6. 1. Input()
7. 0. “TERIMA KASIH” and exit
8. End if

END
Kode Program 4.19 Pseudocode Main Menu Program Perhitungan Kubus
Kode program 4.19 merupakan kode program atau pseudocode dari
program angsuran. Program ini untuk perhitungan angsuran. Pada bagian ini
adalah bagian dari tahapan pseudocode. Berikut merupakan pseudocode sub
program angsuran yang dapat dilihat di bawah ini.

Algoritma: Sub-Menu Menghitung Angsuran


(Program ini adalah sebagai Program sub-menu input pokok
pinjaman, besar bunga, lama pinjaman dengan fungsi looping)

Fungsi Sub-menu() : void

Deklarasi :
Persen = character
Bunga = double
Lamapinjaman = double
Pokokpinjaman = double
Angsuranpokok = double
Besarbunga = double
Lamapinjaman = double
Angsurantotal = double

Deskripsi :
BEGIN
1. Read pokok pinjaman
2. Read bunga
3. Read lama pinjaman
4. Print pokok pinjaman
5. Print bunga
6. Print lama pinjaman
7. For i = 1, i < lamaPinjam, i++do
8. Bulan Ke = i
9. Angsuranpokok = p/t
10. Bungapinjaman(i)=((p-((bulan-1)*angsuranpokok))*y)/12
11. AngsuranTotal = Angsuranpokok()+bungapinjaman(bulan)
12. Print Bulan ke, Bunga, AngsuranPokok, TotalAngsuran
13. End for
14. Print TotalBunga, TotalAngsuran

END
Kode Program 4.20 Pseudocode Sub Program Angsuran
Kode program 4.20 merupakan kode program atau pseudocode dari sub
program angsuran. Program ini untuk perhitungan angsuran. Pada bagian ini
adalah tahapan pseudocode bagian sub program yang menjelaskan program
tersebut lebih kompleks. Berikut merupakan pseudocode sub program angsuran
lainnya yang dapat dilihat di bawah ini.

Algoritma : Fungsi Menu restart()


(Program ini adalah sebagai program untuk mengulang
kembali pengecekan menuju sub-menu program)

Fungsi restart() : void

Deklarasi :reset:int

Deskripsi:
BEGIN
1. if reset =1 then
2.   input()
3. else
4.   exit
5. end if
END
Kode Program 4.21 Pseudocode Sub Program Angsuran Restart
Kode program 4.21 merupakan kode program atau pseudocode dari sub
program angsuran. Program ini untuk perhitungan angsuran. Pada bagian ini
adalah tahapan pseudocode bagian sub program yang menjelaskan program
tersebut lebih kompleks dan berisi restart yang berfungsi untuk user ingin
mengulangi penggunaan program atau tidak.

c. Hasil Trace Program


Trace digunakan untuk menguji kebenaran kode program yang telah
dibuat. Dengan melakukan trace, kesalahan pada kode program akan mudah
ditemukan, sehingga dapat diperbaiki. Berikut merupakan hasil trace dari
program angsuran.

Tabel 4.4 Hasil Trace Program Angsuran


input pilih=1
pokok pinjaman=100000
besar bunga(persen)=10
lama pinjam=2
proses Angsuran_pokok()
Bunga_pinjaman()
Angsuran_total()
Bunga_angsuran()

angsuranPo = p / t; //rumus buat nyari angsuran


pokok
bunga = ((p - ((bulan - 1) * angsuranPo)) * y) /
12;
double AngsuranTotal = angsuran_pokok() +
bunga_pinjaman(bulan);for (i = 1; i <= t; i++)
{ bungaPembayaran = bunga_pinjaman(i);
angsurantotal = angsuranTotal(i);
pembayaranTotal += angsurantotal;
totalBunga += bungaPembayaran;
printf("%d\t Rp %.2lf,-\t Rp %.2lf,-\t\tRp
%.2lf,-", i, bunga, angsuranPo, angsurantotal);
printf("\n");
}

Bulan ke-1
Bunga=83333.13
Angsuran pokok=5000.00
Total angsuran=13333.00

Bulan ke-2
Bunga=4166.67
Angsuran pokok=5000.00
Total angsuran=9166.00
Total bunga=12499.00
Total angsuran=22499.00

output Bulan Bunga Angsuran Pokok Total Angsuran


1 83333.13 5000.00 13333.00
2 4166.67 5000.00 9166.00
Total 22499.00

Program berhenti
Tabel 4 .4 merupakan hasil trace dari program angsuran. Untuk
menghitung total biaya angsuran dapat dilakukan dengan meng-input angka 1,
setelah itu masukkan pokok pinjaman, besar bunga, dan lama pinjam. Program
akan menghitung total biaya angsuran dan menampilkan hasilnya ke layar.

Anda mungkin juga menyukai