Langsung ke konten utama

Setter getter dalam enkapsulasi konsep OOP dalam bahasa C++



Apa sih setter getter?
Setter getter ini ada di konsep OOP bagian enkapsulasi(pembungkusan). Setter adalah pengeset nilai. Getter adalah pengirim nilai. Setter getter ini diimplementasikkan dalam bentuk fungsi.

Apa sih enkapsulasi? Enkapsulasi adalah pembungkusan. Lho apa yang dibungkus? Yang dibungkus adalah variabel data. Maksudnya variablel data adalah variabel yang terdapat dalam suatu class.

Cara membungkusnya adalah dengan memberi akses modifier private. Atau tidak diberi akses modifier, karena dalam bahasa C++ jika tidak ada akses modifiernya oleh C++ didefault private.
Nah disinilah setter getter dibutuhkan. Lha gimana nggak? Masa kita capek2 bikin variabel tapi gak bisa digunain. kan konyol juga. Jadi kita butuh sesuatu untuk bisa menjadi jembatan saat memasukkan dan mengambil nilai. Setter(memasukkan nilai). Getter(mengambil nilai).
Bingung? Jangan bingung :D
Bisa diibiaratkan variabel adalah raja dan setter getter adalah pengawalnya. Si raja gak boleh langsung nerima hadiah dari rakyatnya. Iya kalo hadiahnya emang bener-bener hadiah. Kalo bom gimana? Wah bahaya dong. Nah jadi butuh jembatan. lewat pengawal dulu buat disaring hadiah yang bener-bener hadiah atau hadiah yang isinya bom atau yang membahayakan nyawa si raja.
Nah itu dalam cerita. Kalo implementasi dalam dunia nyata, setter getter ini berfungsi untuk melindungi si variabel agar tidak semena mena bisa diisikan oleh sesuatu. Misal tidak menggunakan variabel kita bisa mengisikan:
int umur=-10
lha emang ada umur -10?
Kalo ada si setter, kita bisa membuat validasi terlebih dahulu. Misal:
void setUmur(int n){
    if(umur>=0){
        umur=n;
    }
}
Nah jadi umur akan selalu valid datanya seberapapun kita mengeset.
Ini salah satu dari sekian banyak keunungan dari fungsi setter.masih banyak lagi keuntungan yang bisa didapat. Tinggal searching aja. Hehe
Berikut adalah contoh penerapanya dalam kodingan. Misal class persegi yang mempunyai data panjang dan lebar. Berikut rinciannya:
#include <iostream>
#include <stdio.h>

using namespace std;
class persegi{
private:
    int p,l; //variable data diprivate
public:
    persegi(){
       p=l=0;
    }
    void setP(int n){
        if(p>=0){ //validasi
            p=n;
        }else{
            p=0; //jika n kurang dari 0 maka p diset menjadi 0
        }
    }
    void setL(int n){
        if(p>=0){ //validasi
            l=n;
        }else{ //jika n kurang dari 0 maka l diset menjadi 0
            l=0;
        }

    }
    int getP(){
        return p;
    }
    int getL(){
        return l;
    }
    void cetakLuas(){
    cout<<p<<"*"<<l<<"="<<p*l<<endl;
    }
    int getLuas(){
        return p*l;
    }
};

int main(){
persegi x;
persegi *y=new persegi();
int a;
x.setP(20); //mengeset panjang
x.setL(5); //mengeset lebat
x.cetakLuas();

//jika objek berupa pointer
y->setL(12);
y->setP(30);
y->cetakLuas();
return 0;
}
Sekian dari saya, mohon maaf bila banyak kekurangan. Monggo komen aja jika ada yang ingin ditanyakan. Terimakasih sudah berkunjung. Semoga bermanfaat :)

Komentar

  1. di blog ini dijelasin alasan kenapa kita harus mengkapsulasi variabel. mantap

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

Tipe data dalam bahasa C (C Programming)

Hai.. ketemu lagi dengan saya di blog yang sederhana ini.. dalam kesempatan kali ini saya akan memposting tentang tipe data dalam bahasa C. yuk kita simak :) Tipe data adalah suatu pengenal (identifier) yang merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh k omputer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif. Bahasa C menyediakan 5 macam tipe data dasar, yaitu 1. Tipe data integer yaitu bilangan bulat dideklarasikan dengan int . 2. Floating point yaitu bilangan pecahan dideklarasikan dengan float . 3. Double precision yaitu bilangan pecahan ketepatan ganda dideklarasikan dengan double . 4. karakter dideklaras...

