struct dan fungsi - jurusan informatikainformatika.unsyiah.ac.id/tfa/p/inf108-m16.pdf · struct dan...
TRANSCRIPT
Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 1
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 2
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; date dob, tgl[8];
hari
bulan
tahun
dob
tgl 7 6 5 4 3 2 1 0
hari
bulan
tahun
hari
bulan
tahun
hari
bulan
tahun
hari
bulan
tahun
hari
bulan
tahun
hari
bulan
tahun
hari
bulan
tahun
hari
bulan
tahun
Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 3
Array bertipe Struct (Lanjutan) Penjelasan terhadap array bertipe struct tanggal ya ng 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 = 5; dob.bulan = 11; dob.tahun = 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 4
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:
tgl 7 6 5 4 3 2 1 0
5
2
1970
6
3
1971
7
4
1972
8
5
1973
9
6
1974
10
7
1975
11
8
1976
12
9
1977
Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 5
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 6
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