Contoh Soal C++ BSI Semester 1 Menggunakan Seleksi Kondisi


Contoh-contoh soal praktikum Borland C++ ini mengambil materi perkuliahan Algoritma dan Pemrograman BSI Semester 1 pada pertengahan semester awal.

SOAL 1 – Slip Gaji

PT. DINGIN DAMAI memberikan honor tetap kepada karyawan kontraknya sebesar Rp.300,000,- per bulan,dengan memperoleh tunjangan-tunjangan sebagai berikut :

Tunjangan Jabatan





Sebagai contoh : jika seorang karyawan tersebut dengan golongan 3, maka mendapatkan t
unjangan sebesar 15% * Rp.300,000,-

Tunjangan Pendidikan





Honor Lembur
Jumlah Jam kerja normal sebanyak 8 jam kerja, honor lembur diberikan jika jumlah jam kerja lebih dari 8 jam, maka kelebihan jam kerja tersebut dikalikan dengan honor lembur perjam sebesar Rp.2,500 untuk setiap kelebihan jam kerja perharinya.

Tampilan Input :







Tampilan Output :
 


Contoh Penyelesaian :
#include <conio.h>
#include <iostream.h>
#include <stdio.h>

main()
{
int jam,lembur,tunjjab, gapok=300000,ttlgapok,tunjpend,honor,ttl;
char gol,nama[20],pend[5],lagi;

atas:
clrscr();
cout<<"PROGRAM INPUT GAJI KARYAWAN\n";
cout<<"===============================\n\n";
cout<<"Nama Karyawan    : ";cin>>nama;
cout<<"Golongan Jabatan : ";cin>>gol;
cout<<"Pendidikan       : ";cin>>pend;
cout<<"Jumlah Jam Kerja : ";cin>>jam;

ttlgapok=jam*gapok;
if(gol=='1')
tunjjab=0.05*ttlgapok;
else if(gol=='2')
tunjjab=0.1*ttlgapok;
else if(gol=='3')
tunjjab=0.15*ttlgapok;
else
tunjjab=0;

if(strcmp(pend,"SMA")==0||strcmp(pend,"sma")==0)
tunjpend=0.025*ttlgapok;
else if (strcmp(pend,"D1")==0||strcmp(pend,"d1")==0)
tunjpend=0.05*ttlgapok;
else if (strcmp(pend,"D3")==0||strcmp(pend,"d3")==0)
tunjpend=0.2*ttlgapok;
else if (strcmp(pend,"S1")==0||strcmp(pend,"s1")==0)
tunjpend=0.3*ttlgapok;
else
tunjpend=0;

if(jam>8)
{
lembur=jam-8;
honor=lembur*3500;
}

clrscr();
cout<<"SLIP GAJI KARYAWAN\n";
cout<<"===============================\n\n";
cout<<"Nama Karyawan        : "<<nama<<endl;
cout<<"Gaji Pokok           : "<<ttlgapok<<endl;
cout<<"Tunjangan Jabatan    : "<<tunjjab<<endl;
cout<<"Tunjangan Pendidikan : "<<tunjpend<<endl;
cout<<"Honor Lembur         : "<<honor<<endl;
cout<<"                      _________________+\n";endl;
ttl=ttlgapok+tunjjab+tunjpend+honor;
cout<<"Total Gaji Bersih    : "<<ttl<<endl<endl;

cout<<"Ingin Input Lagi? [Y/T]";
lagi=getche();
if(lagi=='Y'||lagi=='y')
goto atas;
getch();
}

SOAL 2 – Toko Buah
Buatlah program untuk Toko Buah Furity Fresh dengan ketentuan sebagai berikut :
  1. Toko Buah Bernama Toko Buah FRUITY FRESH.
  2. FRUITY FRESH menyediakan 3 Macam Buah, Anggur Red Cuurant (Kode A) harga 35000/kg, Kiwi Selandia (K 25000/kg),Sunkist Orange (S 20000/kg).
  3. Kasir ada 3 BIMA (kode BM), RANGGA (RG), DIRA (DR).
  4. Dengan disc 5% setiap pembeliannya.
  5. Buatlah PROGRAM Struk Pembeliannya.
