SP243-111065-503-17 516KB Sep 10 2011 08

advertisement
Pertemuan 17
ENUM & STRUCT
Dasar Pemrograman
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). Masingmasing 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
Rabu
Kamis
Jumat
Sabtu
Minggu






1
2
3
4
5
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, masingmasing 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.
2.
Buatlah sebuah program C++ yang menerima input
lima buah nilai dari mahasiswa. Data mahasiswa terdiri
dari npm, nama, mata kuliah, dan nilai, kemudian
tampilkan jumlah dan rata-rata dari nilai yang diinput.
3. Buatlah sebuah program C++ yang menerima input
empat buah data mahasiswa (terdiri dari npm, nama,
alamat, semester, ipk dan jumlah sks).
Jumlah sks yang dapat diambil berdasarkan ipk yang
diinput :
Jika ipk >= 3.00 maka sks = 24
Jika 2.50 <= ipk < 3.00 maka sks = 22
Jika 2.00 <= ipk < 2.50 maka sks = 20
Jika 1.75 <= ipk < 2.00 maka sks = 18
Jika 1.25 <= ipk < 1.75 maka sks = 16
selain itu sks = 12.
Setelah input selesai, tampilkan di layar data
mahasiswa berupa npm dan sks yang bisa diambil.
… tampilan akhir
-- Sekian --
Dasar Pemrograman
Renni Angreni, S.Kom.
Download