Diberdayakan oleh Blogger.
RSS

OBJECT ORIENTED - CLASS, DEKLARASI CLASS DAN ACCES MODIFIER

Hmm, mari lanjut lagi belajar OOP-nya :D


Jadi, setelah kita pelajari tentang deklarasi kelas, diagram kelas, implementasi sederhana di bahas       C++ sangat perlu diketahui juga tentang Access Modifier. Secara definisi, access modifier adalah batasan dan cara mengakses suatu properti dan/atau fungsi dari sebuah kelas. Dengan access modifier inilah salah satu tujuan belajar OOP dapat dicapai   yaitu enkapsulasi data. Enkapsulasi data merupakan cara melindungi atribut/fungsi tertentu dari sebuah kelas agar tidak sembarangan diakses dan dimodifikasi di suatu bagian program sehingga validitas data bisa terjaga.


Waktu saya belajar OOP dulu, katanya access modifier ada 4 macam, tapi di referensi lain disebutkan 3, karena yang 1 lagi jarang sekali dipakai dan cukup rumit. Jadi, mungkin akan kita bahas yang 3 saja, yang umum dan sering digunakan.

  • Public   


seperti namanya, atribut atau fungsi yang diberi access modifier ini bebas diakses dari manapun dari program. Umumnya, sebuah fungsi constructor dan destructor pasti public. Kemudian fungsi-fungsi accessor dan modifier juga diberi akses public. Namun, tidak semua juga harus dijadikan public, karena tidak semua fungsi juga boleh diakses dari luar kelas, tergantung kebutuhan

  • Private                                                                                                                                 
Atribut atau fungsi yang diberi akses private hanya bisa diakses didalam kelas itu sendiri. Umumnya atribut yang menggambarkan sifat objek diberi akses private. Hal ini dilakukan untuk melindungi validitas data dan keperluan error handling. Karena itulah, ditambahkan fungsi accessor dan/atau modifier untuk setiap atribut private. Fungsi accessor atau yang sering disebut fungsi getter dibuat untuk mengambil properti kelas tanpa bisa mengubahnya. Jadi fungsi accessor ini tipe datanya sama seperti atribut yang akan diambil nilainya, dan isinya hanya return value dari atribut yang bersangkutan saja. Sedangkan fungsi modifier atau yang disebut setter dibuat untuk mengubah nilai atribut kelas. Tentunya, dengan disertai error handling dan batasan lain didalamnya. sehingga atribut kelas tetap bisa diubah namun terkontrol dan tepat. Sama halnya dengan fungsi yang tidak selalu diberi akses public, atribut juga tidak harus dan tidak selalu diberi akses private, public, atau protected.                                 
  • Protected                                                                                                                             


Protected merupakan access modifier yang hanya akan muncul jika ada lebih dari 1 kelas dalam suatu soalus permasalahan dan ada kelas yang mendapat pewarisan sifat(inheritance) dari kelas lain. Jadi, dengan memberi akses protected, suatu atribut dan/atau fungsi bisa diakses penuh dari kelas turunan(child). Mungkin untuk pembahasan inheritance dan akses protected akan saya bahas lebih lanjut di postingan yang akan datang insyaAllah. Karena akan lebih baik jika belajarnya satu persatu, dari yang paling sederhana hingga yang agak sedikit rumit dan butuh pemahaman lebih.

Semoga bisa menambah pemahaman.
Baiklah, saya kira cukup jelas untuk access modifier. Agar lebih paham memang sangat perlu dicoba sendiri :P

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

ARRAY_pada bahasa C++




Array adalah sekelompok data sejenis yang disimpan ke dalam variabel dengan nama yang sama, dengan memberi indeks pada variabel untuk membedakan antara yang satu dengan yang lain.

VARIABEL ARRAY
            nama_variabel[indeks]

ketentuan nama variabel arrray sama dengan nama variabel biasa.
indeks menunjukkan nomor dari variabel .

DEKLARASI VARIABEL ARRAY

BU                  : tipe nama_variabel[indeks];

Contoh           : float bil[10];
            deklarasi variabel array dengan nama bil yang akan menampung 10 data             yang  bertipe  float.  Indeks  10  menunjukkan  variabel  bil  terdiri  dari  10 elemen, dimana setiap elemen akan menampung sebuah data.

Indeks array dimulai dari nol(0) , sedang nomor elemen biasanya dimulai dari satu(1). Nomor elemen dapat dibuat sama dengan nomor indeks untuk mempermudah pembuatan program yaitu dengan memberi indeks satu lebih banyak dari jumlah data yang dibutuhkan, sehingga menjadi :
            float bil[11]

