Anda di halaman 1dari 11

Soal C++

PT. “SAFETY TRANSPORTASION” , meminta anda sebagai seorang Programmer


untuk membantu perhitungan penyewaan bis mereka, dengan ketentuan sebagai berikut :
1. Buatlah Structure dengan nama bis
2. Jumlah sewa diinput untuk menyesuaikan data sewa yang ada
3. Nama Penyewa, Tanggal Sewa, Kode Mobil dan Lama Sewa diinput (gunakan
Array)
4. Jenis mobil dan pajak disesuaikan dengan tabel di bawah ini: (gunakan if atau
switch)
Kode Jenis Mobil Harga sewa/ jam Pajak
mobil
1 Sedan 450.000 100.000
2. Minibus 700.000 150.000
3. Bus 1.000.000 200.000
Jiak kode mobil yang diinput selain kode yang ada didalam tabel diatas maka berikan
pesan kesalahan dan kembali menginput kode mobil
5. Banyak sewa mobil yang diinput selain kode harus sama dengan ketentuan jumlah
sewa yang sudah diberikan pada awal input data
6. Total didapat dari perkalian antara lama sewa dengan harga ditambah dengan
pajak
7. Total biaya sewa didapat dari keseluruhan total dalam tabel
8. Diskon :
Diskon diberikan sebesar 10% dari total biaya sewa jika lama sewa lebih dari 20
jam selain itu tidak diberikan diskon
9. Total pembayaran didapat dari total biaya sewa dikurangi diskon
10. Setelah selesai diinput maka akan menghasilkan keluaran dalam bentuk tabel
yang jumlahnya sama sesuai dengan jumlah data yang diinput

Rancangan Masukan
Jumlah Sewa =……………..<diinput>
Nama Penyewa =……………..<diinput>
Tanggal Sewa =……………..<diinput>

Input Data Sewa

Data Penyewaan ke =<counter jumlah>


Kode Mobil [1/2/3] =……….<diinput>
Lama Pinjam =…. jam<diinput>
Rancangan Keluaran
Daftar Penyewaan Mobil
“PT SAFETY TRANSPORTATION”

Nama Penyewa = …………. Tanggal Sewa :……………

=============================================================
No Kode Mobil Jenis Mobil Lama Sewa Harga Sewa Pajak Total
=============================================================
1.
2.
=============================================================
Total Biaya Sewa :Rp…………
Diskon :Rp…………
Total Pembayaran :Rp…………

Jawaban nya

