Anda di halaman 1dari 27

LAPORAN PRAKTIKUM

“ALGORITMA PEMROGRAMAN”

MODUL VII

PERULANGAN II

Oleh:

MUHAMMAD IBNU SOFYAN

2311103053

S1SI-07 E

PROGRAM STUDI S1 SISTEM INFORMASI

FAKULTAS INFORMATIKA

INSTITUT TEKNOLOGI TELKOM PURWOKERTO

2023
DAFTAR ISI
I. DASAR TEORI 1

1. Perulangan while 1

1.2 contoh perulangan while c++ 2

2. Perulangan do-while 4

2.1 bentuk umum perulangan do-while 4

2.2 contoh program do-while 4

3. Perbedaan perulangan while dan do-while 6

4. ASCII 10

II. GUIDED 12

III. UNGUIDED 21

IV. SUMBER 27
I. DASAT TEORI

Perulangan atau istilah lainnya looping adalah salah satu teknik/cara yang bisa kita gunakan
untuk melakukan beberapa perintah/instruksi program secara berulang-ulang sesuai dengan
batas perulangan yang kita tentukan. Dengan menggunakan perulangan tentu saja akan sangat
membantu kita untuk mengerjakan beberapa perinta/instruksi secara berulang-ulang tanpa harus
membuat manual satu persatu. Pada postingan kali ini kita akan membahas khusus perulangan
while dan do while tentang bagaimana cara kerja dan penggunaanya serta apa perbedaan dari
kedua jenis perulangan tersebut.

1. Perulangan While

Perulangan While adalah salah satu jenis perulangan di bahasa pemrograman C++. While
digunakan untuk melakukan perulangan dengan proses yang belum diketahui jumlahnya.
Berbeda dengan perulangan for yang kita sudah dapat mengetahui jumlah dari proses
perulangannya.

1.1 Contoh Perulangan While

