AdityaDees: contoh program cpp

Hot

https://publishers.chitika.com/

Contact us for advertising.
Showing posts with label contoh program cpp. Show all posts
Showing posts with label contoh program cpp. Show all posts

23 July 2020

Ask Program Deret Ganjil Genap menggunakan Fungsi Rekursif C++ AdityaDS

21:13 0
Assalamu'alaikum...

Setelah belajar mengenai contoh-contoh program yang menggunakan fungsi rekursif yaitu Konversi Desimal ke Biner dan Faktorial. Sekarang akan dibahas mengenai Menjumlahkan Deret Ganjil dan Genap dengan Fungsi Rekursif C++.

Contoh :

kasus 1 :
Bilangan awal : 1
Bilangan akhir : 10

Deret Genap
2 + 4 + 6 + 8 +10 =30

Deret Ganjil
1 + 3 + 5 + 7 + 9 = 25

kasus 2 :
Bilangan awal : 1
Bilangan akhir : 8

Deret Genap
2 + 4 + 6 + 8 = 20

Deret Ganjil
1 + 3 + 5 + 7 = 16

Berikut program C++ :

#include<iostream>
using namespace std;
int ganjilGenapRekursif(char kode,int awal,int akhir){

        if (awal>akhir){
            return 0;
        }else{    
            if (kode=='-'){
                if (awal%2==0){
                awal+=1;
                } 
            }else{
                if (awal%2==1){
                awal+=1;
                }
            }
            cout<<awal;
            if (awal<akhir){
                cout<<" + ";
            }else{
                cout<<" = ";
            }
            return awal + ganjilGenapRekursif(kode,awal+2,akhir);
        }    
    
}
int main(){
    int awalBilangan,akhirBilangan;
    char pilih;
    cout<<"Input bilangan awal : ";
    cin>>awalBilangan;
    cout<<"Input bilangan akhir : ";
    cin>>akhirBilangan;
    cout<<"[-] Deret Ganjil\n"
        <<"[+] Deret Genap\n"
        <<"Pilihan [- / +] : ";
        cin>>pilih;
    switch (pilih)
    {
    case '-':
        cout<<"Deret Ganjil : "<<endl;
        cout<<ganjilGenapRekursif(pilih,awalBilangan,akhirBilangan);
        break;
    case '+':
        cout<<"Deret Genap : "<<endl;
        cout<<ganjilGenapRekursif(pilih,awalBilangan,akhirBilangan);
        break;
    default:
        break;
    }
}

Hasil output :

Output Deret Ganjil

Output Deret Genap
 
Note :
bagian pentingnya ada pada statement yang menjadikan fungsi tersebut rekursif yaitu :

if (awal>akhir)
    return 0;
else
    return awal + ganjilGenapRekursif(kode,awal+2,akhir);

mari kita jabarkan :

kode = '-'
awal = 1
akhir = 10

ganjilGenapRekursif('-',1,10) 
awal < akhir (1<10) maka masuk ke else 
return 1 + ganjilGenapRekursif('-',1+2,10)

ganjilGenapRekursif('-',1+2,10)
awal < akhir (3<10) maka masuk ke else
return 3 + ganjilGenapRekursif('-',3+2,10)

ganjilGenapRekursif('-',3+2,10)
awal < akhir (5<10) maka masuk ke else
return 5 + ganjilGenapRekursif('-',5+2,10)

ganjilGenapRekursif('-',5+2,10)
awal < akhir (7<10) maka masuk ke else
return 7 + ganjilGenapRekursif('-',7+2,10)

ganjilGenapRekursif('-',7+2,10)
awal < akhir (9<10) maka masuk ke else
return 9 + ganjilGenapRekursif('-',9+2,10)

ganjilGenapRekursif('-',9+2,10)
awal > akhir (11>10) maka masuk ke if
return 0

Hasil :

ganjilGenapRekursif('-',9+2,10) memiliki nilai 0 karen return 0
ganjilGenapRekursif('-',7+2,10) memiiliki nilai 9 + ganjilGenapRekursif('-',9+2,10) = 9 + 0 = 9
ganjilGenapRekursif('-',5+2,10) memiliki nilai 7 + ganjilGenapRekursif('-',7+2,10) = 7 + 9 = 16
ganjilGenapRekursif('-',3+2,10) memiliki nilai 5 + ganjilGenapRekursif('-',5+2,10) = 5 + 16 = 21
ganjilGenapRekursif('-',1+2,10) memiliki nilai 3 + ganjilGenapRekursif('-',3+2,10) = 3 + 21 = 24
ganjilGenapRekursif('-',1,10) memiliki nilai 1 + ganjilGenapRekursif('-',1+2,10) = 1 + 24 = 25