Dengan Inputan : 








Output :











Contoh penyelesaian :

MENGGUNAKAN ELSE-IF
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
int nota,jml,harga,subttl,ttl,diskon,bayar,kembali;
char kdkasir[3],kdbuah[2],kasir[10],buah[20],lagi;
atas:
clrscr();
cout<<"      Toko Buah FRUITY FRESH\n";
cout<<"=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n";
cout<<"Input No. Transaksi         : ";cin>>nota;
cout<<"Input Kode Kasir [BM/RG/DR] : ";cin>>kdkasir;
cout<<"===================================\n";
cout<<"Input Kode Buah [A/K/S]     : ";cin>>kdbuah;
cout<<"Input Jumlah Beli           : ";cin>>jml;

if(strcmp(kdkasir,"BM")==0||strcmp(kdkasir,"bm")==0)
 {
 strcpy(kasir,"Bima");
 }
else if(strcmp(kdkasir,"RG")==0||strcmp(kdkasir,"rg")==0)
 {
 strcpy(kasir,"Rangga");
 }
else if(strcmp(kdkasir,"DR")==0||strcmp(kdkasir,"dr")==0)
 {
 strcpy(kasir,"Dira");
 }


if(strcmp(kdbuah,"A")==0)
 {
 strcpy(buah,"Anggur Red Cuurant");
 harga=35000;
 }
else if(strcmp(kdbuah,"K")==0)
 {
 strcpy(buah,"Kiwi Selandia");
 harga=25000;
 }
else if(strcmp(kdbuah,"S")==0)
 {
 strcpy(buah,"Sunkist Orange");
 harga=20000;
 }
 else
 harga=0;

clrscr();
cout<<"            Struk Pembelian\n";
cout<<"        TOKO BUAH FRUITY FRESH\n";
cout<<"=======================================\n";
cout<<"No. Nota : "<<nota<<"\t  Nama Kasir : "<<kasir<<endl;
cout<<"=======================================\n";
cout<<"Nama Buah      : "<<buah<<endl;
cout<<"Harga Per Kg   : "<<harga<<endl;
cout<<"Jumlah Beli    : "<<jml<<endl;
subttl=harga*jml;
diskon=0.05*subttl;
cout<<"Discount       : "<<diskon<<endl;
cout<<"=======================================\n";
ttl=subttl-diskon;
cout<<"Jumlah Bayar   : "<<ttl<<endl;
cout<<"Uang Bayar     : ";cin>>bayar;
kembali=bayar-ttl;
cout<<"Uang Kembali   : "<<kembali<<endl;
cout<<"Ingin Input Lagi [Y/T]?";
lagi=getche();
if(lagi=='Y'||lagi=='y')
goto atas;
getche();
}


MENGGUNAKAN SWITCH CASE
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
int nota,jml,harga,subttl,ttl,diskon,bayar,kembali;
char kdkasir[3],kdbuah,kasir[10],buah[20],lagi;
atas:
clrscr();
cout<<"      Toko Buah FRUITY FRESH\n";
cout<<"=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n";
cout<<"Input No. Transaksi         : ";cin>>nota;
cout<<"Input Kode Kasir [BM/RG/DR] : ";cin>>kdkasir;
cout<<"===================================\n";
cout<<"Input Kode Buah [A/K/S]     : ";cin>>kdbuah;
cout<<"Input Jumlah Beli           : ";cin>>jml;

if(strcmp(kdkasir,"BM")==0||strcmp(kdkasir,"bm")==0)
 {
 strcpy(kasir,"Bima");
 }
else if(strcmp(kdkasir,"RG")==0||strcmp(kdkasir,"rg")==0)
 {
 strcpy(kasir,"Rangga");
 }
else if(strcmp(kdkasir,"DR")==0||strcmp(kdkasir,"dr")==0)
 {
 strcpy(kasir,"Dira");
 }


switch(kdbuah)
{
case'A':
case'a':
            strcpy(buah,"Anggur Red Cuurant");
   harga=35000;
   break;
case'K':
case'k':
            strcpy(buah,"Kiwi Selandia");
   harga=25000;
   break;
case'S':
case's':
            strcpy(buah,"Sunkist Orange");
   harga=20000;
   break;

default:
{
strcpy(buah,"Salah Kode Buah");
harga=0;
cout<<"Ingin Input Lagi [Y/T]?";
lagi=getche();
if(lagi=='Y'||lagi=='y')
goto atas;
}}
clrscr();
cout<<"            Struk Pembelian\n";
cout<<"        TOKO BUAH FRUITY FRESH\n";
cout<<"=======================================\n";
cout<<"No. Nota : "<<nota<<"\t  Nama Kasir : "<<kasir<<endl;
cout<<"=======================================\n";
cout<<"Nama Buah      : "<<buah<<endl;
cout<<"Harga Per Kg   : "<<harga<<endl;
cout<<"Jumlah Beli    : "<<jml<<endl;
subttl=harga*jml;
diskon=0.05*subttl;
cout<<"Discount       : "<<diskon<<endl;
cout<<"=======================================\n";
ttl=subttl-diskon;
cout<<"Jumlah Bayar   : "<<ttl<<endl;
cout<<"Uang Bayar     : ";cin>>bayar;
kembali=bayar-ttl;
cout<<"Uang Kembali   : "<<kembali<<endl;
cout<<"Ingin Input Lagi [Y/T]?";
lagi=getche();
if(lagi=='Y'||lagi=='y')
goto atas;
getche();


}

SOAL 3 – Toko Sepatu
Buatlah program pembelian sepatu dengan ketentuan seperti berikut:
ADIDAS    =150000
REBOX      = 200000
NIKE          = 100000
Menggunakan switch case dan buat program input data lagi

LAYAR INPUT







LAYAR OUTPUT











Contoh penyelesaian :
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
main()
{
char kode,merk[10],nama[20],lagi;
int no,harga,jml,ttl,byr,kmbl;
atas:
clrscr();
cout<<"       Toko Sepatu BANGYANG\n";
cout<<"      Jalan September No. 15\n";
cout<<"====================================\n";
cout<<"Masukkan No. Transaksi       : ";cin>>no;
cout<<"Masukkan Nama Pembeli        : ";cin>>nama;
cout<<"Masukkan Kode Barang [A/R/N] : ";cin>>kode;
cout<<"Masukkan Jumlah Beli         : ";cin>>jml;

switch(kode)
{
case'A':
case'a':
            strcpy(merk,"Adidas");
   harga=150000;
   break;
case'R':
case'r':
            strcpy(merk,"Rebox");
   harga=200000;
   break;
case'N':
case'n':
            strcpy(merk,"Nike");
   harga=100000;
   break;
}

clrscr();
cout<<"   Toko Sepatu BANGYANG\n";
cout<<"  Jalan September No. 15\n";
cout<<"============================\n";
cout<<"No. Transaksi   : "<<no<<endl;
cout<<"Nama Pembeli    : "<<nama<<endl;
cout<<"Nama Barang     : "<<merk<<endl;
cout<<"Jumlah Beli     : "<<jml<<endl;
cout<<"Harga Satuan    : "<<harga<<endl;
ttl=jml*harga;
cout<<"Total Pembelian : "<<ttl<<endl;
cout<<"Uang Bayar      : ";cin>>byr;
kmbl=byr-ttl;
cout<<"Uang Kembali    : "<<kmbl<<endl;
cout<<"Ingin Input Lagi [Y/T]?";
lagi=getche();
if(lagi=='Y'||lagi=='y')
goto atas;
getch();
}

SOAL 4 – Toko Susu

Buatlah program untuk menghitung total pembayaran dari sebuah penjualan agen susu di kota besar ini, dengan ketentuan sebagai berikut :

Jenis susu di input berdasarkan kode yang sudah di tentukan :
Jika kode A = Dancow
Jika kode B = Bendera
Jika kode C = SGM
Ukuran kaleng susu diinput berdasarkan kode yang sudah ditentukan :
Jika kode 1 = kecil
Jika kode 2 = sedang
Jika kode 3 = besar
Harga susu sesuai dengan jenis susu dan kaleng susu :






LAYAR INPUT













LAYAR OUTPUT