Kimia (Polimer)

A.    DEFINISI POLIMER DAN PEMBENTUKAN POLIMER 1.    Pengertian Polimer Polimer adalah suatu makromolekul yang terbentuk dari molekul-molekul sederhana yang kita sebut sabagai monomer. Monomer adalah bagian terkecil dari suatu polimer. 2.    Pembentukan Polimer Proses pembentukan polimer dari monomer-monomernya disebut polimerisasi. Reaksi polimerisasi adalah reaksi penggabungan beberapa monomer. a.    Reaksi Polimer Adisi Polimerisasi terjadi pada monomer yang memiliki ikatan rangkap. Adalah perkaitan langsung antarmonomer berdasarkan reaksi adisi. 1)    Pembentukan Polietilena (Polietena) Polietilena dibentuk oleh monomer-monomer etena. Etena diperoleh dari hasil perengkahan (cracking) minyak bumi atau gas bumi. Pembentukan polimer ini digambarkan sebagai berikut CH 2 =CH 2   +   CH 2 =CH 2    →    --CH 2 -- CH 2 -- CH 2 -- CH 2 -- →   ( --CH 2 --...

Apa itu using namespace std?

Assalamu’alaikum.. Hai teman-teman.. dalam posting kali ini saya akan sedikit menjelaskan tentang namespace std. using namespace std , perintah ini digunakan untuk mendeklarasikan/ memberitahukan kepada compiler bahwa kita akan menggunakan semua fungsi/class/file yang terdapat dalam namespace std. namespace sendiri memiliki kesamaan dengan paket pada bahasa Java yang berisi pengelompokan fungsi, class dan yang sejenis. Pada C++ library- library umumnya disimpan dalam namespace std, seperti perintah cin dan cout. Perbedaan penulisan apabila kita menggunakan namespace std atau tidak adalah : Tanpa using namespace std               std::cout << " Tanpa menggunakan namespace std " ;       std::cin >> pil; Menggunakan using namespace std      #include <iostream>      using namespace std;      ...

MEMBACA DAN MENGIDENTIFIKASIKAN MOS,CMOS DAN FET

1)       Komponen MOS, CMOS dan FET diidentifikasi tipenya, rating operasinya .     MOSFET ( Metal Oxide Semiconductor Field Effect Transistor ) MOSFET disebut juga Transistor Efek Medan Oksida Logam, hal ini karena pada Gate di isolasi dari saluran mayoritas pembawa muatan hal ini mengakibatkan arus Gate sangat kecil dan tidak dipengaruhi oleh Positif atau Negatifnya Gate tersebut. MOSFET sering juga disebut sebagai IGFET (Insulated Gate Field Effect Transistor) , mempunyai elektroda Source, Drain dan Gate . Bekerjanya MOSFET berbeda dengan JFET, pada MOSFET Gate/Gerbang di isolasi dari kanal sehingga dapat dioperasikan menggunakan tegangan positif (+), sedang pada JFET menggunakan tegangan negatif (-). Tegangan positif tersebut memeberi manfaat mempertinggi konduktifitas kanal. Makin positif tegangan gerbang, semakin besar konduktifitas dari Source ke Drain (Sumber ke Cerat). Keuntungan utama menggunakan FET adalah, imped...

Mengenal Tipe data dan Operator di VB .net (VB Programming)

Assalamu'alaikum.. pada tutorial kali ini saya ingin berbagi tentang tipe data danoperator yang digunakan dalam pemrograman Visual Basic. selamat menyimak.. :) Teori 2.1. Variabel Variabel   adalah pengalokasian tempat di memory komputer dengan type data tertentu dan datanya dapat diubah. Aturan pendefinisian variabel -           Harus dimulai dengan huruf -           Tidak boleh menggunakan spasi -           Tidak melebihi 255 karakter -           Untuk vb. Net tidak case sensitive (tidak membedakan huruf kecil dan besar -           Boleh menggunakan underscore Contoh penulisan variabel yang benar : -           Dim Dataku as integer -         ...