.'. sehingga hasil yang dikembalikan oleh fungsi adalah 25

Bagaimana tidak susah bukan ?

Semoga bermanfaat. Terimakasih

Read More

22 July 2020

Ask Algoritma Bubble Sort dan Contoh Program C++ AdityaDS

10:22 0
Assalamu'alaikum...

Sorting (pengurutan) merupakan algoritma untuk melakukan pengurutan data berdasarkan kategori tertentu.

Beberapa metode sorting antara lain adalah:

  1. Bubble Sort 
  2. Quick Sort 
  3. Shell Sort 
  4. Selection Sort
  5. Insert Sort
  6. Merge Sort
Kali ini akan dibahas mengenai contoh program sorting data dengan Bubble Sort.


Bubble Sort merupakan algoritma sorting data yang paling sederhana. Mari lihat gambaran dari algoritma ini.


for i = 0 to n-1 do
    for j = i+1 to n do
        if data[i] > data[j] then
            temp = data[i]
            data[i]=data[j]
            data[j]=temp
        endif
    endfor
endfor


contohnya ada 5 data yang tersimpan dalam array dan cba perhatikan bagaimana algoritma ini bekerja.

data[5] = {10,40,20,12,15};

Langkah penyelesaian :
  1. Langkah pertama membadingkan data[0] dengan data[1]. Jika data[0] lebih besar maka pindahkan nilai data[0] ke data[1] dan sebaliknya.
  2. data[0] terus dibandingkan dengan data-data selanjutnya yaitu data[2],data[3] dan data[4] hingga data[0] terisi oleh nilai paling kecil.
  3. Setelah data[0] selesai dibandingkan dengan semua data maka selanjutnya membandingkan data[1] dengan data[2], data[3], dan data[4] seperti proses sebelumnya hingga data[1] terisi oleh nilai terkecil kedua.
  4.  Begitu seterusnya hingga data menjadi terurut.

Ilustrasi :

Tahap 1

Tahap 2


Tahap 3


Tahap 4


Tahap 5



Setelah memahami mengenai algoritma bubble sort selanjutnya coba perhatikan contoh program berikut ini :

#include<iostream>
using namespace std;
void bubbleSort(int data[], int n){
    int temp;
 for (int i = 0; i < n-1; i++)
    {
    for (int j = i+1; j < n; j++)
    {
        if (data[i]>data[j])
        {
            temp = data[i];
            data[i]=data[j];
            data[j]=temp;
        }   
        
    }
    }
}
int main(){
    int length;
    cout<<"Input jumlah elemen array : ";
    cin>>length;
    int data[length];
    for (int i = 0; i < length; i++)
    {
        cout<<"Nilai elemen ke-"<<i<<" = ";
        cin>>data[i];
    }cout<<endl;

    cout<<"Data belum terurut : "<<endl;
    for (int i = 0; i < length; i++)
    {
        cout<<data[i]<<" ";
    }cout<<endl;

    bubbleSort(data,length);
    cout<<"Data sudah terurut : "<<endl;
    for (int i = 0; i < length; i++)
    {
        cout<<data[i]<<" ";
    }cout<<endl;
        
}


Hasil output:

Output bubble sort 


Nah bagaimana mudah dipahami bukan?

Jika sobat punya studi kasus mengenai mengurutkan data didalam struct atau array string boleh komen dibawah ya, agar dapat dibahas pada postingan-postingan selanjutnya :)

Semoga bermanfaat. Terimakasih

Read More

21 July 2020

Ask Program Faktorial dengan Perulangan for dan Rekursif C++ AdityaDS

22:32 0
Assalamu'alaikum...
Bismillah, setelah mempelajari mengenai rekursif dan contoh program konversi desimal ke biner kali ini akan melanjutkan mengenai contoh program faktorial secara rekursif.

Faktorial (!) dari bilangan asli x adalah hasil perkalian antara bilangan bulat positif yang kurang dari atau sama dengan x. 

contoh :
1! = 1*1 = 1
2! = 1*2 = 2
3! = 1*2*3 = 6
4! = 1*2*3*4 = 24
5! = 1*2*3*4*5 = 120
6! = 1*2*3*4*5*6 = 720
dst...

Jika menggunakan perulangan biasa, dapat dilihat programnya seperti ini :

