Pemrograman C++
(Data Structures)
Eric Prakarsa Putra
ITBSS Pontianak
Pengenalan
Data Structures merupakan kumpulan dari data
element yang digabung menjadi satu bagian dengan
satu nama.
Tiap elemen dikenal sebagai anggota struktur
Tiap anggota boleh berbeda tipe data dan berbeda
panjang data
Struct biasanya digunakan sebagai representasi dari
struktur berkas data digital.
Deklarasi Struct di C++
struct nama_struktur
{
tipe_data_elemen1 nama_elemen1;
tipe_data_elemen2 nama_elemen2;
…
…
};
Contoh deklarasi struct
struct produk
{
char nama[30];
long harga;
int jumlah;
};
Penggunaan Struct
Pada implementasi struct, struct harus dideklarasikan
menjadi sebuah objek agar dapat digunakan
anggota/element yang ada didalamnya
Cara deklarasi
Nama_struct nama_objek_struct;
void main()
{
ID myID;
myID.NIM=4566;
myID.UTS=78;
myID.nilaiAkhir=’B’;
printf(“Aku : %d, %0.2f, %c”, myID.NIM, myID.UTS,
myID.nilaiAkhir)’
}
typedef struct{int NIM;float UTS;char nilaiAkhir;}ID;
void main()
{
ID myID, yourID;
myID.NIM=4566;
myID.UTS=78;
myID.nilaiAkhir=’B’;
yourID.NIM=7902;
yourID.UTS=100;
yourID.nilaiAkhir=’A’;
printf(“Aku : %d, %0.2f, %c”, myID.NIM, myID.UTS,
myID.nilaiAkhir);
printf(“\nKamu : %d, %0.2f, %c”, yourID.NIM, yourID.UTS,
yourID.nilaiAkhir);
}
void main()
{
ID myID, yourID,BagongID;
myID.NIM=4566;
myID.UTS=78;
myID.nilaiAkhir=’B’;
yourID.NIM=7902;
yourID.UTS=100;
yourID.nilaiAkhir=’A’;
printf(“Nim Bagong : ”);scanf(“%d,&BagongID.NIM”);
printf(“UTS Bagong : ”);scanf(“%f,&BagongID.UTS”);
printf(“Nilai Akhir Bagong : ”);scanf(“%c,
&BagongID.nilaiAkhir”);
printf(“Aku : %d, %0.2f, %c”, myID.NIM, myID.UTS,
myID.nilaiAkhir);
printf(“\nKamu : %d, %0.2f, %c”, yourID.NIM, yourID.UTS,
yourID.nilaiAkhir);
printf(“\nBagong : %d, %0.2f, %c”, BagongID.NIM,
BagongID.UTS, BagongID.nilaiAkhir);
}
Contoh Implementasi Struct
#include <iostream.h>
#include <conio.h>
struct anggota
{ int no_anggota;
char nama[30];
};
void main()
{
anggota agt;
cout<<“No. anggota : “; cin>>agt.no_anggota;
cout<<“No. Anggota adalah : “ << agt.no_anggota;
getch();
}
Contoh Struct sebagai Pointer
#include <iostream.h>
#include <conio.h>
struct anggota
{ int no_anggota;
char nama[30];
};
void main()
{
anggota *agt = new anggota;
cout<<"No. anggota : "; cin>>agt->no_anggota;
cout<<"No. anggota adalah : " << agt->no_anggota;
getch();
}
Contoh Struct sebagai Array
#include <iostream.h>
#include <conio.h>
struct anggota
{ int no_anggota;
char nama[30];
};
void main()
{
anggota agt[10]; //data anggota ada 10
cout<<"No. anggota ke 2 : "; cin>>agt[1].no_anggota;
cout<<"No. anggota adalah ke 2 : " << agt[1].no_anggota;
getch();
}
Kasus 1
Buatlah sebuah struktur untuk bentuk data sebagai
berikut:
struct data_mhs
{
char nim[9];
char nama[30];
char gender;
char alamat[255]
};
Kasus 2
Buatlah struktur sebagai berikut:
Nama_matakuliah Nilai tugas Nilai_uts Nilai_uas
char(20) float float float
Jawab Kasus 2
Bentuk struktur nya yaitu:
struct nilai_mk
{
char nm_mk[20];
float nilai_tugas;
float nilai_uts;
float nilai_uas;
};
Kasus 3
Buatlah struktur kombinasi seperti berikut:
NIM Nama Gender Alamat nilai
char (9) char(30) char(1) char(255) nilai_mk
nilai_mk
Nama_matakuliah Nilai tugas Nilai_uts Nilai_uas
char(20) float float float
struct mhs
{
char nim[9];
char nama[30];
char gender;
char alamat[255];
nilai_mk nilai;
};
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
//deklarasi struct
typedef struct{
int jam;
int menit;
int detik;
}Jam;
//fungsi yang mengubah satuan waktu ke detik
int ConvertToSecond(Jam J)
{
return((J.jam*3600)+(J.menit*60)+J.detik);
}
void main()
{
Jam J;
int pilihan;
do
{
system("CLS");
printf("Menu");
printf("\n1. Input data");
printf("\n2. Tampil");
printf("\n0. Keluar");
printf("\nMasukan pilihan =");scanf("%d",&pilihan);
switch(pilihan)
{
case 1:
printf("\n\nInput data");
printf("\nJam = ");scanf("%d",&J.jam);
printf("Menit = ");scanf("%d",&J.menit);
printf("Detik = ");scanf("%d",&J.detik);
break;
case 2:
printf("\nTampil data");
printf("\nJam = %d",J.jam);
printf("\nMenit = %d",J.menit);
printf("\nDetik = %d",J.detik);
printf("\nTotal detik = %d
detik",ConvertToSecond(J));
break;
}
}while(pilihan!=0);
}