Tugas Kelompok ke-1 (Minggu2 / Sesi4) Essay 1. Jelaskan perbedaan antara function prototype & function definition. Function Prototype (Prototipe fungsi ) harus tersedia sebeum pemanggilan pemanggilan fungsi lainya saat kompilsasi program karena ini digunakan untuk menjelaskan ke compiler tentang tipe keluaran fungsi, jumlah hingga tipe parameternnya, definisi konstanta dan juga definisi variable. Fungsi ini dilengkapi dengan argument serta tipe nilai balik unt uk fungsinnya Sedangkan Function Definition ( Definisi fungsi fungsi ) merupakan merupakan kumpulan dari kode program yang yang diberikan nama dan dijalankan ketika nama tersebut di panggil. Cenderung digunakan untuk kode program yang tingkat kerumitannya tinggi. Secara kesimpulan singkat dapat dinyatakan bahwa semua definisi juga merupakan prototype, tetapi tidak dengan sebaliknya.
2. Jelaskan tujuan dari data member. Data member member umumnya diberikan visibility private atau protected yang bertujuan untuk mencegah akses langsung dari luar class. Itu adalah aturan (rule) dalam konsep OOP Encapsulation untuk data/information hiding. Untuk mengakses data member harus melalui member member function.
3. Apakah yang dimaksud dengan access control dalam class? Access control adalah salah satu cara dari sebuah program atau aplikasi untuk menentukan apakah class lain bisa mengakses atau memanggil atribut atau method yang dimiliki. public, lic, prot prote ecte cted, pr pr i vate Terdapat 3 jenis access control yaitu : pub Public : class tersebut dapat diakses atau terbuka untuk seluruh class dimanapun. Protected Protected : class tersebut hanya terbuka bagi objek instansiasi dari class turunannya. Private : semua anggota dari class (data dan method) tidak akan visible terhadap kelas basisnya.
COMP6123 –Object Oriented Programming
Kasus BGas merupakan perusahaan baru yang bergerak di bidang bahan bakar minyak. Bgas menjual produknya melalui cabang-cabang yang ada tersebar di seluruh Indonesia. Anda sebagai programmer C++ akan membuatkan program untuk cabang-cabang tersebut. Dengan keterangan sebagai berikut :
Terdapat 3 jenis bahan bakar yaitu Bmium, Betamax, dan BSolar. Masing harga per 1 liternya Rp. 6000, Rp. 9000, Rp. 6000. Dan Stok awalnya yaitu 10000 liter, 5000 liter, dan 7000 liter.
Program menampilkan status bahan bakar yang tersedia dengan keterangan nama bahan bakar, harga per liter, dan stok. Dan menampilkan menu sebagai berikut : 1. Bmium 2. Betamax 3. BSolar 4. Keluar
Di awal program user harus memilih bahan bakar yang ingin digunakan.
Lalu user memilih jenis pembelianya itu dalam jumlah liter atau uang. Validasikan inputan harus “liter”atau“uang”.
Jika user memilih liter maka, program meminta inputan jumlah dalam liter. Validasikan inputan harus di antara 1 dan 100. Validasikan juga jika inputan tidak boleh lebih besar dari stok yang ada. Jika user memilih uang maka, program meminta inputan dalam rupiah. Validasikan jumlah uang harus di antara 1000 dan 500000. Validasikan juga jika jumlah liter yang dibeli tidak boleh lebih besar dari stok yang ada. Tampilkan jumlah bahan bakar yang dikeluarkan dengan 2 angka dibelakang koma dan total harga. Stok bahan bakar akan berkurang sesuai dengan inputan user .
Tugas anda yaitu:
COMP6123 –Object Oriented Programming
1. Buatlah Class dari keterangan di atas berserta isinya dengan menggunakan bahasa pemrogaman C++. Gunakan konsep Encapsulation dan Data Hiding. 2. Buatlah fungsi main(), yang berisi deklarasi dari object yang dibutuhkan dan Inisialisasi (pemberian nilai awal) pada object tersebut dan penggunaan Member Function untuk melakukan kalkulasi (perhitungan) yang sesuai dengan keterangan di atas. Jawaban #include #include #include #include using namespace std; class bgas{ private: float harga1; float harga2; float bmium; float btamax; float bsolar; public: bgas(float Inharga1,float Inharga2,float Inbmium, float Inbtamax,float Inbsolar); float print(); float setbmium(float a); float setbtamax(float a); float setbsolar(float a); float getharga1(){return harga1;} float getharga2(){return harga2;} float getbmium(){return bmium;} float getbtamax(){return btamax;} float getbsolar(){return bsolar;} };
bgas::bgas(float Inharga1,float Inharga2,float Inbmium, float Inbtamax,float Inbsolar){ harga1=Inharga1; harga2=Inharga2; bmium = Inbmium; btamax = Inbtamax; bsolar = Inbsolar; }; float bgas::print(){ cout<<"BGAS FUEL\n"; cout.setf(ios::fixed); cout.precision(2); cout<<"Nama\tHarga\t\t Stok\n=============================\n" ; cout<<"Bmium\tRp."<bmium=bmium-a; } float bgas::setbtamax(float a){
COMP6123 –Object Oriented Programming
this->btamax=btamax-a; } float bgas::setbsolar(float a){ this->bsolar=bsolar-a; } int main(){ bgas b(6000,9000,10000,5000,7000); int choice; char str[100]; float liter,uang,tot; while(1){ b.print(); cout<<"BGAS FUEL\n"<<"======\n"; cout<<"1. Bmium\n"; cout<<"2. Btamax\n"; cout<<"3. Bsolar\n"; cout<<"4. Exit\n"; cout<<"Pilih menu : " ; cin >> choice; cin.sync(); cin.clear(); switch(choice){ case 1 : while(true){ cout<<"\nPembelian dalam jumlah [liter/uang] : " ; cin.getline(str,100); cin.sync(); cin.clear(); if (strcmp("liter",str)==0){ while(true){ cout<<"Masukan Jumlah liter [1-100]: " ; cin>>liter; cin.sync(); cin.clear(); if (liter>=1 && liter<=100){ if(liter<=b.getbmium()){ b.setbmium(liter); cout<<"\nDikeluarkan : " <>uang; cin.sync(); cin.clear(); if (uang>=1000 && uang<=500000){ tot=uang/b.getharga1();
COMP6123 –Object Oriented Programming
if(tot<=b.getbmium()){ b.setbmium(tot); cout<<"\nDikeluarkan : " <
kapasitas\n"; cin.get(); break; } } } break; } } break; case 2 : while(true){ cout<<"\nPembelian dalam jumlah [liter/uang] : " ; cin.getline(str,100); cin.sync(); cin.clear(); if (strcmp("liter",str)==0){ while(true){ cout<<"Masukan Jumlah liter [1-100]: " ; cin>>liter; cin.sync(); cin.clear(); if (liter>=1 && liter<=100){ if(liter<=b.getbtamax()){ b.setbtamax(liter); cout<<"\nDikeluarkan : " <>uang; cin.sync(); cin.clear(); if (uang>=1000 && uang<=500000){ tot=uang/b.getharga2(); if(tot<=b.getbtamax()){ b.setbtamax(tot); cout<<"\nDikeluarkan : " <
COMP6123 –Object Oriented Programming
cout<<"Total Harga : Rp." <>liter; cin.sync(); cin.clear(); if (liter>=1 && liter<=100){ if(liter<=b.getbsolar()){ b.setbsolar(liter); cout<<"\nDikeluarkan : " <>uang; cin.sync(); cin.clear(); if (uang>=1000 && uang<=500000){ tot=uang/b.getharga1(); if(tot<=b.getbsolar()){ b.setbsolar(tot); cout<<"\nDikeluarkan : " <
COMP6123 –Object Oriented Programming
break; } else{ cout<<"\nPesanan anda Pesanan melebihi
kapasitas\n"; cin.get(); break; } } } break; } } break; case 4 : exit(1); break; } } return 0; }
COMP6123 –Object Oriented Programming