Variable Bisa dikunci??

Pernahkah kalian memiliki uang tetapi uang tersebut diakses oleh banyak orang?? Bayangkan pastinya akan ada banyak sekali keanehan yang akan terjadi. Misalnya si D punya uang 500M kemudian uang itu diketahui dan dapat diakses oleh C, G, H. Terkesan tidak adil bukan kalau yang mencari uang adalah si D tapi C, G, H tahu dan ikut mengakses. Kalau misalnya uang itu diakses untuk investasi yang kredibel mah sah-sah saja, uangnya bukan malah habis tetapi mungkin saja bertambah. Tetapi kalau uang itu untuk pinjol atau judol kan jadinya na ni nu ya...

Nah maka dari itulah kita butuh yang namanya brankas. Uang yang sebegitu melimpahnya hanya  boleh diakses oleh kita (yang memiliki). Kenapa tempat penyimpanan harus brankas? Sebenarnya sah-sah saja jika ingin menyimpannya di bank atau di mana pun, asalkan siapa yang dapat mengakses hanyalah kita seorang. Itulah yang dinamakan privasi, di mana sandi/kode hanya diri kitalah yang tahu. Lalu bagaimana jika ada yang ingin mengakses uang kita? Tentu saja jawabannya adalah mereka harus tahu kode/sandi/pin dari bank maupun brankas, yang mana mereka harus meminta atau bahkan mencuri dari kita.

Lalu bagaimana cara membuat data tersebut tidak dengan mudah diakses oleh banyak orang. Rahasianya sungguh sangat sederhana, Anda hanya perlu menambahkan privat sebelum data tersebut dituliskan. Untuk lebih jelasnya, mari kita lihat kode di bawah ini :

package Minggu2;

import java.util.Scanner;

class mahasiswa {

    String nama;

    String npm;

    private double ipk;

    void isiData(){

        Scanner s = new Scanner (System.in);

        System.out.print("Nama = ");nama = s.next();

        System.out.print("NPM = ");npm= s.next();

        System.out.print("IPK = ");ipk = s.nextDouble();

    }

    void isiData (String nm, String np, double ip){

        nama =nm;

        npm= np;

        ipk=ip;

    }

    void cetakData(){

        System.out.println("Data Mahasiswa");

        System.out.println("Nama : "+ nama);

        System.out.println("NPM : "+ npm);

        System.out.println("IPK : "+ ipk);

    }

}

public class DoubleClass {

    public static void main(String[] args) {

        mahasiswa mhs = new mahasiswa();

        mhs.isiData ();

        mhs.cetakData();

        mhs.ipk = 5;

        mhs.cetakData();

    }

}

Apabila source code tersebut di run maka hasil outputnya adalah :


Coba bandingkan dengan kode dibawah ini :

package Minggu2;

import java.util.Scanner;

class mahasiswa {

    String nama;

    String npm;

    private double ipk;

    

    void isiData(){

        Scanner s = new Scanner (System.in);

        System.out.print("Nama = ");nama = s.next();

        System.out.print("NPM = ");npm= s.next();

        System.out.print("IPK = ");ipk = s.nextDouble();

    }  

    void isiData (String nm, String np, double ip){

        System.out.println("Silahkan masukkan nama anda");

        nama =nm;

        npm= np;

        ipk=ip;

    }

    void cetakData(){

        System.out.println("=== DATA MAHASISWA ===");

        System.out.println("Nama : "+ nama);

        System.out.println("NPM : "+ npm);

        System.out.println("IPK : "+ ipk);

    }

}

public class DoubleClass {

    public static void main(String[] args) {

        mahasiswa mhs = new mahasiswa();

        mhs.isiData ();

        mhs.cetakData();

    }

}

Hasil output dari source code di atas adalah :


Perhatikan bagian yang di highlight oleh penulis pada kedua source code di atas. Secara teknis, Java berjalan pada bagian public class dengan public funtion. Sehingga apa yang dipanggil oleh public Class itulah yang dijalankan oleh java untuk memulai eksekusi program.

Suatu hal yang unik adalah pada source code pertama, variabel yang telah di kunci (privat) dalam Class tengah dipanggil pada public Class maka yang akan terjadi adalah boom.. ERROR karena varibel tersebut telah dikunci pada Class sehingga apabila ingin merubah data maka yang harus dilakukan adalah mengubahnya dalam Class bukan Public Class.

Namun apabila ingin tetap mengubah data tersebut pada main Class maka hilangkan "Privat" pada object tersebut. Seperti pada contoh di bawah ini :

package Minggu2;
import java.util.Scanner;
class mahasiswa {
    String nama;
    String npm;
    double ipk;
    
    void isiData(){
        Scanner s = new Scanner (System.in);
        System.out.print("Nama = ");nama = s.next();
        System.out.print("NPM = ");npm= s.next();
        System.out.print("IPK = ");ipk = s.nextDouble();
    }
    
    void isiData (String nm, String np, double ip){
        System.out.println("Silahkan masukkan nama anda");
        nama =nm;
        npm= np;
        ipk=ip;
    }
    
    void cetakData(){
        System.out.println("=== DATA MAHASISWA ===");
        System.out.println("Nama : "+ nama);
        System.out.println("NPM : "+ npm);
        System.out.println("IPK : "+ ipk);
    }
}

public class DoubleClass {
    public static void main(String[] args) {
        mahasiswa mhs = new mahasiswa();
        mhs.isiData ();
        mhs.cetakData();
        mhs.ipk = 4;
      mhs.cetakData();
    }
}

Ouputnya sbb :


Dalam pengembangan perangkat lunak berskala besar, keamanan dan integritas data adalah prioritas utama. Di sinilah peran Access Modifier (private) menjadi krusial. Meskipun kita bekerja pada proyek pribadi, membiasakan diri dengan prinsip ini akan membentuk standar koding yang profesional. Dengan manfaatnya yakni sebagai data hiding, maintainibility, validasi data, serta  sistem kontrol (Git). Implementasi private bukan sekadar membatasi akses, melainkan upaya untuk menciptakan kode yang tangguh (robust), aman, dan mudah dikembangkan di masa depan.

Pembahasan pada bab ini merupakan bagian daripada encapsulation yang akan dengan familiar dijumpai ketika kalian mempelajari OOP (Object Oriented Programming). Penulis tidak akan membahas lebih jauh mengenai apa itu OOP dan lainnya demi menghindari pembahasan yang mungkin akan melebar dan keluar dari tujuan bab itu sendiri, yakni perkenalan mengenai proses penguncian data. 

Sekian dari penjelasan tentang bagaimana variabel dapat dikunci. Cukup dimaklumi bahwa setiap individu memiliki caranya sendiri untuk memodelkan permasalahan, termasuk juga dalam pemrograman. Maka selamat belajar, Semangat mencoba!! CHEERSSS...!! 

Comments

Popular posts from this blog

Program Java kasir