Contact Form

Name

Email *

Message *

Tutorial Pemrograman C: Memahami Konsep Dasar Tipe Data Struct

Post a Comment

Apa yang dimaksud dengan Struct..??

Sebelum lanjut ke pembahasan mengenai Struct, kita sedikit ulas kembali mengenai tipe data.

Didalam bahasa C, Tipe data dibagi menjadi dua macam, yaitu:

- Tipe data standar (standard data type)

- Tipe data yang didefinisikan oleh user (user defined data type)

Tipe data standar merupakan tipe data yang telah didefinisan oleh kompiler / bahasa pemrograman itu sendiri.

Contoh tipe data standar yang sudah sering kita gunakan yaitu, seperti: int, float, char, double.

Sedangkan, tipe data buatan (user defined data type) merupakan tipe data yang didefinisikan sendiri oleh user sesuai dengan kebutuhan program yang akan dibuat.

Contoh tipe data buatan yang akan kita pelajari pada materi kali ini yaitu struct.

Struct atau Struktur merupakan tipe data didalam bahasa C yang berisi elemen (field) dari berbagai macam tipe data.

Jika didalam tipe data Array, elemen-elemennya berasal dari satu tipe data yang sama. Sedangkan didalam tipe data struct ini, elemen-elemennya berasal dari beragam tipe data.

Elemen-elemen yang dimaksud didalam Struct ini, merupakan sebuah variabel.

Berikut merupakan pendefinisian tipe data struct didalam program.

		
  	struct student{
       char nama[20];			// field I
       int NRP;						// field II
       char jurusan[20]; 	// field III
    };
  

Dari pendefinisian diatas, dapat kita ketahui karakteristik Struct sebagai berikut:

  • Terdiri atas sekumpulan variabel penyusun, atau biasa disebut sebagai field.
  • Tipe data dari masing-masing field boleh berbeda.
  • Tipe data yang digunakan oleh tiap-tiap field merupakan tipe data standar (int, float, char, dll.) ataupun tipe data yang didefinisikan oleh user, Misal: struct.
  • Elemen-elemen (field) yang ada didalamnya, ditulis diatara tanda kurung kurawal { }.


Struktur / struct didefinisikan dengan kata kunci / key struct.

Selanjutnya diikuti nama tipenya.

Pada Contoh diatas, struct student merupakan tipe data.

Jika kalian mengira bahwa struct merupakan tipe data, dan student merupakan nama variabel, Kalian salah besar!.

struct merupakan key / kata kunci untuk membuat tipe data.

Sedangkan student merupakan tipe datanya.

Yang perlu kalian ingat-ingat bahwa, pada materi kali ini kita sedang membuat tipe data buatan.



Deklarasi Struct

Setelah kita berhasil membuat tipe datanya, saatnya kita untuk mendeklarasikan variabel yang akan digunakan.

Berikut merupakan pendeklarasian variabel yang bertipe struct student.

  	
  	#include <stdio.h> 
