Pertemuan 18
Function (Fungsi)
Fungsi merupakan blok dari kode yang dirancang untuk melaksanakan tugas khusus.
Pada intinya fungsi berguna untuk :
Mengurangi pengulangan penulisan program yang berulang atau sama.
Program menjadi terstruktur sehingga mudah dipahami. Struktur Fungsi :
tipe_data nama_fungsi (parameter) { pernyataan/statement; pernyataan/statement; } Contoh Soal : Tampilan Input : Script Program : #include<conio.h> #include<stdio.h> #include<iostream.h> garis() { cout<<"---"<<endl; }
int hasil(int uts,int uas) { return ((uts+uas)/2); } main() { char nim[8],nama[20],*ket,lagi; int uts,uas; float rata; ulang: clrscr(); garis();
cout<<"\tPerhitungan Nilai Mahasiswa"<<endl; garis();
cout<<"Nomor Induk Mahasiswa : ";cin>>nim; cout<<"Nama Mahasiswa : ";gets(nama); cout<<"Nilai UTS : ";cin>>uts; cout<<"Nilai UAS : ";cin>>uas; rata=hasil(uts,uas);
if (rata>60) {ket="LULUS";} ---
Perhitungan Nilai Mahasiswa
--- Nomor Induk Mahasiswa : <input>
Nama Mahasiswa : <input>
Nilai UTS : <input>
Nilai UAS : <input>
--- Nilai Rata-Rata Mahasiswa dengan NIM <output> adalah <output>
--- Input Data Lagi [Y|T]…?
else
{ket="GAGAL";} garis();
cout<<"Nilai Rata-Rata Mahasiswa dengan NIM "<<nim<<" adalah : "<<rata<<endl;
garis();
cout<<"Input Data Lagi [Y|T]...? ";cin>>lagi; if (lagi=='Y' || lagi=='y')
{goto ulang;} getch();
}
Latihan Soal :
Tampilan Input dan Output :
Ketentuan Soal :
Buat Fungsi untuk menghitung Total Bayar.
--- Transaksi Penjualan Handphone
--- Nomor Transaksi : <input>
Nama Pembeli : <input> Merk Handphone : <input> Tipe Handphone : <input> Kondisi [Baru|Second] : <input>
Harga : <input>
Jumlah Beli : <input>
--- Total Bayar : Rp. <output>
--- Uang Bayar : Rp. <input>
Uang Kembali : Rp. <output>
--- TERIMA KASIH…
Pertemuan 19
Function (Fungsi) Lanjutan
Contoh Soal : Tampilan Input :
Tampilan Output :
Ketentuan Soal :
Sebuah Toko Kue mempunyai daftar menu sebagai berikut :
Kode Daftar Kue Harga
BB Bolu Black Forest Rp. 60.000 CC Chesse Cake Rp. 45.000 BC Banana Cake Rp. 25.500 SC Strawbery Cake Rp. 35.000
Gunakan perintah percabangan (if dan strcmp) untuk menentukan harga kue.
Jumlah Bayar = Harga Kue x Jumlah Beli. Buat Fungsi untuk mencetak garis.
Buat Fungsi untuk menentukan Nama dan Harga Kue. Buat Fungsi untuk menghitung Jumlah Bayar.
Script Program : #include<conio.h> #include<stdio.h> #include<iostream.h> garis() { cout<<"---"<<endl; }
int hitung(int harga,int jumbel) {
return harga*jumbel; }
char* nakue(char kokue[2]) DAFTAR MENU TOKO “NIKMAT”
*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--* 1. BOLU BLACK FOREST (BB) 2. CHESSE CAKE (CC) 3. BANANA CAKE (BC) 4. STRAWBERI CAKE (SC) Nama Pembeli : --- Kode Kue : Jumlah Beli :
TOKO KUE “NIKMAT” STRUK PEMBAYARAN *--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--* Nama Pembeli : Kode Kue : Nama Kue : Harga Kue : Rp. Jumlah Kue : --- Jumlah Bayar : Rp.
{
if (!strcmp(kokue,"BB") || !strcmp(kokue,"bb")) {return "Bolu Black Forest";}
else
if (!strcmp(kokue,"CC") || !strcmp(kokue,"cc")) {return "Chesse Cake";}
else
if (!strcmp(kokue,"BC") || !strcmp(kokue,"bc")) {return "Banana Cake";}
else
{return "Strawbery Cake";} }
int harga(char kokue[2]) { if (!strcmp(kokue,"BB") || !strcmp(kokue,"bb")) {return 65000;} else if (!strcmp(kokue,"CC") || !strcmp(kokue,"cc")) {return 45000;} else if (!strcmp(kokue,"BC") || !strcmp(kokue,"bc")) {return 25000;} else {return 35000;} } main() { char kokue[2],nama[30]; int jumbel,jumbay; clrscr();
cout<<"DAFTAR MENU TOKO NIKMAT"<<endl; cout<<"*--*--*--*--*--*--*--*--*"<<endl; cout<<"1. BOLU BLACK FOREST (BB)"<<endl;
cout<<"2. CHESSE CAKE (CC)"<<endl; cout<<"3. BANANA CAKE (BC)"<<endl; cout<<"4. STRAWBERI CAKE (SC)"<<endl; cout<<endl;
cout<<"Nama Pembeli : ";gets(nama); garis();
cout<<"Kode Kue : ";cin>>kokue; cout<<"Jumlah Beli : ";cin>>jumbel; jumbay=hitung(harga(kokue),jumbel);
clrscr();
cout<<" TOKO KUE NIKMAT"<<endl; cout<<" STRUK PEMBAYARAN"<<endl;
cout<<"*--*--*--*--*--*--*--*--*--*--*--*--*"<<endl; cout<<"Nama Pembeli : "<<nama<<endl;
cout<<"Kode Kue : "<<kokue<<endl;
cout<<"Nama Kue : "<<nakue(kokue)<<endl; cout<<"Harga Kue : Rp. "<<harga(kokue)<<endl; cout<<"Jumlah Kue : "<<jumbel<<endl;
garis();
cout<<"Jumlah Bayar : Rp. "<<jumbay<<endl; cout<<endl;
cout<<" TERIMA KASIH ATAS KUNJUNGANNYA"<<endl; getch();
Pertemuan 20
STRUCTURE
Structure digunakan untuk mengelompokkan sejumlah data yang mempunyai tipe data yang berbeda. Variable-variable yang membentuk sebuah structure dinamakan elemen structure. Structure sama seperti record.
Penggunaan structure nama_structur.nama_variabel Deklarasi Structure struct { elemen structure ; …. …. } nama_tipe_structure ;
Contoh :
Tampilan Input :
Tampilan Output :
Ketentuan Soal : 1. Uang pendaftaran 100000.2. Biaya materi ditentukan berdasarkan Nama Paket dan Materi. Paket
Kode
Materi Nama Materi Reguler Intensif Private
VB Visual Basic 300000 500000 800000
WP Web Programming 400000 800000 1000000
3. Total Bayar = Uang Pendaftaran + Biaya Materi. 4. Bonus diperoleh berdasarkan Total Bayar. SE7EN Computer Center
--- Tanggal Pendaftaran : <input>
No Pendaftaran : <input>
--- Nama Pendaftar : <input>
Pilihan Paket [1] Reguler [2] Intensif [3] Private
Pilih Kode Paket [1|2|3] : <input> Pilihan Materi
[VB] Visual Basic
[WP] Web Programming : <input> Pilih Kode Materi : <input>
SE7EN Computer Center Data Pendaftaran
--- Tanggal Pendaftaran : <output>
No Pendaftaran : <output> Uang Pendaftaran : <output>
--- Nama Pendaftar : <output>
Paket Yang Dipilih : <output> Materi Yang Dipilih : <output> Biaya Materi : Rp. <output> Total Bayar : Rp. <output>
Potongan : Rp. <output>
Jumlah Bayar : Rp. <output>
Bonus : <output>
--- Uang Muka : Rp. <input>
Jika Total Bayar > 1000000 maka akan mendapatkan Potongan 10% dari Total Harga dan Bonus Flash Disk 8 GB, selain itu hanya mendapat bonus Flash Disk 2 GB.
5. Sisa Angsuran = Total Bayar – Uang Muka.
6. Buat structur untuk mengelompokkan data kursus dengan nama kursus. Script Program : #include<conio.h> #include<stdio.h> #include<iostream.h> main() { struct { char kopaket,*nmpaket,komateri[2],*nmmateri; long biaya; }kursus; char tanggal[10],nodaf[10],nama[20],*bonus; long pot,jumbay,tobia,umuka,sisaang; const udaftar=100000; clrscr();
cout<<" SE7EN Computer Center"<<endl;
cout<<"---"<<endl; cout<<"Tanggal Pendaftaran : ";gets(tanggal);
cout<<"No Pendaftaran : ";cin>>nodaf;
cout<<"---"<<endl; cout<<"Nama Pendaftar : ";gets(nama);
cout<<"Pilihan Paket"<<endl; cout<<"[1] Reguler"<<endl; cout<<"[2] Intensif"<<endl; cout<<"[3] Private"<<endl;
cout<<"Pilih Kode Paket [1|2|3] : ";cin>>kursus.kopaket; cout<<"Pilihan Materi"<<endl;
cout<<"[VB] Visual Basic"<<endl; cout<<"[WP] Web Programming"<<endl;
cout<<"Pilih Kode Materi : ";cin>>kursus.komateri; if (kursus.kopaket=='1') {kursus.nmpaket="Reguler";} else if (kursus.kopaket=='2') {kursus.nmpaket="Intensif";} else {kursus.nmpaket="Private";} if (!strcmp(kursus.komateri,"VB")) { kursus.nmmateri="Visual Basic"; if (kursus.kopaket=='1') {kursus.biaya=300000;} else if (kursus.kopaket=='2') {kursus.biaya=500000;} else {kursus.biaya=800000;} } else {kursus.nmmateri="Web Programming"; if (kursus.kopaket=='1') {kursus.biaya=400000;} else if (kursus.kopaket=='2') {kursus.biaya=800000;} else {kursus.biaya=1000000;} } tobia=udaftar+kursus.biaya; if (tobia>=1000000) {pot=0.1*tobia;bonus="Flash Disk 8 GB";} else {pot=0;bonus="Flash Disk 2 GB";} jumbay=tobia-pot; clrscr();
cout<<" SE7EN Computer Center"<<endl;
cout<<"---"<<endl; cout<<"Tanggal Pendaftaran : "<<tanggal<<endl;
cout<<"No Pendaftaran : "<<nodaf<<endl;
cout<<"Uang Pendaftaran : Rp. "<<udaftar<<endl; cout<<"---"<<endl; cout<<"Nama Pendaftar : "<<nama<<endl;
cout<<"Materi Yang Dipilih : "<<kursus.nmmateri<<endl; cout<<"Biaya Materi : Rp. "<<kursus.biaya<<endl; cout<<"Total Biaya : Rp. "<<tobia<<endl;
cout<<"Potongan : Rp. "<<pot<<endl; cout<<"Jumlah Bayar : Rp. "<<jumbay<<endl; cout<<"Bonus : "<<bonus<<endl;
cout<<"---"<<endl; cout<<"Uang Muka : Rp. ";cin>>umuka;
sisaang=tobia-umuka;
cout<<"Sisa Angsuran : Rp. "<<sisaang; getch();
}
Pertemuan 21
STRUCTURE – ARRAY – FUNCTION
• Total Upah = Upah Harian + Upah Lembur • Jam kerja normal adalah 8 jam.
• Jika jumlah jam kerja lebih dari 8 jam maka sisa jam kerjanya dihitung lembur.
• Upah Lembur = (Jumlah Jam Kerja – 8) * Upah Lembur per jam. • Total Upah = Upah Harian + Upah Lembur
Script Program : #include<iostream.h> #include<iomanip.h> #include<conio.h> #include<stdio.h> int harian (int gol) { if(gol==1) {return 25000;} else if(gol==2) {return 15000;} else {return 10000;} }
int lembur (int gol) { if(gol==1) {return 7500;} else if(gol==2) {return 5000;} else {return 3500;} } main() { struct { char nama[20]; int jamkerja,gol; float totalupah,lembur,harian; }buruh[100];
int i,j;
long total=0; clrscr();
cout<<" PT. KARYA PRIMA MANDIRI"<<endl; cout<<"---"<<endl;
cout<<"Perhitungan Upah Buruh Harian"<<endl; cout<<"Banyak Data Buruh : ";cin>>j;
cout<<endl; for(i=1;i<=j;i++) {
cout<<"Data Ke - "<<i<<endl;
cout<<"Nama Pegawai : ";gets(buruh[i].nama); cout<<"Golongan [1/2/3] : ";cin>>buruh[i].gol; cout<<"Jumlah Jam Kerja : ";cin>>buruh[i].jamkerja; if(buruh[i].jamkerja > 8 ) {buruh[i].lembur=(buruh[i].jamkerja- 8)* lembur(buruh[i].gol);} else {buruh[i].lembur=0;} cout<<endl; buruh[i].totalupah=harian(buruh[i].gol)+buruh[i].lembur; total=total+buruh[i].totalupah; } clrscr();
cout<<" PT. KARYA PRIMA MANDIRI"<<endl; cout<<"---"<<endl;
cout<<"No. Nama Buruh Gol Upah Harian Upah Lembur Total Upah"<<endl; cout<<"---"<<endl; for(i=1;i<=j;i++) { cout<<setiosflags(ios::left)<<setw(4)<<i; cout<<setiosflags(ios::left)<<setw(13)<<buruh[i].nama; cout<<setiosflags(ios::left)<<setw(6)<<buruh[i].gol; cout<<setiosflags(ios::left)<<setw(14)<< harian(buruh[i].gol); cout<<setiosflags(ios::left)<<setw(14)<<buruh[i].lembur; cout<<setiosflags(ios::left)<<setw(10)<< buruh[i].totalupah; cout<<endl; } cout<<"---"<<endl;
cout<<"Total Uang Yang Dikeluarkan Perusahaan : Rp. "<<total<<endl;
cout<<"---"<<endl; getch();
class { public : elemen class ; …. …. } nama_class ;
Pertemuan 22
CLASS
Class merupakan struktur data dari object. Class mempunyai persamaan dengan structure.
Bentuk Umum :
Contoh :
Tampilan Input :
Tampilan Output :
Ketentuan :
1. Perintah input : Nama Pembeli,Kode Pizza, Kode Ukuran, Ukuran Jumlah Beli dan Uang Bayar.
2. Buat class dengan nama pizza dengan anggota : Kode Pizza, Nama Pizza, Ukuran dan Harga.
3. Proses :
Nama dan Harga Pizza ditentukan berdasarkan Kode dan Ukuran Pizza :
Ukuran Pizza Kode
Pizza
Nama
Pizza Personal Sedang Besar
ML Meat Lovers 30000 50000 80000
--- TOKO PIZZA LEZAT
--- Nama Pembeli : <input>
Nama Pizza [ML] Meat Lovers [SS] Super Suprime [BP] Beetato Peeperoni
Kode Pizza : <input> Ukuran [P|S|B] : <input> Jumlah Beli : <input>
--- DETAIL PEMBELIAN PIZZA
--- Nama Pembeli : <output>
Nama Pizza : <output> Ukuran Pizza : <output> Harga Pizza : Rp. <output> Jumlah Beli : <output>
--- Sub Total : Rp. <output>
Potongan : Rp. <output>
Total Bayar : Rp. <output>
--- Uang Bayar : Rp. <input>
Uang Kembali : Rp. <output>
--- Input Data Lagi [Y | T] : <input>
SS Super Suprime 40000 60000 90000
BP Beetato Peeperoni 50000 70000 100000
4. Sub Total = Harga * Jumlah Beli.
5. Jika Jumlah Beli > 5 maka akan mendapatkan potongan 10% dari Sub Total, selain itu akan mendapatkan potongan 5% dari Sub Total.
6. Total Bayar = Subtotal – Potongan.
7. Uang Kembali = Uang Bayar – Total Bayar. Script Program :
#include<conio.h> #include<stdio.h> #include<iostream.h>
Char *ukuranpizza(char koukur) { if(koukur=='P') {return"Personal";} else if(koukur=='S') {return"Sedang";} else {return"Besar";} } main() { class { public: char kopizza[2],*napizza,koukur,*ukuran; int harga; }pizza; char nama[20],lagi; float jumbel,subtotal,potongan,tobay,ubay,ukem; awal: clrscr(); cout<<"---"<<endl; cout<<" TOKO PIZZA LEZAT"<<endl;
cout<<"---"<<endl; cout<<"Nama Pembeli : ";gets(nama);
cout<<"Nama Pizza"<<endl;
cout<<"[ML] Meat Lovers"<<endl; cout<<"[SS] Super Supreme"<<endl; cout<<"[BP] Beetato Peeperoni"<<endl;
cout<<"Kode Pizza : ";cin>>pizza.kopizza; cout<<"Ukuran [P|S|B] : ";cin>>pizza.koukur; cout<<"Jumlah Beli : ";cin>>jumbel;
if(!strcmp(pizza.kopizza,"ML")) { pizza.napizza="Meat Lovers"; if(pizza.koukur=='P') {pizza.harga=30000;} else if(pizza.koukur=='S') {pizza.harga=50000;} else {pizza.harga=80000;} } else if(!strcmp(pizza.kopizza,"SS")) { pizza.napizza="Super Supreme"; if(pizza.koukur=='P') {pizza.harga=40000;} else if(pizza.koukur=='S') {pizza.harga=60000;} else {pizza.harga=90000;} } else { pizza.napizza="Beetato Peeperoni"; if(pizza.koukur=='P') {pizza.harga=50000;} else
if(pizza.koukur=='S') {pizza.harga=70000;} else {pizza.harga=100000;} } subtotal=jumbel*pizza.harga; if(jumbel>5) {potongan=0.1*subtotal;} else {potongan=0.05*subtotal;} tobay=subtotal-potongan; clrscr(); cout<<"---"<<endl; cout<<" DETAIL PEMBELIAN PIZZA"<<endl;
cout<<"---"<<endl; cout<<"Nama Pembeli : "<<nama<<endl;
cout<<"Nama Pizza : "<<pizza.napizza<<endl; cout<<"Ukuran Pizza :
"<<ukuranpizza(pizza.koukur)<<endl;
cout<<"Harga : Rp. "<<pizza.harga<<endl; cout<<"Jumlah Beli : "<<jumbel<<endl;
cout<<"---"<<endl; cout<<"Subtotal : Rp. "<<subtotal<<endl;
cout<<"Potongan : Rp. "<<potongan<<endl; cout<<"Total Bayar : Rp. "<<tobay<<endl;
cout<<"---"<<endl; cout<<"Uang Bayar : Rp. ";cin>>ubay;
ukem=ubay-tobay;
cout<<"Uang Kembali : Rp. "<<ukem<<endl;
cout<<"---"<<endl; cout<<"Input Data Lagi [Y/T]...? ";cin>>lagi;
if(lagi=='Y'||lagi=='y') {goto awal;}
getch(); }