#include<iostream>
using namespace std;
void faktorialPerulangan(int bil){
    int hasil=1;
    for (int i = 1; i <= bil; i++)
    {
        hasil *= i;
        cout<<i;
        if (i != bil)
        {
            cout<<'*';
        }
    }
    cout<<'='<<hasil;
}
int main(){
    int bil,hasil=1;
    cout<<"Faktorial dengan perulangan for"
        <<endl;
    cout<<"Masukan bilangan : ";cin>>bil;
    cout<<bil<<"! = ";
    faktorialPerulangan(bil);
}

bandingkan dengan menggunakan rekursif berikut ini :

#include<iostream>
using namespace std;

int faktorial(int bil,int hasil){
    if(bil == 0){
    //pemberhentian rekursif
        cout<<'=';
        return hasil;
    }
    else{
        hasil*=bil;
        cout<<bil;
        if(bil != 1)
            cout<<'*';        
        //melakukan rekursif
        faktorial(bil-1,hasil);
    }
    
}

int main(){
    int bil,hasil=1;
    cout<<"Faktorial dengan rekursif"<<endl;
    cout<<"Masukan bilangan : ";cin>>bil;
    cout<<bil<<"! = ";
    cout<<faktorial(bil,hasil);
}

Hasil output kedua program diatas :

Faktorial menggunakan perulangan for

Faktorial menggunakan fungsi rekursif

Kedua program menghasilkan nilai faktorial yang sama, namun susunan bilangannya yang berbeda. Untuk program pertama hanya menggunakan perulanga for (loop for) seperti biasa, sedangkan program kedua menggunakan fungsi rekursif. Parameter yang dilempar kepada kedua fungsi pun berbeda. 

Berikut alur program faktorial menggunakan for :

bil= 5
// cout<<bil<<"! = ";
5! =

//faktorialPerulangan(bil);
faktorialPerulangan(5)
hasil = 1
iterasi 1 : i= 1
hasil = hasil * i = 1*1 =1
// cout<<i;
5! = 1
// if (i != bil) cout<<'*';
5! = 1*

iterasi 2 : i= 2
hasil = hasil * i = 1*2 =2
// cout<<i;
5! = 1*2
// if (i != bil) cout<<'*';
5! = 1*2*

iterasi 3 : i= 3
hasil = hasil * i = 2*3 =6
// cout<<i;
5! = 1*2*3
// if (i != bil) cout<<'*';
5! = 1*2*3*

iterasi 4 : i= 4
hasil = hasil * i = 6*4 =24
// cout<<i;
5! = 1*2*3*4
// if (i != bil) cout<<'*';
5! = 1*2*3*4*

iterasi 5 : i= 5
hasil = hasil * i = 24*5 =120
// cout<<i;
5! = 1*2*3*4*5
// if (i != bil) cout<<'*';
// i sudah sma dengan bil
5! = 1**2*3*4*5

iterasi selesai

// cout<<'='<<hasil;
5! = 1**2*3*4*5 = 120

Berikut alur program faktorial menggunakan rekursif :

bil = 5;
hasil =1;
//output cout<<bil<<"! = ";
5! = 

// cout<<faktorial(bil,hasil);
faktorial(5,1)
menjalankan else
hasil = 1*5 = 5
//output cout<<bil;
5! = 5
// if(bil != 1) cout<<'*';
5! = 5*

//  faktorial(bil-1,hasil);
faktorial (4,5)
menjalankan else
hasil = 5*4 = 20
// cout<<bil;
5! = 5*4
// if(bil != 1) cout<<'*';
5! = 5*4*

//  faktorial(bil-1,hasil);
faktorial (3,20)
menjalankan else
hasil = 20*3 = 60
// cout<<bil;
5! = 5*4*3
// if(bil != 1) cout<<'*';
5! = 5*4*3*

//  faktorial(bil-1,hasil);
faktorial (2,60)
menjalankan else
hasil = 60*2 = 120
// cout<<bil;
5! = 5*4*3*2
// if(bil != 1) cout<<'*';
5! = 5*4*3*2*

//  faktorial(bil-1,hasil);
faktorial (1,120)
menjalankan else
hasil = 120*1 = 120
// cout<<bil;
5! = 5*4*3*2*1
// if(bil != 1) cout<<'*';
5! = 5*4*3*2*1

//  faktorial(bil-1,hasil);
faktorial (0,120)
menjalankan if
// cout<<'=';
5! = 5*4*3*2*1=
// return hasil;
5! = 5*4*3*2*1=120

