You are on page 1of 7

ISI DAN PEMBAHASAN

1.1 Listing Program


#include <iostream>

#include <conio.h>

#include <string>

using namespace std;

string user,pass;

int attempt,menu;

int no_kompi[10],durasi[10];

char nama[10][30];

char balik;

int data=0;

float harga[10],diskon[10];

void input(){

system("cls");

cout<<"INPUT DATA PERTAMA : \n";data++;

cout<<"Komputer nomor :
";cin>>no_kompi[0];

cout<<"Nama user :
";cin.ignore();cin.getline(nama[0],30);

cout<<"Durasi penggunaan komputer (dalam satuan jam) :


";cin>>durasi[0];

void tambah(){

system("cls");

for(int j=data;j<data+1;j++){

cout<<"Komputer nomor :
";cin>>no_kompi[j];

cout<<"Nama user :
";cin.ignore();cin.getline(nama[j],30);

Listing Program 1.1.1 Program Pertanyaan Interaktif

1
cout<<"Durasi penggunaan komputer (dalam satuan jam) : ";cin>>durasi[j];

data++;

void tampil(){

system("cls");

cout<<"TOTAL PEMBAYARAN : \n";

if(data==0) cout<<"TIDAK ADA DATA YANG TERSIMPAN\n";

else {

for(int h=0;h<data;h++){

cout<<"Komputer nomor : "<<no_kompi[h]<<endl;

cout<<"Nama user : "<<nama[h]<<endl;

cout<<"Durasi penggunaan komputer : "<<durasi[h]<<"


jam"<<endl;

harga[h]=durasi[h]*2500;

if(durasi[h]>5&&durasi[h]<10) {

cout<<"SELAMAT, KOMPUTER NOMOR "<<no_kompi[h]<<" MENDAPAT


DISKON 10%\n";

diskon[h]=harga[h]*0.1;}

else if (durasi[h]>10) {

cout<<"SELAMAT, KOMPUTER NOMOR "<<no_kompi[h]<<" MENDAPAT


DISKON 20%\n";

diskon[h]=harga[h]*0.2;}

cout<<"Anda membayar sebesar : Rp "<<harga[h]-


diskon[h];

cout<<endl<<endl;

}}

int main(){

do {

Listing Program 1.1.2 Program Pertanyaan Interaktif

2
cout<<"===LOGIN===\nUsername : ";cin>>user;

cout<<"Password : ";cin>>pass;

if (user=="kelompok1"&&pass=="123") cout<<"LOGIN BERHASIL!\n";

else {cout<<"LOGIN GAGAL!\n"; attempt++;

if (attempt==5) {cout<<"Anda gagal login sebanyak 5 kali,


program akan exit"; return 0;}

}}while(attempt<5&&(user!="kelompok1"||pass!="123"));

do{

cout<<"========MENU ADMIN==========\n";

cout<<"1. Input data pertama user warnet\n";

cout<<"2. Tambah data user warnet\n";

cout<<"3. Tampilkan pembayaran\n";

cout<<”0. Exit\n”;

cout<<"Pilih menu : ";cin>>menu;

switch(menu) {

case 1 :

input(); break;

case 2:

tambah(); break;

case 3:

tampil(); break;

case 0:

exit(0);

default: cout<<"ERROR!\n";

cout<<"Kembali ke menu? (y/n) : ";cin>>balik;

}while(balik=='y');}

Listing Program 1.1.3 Program Pertanyaan Interaktif

3
1.2 Pembahasan
Pada program diatas digunakan perulangan do-while dan pengendalian if-else
dan nested-if. do dipergunakan untuk memproses statement-statementnya kemudian
untuk melakukan perulangan atau tidak digunakan while jika while bernilai benar maka
statement dalam do akan diproses kembali. If-else dipergunakan untuk memproses
statement-statementnya jika kondisi if bernilai benar dan memproses statement else
jika kondisi if bernilai salah. Saat program dieksekusi, akan muncul menu login untuk
menidentifikasi pengguna program. Jika pengguna memasukkan username dan password
dengan benar, maka akan dilanjutkan ke menu selanjutnya. Sedangkan jika salah, pengguna
akan diberikan kesempatan 5 kali untuk memasukkan username dan password dengan benar
dan program akan exit dengan sendirinya jika pengguna memasukkan username dan
password yang salah.
Setelah memasukkan username dan password dengan benar, pengguna akan
dihadapkan dengan menu baru yang menggunakan switch-case. Switch-case akan
berlaku jika input case yang dimasukkan terdapat pada program dan tidak akan berlaku jika
input case tidak terdapat pada program sehingga melanjutkan ke statement berikutnya.
Case 0 digunakan untuk keluar dari program tanpa membaca statement di luar
switch-case. Case 1 digunakan untuk menginput data user warnet yang pertama.
Program ini menggunakan subprogram atau fungsi. Pada dasarnya, fungsi digunakan untuk
mengolah data dan mengembalikan nilai tetapi pada program ini fungsi tersebut bertipe void
yaitu fungsi yang tidak mengembalikan nilai. Pengguna memasukkan nomor komputer, nama
user, dan durasi penggunaan komputer dalam satuan jam. Data-data yang dimasukkan
pengguna tadi disimpan dalam array yaitu sebuah kumpulan data yang terdiri dari tipe data
yang sama. Case 2 digunakan untuk menambah data user warnet sesudah yang pertama. Pada
bagian ini digunakan perulangan for untuk menambah data user warnet secara berulang.
Perulangan for memiliki 3 langkah, yang pertama adalah penginisialisasian, kedua
pengujian kondisi yang dimana pada proses ini kondisi dicek dan apabila benar maka
statement di dalam for akan diproses, dan yang terakhir adalah aksi yakni berisi
penjumlahan atau pengurangan dari inisialisasi sehingga ketika kondisi bernilai salah maka
perulangan pada for akan berhenti. Case 3 digunakan untuk menampilkan nomor komputer,
nama user, dan durasi penggunaan komputer yang telah diinput oleh pengguna dan
menampilkan harga yang akan dibayar. Jika tidak ada data yang telah diinput maka program
akan memberitahu bahwa tidak ada data yang diinput. Pada program ini juga menggunakan
perulangan for untuk menampilkan data lebih dari satu. Jika durasi penggunaan komputer
lebih dari 5 jam, maka user akan mendapatkan potongan harga sebesar 10% dan jika lebih
dari 10 jam, maka user akan mendapatkan potongan harga sebesar 20%. Dan untuk diluar
case pada program tersebut maka akan mengeluarkan statement default. Selanjutnya
digunakan while untuk kembali ke menu atau keluar dari program.

4
1.3 Output

GAMBAR 1.3.1 Tampilan Login

GAMBAR 1.3.2 Tampilan Login ketika sukses

5
GAMBAR 1.3.3 Tampilan Login ketika gagal

GAMBAR 1.3.4 Program Input Data Pertama User Warnet

GAMBAR 1.3.5 Program Menambah Data User Warnet

6
GAMBAR 1.3.6 Program Menampilkan Data User Warnet

GAMBAR 1.3.7 Program Menampilkan Data User Warnet Ketika Tidak Ada Data
yang Diinput

You might also like