- Back to Home »
- Program »
- Tipe Data Lanjutan Bahasa C
Posted by : Panji Maulana Putra
Monday, November 27, 2017
TIPE DATA LANJUTAN
Bahasa C
mempunyai lima tipe data dasar, yaitu int, float, double, chardan void.
Disamping tipe data dasar ini, bahasa C juga menyediakan tipe data
enumerasi,struktur, medan digit(bit field) dan union. Sebuah kata kunci typedef
bukan suatu tipe data, tetapi dapat digunakan untuk mendefinisikan suatu nama
tipe data menjadi tipe data lainnya.
1. Enumerasi
Enumerasi suatu tipe data yang mempunyai
elemen-elemen bernilai konstatnta dengan urutan yang sudah tertentu.Nilai-nilai
tersebut berupa nilai integer. Nama
enumerasi boleh tidak ditulis jika tidak digunakan untuk enumerasi lain.
Deklarasi
enum Nama_tipe { elemen1,elemen2,…};
Contoh : enum {Minggu, senin,selasa, rabu,
kamis,jumat,sabtu};
printf(“%d%d%d%d%d%d”,minggu,senin,selasa,rabu,kamis,jumat,sabtu);
Output
: 0123456
Inialisasi
enum {Minggu, senin,selasa =10,
rabu, kamis,jumat =23,sabtu};
printf(“%d %d %d
%d %d”,minggu,senin,selasa,rabu,kamis,jumat);
output : 0 1 10 11 12 23
Deklarasi variabel enum : Nama_tipe nama_variabel ;
Contoh :
#include
<stdio.h>
main () { enum
nama_hari //deklarasi enum
{senin,selasa,rabu,kamis,jumat,sabtu} hari1,hari2 ;
hari1= senin; hari2 = jumat;
printf( selisih hari = %d”, hari2-hari1); }
output : selisih hari = 4
ket : hasil
didapat dari jumat – senin = 4 – 0 = 4
hari1 dan hari2 adalah
variable bertipe enum
bila didefinisikan terpisah
dengan deklarasi enum maka ditulis menjadi
nama_hari hari1,
hari2;
2.
Struktur
adalah suatu
pengelompokan dari variable-variabel yang bernaung dalam satu nama yang sama.
Variabel-variabel yang membentuk suatu strukur disebut sebagai elemen atau
anggota struktur. Dengan demikian suatu struktur dapat berisi dengan
elemen-elemen data bertipe int, float, char dan lain-lain.
Deklarasi
Struct Nama_Struktur { elemen/tipe data
struktrur ; } ;
Contoh :
struct Data {
int
tinggi ;
char
alamat[30];
};
variable
struktur dideklarasikan dengan : struct Nama_struktur Nama_variable;
Contoh : struct Data Dian, Andi; // Dian dan Adi variable dari struct
Data
Cara lain mendeklarasikan variable struktur adalah
digabung dengan deklarasi struct dengan bentuk sbb :
struct Data { int tinggi;
char Alamat[30];
} Dian, Adi;
Inisialisasi
Variabel-varibel
struct dapat langsung diberi nilai awal.
Contoh
: struct Data {
int tinggi;
char
Alamat[30];
} Dian, Adi = { 170,
“jl.mawar 2”} ;
nilai awal
diberikan pada variable Adi dengan tinngi 170 dan alamat “jl.Mawar 2”
Bila deklarasi
variable terpisah dengan deklarasi nama dan tipe data strukturnya, ditulis
menjadi : struct Data Dian , Adi
={170, “jl.mawar 2”};
Mengakses
Elemen-elemen struktur.
Bentuk :
variable_struktur.nama_anggota
Contoh : Dian.tinggi
= 165;
Contoh
program1 :
#include
<stdio.h>
main () {
struct
Data // deklarasi struktur dengan
nama Data
{ int Mid, Uas;
int
Nilai_akhir; } ;
Data
Dian = {80,90}, Adi = { 70, 60};
Dian.Nilai_Akhir
= Dian.Mid*Dian.Uas / 2 ;
Adi.Nilai_Akhir
= Adi.Mid*Adi.Uas/2;
printf(“Nilai
Dian : %d \n”, Dian.Nilai_Akhir);
printf(“Nilai
Adi : %d \n”, Adi.Nilai_Akhir);
}
Output : Nilai
Dian : 85
Nilai Adi : 65
3.
Union
Adalah suatu struktur yang elemen-elemenya menempati
meory yang sama. Untuk penghematan memory. Deklarasi union serta deklarasi
variabel sama seperti struct dengan menggunakan kata kunci union.
Contoh sama
seperti program1 pada struktur :
union Data // deklarasi union dengan
nama Data
{ int Mid, Uas;
int
Nilai_akhir; } ;
Data Dian = {80,90}, Adi = { 70, 60};
Perbedaan
dengan struck adalah pada struct Dian dan Adi menempati lokasi memory yang
berbeda tetapi pada union Dian dan Adi menempati lokasi yang sama.
- Medan Digit binary
Operasi bit dengan bahasa C didasarkan pada suatu
struktu yang mempunyai elemen-elemen berupa medan digit binary (bit
field). Tiap bit field dapat ditentukan
banyaknya bit yang akan diwakilinya, Pendeklasian bit filed sama seperti
struktur. Bit filed hanya dapat didiklarasikan dengan tipe int, signed atau
unsigned.
Contoh ;
struct tanggal { unsigned hari : 5;
unsigned bulan : 4;
unsigned tahun : 78; } ;
keterangan :
elemen hari diberi nilai 5 bit berarti dapat mewakili 5 nilai 0 s/d 1 cukup
untuk mewakili nilai hari dalam 1 bulan.
- Typedef
Digunakan
untuk mendefinisikan kembali suatu nama tipe data yang baru berdasarkan dengan
tipe data yang lama.
Contoh :
Typedef float Pecahan;
Pecahan Nilai;
Akan
membuat tipe data yang baru yaitu Pecahan yang ekivalen dengan tipe data float.
Maka variabel Nilai bertipe pecahan sama dengan float Nilai ;