Ask Struct dan contoh penggunaan struct untuk pendataan karyawan C++ AdityaDS - AdityaDees

Hot

https://publishers.chitika.com/

Contact us for advertising.

18 July 2020

Ask Struct dan contoh penggunaan struct untuk pendataan karyawan C++ AdityaDS

Assalamu'alaikum...
hello semuanya, postingan ini akan membahas mengenai 'apa itu struct' dan contoh kasus yang menggunakan struct.

STRUCT

- struct punya sejumlah elemen yg disebut field
- setiap field bisa memiliki tipe data yg berbeda

Berikut ini perbedaan antara array dan struct :

array vs struct
struct dapat dideklarasikan dengan 2 cara yaitu menggunakan 'typedef' atau tidak, seperti gambar dibawah ini:


struct declaration

contoh deklarasi struct :

struct product {
  int weight;
  double price;
} apple[5], banana, melon;

dari struct diatas terlihat bahwa :
product merupakan nama tipe struct yang memiliki elemen weight, dan price.
ada 3 variabel yang memiliki field yang sama dengan product yaitu apple[5],banana,dan melon.
untuk menggunakan field caranya menggunakan penghubung '.' seperti : namavariabel.field


bagaimana cara pemberian nilai kepada variabel?

apple[0].weight = 10;
apple[0].price = 200000;

banana.weight=2;
banan.price=20000;

hal yang sama berlaku untuk variabel melon;

untuk mengoutputkannya, kita dapat melkukan hal yang sama saat memberikan nilai, seperti :

cout <<"Apple pertama memiliki berat :"<<apple[0].weight
        <<" dan memiliki harga Rp. "<<apple[0].price<<endl;

Nah dari contoh diatas diketahui bahwa penggunaan struct ialah seperti memberikan atribut pada objek. Misal : ada objek Mahasiswa, mahasiswa memiliki atribut : nama, nomor mahasiswa, umur, tanggal lahir, dan atribut-atribut lainnya. 

dari contoh objek mahasiswa kita dapat menuliskan dalam bentuk struct seperti :

struct mahasiswa{
    string nama;
    int umur;
    string nomorMahasiswa;
    string tanggalLahir;
};

mahasiswa mhs; 

untuk mengakses field :

mhs.nama = "abcdef";
mhs.umur = 20;
mhs.nomorMahasiswa = "1234567890";

Jika terdiri dari lebih dari satu mahasiswa? apakah menggunakan nama variabel lain seperti :
mahasiswa mhs1,mhs2,mhs3,..,mhsN;

hal seperti itu tidak diperkenankan ya sobat :) jika kasusnya seperti itu maka sobat dapat menggunakan array seperti :

mahasiswa mhs[100];


Sudah paham mengenai struct ? 
jika sudah mari lanjutkan untuk contoh penggunaan struct pada kasus pendataan karyawan dan menghitung gaji pokok,tunjangan anak dan total gaji. Untuk gambaran output yang aka ditampilkan dapat dilihat pada gambar berikut ini :
Contoh kasus pendataan karyawan

Berikut programnya dalam C++ :

#include<iostream>
#include<iomanip>

using namespace std;
//mendefinisikan struct
struct karyawan{
string namaKaryawan;
char golongan;
int jmlAnak;
int gajiPokok;
int tunjanganAnak;
int totalGaji;
};
//deklarasi fungsi
int gajiPokok(char golongan);
int tunjanganAnak(int jumAnak);
void line();

int main(){
int jumlahData;
int totalJumAnak=0,totalTunjanganAnak=0,totalPengeluaranGaji=0;
cout<<"Jumlah Data : ";cin>>jumlahData;
struct karyawan dataKaryawan[jumlahData];
//input
for(int i=0;i<jumlahData;i++){
cout<<"Karyawan ke-"<<i+1<<endl;
cin.ignore();
cout<<"Nama Karyawan : ";getline(cin,dataKaryawan[i].namaKaryawan);
cout<<"Golongan : ";cin>>dataKaryawan[i].golongan;
cout<<"Jumlah Anak : ";cin>>dataKaryawan[i].jmlAnak;
dataKaryawan[i].golongan = toupper(dataKaryawan[i].golongan);
dataKaryawan[i].gajiPokok = gajiPokok(dataKaryawan[i].golongan);
dataKaryawan[i].tunjanganAnak = tunjanganAnak(dataKaryawan[i].jmlAnak);
dataKaryawan[i].totalGaji= dataKaryawan[i].gajiPokok + dataKaryawan[i].tunjanganAnak;
}
//output
cout<<setiosflags(ios::left);
cout<<setw(5)<<"No"<<setw(20)<<"Nama Karyawan"<<setw(5)<<"Gol"<<setw(20)<<"Gaji Pokok"<<setw(10)
<<"jml.Anak"<<setw(20)<<"Tunj.Anak"<<setw(20)<<"Total Gaji"<<endl;
line();
for(int i=0;i<jumlahData;i++){
cout<<setw(5)<<i+1<<setw(20)<<dataKaryawan[i].namaKaryawan<<setw(5)<<dataKaryawan[i].golongan<<setw(20)<<dataKaryawan[i].gajiPokok<<setw(10)
<<dataKaryawan[i].jmlAnak<<setw(20)<<dataKaryawan[i].tunjanganAnak<<setw(20)<<dataKaryawan[i].totalGaji<<endl;
totalJumAnak += dataKaryawan[i].jmlAnak;
totalTunjanganAnak += dataKaryawan[i].tunjanganAnak;
totalPengeluaranGaji += dataKaryawan[i].totalGaji;
}
line();
cout<<"Total Jumlah Anak = "<<totalJumAnak<<" Anak"<<endl;
cout<<"Total Tunj. Anak = Rp."<<totalTunjanganAnak<<endl;
cout<<"Total Pengeluaran Gaji = Rp."<<totalPengeluaranGaji;
}
int gajiPokok(char golongan){
if(golongan == 'A'){
return 600000;
}else if(golongan == 'B'){
return 800000;
}else if(golongan == 'C'){
return 1200000;
}
return 0;
}
int tunjanganAnak(int jumAnak){
if(jumAnak == 1 || jumAnak == 2){
return jumAnak*300000;
}else if(jumAnak>2) {
return 800000;
}
return 0;
}
void line(){
for(int i=0;i<98;i++){
cout<<"=";
}cout<<endl;
}

Hasil output :
Output data karyawan

Setelah melihat contoh program diatas, penggunaan struct menjadi lebih mudah bukan? Apabila belum paham bisa ditanyakan melalui kolom komentar ya sobat.

Semoga bermanfaat. Terimakasih

No comments:

Post a Comment

Komentar yang bermutu Insyaallah akan mendapatkan berkah

https://payclick.com/

Contact us for advertising.