Contoh Penyelesaian :
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
char kdsusu[2],kdkaleng[2],merk[20],ukuran[10],nama[20],lagi;
int jml,harga,ttl,byr,kembali;
clrscr();
atas:
cout<<"      Toko Susu SEGAR SEHAT\n";
cout<<"Jalan Sankar No.33, Purbalingga\n";
cout<<"==================================\n\n";
cout<<"Daftar Susu           : A. Dancow\n";
cout<<"                        B. Bendera\n";
cout<<"                        C. SGM\n";
cout<<"Daftar Ukuran         : 1. Besar\n";
cout<<"                        2. Sedang\n";
cout<<"                        3. Kecil\n";
cout<<"==================================\n";
cout<<"Masukkan Nama Pembeli : ";cin>>nama;
cout<<"Masukkan Kode Susu    : ";cin>>kdsusu;
cout<<"Masukkan Kode Ukuran  : ";cin>>kdkaleng;
cout<<"Masukkan Jumlah Beli  : ";cin>>jml;

if(strcmp(kdsusu,"A")==0||strcmp(kdsusu,"a")==0)
 {
 strcpy(merk,"Dancow");
 if(strcmp(kdkaleng,"1")==0)
 {
 strcpy(ukuran,"Besar");
 harga=25000;
 }
 else if(strcmp(kdkaleng,"2")==0)
 {
 strcpy(ukuran,"Sedang");
 harga=20000;
 }
 else if(strcmp(kdkaleng,"3")==0)
 {
 strcpy(ukuran,"Kecil");
 harga=15000;
 }}
else if(strcmp(kdsusu,"B")==0||strcmp(kdsusu,"b")==0)
 {
 strcpy(merk,"Bendera");
 if(strcmp(kdkaleng,"1")==0)
 {
 strcpy(ukuran,"Besar");
 harga=20000;
 }
 else if(strcmp(kdkaleng,"2")==0)
 {
 strcpy(ukuran,"Sedang");
 harga=17500;
 }
 else if(strcmp(kdkaleng,"3")==0)
 {
 strcpy(ukuran,"Kecil");
 harga=13500;
 }}
else if(strcmp(kdsusu,"C")==0||strcmp(kdsusu,"c")==0)
 {
 strcpy(merk,"SGM");
 if(strcmp(kdkaleng,"1")==0)
 {
 strcpy(ukuran,"Besar");
 harga=22000;
 }
 else if(strcmp(kdkaleng,"2")==0)
 {
 strcpy(ukuran,"Sedang");
 harga=18500;
 }
 else if(strcmp(kdkaleng,"3")==0)
 {
 strcpy(ukuran,"Kecil");
 harga=15000;
 }}
else
strcpy(merk,"Kode Susu Yang Anda Masukkan Salah\n");

clrscr();
cout<<"      Toko Susu SEGAR SEHAT\n";
cout<<"Jalan Sankar No.33, Purbalingga\n";
cout<<"==================================\n\n";
cout<<"Nama Pembeli        : "<<nama<<endl;
cout<<"Merk Susu           : "<<merk<<endl;
cout<<"Ukuran Susu         : "<<ukuran<<endl;
cout<<"Jumlah Beli         : "<<jml<<endl;
cout<<"Harga Satuan        : "<<harga<<endl;
ttl=jml*harga;
cout<<"Total Pembelian     : "<<ttl<<endl;
cout<<"Jumlah Uang Bayar   : ";cin>>byr;
kembali=byr-ttl;
cout<<"Jumlah Uang Kembali : "<<kembali<<endl;
cout<<"\n\nTerimakasih Atas Belanja Anda\n";
cout<<"Ingin Input Lagi [Y/T]?";
lagi=getche();
clrscr();
if(lagi=='Y'||lagi=='y')
goto atas;
getch();
}

Komentar

  1. Balasan
    1. Bisa kok, saya udah coba. Silakan dicek lagi errornya, mungkin kesalahan pada saat copy paste :)

      Hapus

Posting Komentar

Postingan populer dari blog ini

Latihan Soal E-Commerce BSI Pertemuan 1-6

14 Jenis Muamalah, Contoh dan Dalilnya