Nah begitulah kira2 kurang lebih alur dari kedua program faktorial diatas.
Bagaimana sudah paham ?

Semoga bermanfaat. Terimakasih 
Read More

Ask Program Konversi Desimal ke Biner Rekursif C++ AdityaDS

15:01 0
Assalamu'alaikum...

Rekursif merupakan suatu fungsi yang dapat memanggil dirinya sendiri. Berbeda dengan fungsi dan prosedur yang dapat dipanggil oleh fungsi atau prosedur lain, sementara fungsi rekursif dapat memanggil dirinya sendiri.

Banyak sekali contoh-contoh penggunaan fungsi rekursif diantara yaitu menghitung perpangkatan, deret, faktorial dan lainnya. Pada postingan kali ini akan membahas mengenai penerapan fungsi rekursif untuk Konversi Bilangan Desimal ke Biner.

Sebelum masuk ke program yang akan dibuat, mari perhatikan contoh konversi desimal ke biner.

Contoh :

Desimal : 4
Biner : 000000100

Desimal : 10
Biner : 000001010

div dir="ltr" style="text-align: left;" trbidi="on">
bilangan 0 sebelum bilangan 1 dapat dihilangkan karena penghilangan angka 0 tidak merubah makna bilangannya. 
Misal :
000001010
dapat ditulis : 1010

Sekarang kita akan masuk kepada programnya. Berikut program konversi desimal ke biner :


#include <iostream>
using namespace std;

void biner(int bilangan)
{ //kondisi berhenti 
if (bilangan==1){
cout<<1;
return;
}
//pemanggilan rekursif
else {
binner(bilangan/2); 
cout <<bilangan%2;
}
}

int main(){
int bilangan;
char pilih;
cout<<"Konversi Desimal ke Biner"<<endl;
do {
cout<<"Masukan Bilangan Desimal : "; cin >> bilangan;
cout<<"Binner : ";
biner(bilangan);
cout<<"\ncoba lagi y/n : "; cin>>pilih;
cout<<endl;
}while (pilih=='y' || pilih == 'Y'); //untuk kembali ke awal


Hasil output program :

Konversi Desimal ke Biner C++
Berikut penjelasan alur program tersebut :
misal input desimall 10
biner(10) maka akn masuk ke fungsi biner dan mengeksekusi else kemudian
biner(10/2) maka akan masuk ke fungsi biner lagi dan kembali mengekseksui else kemudian
biner(5/2) maka masuk kembali ke fungsi biner dan mengeksekusi else kemudian
biner (2/2) maka masuk ke fungsi biner dan mengeksekusi if dan mengeluarkan bilangan 1 kemudian di return ke kondisi akhir fungsi yang dieksekusi tadi karena masih ada statement yang belum dikerjakan.


naik ke kondisi akhir tdi biner (2/2) dan mengoutputkan 2 mod 2 = 0 kemudian
naik kekondisi akhir tdi biner (5/2) dan mengoutputkan 5 mod 2 = 1 kemudian
naik kekondisi akhir biner tdi (10/2) dan mengoutpukan 10 mod 2 = 0 kemudian
selesai 
sehingga yang ditampilkan dilayar adalah 1010.

Bagaimana? susah bukan untuk dimengerti ? :)

Selanjutnya akan dibahas mengenai contoh rekursif C++ bagian ke 2 yaitu mengenai faktorial.

Semoga bermanfaat. Terimakasih




Read More

18 July 2020

Ask Contoh penggunaan struct untuk pendataan barang C++ AdityaDS

20:16 0
Asssalmu'alaikum...
Setelah memahami mengenai definisi struct dan case study pada case study struct in C++ , kali ini akan dilanjutkan dengan case study yang kedua yaitu menggunakan struct untuk Data Barang Dagang. 

Berikut deskripsi dan gambar untuk case study struct part 2 :

Data barang dagang
Deskripsi :
Pertama akan ada login, dengan ketentuan apabila salah user_id/password sebanyak 3x maka program akan close. Setelah login lakukan input data barang seperti : kode barang, nama barang, jumlah stock dan supplier. 
Menu Utama akan menampilkan 3 menu yang dimana menu pertama akan menampilkan hasil input barang. Menu kedua pengambilan barang berdasarkan kode barang yang artinya bahwa ketika barang diambil maka stock berkurang.  Menu terakhir yaitu close dari program.

Solusi : 
Pertama, user_id, password dan nama programmer yang sudah ditetapkan didalam program (tidak di input). Sehingga kita bisa buat sebuah struct programmer yang memiliki atribut nama,user_id dan password.


