aLways thiNk +

STRUCT Dalam C++

Posted on: March 6, 2009

Definisi Struktur (struct) sendiri adalah kumpulan dari variabel yang dinyatakan dengan sebuah nama , dengan sifat setiap variabel dapat memiliki tipe yang berlainan.

Dalam pemrograman C++, jika kita membuat suatu program yang memerlukan berbagai tipe data yang akan digunakan. Tentunya dengan nama variable yang banyak pula. Dalam program yang sederhana, jika kita manggunakan sedikit variable tentu tidak jadi masalah. Akan tetapi jika kita akan membuat sebuah program yang lebih kompleks, dengan berbagai macam nama dan tipe variable dalam pendeklarasianya. Dengan struct, kita bisa mengelompokkan berbagai nama dan tipe variable tersebut sesuai dengan kelompoknya. Hal ini tentunya bisa berguna untuk memudahkan dalam mengelompokkan sebuah variable. Sebagai contoh umum, ada terdapat berbagai nama variable : nama, npm, alamat, dll. Variabel – variable tersebut dapat kita kelompokkan menjadi satu dengan nama data_mahasiswa. Kemudian jika terdapat variable mata_kuliah, nilai, sks, kelas, dll dapat kita kelompokkan menjadi satu dengan nama krs. Itulah sebagian gambaran umum tentang struct. Masih bingung karena bahasa yang terlalu beribet? Klo gitu, Langsung saja ke teori. Okey..

Dalam mendeklarasikan struct, ada beberapa cara penulisan yang biasa digunakan.

Pertama :

struct nama_struct {

tipe_data_1 nama_var_1;

tipe_data_2 nama_var_2;

tipe_data_3 nama_var_3;

……

};

Yang kedua adalah dengan deklarasi menggunakan typedef.

typedef struct {

tipe_data_1 nama_var_1;

.

.

tipe_data_n nama_var_n;

} nama_struct;

Kemudian untuk mendeklarasikan sebuah variable dengan tipe data struct yang telah dibuat sebelumnya adalah :

struct tipe_struct nama_variabel;

Jika pendeklarasian struct sebelumnya menggunakan typedef, maka untuk mendeklarasikan sebuah variable dengan tipe data struct adalah :

tipe_struct nama_variabel;

Dan untuk mengakses sebuah struct adalah dengan menggunakan operator titik (.)

nama_var_struct . nama_var_elemen;

NESTED STRUCT

Di dalam sebuah struct dapat dimungkinkan terdapat sebuah struct lagi. Jadi hal ini dapat diartikan struct di dalam struct. Hampir mirip nested loop, yaitu for di dalam for.

Contoh :

struct tanggal {

int hari;

int bulan;

int tahun;

};

struct karyawan {

char NIP [10];

char nama [20];

struct tanggal tgl_masuk;

float gaji;

};

STRUCT OF ARRAY

Sebuah struct yang di dalamnya tedapat variable dengan tipe data array.

Contoh :

struct data {

char nama[20];

char alamat[100];

};

ARRAY OF STRUCT

Sebuah array yang setiap data elemennya bertipe struct. Umumnya dipakai untuk menyimpan object data yang terstruktur, misal: data mahasiswa, karyawan, buku, barang, dsb.

Contoh :

typedef struct {

char npm [10];

char nama [20];

char alamat [30];

unsigned angkatan;

float ipk;

} mahasiswa ;

mahasiswa data[100];

// deklarasi var, menyiapkan 100 data dengan tipe data mahasiswa (struct yang telah dibuat sebelumnya).

CONTOH PROGRAM

Program untuk memasukkan data mahasiswa.

Source code :

#include “stdio.h”

#include “string.h”

#include “conio.h”

typedef struct {

char npm [10];

char nama [20];

char alamat [30];

int angkatan;

float ipk;

} mhs ;

void main()

{

mhs student[100];

char lagi = ‘y’; int i;

for( i = 0; lagi == ‘y’; i++)

{

printf(“nNPM = “); gets(student[i].npm);

printf(“Nama = “); gets(student[i].nama);

printf(“Alamat = “); gets(student[i].alamat);

printf(“Angkatan = “); scanf(“%i”, &student[i].angkatan);

printf(“IPK = “); scanf(“%f”, &student[i].ipk);

printf(“nMasukkan Lagi (y/t) ? “); lagi = getche(); flushall();

}

printf(“nnData yang sudah dimasukkan adalah:n”);

for( int j = 0; j < i; j++)

{

printf(“nNPM : %s”, student[j].npm);

printf(“nNama : %s”, student[j].nama);

printf(“nAlamat : %s”, student[j].alamat);

printf(“nAngkatan : %i”, student[j].angkatan);

printf(“nIPK : %f n”, student[j].ipk);

}

}

