You are on page 1of 13

FM-BINUS-AA-FPU-78/R1

Universitas Bina Nusantara

Ganjil / Genap *) 20 / 20 Tahun Ajaran 20 / 20

Tengah Semester Akhir Semester Semester Pendek

FAK./JURUSAN :
N.I.M :
MATA UJIAN : T0474- Bahasa Pemrograman
Berorientasi Obyek
HARI / TANGGAL :
NAMA :
DOSEN : TEAM
KELAS : PAGI
TANDA
WAKTU : 100 MENIT TANGAN :
SIFAT UJIAN : TUTUP / BUKA BUKU *)
KALKULATOR : YA / TIDAK *)
*) Coret yang tidak perlu
Naskah dimasukkan ke dalam buku ujian dan dikumpulkan kembali !!!

Soal-soal Pilihan Ganda (Beri tanda silang ( X ) pada jawaban yang benar pada lembar jawaban:
(Nilai 50%)
1. Apabila program C++ terdiri dari lebih dari satu fungsi (modul), maka pernyataan yang benar di bawah ini adalah :
(A). Fungsi yang pertama kali dijalankan adalah fungsi yang paling bawah dari program C++ tersebut.
(B). Fungsi yang pertama kali dijalankan adalah fungsi main() dari program C++ tersebut.
(C). Fungsi yang pertama kali dijalankan adalah fungsi yang paling atas dari program C++ tersebut.
(D). Semua jawaban di atas benar.
2. Alasan kenapa perlu membuat program berorientasi objek adalah:
(A). Mempercepat proses pembuatan program.
(B). Memudahkan pembuatan program dengan menggunakan program yang telah ada dan mengembangangkannya
(Reusability dan Extensibility).
(C). Memudahkan penulisan dan pemeliharaan program.
(D). Semua jawaban di atas benar.
3. Pernyataan yang benar di bawah ini adalah :
(A). Setiap program C++ terdiri dari satu atau lebih fungsi.
(B). Setiap program C++ hanya terdiri dari satu fungsi saja.
(C). Fungsi yang pertama kali dikerjakan tidak harus fungsi main().
(D). Tidak ada jawaban yang benar.
4. Pernyataan yang benar di bawah ini adalah :
(A). Dalam Built In Data Type ada 5 buah Modifier yaitu : int, float, double, char, void.
(B). Dalam Built In Data Type ada 4 buah Tipe Data Dasar yaitu : unsigned, signed, short, dan long.
(C). Ada 2 jenis tipe data pada C++ yaitu: Built In Data Type dan Abstract data Data Type.
(D). Abstract Data Type merupakan tipe data yang telah disediakan oleh kompiler C/C++.
5. Untuk menampilkan tiga buah data ( misal: int INT1, INT2, INT3; ) ke monitor, digunakan object class iostream dalam
bentuk stream yang benar adalah:
(A). cin >> INT1, INT2, INT3; (B). cout << INT1 << INT2 << INT3;
(C). cin << INT1 << INT2 << INT3; (D). cout >> INT1 >> INT2 >> INT3;

1
6. Untuk membaca tiga buah data ( misal: float FLOAT1, FLOAT2, FLOAT3) dari keyboard, digunakan object class
iostream dalam bentuk stream yang benar adalah:
(A). cin >> FLOAT1 >> FLOAT2 >> FLOAT3; (B). cin << FLOAT1, FLOAT2 , FLOAT3;
(C). cout << FLOAT1 << FLOAT2 << FLOAT3; (D). cout >> FLOAT1 >> FLOAT2 >> FLOAT3;
7. Deklarasi variabel yang benar di bawah ini adalah :
(A). float unsigned long Biaya_Sewa_Rumah 500000; (B). long float Biaya Sewa Rumah=500000;
(C). long float Biaya_Sewa_Rumah=500000; (D). Long Float Biaya-Sewa-Rumah=500000;
Ngga ada yang bener, yang bener, klo maw:
unsigned long int Biaya_Sewa_Rumah = 500000; //mendekati jawaban A
long Biaya_Sewa_Rumah = 500000; //mendekati jawaban B, C, D
float Biaya_Sewa_Rumah = 500000; //mendekati jawaban B, C, D
float long Biaya_Sewa_Rumah = 500000; //mendekati jawaban B, C, D
//catatan, coba deh yang "long float" di Borland C++, pasti ngga bisa, bisanya
//cuman "float long", aneh kan?

8. Pemberian nama variabel yang benar adalah:


(A). Panjang maksimum adalah 255 karakter (ANSI).
(B). Tidak membedakan huruf kecil atau huruf besar.
(C). Boleh menggunakan kata-kata kunci (keywords) sebagai variabel.
(D). Diawali dengan huruf atau garis bawah (_ ) dan baru boleh dikuti dengan angka, huruf dan garis bawah.
9. Pernyataan mengenai konstanta (const) di bawah ini mana yang benar :
(A). Nama constant dapat dimulai dengan menggunakan angka.
(B). Pada C++, deklarasi constant membutuhkan alokasi memori.
(C). Ada 2 jenis constant yaitu Macro-based Constant dan Named Constant (Formal).
(D). Constant adalah identifier yang nilainya bisa berubah selama program berjalan.

10. Bila diketahui tiga buah bilangan : int i = 79, j = 5; dan float k = i / j; maka pernyataan:
cout << “k = “; cout.width(5); cout.precision(2); cout << k << endl; akan manampilkan hasil di bawah ini:
(A). k = 15.8 (B). k = 4.00 (C). k = 15 (D). k = 16
11. Bila diketahui tiga buah bilangan : float i = 79.0; int j = 5; float k = i / j; maka pernyataan:
cout << “k = “; cout.width(5); cout.precision(2); cout << k << endl; akan manampilkan hasil di bawah ini:
(A). k = 15.8 (B). k = 4.00 (C). k = 15.00 (D). k = 16.00
12. Pernyataan yang benar mengenai Akses anggota klass (class) di bawah ini adalah:
(A). Protected adalah bagian class yang hanya dapat diakses oleh anggota dari class itu sendiri.
(B). Public adalah bagian class yang dapat diakses oleh anggota dari class itu sendiri maupun dari luar class.
(C). Private adalah bagian class yang hanya dapat diakses oleh anggota dari class itu sendiri dan anggota class turunannya.
(D). Semua jawaban di atas benar.
13. Untuk mendeklarasikan suatu kumpuln data yang terdiri dari 2 baris dan 3 kolom digunakan pernyataan yang benar di
bawah ini adalah:
(A). int Jumlah[2,3] = { 3, 5, 7, 4, 6, 8 }; (B). int Jumlah[2][3] = 3, 5, 7, 4, 6, 8;
(C). int Jumlah[2][3] = { 3, 5, 7, 4, 6, 8 }; (D). int Jumlah(2,3) = { { 3, 5, 7 }, { 4, 6, 8 } };
Ngga ada yang bener, yang bener, klo maw:
int Jumlah[2][3] = {{3, 5, 7}, {4, 6, 8}}; //mendekati jawaban D

14. Deklarasi konstanta di bawah ini mana yang benar :


(A). const unsigned int Jumlah – Partai 24 ; (B). #define Jumlah – Partai 24
(C). const unsigned Jumlah Partai = 24; (D). #define Jumlah_Partai 24

2
15. Penggunaan struktur kondisi seleksi bertingkat: perintah: if , untuk menyatakan pilihan selain dari kondisi yang ada
digunakan :
(A). otherwise (B). else (C). default (D). else if
16. Penggunaan struktur kondisi seleksi: switch – case, untuk menyatakan pilihan selain dari nilai konstanta yang ada
digunakan :
(A). otherwise (B). else (C). default (D). else if

17. Pernyataan Array yang benar di bawah ini adalah :


(A). Array adalah struktur data yang terdiri dari kumpulan variabel yang tipe datanya berlainan.
(B). Array adalah struktur data yang terdiri dari kumpulan variabel yang tipe datanya sama atau berlainan.
(C). Array adalah struktur data yang terdiri dari kumpulan variabel yang tipe datanya sama.
(D). Semua jawaban di atas benar.
18. Pernyataan tentang struktur (struct) yang benar di bawah ini adalah:
(A). Struktur merupakan struktur data yang terdiri dari satu atau lebih variabel yang mempunyai tipe data sama.
(B). Struktur merupakan struktur data yang terdiri dari satu atau lebih variabel yang mempunyai tipe data berlainan.
(C). Struktur merupakan struktur data yang terdiri dari satu atau lebih variabel yang mempunyai tipe data sama atau
berlainan.
(D). Tidak ada jawaban yang benar.
19. Pernyataan yang benar mengenai Object Oriented Programming di bawah ini adalah:
(A). Objek merupakan gabungan antara data dan fungsi menjadi satu kesatuan serta hubungan antar anggotanya.
(B). Definisi objek dalam Pemrograman Berorientasi Objek (C++) menggunakan keyword: class.
(C). Akses anggota data (Data Member) suatu class tidak bisa langsung, tetapi hanya melalui method (Fungsi Member).
(D). Semua jawaban di atas benar.
20. Deklarasi yang benar mengenai suatu class yang dinamakan Karyawan di bawah ini adalah:
(A). class Karyawan { (B). class Karyawan {
public: private:
char Id_Karyawan[10]; char Id_Karyawan[10];
char Nama[30]; char Nama[30];
float Gaji; float Gaji;
private: public:
Karyawan() { Id_Karyawan = “ “; void Karyawan() {
Nama = “ “; Gaji = 0; } strcpy(Id_Karyawan, “ “);
Karyawan( char *id, char *nm, float gj) strcpy(Nama, “ “); Gaji = 0; }
{ Id_Karyawan = id; Nama = nm; void Karyawan( char *id, char *nm, float gj)
Gaji = gj; } { strcpy(Id_Karyawan, id);
void Tampil() { cout << “Id = “ << strcpy(Nama, nm); Gaji = gj; }
Id_Karyawan << “\nNama = “ << void Tampil() { cout << “Id = “ << “\n”
“\nGaji = “ << Gaji << endl; } << “Id = “ << Id_Karyawan << “\n”
~Karyawan() {}; << “Nama = “ << Nama = “ << “\n”
}; << “Gaji = “ << Gaji << endl; }
~Karyawan() {};
}

3
(C). class Karyawan { (D). Semua jawaban di atas benar.
private:
char Id_Karyawan[10];
char Nama[30];
float Gaji;
public:
Karyawan() {
strcpy(Id_Karyawan, “ “);
strcpy(Nama, “ “); Gaji = 0; }
Karyawan( char *id, char *nm, float gj)
{ strcpy(Id_Karyawan, id);
strcpy(Nama, nm); Gaji = gj; }
void Tampil() { cout << “Id = “ << “\n”
<< “Id = “ << Id_Karyawan << “\n”
<< “Nama = “ << Nama = “ << “\n”
<< “Gaji = “ << Gaji << endl; }
~Karyawan() {};
};

BTW, pilihan jawaban C itu dah hampir bener, cuman cukup buang/hapus yang aq kase highlight merah ajah.

LEMBAR JAWABAN SOAL PILIHAN GANDA

No A B C D No A B C D
1 11
2 12
3 13
4 14
5 15
6 16
7 17
8 18
9 19
10 20

4
Essay (Nilai 50%):
1. Berikan keterangan (komentar) pada setiap baris pada program di bawah ini (Nilai 20%):

#include <iostream.h> // menambahkan pustaka iostream


#include <conio.h> // menambahkan pustaka conio
#define PHI 3.14 // mendefinisikan constanta macro

void Masuk ( float Jari2 ); // membuat function prototype untuk method masuk
float Hitung ( float Jari2 ); // membuat function prototype untuk method hitung
void Tampil ( float Luas ); // membuat function prototype untuk method tampil

void main() // merupakan bagian program yg akan dijalankan pada awal eksekusi
{ // …………………………………………………………………………
clrscr(); // membersihkan layar
float Jari_jari, Luas; // mendeklarasikan variabel yg dibuthkan
Masuk ( Jari_jari ); // memanggil fungsi masuk
Luas = Hitung ( Jari_jari ); // menghitung luas dengan memanggil fungsi hitung
Tampil ( Luas ); // memanggil fungsi untuk mencetak hasil (output program)
getch(); // menghentikan layar dengan meminta input sembarang dari pengguna
} // …………………………………………………………………………

void Masuk ( float Jari2 ) // fungsi yg dipake untuk meminta input jari-jari
{ // …………………………………………………………………………
cout << “Masukkan Jari-jari lingkaran=”; // mencetak pertanyaan
cin >> Jari2; // mengambil jari-jari
} // BTW!! Fungsi ini ERROR, harusnya dy passing by reference
// bukannya by value ckckck, jadinya yg bener adalah
// void Masuk ( float &Jari2 ) perhatikan ada tanda ampersand-nya (&)

float Hitung ( float Jari2 ) // fungsi yg dipake untuk hitung luas lingkaran
{ // …………………………………………………………………………
return PHI * Jari2 * Jari2; // langsung menhitung dan mengembalikan nilai yg telah diproses
} // …………………………………………………………………………

void Tampil ( float Luas ) // fungsi yg dipake untuk cetak hasil


{ // …………………………………………………………………………
cout << “Luas Lingkaran = “ << Luas // mencetak kata-kata pembuka dan output hasil hitung
cout << end; // tidak ada symbol end dalam iostream.h yang benar harusnya endl
} // …………………………………………………………………………

2. Kasus ( Nilai 30%):


Buatkan program C++ lengkap menggunakan prinsip PBO (class) yang lengkap dari objek-objek
seperti di bawah ini:

Id : B0001 Id : B0002 Id : B0003


Nama : Ayam Nama : Anjing Nama : Tikus
Jumlah_Kaki : 2 Jumlah_Kaki : 4 Jumlah_Kaki : 4

5
Dimana program mempunyai tugas memberikan nama awal pada objek-objek tersebut di atas, dan
user bisa memasukkan data pada objek-objek tersebut di atas, serta dapat menampilkan data-
datanya. Jangan lupa ada program utama yang dapat menciptakan 3 buah objek, dan mengakses
fungsi member dari class yang ada.

Jawab :
#include <iostream.h>
#include <string.h>

class Hewan {
private:
char Id[6];
char Nama[100];
int Jumlah_Kaki;

public:
Hewan(char Id[], char Nama[], int Jumlah_Kaki) {
strcpy(this->Id, Id);
strcpy(this->Nama, Nama);
this->Jumlah_Kaki = Jumlah_Kaki;
}

void SetId(char Id[]) {strcpy(this->Id, Id);}


void SetNama(char Nama[]) {strcpy(this->Nama, Nama);}
void SetJumlah_Kaki(int Jumlah_Kaki) {this->Jumlah_Kaki = Jumlah_Kaki;}
char *GetId() {return Id;}
char *GetNama() {return Nama;}
int GetJumlah_Kaki() {return Jumlah_Kaki;}

~Hewan() {}
};

void GantiData(Hewan &objHewan, char NamaHewan[]) {


char Pilihan;
char Id[6];
char Nama[100];
int Jumlah_Kaki;

6
cout << endl
<< "Ingin ganti data " << NamaHewan << "? [y/n]: ";
cin >> Pilihan; cin.clear(); cin.sync();

if (Pilihan == 'y') {
cout << "Id " << NamaHewan << ": ";
cin >> Id; cin.clear(); cin.sync();
objHewan.SetId(Id);

cout << "Nama " << NamaHewan << ": ";


cin.getline(Nama, 100); cin.clear(); cin.sync();
objHewan.SetNama(Nama);

cout << "Jumlah Kaki " << NamaHewan << ": ";
cin >> Jumlah_Kaki; cin.clear(); cin.sync();
objHewan.SetJumlah_Kaki(Jumlah_Kaki);
}
}

void CetakData(Hewan objHewan, char NamaHewan[]) {


cout << endl
<< NamaHewan << ":" << endl
<< "Id = " << objHewan.GetId() << endl
<< "Nama = " << objHewan.GetNama() << endl
<< "Jumlah Kaki = " << objHewan.GetJumlah_Kaki() << endl;
}

void main() {
Hewan objAyam("B0001", "Ayam", 2);
Hewan objAnjing("B0002", "Anjing", 4);
Hewan objTikus("B0003", "Tikus", 4);

GantiData(objAyam, "objAyam");
GantiData(objAnjing, "objAnjing");
GantiData(objTikus, "objTikus");

CetakData(objAyam, "objAyam");
CetakData(objAnjing, "objAnjing");

7
CetakData(objTikus, "objTikus");

cin.get();
}

3. Buat program C++ untuk membuat perhitungan besarnya potongan harga pembelian dengan
ketentuan sebagai berikut:
• Memiliki fungsi untuk memasukkan data dari keyboard data sebagai berikut:
− No, Id_Barang, Nama Barang, Harga Barang, Jumlah Item Barang
• Memiliki fungsi untuk menghitung potongan harga dan Total Pembelian dengan aturan:
− Jika total harga pembelian barang di bawah 250,000 tidak mendapat potongan harga.
− Jika total harga pembelian barang antara 250,000 s/d 500,000 akan mendapatkan potongan
harga sebesar 5% dari total harga pembelian per item.
− Jika total harga pembelian di atas 500,000 s/d 1000,000 akan mendapatkan potongan harga
sebesar 10% dari total harga pembelian per item.
− Jika total harga pembelian di atas 1000,000 akan mendapatkan potongan harga sebesar 20%
dari total harga pembelian per item.
• Memiliki fungsi untuk menampilkan daftar barang yang dibeli beserta harga total dan potongan
harganya.
• Contoh tampilan seperti terlihat di bawah ini:

012345678901234567890123456789012345678901234567890123456789012345678901234
No Id_Barang Nama Barang Harga Barang Jumlah Item Total Harga Potongan
1 M0001 Meja Tamu 70,000 2
2 M0002 Meja Belajar 350,000 1
3 K0001 Kursi Tamu 60,000 8
4 K0002 Kursi Belajar 250,000 1
5 L0001 Lemari Buku 650,000 2

Jawaban:
#include <iostream.h>
#include <string.h>

class DataBarang {
private:
int No;
char Id_Barang[6];
char Nama_Barang[100];
int Harga_Barang;
int Jumlah_Item_Barang;
float Potongan_Harga;
int Total_Pembelian;

8
public:
void SetDataBarang(int No, char Id_Barang[], char Nama_Barang[],
int Harga_Barang, int Jumlah_Item_Barang,
float Potongan_Harga, int Total_Pembelian) {
this->No = No;
strcpy(this->Id_Barang, Id_Barang);
strcpy(this->Nama_Barang, Nama_Barang);
this->Harga_Barang = Harga_Barang;
this->Jumlah_Item_Barang = Jumlah_Item_Barang;
this->Potongan_Harga = Potongan_Harga;
this->Total_Pembelian = Total_Pembelian;
}

int GetNo() {return No;}


char *GetId_Barang() {return Id_Barang;}
char *GetNama_Barang() {return Nama_Barang;}
int GetHarga_Barang() {return Harga_Barang;}
int GetJumlah_Item_Barang() {return Jumlah_Item_Barang;}
float GetPotongan_Harga() {return Potongan_Harga;}
int GetTotal_Pembelian() {return Total_Pembelian;}
};

int Menghitung_Total_Pembelian(int Jumlah_Item_Barang, int Harga_Barang) {


return Jumlah_Item_Barang * Harga_Barang;
}

float Menghitung_Potongan_Harga(int Total_Pembelian) {


if (Total_Pembelian < 250000) {
return 0;
} else if ((250000 <= Total_Pembelian) && (Total_Pembelian <= 500000)) {
return 0.05 * (float) Total_Pembelian;
} else if ((500000 < Total_Pembelian) && (Total_Pembelian <= 1000000)) {
return 0.1 * (float) Total_Pembelian;
} else if (1000000 < Total_Pembelian) {
return 0.2 * (float) Total_Pembelian;
}
}

void Memasukkan_Data(DataBarang &Data, int &TotalBarang) {


int No;
char Id_Barang[6];
char Nama_Barang[100];
int Harga_Barang;
int Jumlah_Item_Barang;
float Potongan_Harga;
int Total_Pembelian;

cout << endl


<< "Data Barang " << (TotalBarang + 1) << endl

9
<< "No: "; cin >> No;
cin.clear(); cin.sync();
cout << "Id Barang: "; cin.getline(Id_Barang, 6);
cin.clear(); cin.sync();
cout << "Nama Barang: "; cin.getline(Nama_Barang, 100);
cin.clear(); cin.sync();
cout << "Harga Barang: "; cin >> Harga_Barang;
cin.clear(); cin.sync();
cout << "Jumlah Item Barang: "; cin >> Jumlah_Item_Barang;
cin.clear(); cin.sync();

Total_Pembelian = Menghitung_Total_Pembelian(Jumlah_Item_Barang, Harga_Barang);


Menghitung_Potongan_Harga(Total_Pembelian);

Data.SetDataBarang(No, Id_Barang, Nama_Barang, Harga_Barang,


Jumlah_Item_Barang, Potongan_Harga, Total_Pembelian);
TotalBarang = TotalBarang + 1;
}

void Menampilkan_Daftar_Barang(DataBarang Data[], int TotalBarang) {


cout << endl
<< "No\tId_Barang\tNama Barang\tHarga Barang\tJumlah Item\t"
<< "Total Harga Potongan" << endl;
for (int a = 1; a <= 80; a = a + 1) cout << "-";

for (int a = 0; a < TotalBarang; a = a + 1) {


cout << Data[a].GetNo() << "\t"
<< Data[a].GetId_Barang() << "\t"
<< Data[a].GetNama_Barang() << "\t"
<< Data[a].GetHarga_Barang() << "\t"
<< Data[a].GetJumlah_Item_Barang() << "\t"
<< Data[a].GetTotal_Pembelian() << "\t"
<< Data[a].GetPotongan_Harga() << endl;
}
}

void main() {
DataBarang Data[6];
int TotalBarang = 0;

for (int a = 0; a < 5; a = a + 1) Memasukkan_Data(Data[a], TotalBarang);


Menampilkan_Daftar_Barang(Data, TotalBarang);

cin.get();
}

4. Buat program C++ dengan menggunakan struktur bertingkat (Nested Structure). Program tersebut
akan digunakan untuk memasukkan dan menampilkan data Pegawai dalam bentuk daftar (Tabel)
sebagai berikut :

10
NIP Nama Alamat_Rumah Tanggal_Lahir
Jalan Kota Kodepos Tanggal-Bulan-Tahun
9001 Ayu Jl. Mawar 5 Bandung 10555 02-02-1955
9003 Bagus Jl. Melati 3 Bogor 10999 09-09-1969
9002 Elok Jl. Tulip 9 Tangerang 65001 03-05-1965

Dimana definisi struktur Pegawai tersebut memiliki anggota struktur sebagai berikut:
• NIP bertipe data karakter yang menampung 4 karakter.
• Nama bertipe data karakter yang menampung 30 karakter.
• Alamat_Rumah bertipe data structure Almt yang terdiri dari:
o Jalan bertipe data karakter yang menampung 30 karakter.
o Kota bertipe data karakter yang menampung 20 karakter.
o Kodepos bertipe data long integer.
• Tanggal_Lahir bertipe data structure Tgl yang terdiri dari:
o Tanggal bertipe data integer.
o Bulan bertipe data integer.
o Tahun bertipe data integer.

Jawaban:
#include <iostream.h>

struct Almt {
char Jalan[31];
char Kota[21];
long int Kodepos;
};

struct Tgl {
int Tanggal;
int Bulan;
int Tahun;
};

struct Pegawai {
char NIP[5];
char Nama[31];
Almt Alamat_Rumah;
Tgl Tanggal_Lahir;
};

11
void Memasukkan_Data(Pegawai &Data, int &TotalData) {
cout << endl
<< "Data Pegawai " << (TotalData + 1) << endl
<< "NIP: "; cin.getline(Data.NIP, 5);
cin.clear(); cin.sync();
cout << "Nama: "; cin.getline(Data.Nama, 31);
cin.clear(); cin.sync();
cout << "Jalan: "; cin.getline(Data.Alamat_Rumah.Jalan, 31);
cin.clear(); cin.sync();
cout << "Kota: "; cin.getline(Data.Alamat_Rumah.Kota, 21);
cin.clear(); cin.sync();
cout << "Kodepos: "; cin >> Data.Alamat_Rumah.Kodepos;
cin.clear(); cin.sync();
cout << "Tanggal: "; cin >> Data.Tanggal_Lahir.Tanggal;
cin.clear(); cin.sync();
cout << "Bulan: "; cin >> Data.Tanggal_Lahir.Bulan;
cin.clear(); cin.sync();
cout << "Tahun: "; cin >> Data.Tanggal_Lahir.Tahun;
cin.clear(); cin.sync();

TotalData = TotalData + 1;
}

void Menampilkan_Data(Pegawai Data[], int TotalData) {


cout << "NIP\tNama\t\tAlamat_Rumah\t\tTanggal_Lahir" << endl
<< "\t\tJalan\tKota\tKodepos\tTanggal-Bulan-Tahun" << endl;
for (int a = 1; a <= 80; a = a + 1) cout << "-";

for (int a = 0; a < TotalData; a = a + 1) {


cout << Data[a].NIP << "\t"
<< Data[a].Nama << "\t"
<< Data[a].Alamat_Rumah.Jalan << "\t"
<< Data[a].Alamat_Rumah.Kota << "\t"
<< Data[a].Alamat_Rumah.Kodepos << "\t"
<< Data[a].Tanggal_Lahir.Tanggal << "-"
<< Data[a].Tanggal_Lahir.Bulan << "-"
<< Data[a].Tanggal_Lahir.Tahun << endl;

12
}
}

void main() {
Pegawai Data[4];
int TotalData = 0;

for (int a = 0; a < 3; a = a + 1) Memasukkan_Data(Data[a], TotalData);


Menampilkan_Data(Data, TotalData);

cin.get();
}

13

You might also like