Anda di halaman 1dari 22

Laporan Praktikum Algoritma dan Pemrograman

Modul II : Penyeleksian Kondisi dan Perulangan

Nama : Ni Made Rika Padeswari Kusuma

NIM : 1908561030

Kelas : B

Program Studi Teknik Informatika

Fakultas Matematika dan Ilmu Pengetahuan Alam


Universitas Udayana

2020
BAB I

PENDAHULUAN

I. Penyeleksian Kondisi
Penyeleksian Kondisi atau biasa disebut percabangan merupakan salah satu
solusi yang dapat dilakukan dalam menyelesaikan suatu masalah yang
memerlukan pemilihan dengan kondisi dua pilihan atau lebih. Penyeleksian
kondisi sangat berperan penting dalam menyusun sebuah program yang
kompleks. Ada 4 bentuk percabangan yang dikenal dalam bahasa C.

1. If-Else
Dalam penyeleksian kondisi If-Else terdapat dua buah pilihan atau
kondisi. Kondisi If umumnya diisi dengan statement yang benar, dan
Else diisi dengan statement yang salah. Jadi, jika kondisi memenuhi
syarat maka statement pertama akan dilakukan dan jika kondisi tidak
memenuhi syarat maka statement kedua yang akan dilakukan. Berikut
ini sintaks umum penyeleksian kondisi If-Else :
if (kondisi){

//statement pertama

else{

//statement kedua

Contoh implementasi penyeleksian kondisi If-Else dalam bahasa C,


sebagai berikut :
#include<stdio.h>

int main(){

int belanja;

printf("Masukkan Total Belanja\t: ");

scanf("%d",&belanja);

if (belanja>=100000){
printf("\nSelamat Anda Mendapatkan Diskon
15%%");

else{

printf("\nMaaf, Anda Kurang Beruntung");

return 0;
Artinya, apabila user menginputkan nilai lebih dari atau sama dengan
100.000
} maka program akan mengoutputkan tulisan “Selamat Anda
Mendapatkan Diskon 15%”. Jika yang diinputkan nilai kurang dari
100.000 maka program akan mengoutputkan tulisan “Maaf, Anda
Kurang Beruntung”.

2. If-Else-If
Penyeleksian kondisi If-Else-If memiliki tiga buah pilihan atau lebih.
Sama seperti penyeleksian kondisi If-Else, kondisi If pada
penyeleksian kondisi If-Else-If juga diisi dengan statement yang benar
dan kondisi Else-If diisi dengan statement bukan If.
if (kondisi){

//statement pertama

else if (kondisi 2){

//statement kedua

else{

//statemnet ketiga

}
Contoh implementasi dalam bahasa C :

#include<stdio.h>

int main(){

int belanja;

printf("Masukkan Total Belanja\t: ");

scanf("%d",&belanja);

if(belanja>=250000){

printf("\nSelamat Anda Mendapatkan Diskon


20%%");

else if(belanja>=100000){

printf("\nSelamat Anda Mendapatkan Diskon


15%%");

else if(belanja>=50000){

printf("\nSelamat Anda Mendapatkan Diskon


10%%");

else if(belanja<=15000){

printf("\nMaaf, Anda Kurang Beruntung");

else{

printf("\nAnda Mendapatkan Sebuah Piring


Cantik");

return 0;

Artinya, apabila user menginputkan nilai lebih dari atau sama dengan
250.000 maka program akan mengoutputkan tulisan “Selamat Anda
Mendapatkan Diskon 20%”. Jika user menginputkan nilai lebih dari
atau sama dengan 100.000 maka program akan mengoutputkan tulisan
“Selamat Anda Mendapatkan Diskon 15%”. Jika user menginputkan
nilai lebih dari atau sama dengan 50.000 maka program akan
mengoutputkan tulisan “Selamat Anda Mendapatkan Diskon 10%”.
Jika user menginputkan nilai kurang dari atau sama dengan 15.000
maka program akan mengoutputkan tulisan “Maaf, Anda Kurang
Beruntung”. Jika user menginputkan nilai selain dari 4 kondisi
tersebut, maka program akan mengoutputkan tulisan “Anda
Mendapatkan Sebuah Piring Cantik”.

3. Nested If atau If Bersarang


Penyeleksian kondisi dengan Nested If atau If Bersarang umumnya
sama dengan penyeleksian kondisi If-Else dan If-Else-If. Bedanya,
Nested If memiliki beberapa penyeleksian kondisi lagi di dalamnya.
Jadi akan ada If-Else di dalam If. Bentuk umum Nested If sebagai
berikut :
if(kondisi 1){

if (kondisi 2){

//statement

Penyeleksian kondisi kedua akan dieksekusi apabila kondisi pertama


bernilai benar. Dan statement kedua akan dilakukan apabila kondisi
pertama dan kondisi kedua bernilai benar. Contoh implementasi dalam
bahasa C :
#include<stdio.h>

int main(){

int a;

printf("Masukkan Sebuah Bilangan Lebih dari atau sama


dengan 15\t: "); scanf("%i",&a);

if(a>=15){

if(a>15){
printf("\nBilangan %i Lebih Besar dari 15", a);

}
else{

printf("\nBilangan Sama dengan 15");

else{

printf("\nInputan Anda Tidak Sesuai");

return 0;

Artinya, apabila user menginputkan nilai lebih dari atau sama dengan
15 maka akan masuk ke penyeleksian kondisi selanjutnya. Jika tidak
maka program akan mengoutputkan tulisan “Inputan Anda Tidak
Sesuai”. Jika bilangan yang diinputkan lebih dari 15 maka program
akan mengoutputkan tulisan “Bilangan Lebih Besar dari 15”. Selain
itu yang artinya user menginputkan bilangan 15, maka program akan
mengoutputkan tulisan “Bilangan Sama dengan 15”.

4. Switch-Case
Switch-Case umumnya digunakan ketika ingin menyeleksi kondisi
dengan pilihan atau kondisi yang cukup banyak. Salah satu dari
kondisi atau case akan dieksekusi tergantung dari nilai kondisi pada
switch. Jika nilai kondisi yang terdapat pada switch tidak sesuai
dengan semua case yang ada, maka yang akan dieksekusi adalah
statement dari default.

switch(kondisi){

case 1:

//statement pertama

break;

case 2:

//statement kedua

break;
....

....

case n:

//statement ke-n

break;

default:

//statement default

Contoh implementasi penyeleksian kondisi menggunakan Switch-Case


dalam bahasa C :
#include<stdio.h>
int main(){

int bil;

printf("Mencetak Karakter Bilangan 1 sampai 5\n");

printf("Masukkan Bilangan\t: "); scanf("%i", &bil);

switch(bil){

case 1:

printf("\nSatu");

break;

case 2:

printf("\nDua");

break;

case 3:

printf("\nTiga");

break;

case 4:

printf("\nEmpat");

break;
case 5:

printf("\nLima");

break;

default:

printf("\nInputan Anda Salah");

return 0;

II. Perulangan
Perulangan atau looping digunakan untuk mengeksekusi perintah secara
berulang-ulang sesuai dengan keinginan user. Contohnya ketika ingin
menampilkan tulisan “Hello World!” sebanyak 5 kali tentunya tidak akan
efisien jika kita menuliskannya satu persatu pada program. Sehingga dapat
digunakan fungsi perulangan untuk mencetak tulisan “Hello World!”
sebanyak 5 kali dengan hanya satu perintah saja. Terdapat tiga jenis
perulangan yang dikenal dalam bahasa C. Diantaranya yaitu, perulangan For,
While-Do dan Do-While.

1. For
Perulangan For umumnya digunakan ketika banyak perulangan sudah
diketahui. Struktur Perulangan For lebih sederhana dibanding
perulangan lainnya. Sintaks umum untuk Perulangan For adalah
sebagai berikut :
for(start;kondisi;penambahan){

//statement

Start merupakan kondisi awal untuk memulai perulangan. Sedangkan


kondisi merupakan syarat dari perulangan tersebut. Selama kondisi
terpenuhi, maka proses pengulangan akan dilakukan. Jika sudah tidak
memenuhi kondisi, maka proses akan keluar dari perulangan. Dan
penambahan merupakan proses untuk membantu variabel agar
mencapai kondisi akhir perulangan.

Contoh implementasi perulangan For dalam bahasa C :


#include<stdio.h>

int main(){

int i;

for(i=1;i<=10;i++){

printf("%i\n", i);

return 0;

Program tersebut akan mencetak nilai 1 sampai dengan 10.

2. While-Do
Perulangan While-Do digunakan untuk proses perulangan yang belum
diketahui jumlah perulangannya. Selama kondisi while bernilai benar,
maka perulangan akan terus dilakukan. Berikut ini bentuk umum
perulangan While-Do :

while(kondisi){

//statement

Contoh implementasi perulangan While-Do dalam bahasa C :

#include<stdio.h>

int main(){

int i;

i=1;

while(i<=10){

printf("%i\n", i);

i++;

return 0;

}
3. Do-While
Perulangan Do-While pada dasarnya sama dengan perulangan While-
Do. Hanya saja pada perulangan Do-While, kondisi while terletak di
bawah perulangan. Proses perulangan akan dilakukan terlebih dahulu
baru dilakukan pengecekan kondisi while. Sehingga dalam perulangan
Do-While akan terjadi paling tidak satu kali perulangan. Bentuk umum
perulangan Do-While :

do{

//statement

}while(kondisi)

Contoh implementasi perulangan Do-While dalam bahasa C :

#include<stdio.h>

int main(){

int i;

i=1;

do{

printf("%i\n", i);

i++;

}while(i<=10);

return 0;

Sama halnya seperti penyeleksian kondisi, dalam perulangan juga dikenal Nested
Looping atau perulangan bersarang. Berikut ini contoh implementasi Nested Looping
dalam bahasa C.
#include<stdio.h>

int main(){

int i,j,k;

for(i=1;i<=5;i++){

for(j=1;j<=10;j++){

k=i*j;

printf("%i x %i = %i\n",i,j,k);

printf("\n");

return 0;

Program diatas akan mencetak angka 1 sampai 5 yang kemudian akan dikalikan
dengan angka 1 sampai 10 dan juga hasilnya.
BAB II

PERMASALAHAN

1. Permasalahan dalam Modul


1.1 Apakah bisa jika kondisi case pada penyeleksian kondisi Switch-Case
menggunakan tipe data selain integer?
1.2 Bagaimana jika kita ingin melakukan penyeleksian kondisi bersarang
menggunakan Switch-Case?
1.3 Apa itu Operator Ternary dan bagaimana pengimplementasiannya?
1.4 Apa yang terjadi apabila kita tidak menginisialisasikan jumlah perulangan
pada perulangan For?

2. Permasalahan dalam Program


2.1 Bagaimana logika dalam menentukan apakah sebuah kata atau kalimat
termasuk palindrome atau tidak?
2.2 Pada saat menginputkan kata “KoDoK”, program menghasilkan bahwa
kata tersebut bukan termasuk palindrome yang seharusnya kata tersebut
adalah palindrome. Bagaimana cara mengatasinya?
BAB III

PEMBAHASAN

1. Pembahasan Permasalahan dalam Modul


1.1 Apakah bisa jika kondisi case pada penyeleksian kondisi Switch-Case
menggunakan tipe data selain integer?

Pada penyeleksian kondisi Switch-Case kita dapat menggunakan tipe


data selain integer pada bagian case. Tetapi, kita hanya bisa
menggunakan tipe data char atau karakter. Apabila menggunakan tipe
data string maka akan terjadi error pada program. Contohnya sebagai
berikut :
#include<iostream>

using namespace std;

int main(){

cout<<"Masukkan pilihan anda <satu/dua>\t: ";

string a;

getline(cin,a);

switch(a){

case "satu":

cout<<"ini satu"<<endl;

break;

case "dua":

cout<<"ini dua"<<endl;

break;

default:

cout<<"inputan anda salah"<<endl;

return 0;

}
Ketika di compile and run, program tersebut akan error dan muncul
kalimat kuantitas pada switch bukan tipe data integer. Tetapi, ketika
menggunakan tipe data char atau karakter program dapat berjalan.
Contohnya sebagai berikut.

#include<iostream>

using namespace std;

int main(){

cout<<"pilih A atau B?\t: ";

char a;

cin>>a;

switch(a){
case 'A':

cout<<"ini satu"<<endl;

break;

case 'B':

cout<<"ini dua"<<endl;

break;

default:

cout<<"inputan anda salah"<<endl;

return 0;

1.2 Bagaimana jika kita ingin melakukan penyeleksian kondisi bersarang


menggunakan Switch-Case?

Penyeleksian kondisi bersarang dapat dilakukan dengan menggunakan


Switch-Case sama halnya dengan Nested If atau If bersarang. Salah satu
dari kondisi atau case akan dieksekusi tergantung dari nilai kondisi pada
switch. Jika nilai kondisi yang terdapat pada switch tidak sesuai dengan
semua case yang ada, program akan mengeksekusi statement pada bagian
default. Contoh implementasinya dalam bahasa C adalah sebagai berikut.
#include<iostream>

using namespace std;

int main(){

int a,b,c;

string nama;

cout<<".==================****==================."<<end
l;

cout<<"| Program Pendataan


|"<<endl;

cout<<".==================****==================."<<end
l<<endl;

cout<<"Status anda <1. Mahasiswa / 2. Siswa>?\t: ";

cin>>a;

switch(a){

case 1:

cout<<"Nama\t: ";

getline(cin,nama); getline(cin,nama);

cout<<"Umur\t: ";

cin>>b;

cout<<"1. Tinggal bersama orang tua / 2.


Ngekost <1/2>\t: ";

cin>>c;

cout<<endl;

switch(c){

case 1:

cout<<"Nama\t: "<<nama<<endl;

cout<<"Umur\t: "<<b<<endl;

cout<<"Tinggal bersama orang


tua"<<endl;

break;
case 2:

cout<<"Nama\t: "<<nama<<endl;

cout<<"Umur\t: "<<b<<endl;
cout<<"Ngekost"<<endl;

break;

default:

cout<<"Input anda salah";

break;

case 2:

cout<<"Nama\t: ";

getline(cin,nama); getline(cin,nama);

cout<<"Umur\t: ";

cin>>b;

cout<<"1. Diantar orang tua ke sekolah / 2.


Berangkat sendiri <1/2>\t: ";

cin>>c;

cout<<endl;

switch(c){

case 1:

cout<<"Nama\t: "<<nama<<endl;

cout<<"Umur\t: "<<b<<endl;

cout<<"Diantar orang tua ke


sekolah"<<endl;

break;
case 2:

cout<<"Nama\t: "<<nama<<endl;

cout<<"Umur\t: "<<b<<endl;

cout<<"Berangkat
sendiri"<<endl;

break;

default:

cout<<"Input anda salah";

return 0;

1.3 Apa itu Operator Ternary dan bagaimana pengimplementasiannya?

Operator Ternary merupakan salah satu bentuk yang dapat digunakan


untuk penyeleksian kondisi. Dapat dikatakan bahwa penyeleksian kondisi
Operator Ternary ini merupakan bentuk lebih sederhana dari penyeleksian
kondisi If-Else. Bentuk umumnya sebagai berikut :
(kondisi) ? nilai_1 : nilai_2

Pada bagian kondisi diisi dengan operasi atau nilai yang akan diseleksi
dan kemudian menghasilkan nilai_1 atau nilai_2 tergantung dari kondisi
yang diberikan. Nilai_1 dan nilai_2 berisi jawaban atau statement yang
akan dipilih nantinya. Nilai_1 diisi dengan jawaban benar atau If
sedangkan Nilai_2 diisi dengan jawaban yang salah atau Else. Contoh
implementasi Operator Ternary dalam bahasa C++ :
#include<iostream>

using namespace std;

int main(){

int a,b;

string jawab;

cout<<"Masukkan angka pertama\t: ";

cin>>a;

cout<<"Masukkan angka kedua\t: ";

cin>>b;

jawab= a>b ? "Benar" : "Salah";

cout<<a<<" > "<<b<<" itu "<<jawab;

return 0;

Program ini melakukan penyeleksian apakah inputan sebuah bilangan


pertama lebih besar dari bilangan kedua atau tidak. Program tersebut akan
menghasilkan hal yang sama dengan program yang menggunakan
penyeleksian kondisi If-Else dibawah ini.
#include<iostream>

using namespace std;

int main(){

int a,b;

cout<<"Masukkan angka pertama\t: ";


cin>>a;

cout<<"Masukkan angka kedua\t: ";

cin>>b;

if(a>b){

cout<<a<<" > "<<b<<" itu "<<"Benar";


else{

cout<<a<<" > "<<b<<" itu "<<"Salah";

return 0;

1.4 Apa yang terjadi apabila kita tidak menginisialisasikan jumlah


perulangan pada perulangan For?

Seperti yang dibahas pada landasan teori, perulangan for digunakan ketika
jumlah perulangan sudah diketahui. Jadi, apabila kita tidak
menginisialisasikan batas awal dan batas akhir dari perulangan tersebut
maka akan terjadi infinity looping atau perulangan sejumlah tidak
terhingga.
#include<iostream>

using namespace std;

int main(){

for(;;){

cout<<"Hello World!"<<endl;

return 0;

Program akan terus melakukan perintah perulangan karena tidak ada batas
atau kondisi untuk keluar dari perulangan tersebut. Maka dari itu, pada
perulangan for harus dilakukan inisialisasi untuk batas awal dan akhir dari
perulangan itu sendiri.
2. Pembahasan Permasalahan dalam Program
2.1 Bagaimana logika dalam menentukan apakah sebuah kata atau
kalimat termasuk palindrome atau tidak?

Dalam membuat suatu program yang dapat menentukan apakah sebuah


kata atau kalimat yang diinputkan oleh user itu termasuk palindrome atau
tidak, kita dapat menggunakan beberapa fungsi seperti fungsi perulangan
dan penyeleksian kondisi. Logika utamanya adalah, yang pertama kita
harus menghitung panjang dari kata atau kalimat yang digunakan. Kita
dapat menggunakan bantuan strlen untuk menghitungnya. Kemudian kita
harus melakukan pengecekan dari indeks pertama sampai indeks terakhir
kata atau kalimat. Apabila huruf pertama dan huruf terakhir sama,
kemudian huruf kedua dari depan dan huruf kedua dari belakang sama dan
seterusnya maka kata atau kalimat tersebut dapat dikatakan palindrome.
Berikut ini implementasinya dalam bahasa C++ :
#include<iostream>
#include<string.h>

using namespace std;

int main(){

int i,index;

char in[100];

cout<<"Masukkan kata atau kalimat\t: ";

cin.getline(in,sizeof(in));

index=strlen(in)-1;

for(i=0;i<=index;i++){

if(in[i]==in[index]){

cout<<"\nKata atau kalimat merupakan


palindrome"<<endl;

break;

else{

cout<<"\nKata atau kalimat bukan


palindrome"<<endl;

break;

}
index--;

return 0;

Dalam hal tersebut digunakan penyeleksian kondisi menggunakan If-Else.

2.2 Pada saat menginputkan kata “KoDoK”, program menghasilkan


bahwa kata tersebut bukan termasuk palindrome yang seharusnya
kata tersebut adalah palindrome. Bagaimana cara mengatasinya?

Pada saat menginputkan kata atau kalimat yang berisi huruf kapital
dengan menggunakan program yang diatas, program akan menghasilkan
bahwa kata atau kalimat tersebut bukan palindrome. Hal yang dapat
dilakukan adalah kita harus menginisialisasikan bahwa kalimat atau kata
yang diinputkan sama dengan bentuk lowercase dari inputan tersebut.
Artinya, kita harus mengubah terlebih dahulu inputan yang berisikan huruf
kapital menjadi bentuk lowercase.
Dalam kasus ini, kita dapat menggunakan bantuan fungsi tolower() yang
terdapat di dalam library untuk mendapatkan bentuk lowercase dari
inputan. Tolower() merupakan fungsi untuk mengubah huruf kapital
menjadi huruf kecil atau lowercase. Sehingga, kita dapat menambahkan
fungsi tolower() ini pada program palindrome tadi. Program tersebut akan
menjadi :

#include<iostream>

#include<string.h>

using namespace std;

int main(){

int i,index;

char in[100];

cout<<"Masukkan kata atau kalimat\t: ";

cin.getline(in,sizeof(in));

index=strlen(in)-1;

for(i=0;i<=index;i++){

in[i]=tolower(in[i]);

in[index]=tolower(in[index]);
if(in[i]==in[index]){

cout<<"\nKata atau kalimat merupakan


palindrome"<<endl;

break;

else{

cout<<"\nKata atau kalimat bukan


palindrome"<<endl;

break;

index--;

return 0;

Anda mungkin juga menyukai