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 1
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 ; int ; int ; date; date dob, tgl[8]; dob tgl 0 1 2 3 4 Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala http://www.informatika.unsyiah.ac.id 2
Array bertipe Struct (Lanjutan) Penjelasan terhadap array bertipe struct tanggal yang dideklarasi sebelumnya Contoh sebelumnya memperlihatkan bagaimana sebuah struct tanggal yang memiliki tiga member, dan, 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. = ; dob. = 11; dob. = 190; Mengakibatkan member dari struct dob memiliki nilai: 11 190 dob Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala http://www.informatika.unsyiah.ac.id 3
Contoh 2: int i; for(i=0; i<8; i++){ tgl[i]. = +i; tgl[i]. = 2+i; tgl[i]. = 190+i; for(i=0; i<8; i++){ printf("dob mhs ke %d: %d-%d-%d\n", i+1,tgl[i].,tgl[i].,tgl[i].); Nilai setiap member dari array tgl per slot adalah: 8 9 10 11 12 2 3 4 8 9 190 191 192 193 194 19 19 19 tgl 0 1 2 3 4 Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala http://www.informatika.unsyiah.ac.id 4
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",, ); /* 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 terbit maka 1. Deklarasikan sebuah struct untuk menghimpun data buku tersebut. 2. Deklarasikan array berukuran bertipe struct tersebut. 3. Buat fungsi set yang dapat digunakan untuk menentukan judul, nama pengarang, jumlah halaman, penerbit, dan terbit. 4. Input 3 buah data buku secara lengkap (gunakan perulangan).. 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