#include <iostream.h>
#include <iomanip.h>
#include <stdio.h>
#include <conio.h>
int total(int lm,int hrg,int pjk)
{
return hrg*lm+pjk;
}
main()
{
struct
{
char kode[3],jenis[20];
int harga,lama,pajak;
float diskon;
}bis[10];
char penyewa[20],tanggal[15];
int i,banyak,totalbiayasewa,totalpembayaran;
float totdiskon;
clrscr();
cout<<"Jumlah Sewa = ";cin>>banyak;
cout<<"Masukan Nama Penyewa = ";gets(penyewa);
cout<<"Tanggal Sewa = ";gets(tanggal);
for(i=1;i<=banyak;i++)
{
cout<<"Data Penyewa Ke- "<<i<<endl;
cout<<"Masukan Kode Jenis = ";cin>>bis[i].kode;
cout<<"Masukan Lama Sewa = ";cin>>bis[i].lama;cout<<"jam"<<endl;
if(strcmpi(bis[i].kode,"SN")==0)
{
strcpy(bis[i].jenis,"Sedan");
bis[i].harga=450000;
bis[i].pajak=100000;
}
else if(strcmpi(bis[i].kode,"MB")==0)
{
strcpy(bis[i].jenis,"MiniBus");
bis[i].harga=700000;
bis[i].pajak=150000;
}
else if(strcmpi(bis[i].kode,"BS")==0)
{
strcpy(bis[i].jenis,"Bis");
bis[i].harga=1000000;
bis[i].pajak=200000;
}
else
{
strcpy(bis[i].jenis,"Salah Kode");
bis[i].harga=0;
bis[i].pajak=0;
}
if(bis[i].lama>20)
{
bis[i].diskon=total(bis[i].lama,bis[i].harga,bis[i].pajak)*0.1;
}
else
{
bis[i].diskon=0;
}
}
clrscr();
cout<<"Daftar Penyewaan Mobil\n\n";
cout<<"\t\tPT.SAFETY TRANSFORTATION\n";
cout<<"=======================================================
=====\n\n";
cout<<"Nama Penyewa = "<<setiosflags(ios::left)<<setw(10)<<penyewa;
cout<<"Tanggal Sewa = "<<setiosflags(ios::left)<<setw(5)<<tanggal<<endl;
cout<<"=======================================================
=====\n";
cout<<"No Kode Jenis Diskon Lama Harga Pajak Total\n";
cout<<"=======================================================
=====\n";
for(i=1;i<=banyak;i++)
{
cout<<setiosflags(ios::left)<<setw(4)<<i;
cout<<setiosflags(ios::left)<<setw(8)<<bis[i].kode;
cout<<setiosflags(ios::left)<<setw(11)<<bis[i].jenis;
cout<<setiosflags(ios::left)<<setw(10)<<bis[i].diskon;
cout<<setiosflags(ios::left)<<setw(10)<<bis[i].lama;
cout<<setiosflags(ios::left)<<setw(10)<<bis[i].harga;
cout<<setiosflags(ios::left)<<setw(10)<<bis[i].pajak;
cout<<setiosflags(ios::left)<<setw(5)<<total(bis[i].lama,bis[i].harga,bis[i].pajak);
cout<<endl;
}
cout<<"=======================================================
=====\n\n";
totalbiayasewa=0;
totdiskon=0;
for(i=1;i<=banyak;i++)
{
totalbiayasewa=total(bis[i].lama,bis[i].harga,bis[i].pajak)+totalbiayasewa;
totdiskon=bis[i].diskon+totdiskon;

totalpembayaran=totalbiayasewa-totdiskon;
cout<<"\t\t\t Total Biaya Sewa =Rp "<<totalbiayasewa<<endl;
cout<<"\t\t\t Diskon =Rp "<<totdiskon<<endl;
cout<<"\t\t\t Total Pembayarab =Rp "<<totalpembayaran<<endl;
getch();
}
Tipe D

“AGEN KORAN SINAR BUMI” ingin dibuatkan program untuk menghitung


jumlah koran yang diedarkan oleh para pengecer.
1. Buatlah FUNCTION dengan nama hargakoran
Berikut ketentuan yang diberikan:
Kode Koran Nama Koran Harga Eceran
M Media Indonesia 2.500
R Republika 2.000
S Sindo 3.000

2. Banyak pengecer diinput untuk menyesuaikan data pengecer yang ada.


3. Nama pengecer, Nama koran, Jumlah ambil dan jumlah koran kembali diinput
(gunakan array)
4. Jumlah koran terjual didapat dari jumlah koran ambil kurangi jumlah koran yang
dikembalikan.
5. Total penjualan diperoleh dari jumlah koran terjual dikali harga koran.

Rancangan Masukan

AGEN KORAN SINAR BUMI

Banyak Pengecer :
Data Pengecer Ke-
Nama Pengecer =
Kode Koran [M/R/S] =
Jumlah Ambil =
Jumlah Kembali =

Rancangan Keluaran
AGEN KORAN SINAR BUMI

=============================================================
No. Nama Nama Jumlah Jumlah Jumlah Harga Total
Pengecer Koran Ambil Kembali Terjual Koran Penjualan
=============================================================
1.
2.
=============================================================

Jawaban nya :

#include <iostream.h>
#include <iomanip.h>
#include <stdio.h>
#include <conio.h>
char* koran(char kode)
{
if (kode=='R'||kode=='r')
{return "republka";}
else if (kode=='M'||kode=='m')
{return "Media Indonesia";}
else if (kode=='S'||kode=='s')
{return "Sindo";}
}

int harga(char kode)


{
if (kode=='R'||kode=='r')
{return 2000;}
else if (kode=='M'||kode=='m')
{return 2500;}
else if (kode=='S'||kode=='s')
{return 3000;}
}
main()
{
struct
{
char kode,nama[25];
int ambil,kembali,jual,harga,total;
}pengecer[50];
int i,j;
clrscr();
cout<<"\t Agen Koran Sinar Bumi"<<endl;
cout<<"\t======================================"<<endl;
cout<<endl;
cout<<"Banyak Pengecer :";cin>>j;
cout<<endl;
for(i=1;i<=j;i++)
{
cout<<"Data Ke- "<<i<<endl;
cout<<"Nama Pengecer :";gets(pengecer[i].nama);
cout<<"Nama Koran :";cin>>pengecer[i].kode;
cout<<"Masukan Ambil :";cin>>pengecer[i].ambil;
cout<<"Masukan Kembali :";cin>>pengecer[i].kembali;
cout<<endl;
pengecer[i].jual=pengecer[i].jual-pengecer[i].kembali;
pengecer[i].total=pengecer[i].jual*harga(pengecer[i].kode);
}
clrscr();
cout<<"\t Agen Koran Sinar Bumi"<<endl;
cout<<"----------------------------------------------------------------------------"<<endl;
cout<<"No Nama Nama Jumlah Jumlah Jumlah Harga
Total"<<endl;
cout<<" Pengecer Koran ambil Kembali Terjual Koran
Penjualan"<<endl;
cout<<"----------------------------------------------------------------------------"<<endl;
for(i=1;i<=j;i++)
{
cout<<setiosflags(ios::left)<<setw(4)<<i;
cout<<setiosflags(ios::left)<<setw(13)<<pengecer[i].nama;
cout<<setiosflags(ios::left)<<setw(17)<<koran(pengecer[i].kode);
cout<<setiosflags(ios::left)<<setw(9)<<pengecer[i].ambil;
cout<<setiosflags(ios::left)<<setw(9)<<pengecer[i].kembali;
cout<<setiosflags(ios::left)<<setw(9)<<pengecer[i].jual;
cout<<setiosflags(ios::left)<<setw(9)<<harga(pengecer[i].kode);
cout<<setiosflags(ios::left)<<setw(4)<<pengecer[i].total;
cout<<endl;
}
cout<<"----------------------------------------------------------"<<endl;
getch();
}
Tipe A

“PT .SEDAYU KENANGAN” , ingin dibuatkan program untuk laporan transaksi


penjualan yang dilakukan oleh perusahaan tersebut. Dengan ketentuan sebagai berikut:
1. Buatlah structure dengan nama penjualan.
2. Banyak data penjualan yang diinput harus sama dengan ketentuan jumlah
penjualan yang sudah diberikan pada awal input data (gunakan array)
3. Diskon (gunakan if)
Diskon diberikan 10% dari perkalian antara jumlah barang dengan harga satuan
jika jumlah beli lebih besar sama dengan 5.
Diskon diberikan 5% dari perkalian antara jumlah barang dengan harga satuan
jika jumlah beli lebih kecil dari 5.
4. Total diperoleh dari perkalian antara jumlah barang dengan harga satuan
dikurangi oleh diskon.
5. Harga total diperoleh dari penjumlahan semua total bayar.
6. Total item diperoleh dari total keseluruhan data jumlah beli yang ada.
7. Tampilkank pesan Mau Isi Data Lagi (Y/T). Jika dijawab Y maka program akan
mengulang dari atas, tetapi jika tidak maka program akan ditutup.

Rancangan Masukan
Input Jumlah Penjualan =………………………….<diinput>
Nama Pegawai Pencatat =………………………….<diinput>
Hari Pencatatan =………………………….<diinput>
Tanggal Pencatatan =………………………….<diinput>
--------------------------------------------------------------------------------
Rincian Data Penjualan
Penjualan Ke: <counter jumlah>
Kode Barang =…………………………<diinput>
Nama Barang =…………………………<diinput>
Jumlah Barang =…………………………<diinput>
Harga Beli =…………………………<diinput>

Rancangan Keluaran
Laporan Data Penjualan Barang
PT. “SEDAYU KENANGAN”
Hari Pencatatan = Tanggal Pencatat =………….
Nama Pencatat =
------------------------------------------------------------------------------------------------------------
No. Kode Nama Barang Jumlah Harga Diskon Total
Barang Beli Baranga
------------------------------------------------------------------------------------------------------------

Harga Total Rp……………
Total Item =………
Mau Isi Lagi [Y/T] =………..

Jawaban Program :

#include <iostream.h>
#include <iomanip.h>
#include <stdio.h>
#include <conio.h>
int total(float biaya,float jml,float pot)
{
return (biaya*jml-pot);
}
class bsi
{
public:
char nama[3],matkul[20];
int jumlah;
float biaya,pot,tobay;
};
char lagi;
int i,n;
float topem;
main()
{
awal:
clrscr();
bsi kursus[100];
cout<<"\t\t\t Laporan Daftar Peserta Kursus"<<endl;
cout<<"\t\t\t BINA SARANA INFORMATIKA"<<endl;
cout<<"==========================================================
====================="<<endl;
cout<<"Jumlah peserta = ";cin>>n;
cout<<endl;
for(i=1;i<=n;i++)
{
cout<<"Data Ke- "<<i<<endl;
cout<<"Nama Peserta = ";gets(kursus[i].nama);
cout<<"Mata Kuliah = ";gets(kursus[i].matkul);
cout<<"Biaya Kuliah = ";cin>>kursus[i].biaya;
cout<<"Jumlah Materi = ";cin>>kursus[i].jumlah;
cout<<endl;
if(kursus[i].jumlah>=10)
{
kursus[i].pot=0.1*50000;
}
else if(kursus[i].jumlah>=5)
{
kursus[i].pot=0.05*50000;
}
else
{
kursus[i].pot=0;
}
}
clrscr();
cout<<"\t\t\t Laporan Daftar Peserta Kursus"<<endl;
cout<<"\t\t\t BINA SARANA INFORMATIKA"<<endl;
//cout<<"=========================================================
========"<<endl;
cout<<"==========================================================
=====================\n\n";
cout<<"No Nama mata kuliah biaya jumlah materi Potongan total bayar\n";
cout<<"==========================================================
=====================\n";
for(i=1;i<=n;i++)
{
cout<<setiosflags(ios::left)<<setw(4)<<i;
cout<<setiosflags(ios::left)<<setw(12)<<kursus[i].nama;
cout<<setiosflags(ios::left)<<setw(15)<<kursus[i].matkul;
cout<<setiosflags(ios::left)<<setw(10)<<kursus[i].biaya;
cout<<setiosflags(ios::left)<<setw(15)<<kursus[i].jumlah;
cout<<setiosflags(ios::left)<<setw(10)<<kursus[i].pot;

cout<<setiosflags(ios::left)<<setw(5)<<total(kursus[i].biaya,kursus[i].jumlah,kursus[i].p
ot);
cout<<endl;
}
cout<<"==========================================================
=====================\n\n";
topem=0;
for(i=1;i<=n;i++)
{
topem=total(kursus[i].biaya,kursus[i].jumlah,kursus[i].pot)+topem;

}
cout<<"\t\t\t Total pemasukan =Rp "<<topem<<endl;
getch();
}
Tipe B

PT. “YUVERTY SEJAHTERA”, meminta anda sebagai seorang programmer untuk


membantu perhitungan gaji karyawan mereka, dengan ketentuan sebagai berikut:
1. Buatlah structure dengan nama karyawan
2. Jumlah karyawan diinput untuk menyesuaikan data karyawan yang ada.
3. NIP, Nama Karyawan, Kode jabatan dan Kode status diinput (gunakan array)]
4. Gaji pokok dan tunjangan disesuaikan dengan table dibawah ini (gunakan if atau
Switch)
Kode Jabatan Gaji Pokok Kode Status Tunjangan
Jabatan Status
1 Administrasi 800.000 M Menikah 200.000
S Single 100.000
2 Operasional 850.000 M Menikah 250.000
S Single 150.000
5. Banyak data karyawan yang diinput harus sama dengan ketentuan jumlah
karyawan yang sudah diberikan pada awal input data.
6. Total didapat dari pertambahan gaji pokok dengan tunjangan
7. Setelah selesai input maka akan menghasilkan keluaran dalam bentuk table yang
jumlahnya sama sesuai dengan jumlah data yang diinput.

Rancangan Masukan
Jumlah Karyawan =…………….<diinput>
Bulan =…………….<diinput>

Input Data Karyawan


Data Karyawan Ke =<counter jumlah>
NIP Karyawan =…………….<diinput>
Nama Karyawan =…………….<diinput>
Kode Jabatan [1/2] =…………….<diinput>
Kode Status [M/S] =…………….<diinput>

Rancangan Keluaran
Daftar Gaji Karyawan
“PT YUVERTY SEJAHTERA”
Bulan=…….
===============================================================
No NIP Nama Jabatan Status Gaji Tunjangan Total
Karyawan Karyawan Pokok Gaji
===============================================================

===============================================================
Total Gaji Karyawan Rp…………

Anda mungkin juga menyukai