while (kondisi){

perintah yang dilakukan perulangan;

Cara kerja perulangan while dengan melakukan inisialisasi suatu kondisi, Selama kondisi
bernilai benar (true) maka perintah akan terus di ulang (kerjakan) dan perintah perulangan akan
berakhir saat kondisi bernilai salah (false).
1.2 Contoh Perulangan While di C++
Untuk lebih memahami perulangan while coba perhatikan contoh Program dibawah ini:
a. Algoritma
• Mulai
• Inisialisasi nilai awal i=1
• Cek kondisi apakah nilai variabel i <=10 ? Jika benar maka akan dicetak kalimat “Belajar
Perulangan While”
• Nilai variabel i ditambah 1 , sekarang posisinya variabel 1 adalah 2.
• Dilakukan pengecekan lagi apakah variabel i masih memiliki nilai <=10 ? jika kondisi
bernilai benar maka akan terus dicetak kaliamat tersebut hingga nilai i lebih dari 10.
Ketika itu kondisinya bernilai false maka program perulangan while akan berhenti.
• Selesai.

b. Flowhart
c. Code

#include <iostream>

using namespace std;

int main() {

int i=1;

while (i<=10)

cout<<"Belajar Perulangan While "<<i<<endl;

i++;

getch();

d. Hasil Output

Dari hasil output program diatas dapat kita lihat bahwa kalimat “Belajar perulangan While”
dicetak sebanyak 10 kali sesuai dengan kondisi yang kita buat.
2. Perulangan Do While

Hampir sama dengan perulangan while hanya perbedaanya adalah pada perulangan do
while kondisi di cek setelah dilakukan terlebih dahulu (minimal sekali) perulangan. Hal ini
berbeda dengan perulangan while yang harus dicek kondisinya terlebih dahulu jika bernilai
benar, baru program dijalankan. Dengan kata lain perulangan Do While merupakan kebalikan
dari perulangan while.

2.1 Bentuk Umum Perulangan Do While

do {

perintah yang dilakukan perulangan;

} while (kondisi);

2.2 Contoh Program Do While di C++

a. algoritma
▪ Mulai
▪ Inisialisasi nilai awal i=1;
▪ Dicetak kalimat “Belajar Perulangan Do While”.
▪ Nilai variabel i ditambahkan 1.
▪ Dicek kondisi apakah nilai variabel i <=10 jika kondisi bernilai benar maka akan
dicetak kembali kalimat tersebut dan nilai i ditambahkan 1 lagi.
▪ Kemudian akan dicek kembali sesuai dengan kondisi, jika masih bernilai benar
maka akan terus dilakukan perulangan hingga kondisi bernilai salah.
▪ Selesai.
b. Flowchart

c. Code

#include <conio.h>

#include <iostream>

using namespace std;

int main() {

int i=1;

do {

cout<<"Belajar Perulangan Do While "<<i<<endl;

i++;

} while (i<=10);

getch();

}
d. Hasil Output

3. Perbedaan Perulangan While & Do While

Dari paparan diatas kalian kira-kira sudah bisa melihat perbedaan dari keduanya. Dimana
pada perulangan while pengecekan kondisi dilakukan terlebih dahulu, sementara pada
perulangan Do while pengecekan kondisinya di akhir statement. Untuk membuktikannya mari
coba lihat lewat contoh dibawah ini:
1. contoh program 1

#include <conio.h>

#include <iostream>

using namespace std;

int main() {

int i=1;

//Perulangan While

while (i<1)

cout<<"Belajar Perulangan While "<<i<<endl;

i++;

}
//Perulangan Do While

do {

cout<<"Belajar Perulangan Do While "<<i<<endl;

i++;

} while (i<1);

getch();

Program diatas saya membuat dua perulangan (While & Do While) masing-masing saya
menggunakan inisialisasi nilai awal variabel i=1 dengan kondisi i<1. Jika dijalnkan program
tersebut akan menghasilkan output berikut:

Bisa kalian lihat lewat ouput diatas? Karena perulangan Do while pengecekan kondisinya
diakhir statement artinya bahwa perulangan ini mengerjakan terlebih dahulu statement yang ada
baru kemudian di cek kondisinya. karena bernilai salah (false) maka perulangan dihentikan, dan
hanya mencetak 1 kali saja.

Berbeda dengan perulangan While yang dilakukan pengecekan terlebih dahulu,


sehingga ketika kondisi bernilai salah (false) maka dia tidak akan mengerjakan statement yang
ada.
2. Contoh Program 2

#include <conio.h>

#include <iostream>

using namespace std;

int main() {

int j=1, m, d;

do {

m= j *60;

d=m*60;

cout<<j<<" Jam "<<m<<" Menit "<<d<<" Detik"<<endl;

j +=1;

} while (j <=10);

getch();

Pada program diatas kita membuat perhitungan jam menit dan detik dengan menggunakan
perulangan do while, dimana jam saya buat dengan variabel j dengan nilai awal 1. untuk variabel
menit (m) akan dikalikan 60 dari jam (j) sementara untuk variabel detik (d) akan dikalikan 60
dari variabel menit (m). Kondisi yang saya buat nilai dari variabel j <=10. Selama kondisi
tersebut terpenuhi maka akan dicetak output untuk menampilkan jam, menit dan detiknya.
3. Contoh Program 3

#include <conio.h>

#include <iostream>

using namespace std;

int main() {

int n=1;

float jum=0;

do {

cout<<""<<n;

cout<<", ";

jum+=n;

n+=3;

} while (n<=10);

cout<<""<<endl;

cout<<""<<endl;;

cout<<"Jumlah : "<<jum<<endl;;

getch();

}
Pada program kedua kita masih menggunakan perulangan do while, dimana kita akan
mencetak deret bilangan, dimana setiap bilangannya akan ditambahkan 3 untuk bilangan
berikutnya. Nantinya kita akan menjumlahkan hasil dari seluruh bilangan tersebut.

Disini saya membuat dua variabel yaitu n dan jum dengan masing-masing menggunakan
tipe data integer dan float. Variabel jum akan ditambahkan dengan nilai dari variabel n, dan
variabel n akan di tambahkan 3 untuk bilangan berikutnya. Nilai n saya buat kondisinya <=10
nantinya hasil penjumlahan semua bilangan akan ditampilkan lewat variabel jum.

4. ASCII

ASCII merupakan singkatan dari American Standard Code for Information Interchange. Ini
adalah format paling umum untuk file teks di komputer dan di Internet yang dikembangkan oleh
American National Standards Institute (ANSI).

Kode ASCII adalah kode 7 bit karena dapat mewakili 2 7 = 128 karakter. Saat ini, total 95
karakter yang dapat dicetak diwakili oleh kode ini termasuk 26 huruf besar (A – Z), 26 huruf
kecil (a – z), 10 angka (0 – 9), dan 33 karakter khusus yang termasuk matematika simbol, tanda
baca dan karakter spasi.

Perkembangan terbaru di bidang kode ASCII adalah pengembangan dari kode 8 bit – yang
dikenal dengan US ASCII-8 atau ASCII-8. Karena ini adalah kode 8 bit, ini dapat mewakili 2 8 =
256 karakter. Komputer tidak menyimpan karakter sebagai karakter itu sendiri. Tidak ada
gambar dari setiap huruf di suatu tempat di hard drive komputer kalian. Sebaliknya, setiap
karakter dikodekan sebagai rangkaian bit biner : 1 dan 0.

Misalnya, kode huruf besar “A” adalah 01000001. Tapi bagaimana komputer kalian bisa
mengetahui bahwa 01000001 berarti huruf “A”? Di sinilah ASCII ikut bermain: 01000001
berarti “A” karena ASCII mengatakan demikian. Dan tentang apa yang dikatakan ASCII,
industri komputer setuju secara kolektif: Mereka mengembangkan standar pengkodean karakter
ASCII. Apa yang dilakukan standar pengkodean karakter adalah menentukan semua karakter
yang mungkin, dan menetapkan setiap karakter sebagai string bit.
Tabel 1. ASCII
II. GUIDED

1. Latihan 1

Ketikkan program dibawah, jalankan, dan lakukan analisis.

#include<iostream>
using namespace std;

int main()
{
int x = 0;
while (x <= 9)
{
cout << "Perulangan While" << endl;
x++;
}
return 0;
}

Apa yang terjadi jika x++ dihapus ?

a. Jika c++ tidak dihapus

b. Analisis
Kode program ini dalah untuk mencetak "Perulangan While" sebanyak sepuluh kali.
Dengan menggunakan perulangan while untuk mengulangi blok kode di dalamnya hingga
kondisi (x = 0 dan x <= 9) maka jika di run, akan mencetak “Perulangan While” sebanyak
sepuluh kali, dan program akan keluar jika kondisinya sudah tidak memenuhi. Di dalam loop,
kita mencetak string "Perulangan While" dan kemudian menambah variabel x sebanyak
1(increment) menggunakan ekspresi x++. Perulangan berulang sampai x sama dengan 9.

c. Jika x++ dihapus


#include<iostream>
using namespace std;

int main()
{
int x = 0;
while (x <= 9)
{
cout << "Perulangan While" << endl;

}
return 0;
}
Jika x++ dihapus dalam program, maka yang terjadi Ketika dijalankan adalah mencetak
“Perulangan While” secara terus menurus tanpa henti. Karena tidak adanya x++(increment)
maka yang terjadi adalah nilai x masih tetap 0, walaupun sudah melakukan perulangan sebanyak
apapun. hal ini yang mengakibatkan kondisi ( x <= 9 ) tidak terpenuhi.

2. Latihan 2

Ketikkan program dibawah, jalankan, dan lakukan analisis.

#include <iostream>
using namespace std;

int main()
{

int bilangan;
int pangkat;
int hasil = 1;
int c = 0;

cout << "Silahkan masukkan bilangan : ";


cin >> bilangan;
cout << "Silahkan masukkan pangkat : ";
cin >> pangkat;
while (c < pangkat)
{
hasil *= bilangan;
c++;
}
cout << endl;
cout << "\t" << bilangan << " pangkat " << pangkat << " = " << hasil << endl;

return 0;
}
Jelaskan cara kerja dari operator “ *= “ ?
a. Hasil Program

b. Analisis

Program ini adalah program untuk menghitung hasil pemangkatan suatu bilangan. Pada
program pertama, yaitu membuat variabel bilangan, pangkat, variabel hasil yang sudah
mempunyai nilai konstan yaitu 1, dan variabel c dengan nilai 0. Kemudian pada program
selanjutnya berfungsi untuk meminta pengguna memasukkan dua angka, yaitu angka untuk
bilangan dan pangkat dari bilangan yang sudah dimasukkan tadi, jika sudah diisi angka tersebut
akan disimpan dalam variabel bilangan dan pangkat. Selanjutnya, program ini menjalankan
perulangan while dengan kondisi c kurang dari pangkat (c < pangkat ). Kemudian bilangan yang
ada di dalam variabel akan hasil dikalikan dengan angka yang ada di dalam variabel bilangan.
Setelah itu, c bertambah satu ( increment). diakhir program, akan mencetak hasilnya ke layar.

c. Cara kerja operator *=

Operator *= adalah operator penugasan gabungan dalam bahasa pemrograman C++.


Operator ini digunakan untuk mengalikan nilai variabel sebelah kiri dengan nilai di sebelah
kanan operator dan kemudian menetapkan hasilnya kembali ke variabel sebelah kiri.
Misalnya, jika program memiliki hasil *= bilangan;, ini sama dengan hasil = hasil * bilangan;.
Jadi, nilai hasil akan dikalikan dengan nilai bilangan, dan hasilnya akan disimpan kembali ke
variabel hasil.

3. Latihan 3

Ketikkan program dibawah, jalankan, dan lakukan analisis

#include <iostream>
#include <time.h>
using namespace std;

int main()
{
srand(time(NULL));

char jawaban;
char hurufKomputer;
int pencacah = 0;

hurufKomputer = (char)(65 + rand() % ((90 + 1) - 65));


do
{
cout << "Percobaan Anda ke " << pencacah << " : ";
cin >> jawaban;
pencacah++;
} while (jawaban != hurufKomputer);
cout << "Anda benar..." << endl;

return 0;
}

Ubah agar permainannya menggunakan huruf kecil !


a. Hasil Program

b. Analisis

Kode program ini adalah sebuah permainan tebak huruf secara acak yang ditentukan oleh
komputer. Program akan memiliki huruf besar acak dan meminta pengguna untuk menebaknya.
Permainan berlanjut sampai pengguna menebak huruf dengan benar.

Pada program ini diawali dengan menginisialisasi generator angka acak dengan waktu saat
ini menggunakan srand(time(NULL));. Ini memastikan bahwa angka acak yang dihasilkan
berbeda setiap kali program dijalankan. kemudian menghasilkan huruf acak antara ‘A’ dan ‘Z’
(kode ASCII 65 hingga 90) dengan menggunakan hurufKomputer = (char)(65 + rand() % ((90 +
1) - 65));. Setelah itu, Program memasukan perulangan do-while di mana pengguna diminta
untuk menebak huruf. Jika tebakan pengguna tidak sama dengan huruf yang dihasilkan oleh
komputer, program akan terus meminta pengguna untuk menebak lagi. Jumlah tebakan dicatat
dalam variabel pencacah. perulangan berlanjut sampai tebakan pengguna cocok dengan huruf
yang dihasilkan oleh komputer. Pada titik ini, program mencetak pesan “Anda benar…” dan
berakhir.

c. Diubah menggunakan huruf kecil

#include <iostream>
#include <time.h>
using namespace std;

int main()
{
srand(time(NULL));

char jawaban;
char hurufKomputer;
int pencacah = 0;

hurufKomputer = (char)(97 + rand() % ((122 + 1) - 97));


do
{
cout << "Percobaan Anda ke " << pencacah << " : ";
cin >> jawaban;
pencacah++;
} while (jawaban != hurufKomputer);
cout << "Anda benar..." << endl;

return 0;
}
Untuk mengubah cara permainan dari menggunakan huruf kapital yaitu dengan mengubah
Bagian hurufKomputer = (char)(65 + rand() % ((90 + 1) - 65)); menjadi hurufKomputer =
(char)(97 + rand() % ((122 + 1) - 97)); digunakan untuk mengubahnya dari huruf kapital
menjadi huruf kecil sehingga menghasilkan huruf acak antara ‘a’ dan ‘z’. Berdasarkan dari tabel
ASCII huruf kecil berada pada nomor 97 sampai dengan 122. Sehingga cara permainan pada
code ini berubah menjadi menebak huruf kecil.

4. Latihan 4

Ketikkan program dibawah, jalankan, dan lakukan analisis.

#include <iostream>
using namespace std;

int main()
{

int pilihan = 0;
do
{
cout << " Aplikasi Akademik Telkom " << endl
<< endl;
cout << " Apa yang Anda butuhkan ? " << endl;
cout << " 1. Membuat surat keterangan kuliah " << endl;
cout << " 2. Legalisir Ijazah dan Trankrip Nilai " << endl;
cout << " 3. Pendaftaran Yudisium " << endl;
cout << " 0. Keluar " << endl;
cout << " Silahkan masukkan pilihan Anda (angka) : ";
cin >> pilihan;
cout << endl;
} while (pilihan != 0);
cout << "Terima kasih banyak " << endl;
cout << "Silahkan datang kembali " << endl;

return 0;
}
a. Hasil program

b. Analisis

Kode program ini adalah program yang menampilkan beberapa pilihan yang terkait dari
aplikasi akademik telkom kepada pengguna dan meminta masukkan pilihan kepada pengguna.
Perulangan ini menampilkan pilihan berulang kali sampai dengan pengguna memasukkan 0,
maka akan keluar.

Di dalam perulangan, program mencetak pilihan sebanyak 4 :

1. "Membuat surat keterangan kuliah"


2. "Legalisir Ijazah dan Trankrip Nilai"

3. "Pendaftaran Yudisium"

0. "Keluar"

Kemudian pengguna diharuskan untuk memasukkan pilihannya. Jika pengguna


memasukkan `0`, perulangan akan berhenti. Jika tidak, perulangan akan berlanjut dan pilihan
akan ditampilkan lagi. Jika pengguna memasukkan 0, maka program mencetak "Terima kasih
banyak" dan "Silahkan datang kembali" .

III. UNGUIDED

1. Buatlah program untuk mekanisme login (pembacaan kata sandi) untuk masuk ke sebuah
sistem. Apabila kata sandi yang dibaca salah, maka tidak bisamasuk kedalam sistem.
Percobaan login hanya boleh dilakukan sebanyak 3 kali.(kata sandi yang benar sebaiknya
disimpan dalam konstanta).
a. Kode program
#include <iostream>
#include <string>
using namespace std;

int main()
{
const string kata_sandi = "ibnu";
string input;
int percobaan = 0;

while (percobaan < 3)


{
cout << "Masukkan kata sandi: ";
cin >> input;

if (input == kata_sandi)
{
cout << "Login berhasil!\n";
return 0;
}
else
{
cout << "Kata sandi salah. Silakan coba lagi.\n";
percobaan++;
}
}

cout << "Anda telah mencoba 3 kali. Akun anda telah terkunci. tunggu
selama 30 detik.\n";
return 0;
}

b. Hasil program

c. Analisis

Kode program ini adalah program yang mensimulasikan sistem login. Kode ini
mendefinisikan variabel string konstan kata_sandi yang mewakili kata sandi yang benar. Dan
juga menginisialisasi variabel integer percobaan untuk melacak jumlah upaya login dan input
variabel string untuk menyimpan input pengguna.

Perulangan while untuk membuat pengguna mencoba memasukkan kata sandi hingga 3 kali.
Di dalam loop, program meminta pengguna memasukkan kata sandinya. Jika masukan cocok
dengan kata sandi yang benar, program akan menampilkan “Login berhasil!” dan keluar. Jika
tidak, program akan menambah variabel percobaan dan meminta pengguna untuk mencoba lagi.
Setelah 3 kali gagal, program menampilkan “Anda telah mencoba 3 kali. Akun anda telah
terkunci. tunggu selama 30 detik”.

2. Modifikasi program pada tugas guided 3, agar terdapat batasan kesempatan


menebak huruf hingga 3 kali. Jika sudah 3 kali menebak dan masih salah
maka muncul pemberitahuan jika “Anda kalah”.

a. Kode program
#include <iostream>
#include <time.h>
using namespace std;

int main()
{
srand(time(NULL));

char jawaban;
char hurufKomputer;
int pencacah = 0;

hurufKomputer = (char)(65 + rand() % ((90 + 1) - 65));


do
{
cout << "Percobaan ke " << pencacah + 1 << " : ";
cin >> jawaban;
pencacah++;
if (pencacah == 3 && jawaban != hurufKomputer)
{
cout << "Anda kalah" << endl;
return 0;
}
} while (jawaban != hurufKomputer);
cout << "Anda benar..." << endl;

return 0;
}
b. Hasil program

c. Analisis

Kode program ini adalah sebuah permainan tebak huruf secara acak yang ditentukan oleh
komputer, terdapat batasan kesempatan menebak huruf hingga 3 kali. Jika sudah 3 kali menebak
dan masih salah maka muncul pemberitahuan “Anda kalah”. Program akan memiliki huruf besar
acak dan meminta pengguna untuk menebaknya.

program dimulai dengan menginisialisasi bilangan acak dengan waktu saat ini.
Hal ini dilakukan untuk memastikan bahwa program menghasilkan urutan angka
acak yang berbeda setiap kali dijalankan. Kemudian mendeklarasikan variabel
karakter `jawaban` untuk menyimpan tebakan pengguna, variabel karakter
`hurufKomputer` untuk menyimpan huruf yang dihasilkan secara acak, dan variabel
integer `pencacah` untuk mencatat jumlah tebakan.

Program menghasilkan huruf besar acak dengan menambahkan angka acak antara
0 dan 25 (inklusif) ke nilai ASCII 'A' (65). Hasilnya dilemparkan ke char dan
disimpan di `hurufKomputer`. Program memasuki perulangan do-sementara yang
berlanjut selama tebakan pengguna tidak cocok dengan huruf yang dihasilkan secara
acak. Di dalam perulangan, program meminta pengguna untuk memasukkan tebakan
dan menyimpan masukan tersebut di `jawaban`. Kemudian menambah `pencacah`
sebanyak 1. Jika pengguna telah membuat 3 tebakan dan tidak ada satupun yang
cocok dengan `hurufKomputer`, program akan mencetak "Anda kalah" dan keluar
dengan kode kembali 0, yang menunjukkan eksekusi berhasil. Jika tebakan
pengguna cocok dengan `hurufKomputer`, program akan keluar dari perulangan dan
mencetak "Anda benar..." sebelum keluar.

IV. SUMBER

Monitor teknologi, 11 desember 2020 : Apa Itu ASCII: Sejarah, Contoh


https://www.monitorteknologi.com/apa-itu-ascii/

Setiawan dimas, 13 januari 2020 : Contoh Program C++ Perulangan While dan Do While

https://kelasprogrammer.com/contoh-program-c-perulangan-while-do-while/

Anda mungkin juga menyukai