Contoh Soal C++ BSI Semester 1 Menggunakan Struct dan Fungsi
SOAL 1 – TOKO FURNITURE
Ketentuan : Gunakan Struct dan Fungsi
Layar Inputan
Layar Output
Contoh Penyelesaian :
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
struct
{
char km[2],kt[3],merk[10],type[30];
int jml;
long harga,sub;
}toko[8];
char kasir[10],lagi;
int a,b,total,bayar,kembali;
judul()
{
cout<<"==============================================================\n";
cout<<" Toko Aneka Furniture \n";
cout<<" Little Dreamer \n";
cout<<"==============================================================\n";
}
garis()
{
cout<<"==============================================================\n";
}
sum()
{
total=total+toko[a].sub;
}
main()
{
awal:
clrscr();
total=0;
judul();
cout<<"Masukkan Nama Kasir = ";cin>>kasir;
cout<<"Banyak Jenis = ";cin>>b;
cout<<endl<<endl;
for(a=1;a<=b;a++)
{
cout<<"Furniture Ke- "<<a<<endl;
cout<<"Pilih Merk [G|O] = ";cin>>toko[a].km;
cout<<"Pilih Type [M|K|L] = ";cin>>toko[a].kt;
cout<<"Jumlah Beli = ";cin>>toko[a].jml;
cout<<endl;
if(strcmp(toko[a].km,"G")==0||strcmp(toko[a].km,"g")==0)
{
strcpy(toko[a].merk,"Graver");
if(strcmp(toko[a].kt,"M")==0||strcmp(toko[a].kt,"m")==0)
{
strcpy(toko[a].type,"Meja Komputer");
toko[a].harga=95000;
}
else if(strcmp(toko[a].kt,"K")==0||strcmp(toko[a].kt,"k")==0)
{
strcpy(toko[a].type,"Kursi Meja");
toko[a].harga=125000;
}
else if(strcmp(toko[a].kt,"L")==0||strcmp(toko[a].kt,"l")==0)
{
strcpy(toko[a].type,"Lemari Arsip");
toko[a].harga=450000;
}
}
else if(strcmp(toko[a].km,"O")==0||strcmp(toko[a].km,"o")==0)
{
strcpy(toko[a].merk,"Olympic");
if(strcmp(toko[a].kt,"M")==0||strcmp(toko[a].kt,"m")==0)
{
strcpy(toko[a].type,"Meja Komputer");
toko[a].harga=115000;
}
else if(strcmp(toko[a].kt,"K")==0||strcmp(toko[a].kt,"k")==0)
{
strcpy(toko[a].type,"Kursi Meja");
toko[a].harga=135000;
}
else if(strcmp(toko[a].kt,"L")==0||strcmp(toko[a].kt,"l")==0)
{
strcpy(toko[a].type,"Lemari Arsip");
toko[a].harga=550000;
}
}
}
clrscr();
judul();
cout<<"Nama Kasir = "<<kasir<<endl;
garis();
cout<<"No. Merk Type Harga Jumlah Subtotal"<<endl;
cout<<" Satuan Beli "<<endl;
garis();
for(a=1;a<=b;a++)
{
cout<<setiosflags(ios::left)<<setw(4)<<a;
cout<<setiosflags(ios::left)<<setw(10)<<toko[a].merk;
cout<<setiosflags(ios::left)<<setw(18)<<toko[a].type;
cout<<setiosflags(ios::left)<<setw(10)<<toko[a].harga;
cout<<setiosflags(ios::left)<<setw(8)<<toko[a].jml;
toko[a].sub=toko[a].harga*toko[a].jml;
cout<<setiosflags(ios::left)<<setw(8)<<toko[a].sub<<endl;
sum();
}
cout<<endl;
garis();
cout<<" Total = "<<total<<endl;
cout<<" Uang Bayar = ";cin>>bayar;
kembali=bayar-total;
cout<<" Uang Kembali = "<<kembali<<endl<<endl;
cout<<"Ingin Input Data Lagi [Y|T]?";cin>>lagi;
if(lagi=='Y'||lagi=='y')
goto awal;
getch();
}
SOAL 2 – TOY STORE
Ketentuan Harga
Layar Input
Layar Output
Contoh listing program :
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
struct
{
char kode,nama[10];
int beli;
long harga,sub;
}toy[5];
char kasir[10],lagi;
int a,b;
long total,bayar,kembali;
jml()
{
total=total+toy[a].sub;
}
judul()
{
printf("==============================================\n");
printf(" Toy Store \"Little Dreamer\" \n");
printf(" Sedia Aneka Mainan Anak-anak \n");
printf("==============================================\n");
}
garis()
{
printf("==============================================\n");
}
main()
{
awal:
clrscr();
total=0;
judul();
cout<<"Masukkan Nama Kasir = ";cin>>kasir;
cout<<"Banyak Macam = ";cin>>b;
cout<<endl;
for(a=1;a<=b;a++)
{
cout<<"Macam Ke - "<<a<<endl;
cout<<"Pilih Macam Mainan = ";cin>>toy[a].kode;
cout<<"Jumlah Beli = ";cin>>toy[a].beli;
cout<<endl;
if(toy[a].kode=='B'||toy[a].kode=='b')
{
strcpy(toy[a].nama,"Boneka");
toy[a].harga=50000;
}
else if(toy[a].kode=='R'||toy[a].kode=='r')
{
strcpy(toy[a].nama,"Robot");
toy[a].harga=75000;
}
else if(toy[a].kode=='P'||toy[a].kode=='p')
{
strcpy(toy[a].nama,"Puzzle");
toy[a].harga=40000;
}
}
clrscr();
judul();
cout<<"Kasir = "<<kasir<<endl<<endl;
garis();
cout<<"Kode Nama Harga Jumlah Subtotal"<<endl;
cout<<"Barang Barang Satuan Beli "<<endl;
garis();
for(a=1;a<=b;a++)
{
cout<<setiosflags(ios::left)<<setw(8)<<toy[a].kode;
cout<<setiosflags(ios::left)<<setw(10)<<toy[a].nama;
cout<<setiosflags(ios::left)<<setw(8)<<toy[a].harga;
cout<<setiosflags(ios::left)<<setw(6)<<toy[a].beli;
toy[a].sub=toy[a].harga*toy[a].beli;
cout<<setiosflags(ios::left)<<setw(8)<<toy[a].sub<<endl;
jml();
}
cout<<endl;
garis();
cout<<" Total = "<<total<<endl;
cout<<" Uang Bayar = ";cin>>bayar;
kembali=bayar-total;
cout<<" Uang Kembali = "<<kembali;
cout<<endl<<endl;
cout<<"Ingin Input Lagi??";cin>>lagi;
if(lagi=='y'||lagi=='Y')
goto awal;
getch();
}
SOAL 3 - WARNET BINA CYBER
Tabel data Layanan
Jenis Layanan Nama Layanan Tarif Permenit
A Internet Rp. 2.500
B Game Online Rp. 3.000
C Game Offline Rp. 2.000
D Rental Pengetikan Rp. 1.500
LAYAR INPUT
LAYAR OUTPUT
Contoh listing program :
/*Warnet Bina Cyber untuk tugas Pra UAS*/
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
struct
{
char jenis[15],kode;
int komp,durasi;
long tarif,total;
}warnet[5];
char petugas[10],lagi;
int sum,bayar,kembali,a,b;
jumlah()
{
sum=sum+warnet[a].total;
}
judul()
{
printf("=============================================\n");
printf(" Warnet \"Bina Cyber\" \n");
printf("=============================================\n");
}
garis()
{
printf("=============================================\n");
}
main()
{
awal:
clrscr();
sum=0;
judul();
cout<<"Nama Petugas = ";cin>>petugas;
cout<<"Jumlah Transaksi = ";cin>>b;
cout<<endl<<endl;
for(a=1;a<=b;a++)
{
cout<<"Transaksi ke - "<<a<<endl;
cout<<"No. Komputer = ";cin>>warnet[a].komp;
cout<<"Jenis Layanan = ";cin>>warnet[a].kode;
cout<<"Durasi Bermain = ";cin>>warnet[a].durasi;
cout<<endl;
if(warnet[a].kode=='A'||warnet[a].kode=='a')
{
strcpy(warnet[a].jenis,"Internet");
warnet[a].tarif=2500;
}
else if(warnet[a].kode=='B'||warnet[a].kode=='b')
{
strcpy(warnet[a].jenis,"Game Online");
warnet[a].tarif=3000;
}
else if(warnet[a].kode=='C'||warnet[a].kode=='c')
{
strcpy(warnet[a].jenis,"Game Offline");
warnet[a].tarif=2000;
}
else if(warnet[a].kode=='D'||warnet[a].kode=='d')
{
strcpy(warnet[a].jenis,"Pengetikan");
warnet[a].tarif=1500;
}
}
clrscr();
judul();
cout<<endl;
cout<<"Nama Petugas = "<<petugas<<endl<<endl;
garis();
cout<<"No. No. Jenis Durasi Tarif Total"<<endl;
cout<<" Komp Layanan Bermain Permenit "<<endl;
garis();
for(a=1;a<=b;a++)
{
cout<<setiosflags(ios::left)<<setw(4)<<a;
cout<<setiosflags(ios::left)<<setw(6)<<warnet[a].komp;
cout<<setiosflags(ios::left)<<setw(13)<<warnet[a].jenis;
cout<<setiosflags(ios::left)<<setw(8)<<warnet[a].durasi;
cout<<setiosflags(ios::left)<<setw(9)<<warnet[a].tarif;
warnet[a].total=warnet[a].durasi*warnet[a].tarif;
cout<<setiosflags(ios::left)<<setw(8)<<warnet[a].total<<endl;
jumlah();
}
cout<<endl;
garis();
cout<<" Total Keseluruhan = "<<sum<<endl;
cout<<" Uang Bayar = ";cin>>bayar;
kembali=bayar-sum;
cout<<" Uang Kembali = "<<kembali<<endl;
garis();
cout<<"Ingin Input Data Lagi [Y/T]??";cin>>lagi;
if(lagi=='y'||lagi=='Y')
goto awal;
getch();
}
= = = = = = = = = = = = = = =
Baca juga materi Semester 1 UBSI lainnya:
Kurikulum September 2019 :
- Latihan Soal Pertemuan 1-6 Logika dan Algoritma UBSI Semester 1
- Latihan Soal Pertemuan 1-6 Entrepreneurship UBSI Semester 1
- Latihan Soal Pertemuan 1-6 Entrepreneurship UBSI Semester 1
Terimakasih sudah berkunjung kak :)
BalasHapus