INISIALISASI  ARRAY 1 DIMENSI
Inisialisasi  dapat dilakukan bersama dengan deklarasi atau tersendiri. Inisialisasi suatu array adalah dengan meletakkan elemen array di antara tanda kurung kurawal {}, antara elemen yang satu dengan lainnya dipisahkan koma.
            int bil[2] = {4,1,8}

            bil[0] = 4
            bil[1] = 1
            bil[2] = 8

AUTOMATIC ARRAY adalah Inisialisasi array dilakukan di dalam fungsi tertentu. Hanya  compiler C yang berstandar ANSI C yang dapat menginisialisasikan automatic array.
Cara menginisialisasikan  array dari compiler yg tidak mengikuti standar  ANSI C:
1. Diinisialisasikan di luar fungsi sebagai variabel GLOBAL/EXTERNAL ARRAY.
            int bil[2]={0,0,0};
            main()
           
2. Diinisialisasikan didlm fungsi sebagai variabel LOKAL/STATIC ARRAY.
            main()
            {
                        static int bil[2]={0,0,0};
                        .........

Pada automatic array yang tidak diinisialisasikan , elemen array akan memiliki nilai yang tidak beraturan. Bila global & static array tidak diinisialisasi maka semua elemen array secara otomatis akan diberi nilai nol(0).

Contoh :
main()
{
            int y;
            int hitung=0;
            int x[0];
            for(y=0;y<5;y++)
            {
                        hitung+=y;
                        x[y]=hitung;
                        printf("%3d - %3d\n",y,x[y]);
            }
}

OUTPUT:
0-  0
1-  1
2-  3
3-  6
4-  10

MENDEFINISIKAN JUMLAH ELEMEN ARRAY DALAM VARIABEL
Besarnya variabel indeks dapat ditentukan dengan menggunakan
preprocessor directives #define
#define N 40
main()
{
            int no[N],gaji[N],gol[N],status[N],juman[N];

Bila besari indeks akan diubah menjadi 50, cukup diganti dengan
#define N 50

ARRAY 2 DIMENSI
            nama_variabel [indeks1][indeks2]

indeks1          : jumlah/nomor baris
indeks2          : jumlah/nomor kolom
Jumlah elemen yang dimiliki array 2 dimensi dapat ditentukan dari hasil perkalian          indeks1 * indeks2

misal : array A[2][3] akan memiliki 2*3 = 6 elemen.

main()
{
            float  bil [5] [5]
            .......

dapat dituliskan dengan #define
#define N 5
main()
{
            float bil [N]  [N]
            .......

INISIALISASI ARRAY 2 DIMENSI
main()
{
            float bil[2] [3] =
            { { 1,2,3},         /*baris 0*/
              { 4,5,6},         /*baris 1*/
            }

elemen bil [0] [0] = 1
elemen bil [0] [1] = 2
elemen bil [0] [2] = 3
elemen bil [1] [0] = 4
elemen bil [1] [1] = 5
elemen bil [1] [2] = 6

Contoh :
main()
{
            int x[3][5];
            int y,z;
            int hitung=0;
            for(y=0;y<3;y++)


            {
                        printf("y = %d\n",y);
                        for(z=0;z<5;z++)
                        {
                                    hitung+=z;
                                    x[y][z] = hitung;
                                    printf("%/t%3d - %3d\n",z,x[y][z]);
                        }
            }
}

OUTPUT:
y = 0
   0-  0
   1-  1
   2-  2
   3-  6
   4-  10
y = 1
   0-  10
   1-  11
   2-  13
   3-  16
   4-  20
y = 2
  0-  20
  1-  21
  2-  23
  3-  26
  4-  30

STRING dan ARRAY
1. Pada string   terdapat karakter null(\0) di akhir string
2. String sudah pasti array, array belum tentu string

CONTOH - CONTOH :
1. array dengan pengisian input melalui keyboard
            baca_input()
            {
                        float nilai[10];
                        for(i=0;i<10;i++)
                        scanf("%d",&nilai[i]);
            }

2. Fungsi yang mencetak isi array dari akhir ke awal
            cetak_array()
            {
                        float nilai[10];
                        for(i=9;i>=0;i--)
                        scanf("%3f",nilai[i]);
            }
3. Menghitung rata - rata isi array nilai
            rata_rata()
            {
                        float nilai[10],jum*rata;
                        for(i=0,jum=0;i<=9;i++)
                                    jum+=nilai[i];
                                    rata=jum/i;
            }

4. Mencari nilai terbesar
            besar()
            float temp,nilai[10];
            {
                        for(temp=nilai[0],i=1;i<=9;i++)
                        if(nilai[i] > temp)
                                    temp=nilai[i];
            }
            return(temp)


                       

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS