Bahasa pemrograman C mempunyai tipe data yang lumayan kompleks, yakni struct. Di lanjutan panduan belajar bahasa C di Source Code Program kali ini, kita akan bahas lebih di mengenai Pengertian Struct dan Contoh Kode Program Tipe Data Struct bahasa C.
Pengertian Tipe Data Struct
Di bahasa C, struct ialah tipe data bentukan yang terdiri dari kumpulan tipe data lain. Struct mirip seperti array, tapi struct dapat menampung lebih dari 1 jenis tipe data. Bila sebelumnya sobat pernah belajar bahasa pemrograman Pascal, struct di bahasa C betul-betul mirip seperti record di Pascal.
Tipe data struct cocok dimanfaatkan untuk menampung data berkelompok. Misalnya saya ingin mendesain biodata pelajar. Setiap pelajar mempunyai data nama, nama sekolah serta jumlah uang saku. Menggunakan cara lazim, seluruh data ini dapat ditampung ke di 3 variabel berikut:
1 |
char nama_siswa01[50] = Andi Permana Nugroho;<br/>char nama_sekolah_siswa01[50] = SMA 1 Lumut Ijo;<br/>unsigned int uang_saku_siswa01 = 10000; |
Untuk pelajar kedua, tinggal mendesain penamaan yang sama, yakni nama_siswa02, nama_sekolah_siswa02 dan uang_saku_siswa02.
Cara ini tak salah, namun setiap variabel seolah-olah terpisah satu sama lain. Satu-satunya yang menghubungkan ketika variabel hanya dari penamaan saja. Kita pun tak dapat menggunakan array karena 3 data di atas mempunyai tipe data yang berbeda. Di kasus seperti inilah tipe data struct cocok digunakan.
Cara Pemakaian Tipe Data Struct
Tipe data struct ialah tipe data bentukan, dimana kita mesti bikin dulu seperti apa isi komponen dari struct, baru kemudian diakses dari kode program utama.
Kita akan bahas dengan contoh kode program berikut ini:
1 |
#include <stdio.h><br/><br/>struct Pelajar {<br/> char nama[50];<br/> char sekolah[50];<br/> unsigned int uangSaku;<br/>};<br/><br/>int main(void)<br/>{<br/> struct Pelajar pelajar01;<br/><br/> strcpy(pelajar01.nama, Andi Permana Nugroho);<br/> strcpy(pelajar01.sekolah, SMA 1 Lumut Ijo);<br/> pelajar01.uangSaku = 10000;<br/><br/> printf(%s bersekolah di %s , pelajar01.nama, pelajar01.sekolah);<br/> printf(dengan uang saku %i per harin, pelajar01.uangSaku);<br/><br/> return 0;<br/>} |
Hasil Kode Program:
Proses penyusunan tipe data struct ditulis sebelum main(), yang di contoh ada di baris 3 – 7.
Setelah keyword struct, diikuti dengan nama identitas atau nama tipe data yang kita inginkan. Di contoh ini saya mendesain tipe data Pelajar. Tentu saja sobat dapat menggunakan nama lain.
Sebuah struct terdiri dari berjenis-jenis variabel yang ditulis di antara tanda kurung kurawal. Untuk tipe data struct Pelajar, saya mendesain variabel nama, sekolah dan uangSaku. Setiap variabel tetap ditulis tipe data asalnya.
Pedoman di baris 3 – 7 dimanfaatkan untuk mendesain struktur basic struct. Agar dapat digunakan, kita mesti mendesain variabel baru dengan tipe data Pelajar, yakni tipe data bentukan dari struct.
Masuk kode kode program utama (main), saya mendefinisikan variabel pelajar01 selaku struct Pelajar di baris 11. Kini, variabel pelajar01 ialah tipe data bentukan yang terdiri dari 3 element, yakni:
- pelajar01.nama
- pelajar01.sekolah
- pelajar01.uangSaku
Tanda titik dimanfaatkan untuk mengakses sub struktur dari pelajar01. Semua ini sesuai dengan pendefinisian struct Pelajar.
Proses penginputan data ke di variabel pelajar01 dilakukan di baris 13 – 15. Karena nama dan sekolah ialah string, karenanya saya mesti menggunakan manfaat strcpy. Sedangkan untuk uangSaku dapat seketika diisi dari yang cara penginputan variabel lazim.
Di bagian ahir kode program, saya menampilkan ketiga data pelajar01. Caranya sama seperti variabel lazim, hanya saja kini kita menggunakan struct Pelajar sehingga cara aksesnya ialah pelajar01.nama, pelajar01.sekolah, dan pelajar01.uangSaku.
Bagaimana jikalau ada 3 pelajar? Tak masalah, lumayan bikin variabel pelajar01, pelajar02, dan pelajar03 selaku struct Pelajar:
1 |
#include <stdio.h><br/><br/>struct Pelajar {<br/> char nama[50];<br/> char sekolah[50];<br/> unsigned int uangSaku;<br/>};<br/><br/>int main(void)<br/>{<br/> struct Pelajar pelajar01;<br/> struct Pelajar pelajar02;<br/> struct Pelajar pelajar03;<br/><br/> strcpy(pelajar01.nama, Andi Permana);<br/> strcpy(pelajar01.sekolah, SMA 1 Lumut Ijo);<br/> pelajar01.uangSaku = 10000;<br/><br/> printf(%s bersekolah di %s , pelajar01.nama, pelajar01.sekolah);<br/> printf(dengan uang saku %i per harin, pelajar01.uangSaku);<br/><br/> strcpy(pelajar02.nama, Lisa Permata Sari);<br/> strcpy(pelajar02.sekolah, SMA 1 Biru Langit);<br/> pelajar02.uangSaku = 30000;<br/><br/> printf(%s bersekolah di %s , pelajar02.nama, pelajar02.sekolah);<br/> printf(dengan uang saku %i per harin, pelajar02.uangSaku);<br/><br/> strcpy(pelajar03.nama, Jessica Stephany);<br/> strcpy(pelajar03.sekolah, SMA 1 Merah Jambu);<br/> pelajar03.uangSaku = 75000;<br/><br/> printf(%s bersekolah di %s , pelajar03.nama, pelajar03.sekolah);<br/> printf(dengan uang saku %i per harin, pelajar03.uangSaku);<br/><br/> return 0;<br/>} |
Hasil kode program:
1 |
Andi Permana bersekolah di SMA 1 Lumut Ijo dengan uang saku 10000 per hari<br/>Lisa Permata Sari bersekolah di SMA 1 Biru Langit dengan uang saku 30000 per hari<br/>Jessica Stephany bersekolah di SMA 1 Merah Jambu dengan uang saku 75000 per hari |
Kode program diatas memang lumayan panjang karena ada 3 data pelajar yang mesti diisi. Namun ini hanya pengembangan dari kode program kita sebelumnya.
Input Tipe Data Struct dengan gets dan scanf
Agar lebih menantang, bagaimana jikalau proses input data dilakukan secara interaktif? Yakni meminta user menginput data tersebut.
Berikut kode programnya:
1 2 |
#include & lt;stdio.h><br/><br/>struct Pelajar {<br/> char nama[50];<br/> char sekolah[50];<br/> unsigned int uangSaku;<br/>};<br/><br/>int main(void)<br/>{<br/> struct Pelajar pelajar01;<br/><br/> printf(==++ Pendaftaran Pelajar Baru ++== n);<br/> printf(n);<br/><br/> printf(Nama: );<br/> gets(pelajar01.nama);<br/><br/> printf(Sekolah: );<br/> gets(pelajar01.sekolah);<br/><br/> printf(Uang saku: );<br/> scanf(%i,pelajar01.uangSaku);<br/><br/> printf(Hasil: n);<br/><br/> printf(%s bersekolah di %s , pelajar01.nama, pelajar01.sekolah);<br/> printf(dengan uang saku %i per harin, pelajar01.uangSaku);<br/><br/> return 0;<br/>} |
Saya masih menggunakan struct Pelajar, dan pun variabel pelajar01. Bedanya, proses input dilakukan dari manfaat gets dan scanf.
Ketika program dijalankan, user akan diminta untuk mengisi data nama, sekolah dan uangSaku. Ketiga data ini akan disimpan ke di pelajar01.nama, pelajar01.sekolah, dan pelajar01.uangSaku.
Di panduan ini kita telah membahas diantara tipe data bentukan di bahasa C, yakni struct. Berikutnya akan dideskripsikan mengenai Pengertian Typedef dan Cara Penggunaan Typedef Struct
Sumber https://www.duniailkom.com/