Selamat Datang Di Anak Jadul Ingin Pintar (AJIP)

Belajar C++ Part 10

Selasa, 27 Desember 20110 komentar

 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.


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

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

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


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.


Contoh 1a Struct lain:
// struct dg cara pertama
#include<iostream.h>
#include<conio.h>
#include<string.h>
struct TypeNilai
{
                float praktek;
                float teori;
};
struct Mahasiswa
{
                char nim[5];
                char nama[20];
                char angkt[5];
                TypeNilai nilai;
};
void main()
{
                Mahasiswa mhs;
                //inisialisasi
                strcpy(mhs.nim,"none");
                strcpy(mhs.nama,"none");
                strcpy(mhs.angkt,"none");
                mhs.nilai.praktek = 0;
                mhs.nilai.teori = 0;

                //output dari inisialisasi
                cout << "Data mahasiswa sebelum diinput \n";
                cout << "Nim mahasiswa : " << mhs.nim << endl;
                cout << "Nama mahasiswa : " << mhs.nama << endl;
                cout << "Angkatan : " << mhs.angkt << endl;
                cout << "Nilai Teori : " << mhs.nilai.teori << endl;
                cout << "Nilai Praktek : " << mhs.nilai.praktek << endl;
                cout << endl << endl;
                cout << "Press any key to continue...";
                getch();
                clrscr();

                //input data mahasiswa
                cout << "Masukan data mahasiswa : \n";
                cout << "Nim : ";
                cin.getline(mhs.nim,sizeof(mhs.nim));
                cout << "Nama : ";
                cin.getline(mhs.nama,sizeof(mhs.nama));
                cout << "Angkatan : ";
                cin.getline(mhs.angkt,sizeof(mhs.angkt));
                cout << "Nilai teori : ";
                cin >> mhs.nilai.teori;
                cout << "Nilai praktek : ";
                cin >> mhs.nilai.praktek;


                //output
                clrscr();
                cout << "Data mahasiswa yang diinput : \n";
                cout << "Nim : " << mhs.nim << endl;
                cout << "Nama : " << mhs.nama << endl;
                cout << "Angkatan : " << mhs.angkt << endl;
                cout << "Nilai Teori : " << mhs.nilai.teori << endl;
                cout << "Nilai Praktek : " << mhs.nilai.praktek << endl;


}

Contoh 1b Struct lain :
/ struct dg cara pertama
#include<iostream.h>
#include<conio.h>
#include<string.h>
struct Mahasiswa
{
                char nim[5];
                char nama[20];
                char angkt[4];
}mhs;
void main()
{
                //inisialisasi
                strcpy(mhs.nim,"none");
                strcpy(mhs.nama,"none");
                strcpy(mhs.angkt,"none");

                //output dari inisialisasi
                cout << "Data mahasiswa sebelum diinput \n";
                cout << "Nim mahasiswa : " << mhs.nim << endl;
                cout << "Nama mahasiswa : " << mhs.nama << endl;
                cout << "Angkatan : " << mhs.angkt << endl;
                cout << endl << endl;
                cout << "Press any key to continue...";
                getch();
                clrscr();
                //input data mahasiswa
                cout << "Masukan data mahasiswa : \n";
                cout << "Nim : ";
                cin.getline(mhs.nim,sizeof(mhs.nim));
                cout << "Nama : ";
                cin.getline(mhs.nama,sizeof(mhs.nama));
                cout << "Angkatan : ";
                cin.getline(mhs.angkt,sizeof(mhs.angkt));

                clrscr();
                cout << "Data mahasiswa yang diinput : \n";
                cout << "Nim : " << mhs.nim << endl;
                cout << "Nama : " << mhs.nama << endl;
                cout << "Angkatan : " << mhs.angkt << endl;
}


Share this article :

Posting Komentar

 
Copyright © 2011. BELAJAR PEMOGRAMAN - All Rights Reserved
Proudly powered by Fasilkom Universitas Esa Unggul