Anda di halaman 1dari 6

Struct dan Fungsi

Pendahuluan
Pada pertemuan kali ini, materi yang akan dibahas berkaitan dengan struct dan cara mengirim data bertipe
struct tertentu ke dalam fungsi menggunakan konsep called-by-reference. Selain itu, pengiriman data bertipe
array of struct juga akan didiskusikan.

Objektif
 Memperlihatkan cara mendeklarasikan array bertipe struct
 Mendiskusikan cara mengakses member dari struct untuk tipe data array
 Memperlihatkan contoh mengirim struct dalam fungsi menggunakan konsep called-by-reference

Bahan Bacaan
Buku pegangan atau bahan bacaan lain yang menjelaskan tentang struct dan fungsi dalam bahasa
pemrograman C.

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala http://www.informatika.unsyiah.ac.id

Array bertipe Struct


Struct atau structure dalam ANSI/C digunakan untuk membuat tipe data yang terdiri dari beberapa anggota
(member) dengan tipe tertentu. Contoh mendeklarasi sebuah struct, sebagaimana telah dibahas sebelumnya,
adalah sebagai berikut:

typedef struct tanggal{


int hari;
int bulan;
int tahun;
}date;

hari
bulan
tahun
dob

date dob, tgl[8];

hari

hari

hari

hari

hari

hari

hari

hari

bulan

bulan

bulan

bulan

bulan

bulan

bulan

bulan

tahun

tahun

tahun

tahun

tahun

tahun

tahun

tahun

tgl

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala http://www.informatika.unsyiah.ac.id

Array bertipe Struct (Lanjutan)


Penjelasan terhadap array bertipe struct tanggal yang dideklarasi sebelumnya
Contoh sebelumnya memperlihatkan bagaimana sebuah struct tanggal yang memiliki tiga member hari,
bulan dan tahun, masing-masing bertipe int dideklarasikan. Kemudian menggunakan kata kunci typedef,
struct tanggal tersebut dibuat alias dengan nama date. Selanjutnya, variabel dob dan array tgl yang bertipe
date dideklarasikan. Ukuran dari array tgl adalah 8.
Cara mengakses anggota (member) dari sebuah struct menggunakan digunakan operator titik.
Contoh 1:
dob.hari
dob.bulan
dob.tahun

= 5;
= 11;
= 1970;

Mengakibatkan member dari struct dob memiliki nilai:


5
11
1970
dob

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala http://www.informatika.unsyiah.ac.id

Contoh 2:
int i;
for(i=0; i<8; i++){
tgl[i].hari = 5+i;
tgl[i].bulan = 2+i;
tgl[i].tahun = 1970+i;
}
for(i=0; i<8; i++){
printf("DoB mhs ke %d: %d-%d-%d\n", i+1,tgl[i].hari,tgl[i].bulan,tgl[i].tahun);
}
Nilai setiap member dari array tgl per slot adalah:

10

11

12

1970

1971

1972

1973

1974

1975

1976

1977

tgl

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala http://www.informatika.unsyiah.ac.id

Fungsi dengan Parameter Bertipe Struct


Contoh 3:
#include <stdio.h>
typedef struct vehicle{
char * jenis[30];
int jban;
int jgear;
}kendaraan_darat;
void set(kendaraan_darat *, char *, int, int);

/* prototipe fungsi */

void set(kendaraan_darat * kd, char * tipe, int b, int g){


strcpy(kd->jenis, tipe);
kd->jban = b;
kd->jgear = g;
}
int main(void){
kendaraan_darat v1, v2;
set(&v1, "truk", 6, 7);
/* mengirim alamat v1 yang bertipe struck */
set(&v2, "bajai", 3, 4); /* mengirim alamat v3 yang bertipe struck */
printf("Ciri-ciri truk: jlh ban %d, gear: %d\n", v1.jban. v1.gear);
printf("Ciri-ciri bajai: jlh ban %d, gear: %d\n", v2.jban. v2.gear);
return 0;
}

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala http://www.informatika.unsyiah.ac.id

Diskusi dan Latihan


Jika sebuah buku memiliki judul, nama pengarang, jumlah halaman, penerbit, dan tahun terbit maka
1. Deklarasikan sebuah struct untuk menghimpun data buku tersebut.
2. Deklarasikan array berukuran 5 bertipe struct tersebut.
3. Buat fungsi set yang dapat digunakan untuk menentukan judul, nama pengarang, jumlah halaman, penerbit,
dan tahun terbit.
4. Input 3 buah data buku secara lengkap (gunakan perulangan).
5. Buat fungsi show yang dapat digunakan untuk menampilkan informasi lengkap dari sebuah buku.

Diskusikan secara berkelompok

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala http://www.informatika.unsyiah.ac.id