Mendefinisikan tipe data baru
Dalam mendeklarasikan variabel, kita menuliskan: tipeData namaVariabel;
tipeData yang bisa dipakai, antara lain: int, unsigned int, long int, float, double, char, string, dan sebagainya.
Untuk berikutnya, kita dapat menggunakan enum (enumerasi), struct (struktur) sebagai nama tipe.
Enum
Enumerasi biasa dipakai kalau kemungkinan nilai dari suatu data telah diketahui, dan jumlah kemungkinannya tidak banyak.
Misalkan untuk menyatakan nama hari, jenis kelamin, atau jenis penjualan.
Sintaksnya:
enum namaEnumerasi { nilai-nilai yang sah }
enum hari { Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu };
int main()
{
enum NamaHari
{Senin, Selasa, Rabu,
Kamis, Jumat, Sabtu, Minggu};
NamaHari hari1, hari2;
hari1 = Senin;
hari2 = Jumat;
int selisih = hari2 – hari1;
cout<<“Selisih hari = “<<selisih;
getch();
return 0;
}
Enum di c++
Manfaat:
Pengisian variabel lebih enak dibaca.
Kekurangan:
Ketika di-output ke layar, yang muncul adalah angka yang merepresentasikan nilai tersebut.
Meskipun direpresentasikan sebagai angka, programmer tidak dapat menugaskan angka ke tipe data enumerasi.
Struct
Struct atau terkadang disebut struktur, bermanfaat untuk mengelompokkan sejumlah variabel.
Variabel yang dikelompokkan bisa bertipe sama ataupun berbeda.
Struct bisa diumpamakan sebagai sebuah record, misalnya: Mahasiswa
Struct Mahasiswa memiliki property atau atribut atau variabel atau field yang melekat padanya:
- NIM yaitu karakter sejumlah 8
- Nama yaitu karakter
- IPK yaitu bilangan pecahan
Bentuk umum pendeklarasian struct
Deklarasi diluar main()
typedef struct nama_struct{
tipe_data <nama_var>;
tipe_data <nama_var>;
….
};
Atau
Deklarasi didalam main()
struct {
tipe_data <nama_var>;
tipe_data <nama_var>;
….
} nama_struct;
Pendeklarasian dan penggunaan Struct (1)
typedef struct Mahasiswa {
char NIM[8];
char nama[50];
float ipk;
};
Atau
struct {
char NIM[8];
char nama[50];
float ipk;
} mhs;
Cara penggunaan struct dan pengaksesan elemen-elemennya
Penggunaan struct dilakukan dengan membuat suatu variabel yang bertipe struct tersebut
Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.)
main()
{
struct
{
char nim[8];
char nama[50];
float ipk;
} mahasiswa;
clrscr();
cout<<“masukan NIM = “;
cin>>mahasiswa.nim;
cout<<“masukan Nama = “;
cin>>mahasiswa.nama;
cout<<“masukan ipk Akhir = “;
cin>>mahasiswa.ipk;
cout<<“\n\nData Yang di Inputkan adalah : \n\n”;
cout<<“NIM = “<<mahasiswa.nim<<endl;
cout<<“Nama = “<<mahasiswa.nama<<endl;
cout<<“ipk Akhir = “<<mahasiswa.ipk<<endl;
getch();
}
typedef struct Mahasiswa
{
char NIM[9];
char nama[30];
float ipk;
};
void main()
{
Mahasiswa mhs; //variabel mhs bertipe data Mahasiswa
clrscr();
printf(“NIM = “);scanf(“%s”,mhs.NIM);
printf(“Nama = “);scanf(“%s”,mhs.nama);
printf(“IPK = “);scanf(“%f”,&mhs.ipk);
printf(“Data Anda : \n”);
printf(“NIM : %s\n”,mhs.NIM);
printf(“Nama : %s\n”,mhs.nama);
printf(“IPK : %f\n”,mhs.ipk);
getch();
}
Nested Structure
Nested Structure merupakan suatu Structure yang dapat digunakan didalam structure yang lainnya.
main()
{
struct dtmhs
{
char nim[9];
char nama[15];
};
struct dtnil
{
float nil1;
float nil2;
};
struct
{
struct dtmhs mhs;
struct dtnil nil;
} nilai;
cout<<“masukan NIM = “; cin>>nilai.mhs.nim;
cout<<“masukan Nama = “; cin>>nilai.mhs.nama;
cout<<“masukan Nilai UTS = “; cin>>nilai.nil.nil1;
cout<<“masukan Nilai UAS = “; cin>>nilai.nil.nil2;
cout<<“masukan NIM = “<<nilai.mhs.nim<<endl;
cout<<“masukan Nama = “<<nilai.mhs.nama<<endl;
cout<<“masukan Nilai UTS = “<<nilai.nil.nil1<<endl;
cout<<“masukan Nilai UAS = “<<nilai.nil.nil2<<endl;
}
Structure dengan Array
Penggunaan Array sering dikaitkan dengan Structure, sehingga membentuk Array dari Structure.
Deklarasi array of structure
struct
{
elemen_struktur;
…..
…..
} nama_tipe_struktur[jml_index];
CONTOH :
main()
{
int i, j=1;
struct {
char nim[5];
char nama[15];
float nilai;
} mhs[5];
clrscr();
for(i=0; i<2; i++)
{
cout<<“masukan NIM = “; cin>>mhs[i].nim;
cout<<“masukan Nama = “; cin>>mhs[i].nama;
cout<<“masukan Nilai Akhir = “; cin>>mhs[i].nilai;
}
for(i=0; i<2; i++)
{
cout<<“Data Ke – “<<j++<<endl;
cout<<“NIM = “<<mhs[i].nim<<endl;
cout<<“Nama = “<<mhs[i].nama<<endl;
cout<<“Nilai Akhir = “<<mhs[i].nilai<<endl;
}
getch();
}