struct programmer {
    string nama = "belajarbelajarrr.blogspot.com";
    string user_id = "belajar";
    string password = "belajarrr";
} pro;

Kedua, pada input barang juga bisa kita buat menjadi struct seperti :

struct barang{
    string kodeBarang;
    string namaBarang;
    int stock;
    string supplier;
}barangdagang;

Ketiga, melakukan pengurangan stock dapat dilakukan dengan menggunakan algoritma searching (pencarian).

Setelah melakukan analisis terhadap case study maka selanjutnya memuat program utuhnya seperti :

#include<iostream>
#include<iomanip>
using namespace std;

struct programmer{
    string user_id="belajar";
    string password="belajarrr";
    string namaProgrammer="belajarbelajarrr.blogspot.com";
};
programmer pro;

struct barang{
    string namaBarang;
    string kodeBarang;
    string supplier;
    int jumlahStock;
};
int jumlahBarang;

void line(){
for(int i=0;i<50;i++){
cout<<"=";
}cout<<endl;
}

void menuUtama(){
    cout<<"Menu Utama"<<endl;
    line();
    cout<<"[I] Tampil data inventory"<<endl;
    cout<<"[P] Pengambilan barang"<<endl;
    cout<<"[E] Exit"<<endl;
    cout<<"Pilihan [I/P/E]?";
}

int main(){
    string user_id;
    string password;
    char pilih;
    string ambilKode;
    int jumlahAmbil;
    int j;
    int coba=0;
    do{
        cout<<"Data Aktifitas"<<endl;
        cout<<"PT 'supply'"<<endl;
        cout<<"Programmer : "<<pro.namaProgrammer<<endl;
        cout<<"Login "<<endl;
        cout<<"User Id: ";cin>>user_id;
        cout<<"Password: ";cin>>password;
        if(user_id==pro.user_id && password==pro.password)
            coba=100;
        else
            coba++;
        if(coba ==3)
            exit(0);
    }while(coba<3);

    cout<<"Input berapa barang?";
    cin>>jumlahBarang;
    barang barangDagang[jumlahBarang];
    cout<<"Input Data"<<endl;
    for (int i = 0; i < jumlahBarang; i++)
    {
        cout<<"Barang ke-"<<i+1<<endl;
        cout<<"Kode Barang : ";cin>>barangDagang[i].kodeBarang;
        cout<<"nama barang : ";cin.ignore();getline(cin, barangDagang[i].namaBarang);
        cout<<"stock : ";cin>>barangDagang[i].jumlahStock;
        cout<<"supplier : ";cin.ignore(); getline(cin, barangDagang[i].supplier);
    }

    do{
        menuUtama();
        cin>>pilih;
        switch (pilih)
        {
        case 'I':
                cout<<setiosflags(ios::left);
                cout<<setw(5)<<"No"<<setw(12)<<"Kode Barang"<<setw(20)<<"Nama Barang"<<setw(10)<<"Stock"<<setw(20)
                    <<"Supplier"<<endl;
                line();
                for (int i = 0; i < jumlahBarang; i++)
                {
                    cout<<setw(5)<<i+1<<setw(12)<<barangDagang[i].kodeBarang<<setw(20)<<barangDagang[i].namaBarang<<setw(10)<<barangDagang[i].jumlahStock<<setw(20)
                        <<barangDagang[i].supplier<<endl;
                }
                
            break;
        case 'P':
            line();
                cout<<"Kode Barang : ";cin>>ambilKode;
                cout<<"Jumlah Diambil : ";cin>>jumlahAmbil;
                j=0;
                for ( ; j < jumlahBarang; j++)
                {
                    if(ambilKode==barangDagang[j].kodeBarang){
                        barangDagang[j].jumlahStock -= jumlahAmbil;
                        break;
                    }
                        
                }
                cout<<"sisa Barang : "<<barangDagang[j].jumlahStock<<endl;
            line();
            break;
        case 'E':
            exit(0);
            break;
        default:
            break;
        }
        cout<<"Kembali ke Menu utama?[Y/T]";cin>>pilih;
    }while(pilih=='Y');

}
Hasil output program tersebut :



Ada banyak solusi yang bisa sobat pakai untuk menyelesaikan case study pada postingan kali ini ya :)

Semoga bermanfaat. Terimakasih 

*sumber beberapa gambar dikirim dari pembaca blog https://belajarbelajarrr.blogspot.com
Read More

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

13:18 0
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

Read More

https://payclick.com/

Contact us for advertising.