OUTPUT PROGRAM

Contoh Program

Contoh Program

ANALISA PROGRAM

Dalam program di atas, kita mendeklarasikan sebuah struct dengan nama mhs. Dalam struct mhs, terdapat lima variable yang dideklarasikan, yaitu array npm, nama, alamat dengan tipe char, kemudian angkatan dengan tipe integer, serta ipk dengan tipe float.

Setelah mendeklarasikan sebuah struct, masuk ke fungsi main. Di dalam fungsi main, terlebih dahulu mendeklarasikan sebuah array student dengan tipe mhs dengan ukuran 100. Maksudnya kita bisa menginput sampai dengan 100 data mahasiswa ke dalam array student. Inilah yang disebut dengan array of struct seperti yang telah dijelaskan sebelumnya.

Kemudian program masuk ke dalam looping untuk memasukkan data. Maksud dari script gets(student[i].npm); adalah perintah untuk memasukkan seduah data ke array student yang mengakses variabel npm yang ada di dalam struct dengan urutan data ke i.

Looping akan berhenti jika user menginputkan karakter selain ‘y’ yang artinya keluar dari looping. Kemudian program akan menampilkan data yang sudah diinputkan.

UNION

Union memungkinkan suatu lokasi memori ditempati oleh 2 atau lebih variabel dengan tipe data berlainan. Jumlah memory yang diperlukan untuk menampung sebuah variabel union ditentukan oleh field terbesar. Jika elemen-elemen sebuah union terdiri dari data bertipe integer dan char maka memory yang dibutuhkan adalah sebesar int. Jika elemen-elemen sebuah union berupa int, float, dan char maka memory yang diperlukan adalah sebesar float.

Dalam pendeklarasian union, sama dengan cara mendeklarasikan sebuah struct. Cara mengakses union juga sama seperti struct.

Contoh :

union bil_bulat
{ 
unsigned int no; 
unsigned char nama[2];
} ;

20 Responses to "STRUCT Dalam C++"

definisi struct lebih tepatnya adalah dimulai dgn tipe data, bukan kumpulan variabel. keep learning :)

hehee.. keren nih blog nx.,.., hmmmm.,…
rating ********

^^.

nih listing program dah bagus,,cuman kurang rapi dikit outputnya..coba di tambah dengan clear screen biar tampilan output gx numpuk sama input nya.,
keep learning kwan.. ^_^

okok.. iya yah.. bener jg.. thx, masukanx.. :D

mas, kok pas sya copy.. gak bsa jalan..
saya make turbo c++
gmn solusinya mas??

hmpt di compile masih ada yang salah kk ^^
GBU ^^

makasih.. errornya bisa bnyk sebab, bukan krna scriptnya aja.. :D

kalo d turbo c++ itu ga ada fitur conio.h nya

maka dari itu ga bisa d compile , coba sebutin apa aja error nya
semoga bisa bantu :)

mas mau tanya untuk struktur data NIM, Nama Mahasiswa dan lain-lain itu pake class atau char

class beda ama char loh ya.. class itu oop.. klo char baru tipe data.. klo datanya berupa angka saja bisa pake int. klo berupa karakter baru memakai char. :D

salam kenal…ko saya compile error banyak y sampai 26…
masalahnya dimana tuh mas???

erornya bunyinya apaan?? banyak sebab sih, liat erornya apa dulu.. :))

error nya ada di tanda petik bro..ganti aja tanda petiknya.

Ah lieur

mas mau nanya representasi struct di memory gmana ya???

kalau struktur dan array terus hitung gajinya perbulan terus outputnya berupa tabel gimana? tolong dibalas ya. terimakasih.

Mas programx jalan tapi kenapa waktu isi NPM tiba2 programx Inactive???

nice info bro.. i like it.. :)
slam knal

g penting bgt bwt aq.,.:P

lumayan membingungkan
tpi,info baru to my brain

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: