Berlangganan

About Me


VIII. STRUKTUR & UNION

VIII. STRUKTUR & UNION

8.1 STRUKTUR

      Array adalah kumpulan elemen yang bertipe sama. Tetapi struktur memudahkan Anda untuk mengumpulkan variable dengan tipe yang berbeda di dalam satu nama. Fasilitas ini memungkinkan kita untuk melayani sekumpulan data yang rumit sebagai satuan tunggal
      Suatu struktur dinyatakan dengan kata kunci struct, daftar pernyataan variable yang disebut anggota, yang terlampir dalam tanda kurung { }. Tiap pernyataan anggota dan struktur harus berakhir dengan semicolon ( ; ).
     
      Bentuk  deklarasi struktur :
    
      Struct nama_struct
      {
         anggota_struktur ;
      } ;

Apabila suatu struktur telah dideklarasikan, struktur ini dapat digunakan untuk mendefinisikan suatu varibel, misalnya :
    
      nama_struct  variabel_struktur;

merupakan pendefinisian varibel variabel_struktur dengan tipe structur nama_struct.
      Anggota struktur dapat diakses dengan menggunakan bentuk :

      variabel_struktur.anggota

Contoh :
#include <iostream.h>
void main()
{
   struct keluarga
   {
       char suami[15];
       char istri[15];
       int jumlah_anak;
   };

  keluarga Andi = {“Andi”,”Nina”,3};
  keluarga Budi = {“Budi”,”Ana”,5};
  cout<<”Jumlah anak Bapak Andi “<<Andi.jumlah_anak<<endl;
  cout<<”Istri Bapak Budi ialah “<<Budi.istri<<endl;
}
Keluarannya :
Jumlah anak Bapak Andi 3
Istri Bapak Budi ialah Ana

Perhatikan bahwa pada akhir dari struct diberi tanda semicolon.


8.1.1 Array dari Struktur
      Array dari struktur dapat dideklarasikan seperti halnya pendeklarasian array biasa.

Bentuk : nama_array[index]. anggota_struktur;

Contoh :
#include <iostream.h>
void main()
{
   struct mahasiswa
   {
       long nim;
       int nilai;
   };
  
   mahasiswa teknik[3];
   teknik[0].nim = 19500376;
   teknik[0].nilai = 78;
   teknik[1].nim = 19500378;
   teknik[1].nilai = 71;
   teknik[2].nim = 19500276;
   teknik[2].nilai = 76;

   cout<<”NIM                              NILAI \n”;
   for(int n=0;n<3;n++)
   {
    cout<<teknik[n].nim<<”\t\t”<<teknik[n].nilai<<endl;
   }
 }

Keluarannya :
NIM                                   NILAI
19500376                        78
19500378                        71
19500276                        76



8.1.2 Pointer Sebagai Anggota Struktur
          Anda dapat mempunyai karakter, integer, float bahkan pointer untuk dapat dijadikan sebagai tipe data anggota struktur.
Contoh :
#include <iostream.h>
void main()
{
      struct kuliah
      {
      char kuliah1[30];
      char kuliah2[30];
      struct kuliah *ptr;
       };

      kuliah semester[3] =
        {{"Komputer 207","Matematika 217",&semester[1]},
        {"Electronic 210","Sistem Kendali 303",&semester[2]},
       {"Analisis Numerik 301","Telekomunikasi 367",&semester[0]}};

  int n;
  for(n=0; n<3;n++)
  {
       cout<<"Isi sedang menujuk ke : ";
      cout<<semester[n].ptr->kuliah1<<endl;
  }
}

Keluarannya :
Isi sedang menunjuk ke : Electronic 210
Isi sedang menunjuk ke : Analisis Numerik 301
Isi sedang menunjuk ke :  Komputer 207


8.1.3 Struktur Sebagai Anggota Struktur
          Struktur juga dapat menjadi anggota struktur lain. Contoh diatas juga salah satu contoh struktur sebagai anggota contoh. Untuk dapat lebih memahami dibawah ini diberikan sebuah contoh :

Contoh :
#include <iostream.h>
void main()
{
   struct anak
   {
      char pria[15];
      char wanita[15];
    };

    struct keluarga
    {
      char suami[15];
      char istri[15];
      struct anak ;
     }

     struct anak Andi = {“Tedi”,”Lisa”}
     struct keluarga Budi = {“Budi”,”Ana”,”Ryu”,”Caecilia”};
   
     cout<<”Anak laki-laki Andi “<<Andi.pria<<endl;
     cout<<”Putri Bapak Budi “<<Budi.wanita<<endl;
  }

Keluarannya :
Anak laki-laki Andi Tedi
Putri Bapak Budi Caecilia


8.2 UNION

Union menyerupai struktur, namun mempunyai perbedaan yang nyata. Union biasa dipakai untuk menyatakan suatu memori dengan nama lebih dari satu. Sebagai gambaran, sebuah union dideklarasikan sebagai berikut :

      union bila_bulat
      {
         unsigned int di;
        unsigned char dc[2];
      }

Pada pendeklarasian seperti ini, di dan dc menempati memori yang sama. Untuk lebih jelasnya, perhatikan contoh berikut :

Contoh :
#include <iostream.h>
#include <conio.h>
void main()
{
    union bil_bulat
    {
       unsigned int di;
       unsigned char dc[2];
    };


    bil_bulat bil;
    bil.di = 0x2345;
    cout<<setiosflags(ios::showbase);
    cout<<hex<<”di      : “<<bil.di<<endl;
    cout<<hex<<”dc[0] : “<<bil.dc[0]<<endl;
      cout<<hex<<”dc[1] : “<<bil.dc[1]<<endl;
    }

Keluarannya :
di      : 0x2345
dc[0] : 0x45
dc[1] : 0x23

Keterangan :
setiosflags(ios::showbase) mengembalikan basis hitung yang digunakan. Hex membuat basis hitung menjadi heksadesimal.


0 Response to "VIII. STRUKTUR & UNION"

Post a Comment