Anda di halaman 1dari 16

ENUM & STRUCT

Hernando Ivan Teddy, S.Kom

Dibuat oleh : Renni Angreni, S.Kom.


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, dll.
• Untuk berikutnya, kita dapat menggunakan
enum (enumerasi), struct (struktur) atau
class (kelas) sebagai nama tipe.
ENUM
• Enumerasi / enum biasa dipakai kalau kemungkinan
nilai dari suatu data telah diketahui, dan jumlah
kemungkinannya tidak banyak. Misalnya untuk
menyatakan nama hari, jenis kelamin, atau jenis
penjualan.
• Sintaxnya :
enum namaEnumerasi { nilai-nilai
yang sah};
• Contoh :
enum nama_hari { Senin, Selasa,
Rabu, Kamis, Jumat, Sabtu, Minggu };
#include <iostream>
#include <conio.h>
using namespace std;

void main()
{
enum nama_hari { Senin, Selasa, Rabu, Kamis,
Jumat, Sabtu, Minggu };
nama_hari hari1, hari2;
hari1 = Senin;
hari2 = Jumat;
int selisih = hari2 - hari1;
cout<<"Selisih hari = "<<selisih<<endl;

_getch();
}
• Pada contoh di atas terdapat pendeklarasian tipe enum berupa
nama_hari.
enum nama_hari { Senin, Selasa, Rabu,
Kamis, Jumat, Sabtu, Minggu };
• Pendeklarasian ini menyatakan bahwa anggota tipe enum
nama_hari berupa Senin, Selasa, Rabu, dst…
• Selanjutnya nama_hari hari1, hari2; merupakan
pernyataan untuk mendefinisikan variabel bernama hari1 dan
hari2 yang bertipe nama_hari (enum). Masing-masing
variabel dapat diisi dengan sebuah anggota dari tipe enum
nama_hari.
hari1 = Senin;
hari2 = Jumat;
• Adapun pernyataan int selisih = hari2 – hari1;
menunjukkan pengenaan operasi matematika pada variabel
bertipe enum dimungkinkan.
• Pada contoh ini variabel selisih akan bernilai 4 (hasil
eksekusi) karena variabel hari2 berisi Jumat yang bertipe
enum (Jumat  4), sedangkan variabel hari1 berisi Senin
yang juga bertipe enum (Senin  0) maka hasil int selisih
= hari2 – hari1; menghasilkan nilai selisih = 4 – 0 = 4.
enum nama_hari { Senin, Selasa, Rabu,
Kamis, Jumat, Sabtu, Minggu };
Senin  0
Selasa  1
Rabu  2
Kamis  3
Jumat  4
Sabtu  5
Minggu  6
• Anggota tipe enum dinyatakan dengan nilai integer secara
internal.
• Manfaat enum dalam C++ :
– Pengisian variabel lebih enak dibaca.
• Kekurangan :
– Ketika di output ke layar, yang muncul adalah angka
yang merepresentasikan nilai dari anggota enum
tersebut.
– Meskipun direpresentasikan sebagai angka,
programmer tidak dapat menugaskan angka ke tipe
data enumerasi.
STRUCT
struct atau terkadang disebut struktur bermanfaat
untuk mengelompokkan sejumlah data / variabel.
Variabel yang dikelompokkan bisa bertipe data sama
ataupun berbeda.
Struct didefinisikan dengan cara :
struct namaStruct {
anggota1 struct
anggota2 struct

};
• Setelah didefinisikan, sebuah variabel bertipe
struct dapat dibuat untuk digunakan dengan
perintah :
namaStruct namaVariabel;
• Setelah variabel struct didefinisikan, masing-masing
anggota struct diakses dengan menggunakan operator
"." seperti berikut :
namaVariabel.anggota1;
namaVariabel.anggota2;
#include <iostream>
#include <conio.h>
using namespace std;

struct InfoTanggal {
int tahun;
int bulan;
int tanggal;
};
void main()
{
InfoTanggal ultah;
ultah.tanggal = 30;
ultah.bulan = 2;
ultah.tahun = 2020;
cout<<"Saya ulang tahun tanggal : “
<<ultah.tanggal<<"-"<<ultah.bulan<<"-“
<<ultah.tahun;
_getch();
}
Penugasan STRUCT
Pemberian nilai terhadap suatu struktur dapat dilakukan
dengan bentuk :
variabel1 = variabel2;
Sepanjang kedua variabel adalah variabel struktur bertipe data
yang sama.
Misalknya suatu struct memiliki 3 anggota, maka pernyataan :
varStruct1 = varStruct2;
sama saja dengan
varStruct1.anggota1 = varStruct2.anggota1;
varStruct1.anggota2 = varStruct2.anggota2;
varStruct1.anggota3 = varStruct2.anggota3;
#include <iostream>
#include <conio.h>
using namespace std;

void main()
{
struct InfoTanggal {
int tahun;
int bulan;
int tanggal;
};
InfoTanggal ultahSaya, ultahDia;
ultahSaya.tanggal = 30;
ultahSaya.bulan = 2;
ultahSaya.tahun = 2020;
ultahDia = ultahSaya;
cout<<"Saya ulang tahun tanggal : "
<<ultahDia.tanggal<<"-"<<ultahDia.bulan
<<"-"<<ultahDia.tahun;
_getch();
}
Agregasi STRUCT
Agregasi struct adalah suatu istilah untuk kondisi dimana suatu
struktur merupakan anggota dari struktur yang lain.
Contoh pada struktur pegawai memiliki nomor induk, nama,
alamat, dan tanggal lahir. Tanggal lahir ini juga merupakan
struktur yang memiliki hari, bulan, dan tahun.
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;

void main()
{
struct data_tanggal {
int hari;
int bulan;
int tahun;
};

struct pegawai {
int nip;
string nama;
string alamat;
data_tanggal tgl_lahir;
};
… lanjut
lanjutan …
pegawai Pegawai1;
Pegawai1.nip = 201101;
Pegawai1.nama = "Albert";
Pegawai1.alamat = "Jl.Jend.Sudirman";
Pegawai1.tgl_lahir.hari = 7;
Pegawai1.tgl_lahir.bulan = 12;
Pegawai1.tgl_lahir.tahun = 1955;
cout<<"---Data Pegawai------------"<<endl;
cout<<"NIP : "<<Pegawai1.nip<<endl;
cout<<"Nama : "<<Pegawai1.nama<<endl;
cout<<"Alamat : "<<Pegawai1.alamat<<endl;
cout<<"Tanggal Lahir : "
<<Pegawai1.tgl_lahir.hari<<"-"
<<Pegawai1.tgl_lahir.bulan<<"-"
<<Pegawai1.tgl_lahir.tahun;

_getch();
}
LATIHAN
1. Buatlah sebuah program C++ yang menyediakan input
data dari user menggunakan struktur bernama Data
berisi nama, berat, dan tinggi badan. Kemudian
tampilkan data itu.