struct student{   char nama[20];   int NRP;   char jurusan[20]; }; int main(){   struct student mahasiswa; // Deklarasi variabel mahasiswa yang bertipe struct student return 0; }

Pada contoh diatas, variabel mahasiswa bertipe struct student.

Jika masih bingung, perhatikan contoh berikut:

		
  	int usia;										// Var usia bertipe int
    char gender;								// Var gneder bertipe char
    char nama[20];							// Var nama[] bertipe Array of char
    struct student mahasiswa; 	// Var mahasiswa bertipe struct student
  

Contoh diatas merupakan nama variabel dengan tipe datanya masing-masing.

Selain cara deklarasi seperti contoh diatas, variabel struct juga dapat dideklarasikan sebagai berikut.

		
  	struct student{
       char nama[20];
       int NRP;
       char jurusan[20];
    } mahasiswa;	// Pendeklarasian secara langsung
  

Setelah tanda tutup kurung kurawal, disitu kita bisa menuliskan nama variabelnya.


Selain cara deklarasi seperti contoh diatas, kita juga dapat menginisialisasikan langsung nilai variabel data struct seperti contoh diatas.

Perhatikan program berikut.

  	
  	#include <stdio.h> 
struct student{   char nama[20];   int NRP;   char jurusan[20]; }; int main(){   struct student mahasiswa = {"Ahmad", 3122334455, "Informatika"}; return 0; }

Pada saat menginisialisasikan data bertipe struct, nilai-nilai yang diinputkan harus berurutan sesuai field yang telah didefinisikan tadi.



Mengakses Elemen Struct

Setelah kita berhasil menginisialisasikan data struct, Agar kita dapat menampilkan hasilnya kelayar, maka kita harus bisa mengakses elemen-elemen dari data struct tersebut.

Elemen-elemen didalam struct dapat kita akses dengan menyebutkan nama variabel diikuti tanda titik (.) beserta nama field-nya.

Perhatikan program berikut.

  	
  	#include <stdio.h> 
struct student{   char nama[20];   int NRP;   char jurusan[20]; }; int main(){   struct student mahasiswa = {"Ahmad", 3122334455, "Informatika"};   printf("Nama : %s\n", mahasiswa.nama);   printf("NRP : %d\n", mahasiswa.NRP);   printf("Jurusan : %s\n", mahasiswa.jurusan); return 0; }

Maka akan menghasilkan output.


Metode diatas sama halnya pada saat kita ingin mengambil data berdasarkan Inputan dari User.

Perhatikan program berikut.

  	
  	#include <stdio.h> 
struct student{   char nama[20];   int NRP;   char jurusan[20]; }; int main(){   struct student mahasiswa;   printf("Masukkan nama Anda : ");   gets(mahasiswa.nama);   fflush(stdin);   printf("Masukkan NRP Anda : ");   scanf("%d", &mahasiswa.NRP);   fflush(stdin);   printf("Masukkan Jurusan Anda : ");   gets(mahasiswa.jurusan);   printf("Nama : %s\n", mahasiswa.nama);   printf("NRP : %d\n", mahasiswa.NRP);   printf("Jurusan : %s\n", mahasiswa.jurusan); return 0; }

Pada program diatas, kita ingin menginputkan nilai-nilai tiap elemen (field) dari variabel mahasiswa.

Caranya sama yaitu dengan memanggil nama variabel diikuti nama field-nya.

Maka akan menghasilkan output.


Itu tadi contoh input data untuk satu Mahasiswa.

Lalu, bagaimana jika kita ingin menginputkan data sebanyak 50 mahasiswa..??

Apakah kita harus menuliskan hal yang sama sebanyak 50 kali.. 😁.

Kita dapat menggunakan metode perulangan, yang dimana tiap variabel mahasiswa disimpan didalam Indeks Array.

Perhatikan program berikut.

  	
  	#include <stdio.h> 
struct student{   char nama[20];   int NRP;   char jurusan[20]; }; int main(){   struct student mahasiswa[3];   printf("=========INPUT DATA MAHASISWA=========");   for(int i=0; i<3; i++){     printf("Masukkan nama Anda : ");     gets(mahasiswa[i].nama);     fflush(stdin);     printf("Masukkan NRP Anda : ");     scanf("%d", &mahasiswa[i].NRP);     fflush(stdin);     printf("Masukkan Jurusan Anda : ");     gets(mahasiswa[i].jurusan);     printf("\n");   }   printf("=========OUTPUT DATA MAHASISWA=========");   for(int j=0; j<3; j++){     printf("Nama : %s\n", mahasiswa[j].nama);     printf("NRP : %d\n", mahasiswa[j].NRP);     printf("Jurusan : %s\n", mahasiswa[j].jurusan);     printf("\n");   } return 0; }

Pada program diatas, struct student mahasiswa[3]; merupakan cara kita mendeklarasikan variabel mahasiswa yang bertipe Array of struct student.

Jika didalam materi Array, kita mengenal tipe data seperti Array of int, Array of char, Array of float, dsb.

Maka didalam materi struct ini, variabel Array-nya akan bertipe Array of struct mahasiswa ...Sebagai contoh.


Selanjutnya, Didalam perulangan Input, variabel mahasiswa akan menempati Indeks-nya masing-masing.

Pada contoh diatas, mahasiswa[3] kita dapat menginputkan data mahasiswa maksimal 3 kali. Mulai dari mahasiswa[0], mahasiswa[1], dst.

Lalu, didalam perulangan output, variabel mahasiswa yang ditampilkan kelayar juga akan mengikuti Indeks dari perulangan Input tadi.

Output mahasiswa[0] akan mengambil data dari Input mahasiswa[0], Output mahasiswa[1] akan mengambil data dari Input mahasiswa[1], dst.

Hasil dari program diatas, akan menghasilkan output.


. . .


Dari program-program yang telah kita buat pada contoh diatas, elemen / field-nya diisi dengan tipe data standar. Selanjutnya, kita akan mencoba mengisi elemen struct dengan tipe data buatan atau struct itu sendiri.

Perhatikan program berikut.

  	
  	#include <stdio.h> 
struct date{   int hari, bulan, tahun; }; struct student{   char nama[20];   int NRP;   char jurusan[20];   struct date tgl_lahir; }; int main(){   struct student mahasiswa[50];   int jumlah;   printf("Masukkan Banyaknya mahasiswa : ");   scanf("%d", &jumlah);   fflush(stdin);   printf("=========INPUT DATA MAHASISWA=========");   for(int i=0; i<jumlah; i++){     printf("Masukkan nama Anda : ");     gets(mahasiswa[i].nama);     fflush(stdin);     printf("Masukkan NRP Anda : ");     scanf("%d", &mahasiswa[i].NRP);     fflush(stdin);     printf("Masukkan Jurusan Anda : ");     gets(mahasiswa[i].jurusan);     fflush(stdin);     printf("Masukkan tgl lahir Anda (dd-mm-yyyy) : ");     scanf("%d-%d-%d", &mahasiswa[i].tgl_lahir.hari, &mahasiswa[i].tgl_lahir.bulan, &mahasiswa[i].tgl_lahir.tahun, );     fflush(stdin);     printf("\n");   }   printf("=========OUTPUT DATA MAHASISWA=========");   for(int j=0; j<jumlah; j++){     printf("Nama : %s\n", mahasiswa[j].nama);     printf("NRP : %d\n", mahasiswa[j].NRP);     printf("Jurusan : %s\n", mahasiswa[j].jurusan);     printf("Tgl lahir : %d-%d-%d\n", mahasiswa[j].tgl_lahir.hari, mahasiswa[j].tgl_lahir.bulan, mahasiswa[j].tgl_lahir.tahun );     printf("\n");   } return 0; }

Pada program diatas, kita memiliki dua tipe data struct, yaitu struct date dan struct student.

Didalam struct date, didalamnya memuat elemen-elemen bertipe int.

Selanjutnya, didalam struct student,

... seperti biasa, pada saat kita menambahkan elemen / field baru, tidak lupa untuk menuliskan nama variabel beserta tipe datanya.

Pada contoh diatas, kita menambahkan field baru bernama tgl_lahir yang bertipe struct date.

Selanjutnya, didalam fungsi main() kita deklarasikan variabel mahasiswa yang bertipe Array of struct student, dengan ukuran maksimal Array sebesar 50, agar bisa menampung banyak data inputan.

Selanjutnya, didalam perulangan kita diminta untuk menginputkan data mahasiswa sesuai field yang telah didefinisikan tadi. Dengan menyebut nama variabel beserta nama field-nya.

Sama halnya pada saat kita mengakses field yang bertipe struct date, kita tuliskan dengan mahasiswa[i].tgl_lahir.day secara berurutan sesuai dengan urutan field-nya.

Dari program diatas menghasilkan output.


Penutup

Itulah tadi penjelasan mengenai konsep dasar tipe data struct. Materi diatas merupakan materi penutup untuk tutorial bahasa pemrograman C kali ini. Diawal tutorial C ini, telah kita ketahui bahwa bahasa C ini merupakan bahasa tertua atau Induk dari semua bahasa pemrograman, yang artinya bahwa jika kita paham dan mengerti akan konsep dasar dari bahasa C ini, maka kemungkinan kita bisa paham dan mengerti bahasa pemrograman lain akan sangat terbuka lebar. Kunci sukses belajar pemrograman adalah terus berlatih dan sering mencoba, Jika kalian kalian masih belum paham, ulangi lagi tutorial-tutorialnya dan teruslah mencoba sampai paham.



C by ambis at 28-7-23

Related Posts

Post a Comment