Halaman

02/04/12

Mempelajari Fungsi Struktur dalam Pemrograman C/C++

  1. Pengertian Struktur
    Struktur adalah pengelompokan variabel-variabel yang bernaung dalam satu nama yang sama. Berbeda dengan array yang berisi kumpulan variabel-variabel yang bertipe sama dalam satu nama, maka suatu struktur dapat terdiri atas variabel-variabel yang berbeda tipenya dalam satu nama struktur. Struktur biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan (dalam 
    bahasa PASCAL, struktur disebut dengan record).

    Variabel-variabel yang membentuk suatu struktur, selanjutnya disebut sebagai elemen dari struktur atau field. Dengan demikian dimungkinkan suatu struktur dapat berisi elemen-elemen data berbeda tipe seperti char, int, float, double, dan lain-lain. Contoh sebuah struktur adalah informasi data tanggal (date) yang berisi  - day, - month, dan - year.

  2. Mendefinisikan & Mendeklarasikan Struktur
     Suatu struktur didefinisikan dengan menggunakan kata kunci struct. Contoh pendefinisian sebuah tipe data struktur :
        struct date {
           int month;
           int day;
           int year;
       };
       struct date {
           int month, day, year;
       };

    yang mendefinisikan sebuah tipe data struktur bernama date yang memiliki tiga buah elemen (field) berupa : day, month, year

    Gambar 1. Pendefinisian tipe struktur


    Untuk mendeklarasikan sebuah variabel today yang bertipe struktur date pernyataan yang diperlukan adalah sebagai berikut:

    Gambar 2. Pendeklarasian variabel bertipe struktur
    Pernyataan di atas menyatakan bahwa variabel today bertipe struktur date. Dalam mendefinisikan sebuah struktur, elemen yang terkandung di dalamnya bisa juga berupa sebuah struktur, contoh :

    struct date {
         int month, day, year;
    };

    struct student {
         char name[30];
         struct date birthday; };
    struct student mhs; //deklarasi var mhs

    Diagram struktur data dari variabel mhs dapat digambarkan sbb :
    Gambar 3. Struktur data dari variabel student 

  3. Mengakses Elemen Struktur
    Elemen dari suatu variabel struktur dapat diakses dengan menyebutkan nama variabel struktur diikuti dengan operator titik (‘.’) dan nama dari elemen strukturnya. Cara penulisannya sebagai berikut:

    variabel_struktur.nama_field 

    Untuk memberikan data nama ke field name dari variabel student di atas, maka pernyataan yang diperlukan misalnya adalah :

            strcpy (mhs.name, "Uzhe Armansyah");

    Pada pernyataan di atas, mhs.name dapat dibaca sebagai "field name dari mhs". Contoh berikut merupakan instruksi untuk mengisikan data pada field birthday :

             mhs.birthday.day = 10;

    Sedangkan untuk mendapatkan isi suatu field dari variabel struktur, contohnya :

    ƒ tgl = mhs.birthday.day;
    ƒ puts(mhs.name);
    Contoh pertama merupakan instruksi untuk memberikan isi dari field day ke variabel tgl. Sedangkan contoh kedua merupakan instruksi untuk menampilkan isi dari field name.
    Program berikut merupakan contoh yang melibatkan variabel struktur. Mula-mula field dari struktur diisi dengan suatu data, kemudian isinya ditampilkan.

    /* File program : student1.c Mengisi field dari variabel struktur kemudian menampilkannya */
    #include <stdio.h>
    #include <string.h>

    int main (void){
         struct date {       /* definisi global dari tipe date */
               int month;
               int day;
               int year;
           };

           struct student{   /* definisi global dari tipe student */
                char name[30];
                struct date birthday;
            };

            /* deklarasi global dari variabel mhs*/
            struct student mhs;

    main()
    {

    /* memberikan nilai kepada field dari struktur mhs *\
          strcpy(mhs.name, "Uzhe Armansyah");
                mhs.birthday.month = 1;
                mhs.birthday.day = 10;
                mhs.birthday.year = 1990;

    /* menampilkan isi semua field dari struktur mhs */ printf("Name : %s\n", mhs.name);
    printf("Birthday : %d-%d-%d\n",mhs.birthday.month, mhs.birthday.day, mhs.birthday.year);
    }

    Contoh eksekusi :
    Name : Uzhe Armansyah Birthday : 1-10-1990
    Menginisialisasi Struktur

    Sebuah struktur juga bisa diinisialisasi pada saat dideklarasikan. Hal ini serupa dengan inisialisasi array, yaitu elemen-elemennya dituliskan di dalam sepasang kurung kurawal (‘{ }‘) dengan masing-masing dipisahkan dengan koma. Deklarasi struktur didahului dengan kata kunci static, contoh
       
           static struct zodiak bintang = {"Sagitarius", 22, 11, 21, 12};

    Selengkapnya perhatikan contoh program di bawah ini.
    /* File program : zodiak.c
     Menentukan zodiak berdasarkan data tanggal lahir masukan */
    #include <stdio.h>
    #include <stdlib.h>

    int main (void)
    {
          struct zodiak {
                char nama[11];
                int tgl_awal;
                int bln_awal;
                int tgl_akhir;
                int bln_akhir;
    };
          static struct zodiak bintang = {"Sagitarius", 22, 11, 21, 12};
                int tgl_lhr, bln_lhr, thn_lhr;
                printf ("Masukkan tgl lahir Anda (XX-XX-XXXX): ");
                scanf ("%d-%d-%d",&tgl_lhr, &bln_lhr, &thn_lhr);
          if ((tgl_lhr >= bintang.tgl_awal && bln_lhr == bintang.bln_awal) ||
          (tgl_lhr <= bintang.tgl_akhir && bln_lhr == bintang.bln_akhir))
                printf("Bintang Anda adalah %s\n", bintang.nama);
          else
                printf("Bintang Anda bukan %s\n", bintang.nama);
    }

    Contoh eksekusi :
    Masukkan tgl lahir Anda (XX-XX-XXXX): 23–11-1972
    Bintang Anda adalah Sagitarius

Tidak ada komentar:

Posting Komentar

Silahkan Berikan Komentar Anda untuk Kesempurnaan Blog ini..