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