Anda di halaman 1dari 19

PENGERTIAN DAN

FUNGSI PERINTAH
THIS
DHANY INDRA GUNAWAN
PENGERTIAN PERINTAH THIS

• Dalam bahasa Java, this adalah perintah khusus untuk mengakses object saat ini.
Perintah this biasanya dipakai untuk menghindari kesalahan akses antara property dan
argument method yang memiliki nama sama. Pengertian ini akan lebih jelas saat kita
masuk ke praktek kode program. public class lapthis {
lapthis(String merk){
Silahkan pelajari sejenak kode program berikut: System.out.println("Laptop Merk : " +merk);
}
}

class belthis{
Hasil kode program: public static void main (String[] args){
lapthis laptopdhany = new lapthis("Asus");
Laptop merk Asus }
}
PENJELASAN

• Di baris 1-5, terdapat pendefinisian class lapthis dengan sebuah constructor. Constructor
tersebut menerima satu parameter merk untuk kemudian diakses dari dalam
perintah System.out.println().
• Proses instansiasi class lapthis dilakukan pada baris 9. Karena constructor butuh 1
parameter, maka kita isi dengan new Laptop("Asus"). Hasilnya, akan tampil string
"Laptop merk Asus".
CONTOH PROGRAM

public class lathis { • Kali ini di dalam class lathis saya membuat
String merk = "Acer"; property merk di baris 2. Property merk langsung
lathis(){ diisi string "Acer" untuk selanjutnya di tampilkan
System.out.println("Laptop Merk : " +merk);
} dari dalam constructor dengan
} perintah System.out.println() di baris 4.

class belathis{ • Perhatikan bahwa sekarang constructor


public static void main (String[] args){ class lathis tidak butuh parameter.
lathis laptopindra = new lathis();
Variabel merk di akhir baris 4 akan merujuk ke
}
} Hasil kode program: property merk milik class lathis.
Laptop Merk : Acer
Lanjut, silahkan pelajari juga kode program berikut:
LANJUTAN

• Sekarang bagaimana jika kita gabung public class gabthis {


String merk = "Acer";
property merk dengan parameter merk dalam gabthis(String merk){
satu kode program? System.out.println("Laptop Merk : " + merk);
}
• Sekarang class gabthis memiliki }
property merk="Acer" di baris 2, tapi juga
class belgabthis{
menerima parameter merk di baris 3. Pada saat
public static void main (String[] args){
proses instansiasi di baris 10, saya membuat gabthis laptopDhany = new gabthis("Asus");
class gabthis dengan perintah new }
}
Laptop("Asus").

Pertanyaannya, apa teks yang akan tampil? apakah "Laptop merk Asus", atau "Laptop merk
Acer"? Berikut hasilnya:
LANJUTAN

• Hasil program Laptop Merk : Asus


• Ternyata yang akan dipakai oleh bahasa Java adalah parameter merk, bukan
property merk.
• Bagaimana cara kita "memaksa" bahasa Java untuk memakai property merk? Disinilah
perlunya penggunaan keyword this:
• contohnya
CONTOH PROGRAM

public class gabthis { • Perhatikan penulisan this.merk di akhir baris 4. Ini


String merk = "Acer"; adalah cara untuk mengakses
gabthis(String merk){ property merk kepunyaan object laptopDhany di
System.out.println("Laptop Merk : " +this.merk);
} baris 2. Jika tanpa this, maka merk akan merujuk ke
} parameter merk di baris 3.

class belgabthis{
public static void main (String[] args){ Hasil kode program:
gabthis laptopDhany = new gabthis("Asus"); Laptop Merk : Acer
}
}
PERINTAH THIS UNTUK public class realthis {
String merk;
PROSES INISIALISASI String pemilik;
realthis (String merk, String pemilik){
PROPERTY this.merk = merk;
this.pemilik = pemilik;
}
• Untuk praktek yang lebih real,
keyword this sering dipakai saat proses String infolaptop(){
return "Laptop " + merk + " Milik " + pemilik;
inisialisasi property di dalam constructor. }
}
• Berikut contoh kasusnya:
class belrealthis{
Hasil kode program: public static void main (String[]args){

Laptop Asus Milik Dhany realthis LaptopDhany = new realthis("Asus","Dhany");


Laptop Apple Milik Indra System.out.println(LaptopDhany.infolaptop());

realthis LaptopIndra = new realthis("Apple", "Indra");


System.out.println(LaptopIndra.infolaptop());
}
}
PENJELASAN

• Class realthis sekarang memiliki 2 buah property: merk dan pemilik, namun keduanya belum
di isi nilai apapun (baris 2-3).
• Proses pengisian atau inisialisasi property merk dan pemilik di lakukan dari dalam constructor
pada baris 5-6, yang nilainya berasal dari parameter constructor.
• Pada saat object realthis di-instansiasi dengan perintah new realthis("Asus","Dhany") di baris
17, string "Asus" akan mengisi property merk, dan string "Dhany" akan mengisi
property pemilik.
• Dengan cara ini, method cekInfo() bisa mengakses kedua property dan mengembalikan nilainya
dalam sebuah string "Laptop "+merk+" milik "+pemilik.
• Jadi perintah this disini berfungsi untuk menghindari salah akses apakah yang dimaksud
itu property, atau parameter.
LANJUTAN

• Jika this dihapus dan isi constructor ditulis sebagai berikut:


...
Laptop(String merk, String pemilik) {
merk = merk;
pemilik = pemilik;
}
...

Maka hasil kode program menjadi:


Laptop null milik null
Laptop null milik null
public class paratme {
String merk;
String pemilik;
LANJUTAN paratme (String parameterMerk, String parameterPemilik){
merk = parameterMerk;
pemilik = parameterPemilik;
• Dalam kasus kita menggunakan nama }
property dan parameter yang berbeda, String infolaptop(){
variabel this ini boleh tidak ditulis: return "Laptop " + merk + " Milik " + pemilik;
}
• Sebagai parameter, saya menggunakan
}
nama parameterMerk dan paramete class belparat{
rPemilik seperti di baris 4. Karena public static void main (String[]args){
nama ini berbeda dengan nama
paratme LaptopDhany = new paratme("Asus","Dhany");
property merk dan pemilik, maka System.out.println(LaptopDhany.infolaptop());
tidak masalah jika tidak
menggunakan this di baris 5-6. paratme LaptopIndra = new paratme("Apple", "Indra");
System.out.println(LaptopIndra.infolaptop());
Hasil kode program: }
Laptop Asus Milik Dhany }
Laptop Apple Milik Indra
PENGERTIAN DAN
FUNGSI PERINTAH
STATIC
PENGERTIAN PERINTAH STATIC

• Dalam bahasa Java, static adalah perintah khusus yang public class sta {
String cekInfo(){
memungkinkan sebuah property atau method diakses
return "Laptop Lenovo Milik Gunawan";
langsung tanpa melalui object, tapi cukup menulis nama }
class saja. }

• Normalnya, kita hanya bisa mengakses property dan class belsta{


method setelah class tersebut di instansiasi menjadi public static void main (String[]args){
sta LaptopGunawan = new sta();
object. System.out.println(LaptopGunawan.cekInfo());
• Berikut contohnya: }
}

Hasil kode program:

Laptop Lenovo Milik Gunawan


PENJELASAN

• Dalam kode program ini, class sta di definisikan pada baris 1-5. Di dalamnya terdapat
method cekInfo() yang mengembalikan string "Laptop Lenovo milik Gunawan".
• Agar bisa mengakses method cekInfo(), kita harus buat object dari class sta terlebih
dahulu. Proses instansiasi ini dilakukan pada baris 10, dimana
class LaptopGunawan akan berisi object dari class sta. Selanjutnya, isi method bisa
diakses dari LaptopGunawan.cekInfo().
• Jika kita coba akses method cekInfo() secara langsung tanpa membuat object, hasilnya
akan error:
• contoh
CONTOH

public class sta { • Error terjadi karena "normalnya", sebuah method


String cekInfo(){
return "Laptop Lenovo Milik Gunawan"; hanya bisa diakses dari object, bukan langsung dari
} class.
}

class belsta{
public static void main (String[]args){

System.out.println(LaptopGunawan.cekInfo());
}
}
Belsta.java:10:
Hasil kode program: error: non-static method cekInfo() cannot be referenced from a static context
System.out.println(Laptop.cekInfo());
^
1 error
LANJUTAN

public class sta {


• Akan tetapi jika kita menambahkan static String cekInfo(){
keyword static sebelum nama return "Laptop Lenovo Milik Gunawan";
}
method cekInfo(), method tersebut bisa diakses }
tanpa membuat object terlebih dahulu:
class belsta{
• Dengan penambahan keyword static di awal public static void main (String[]args){
baris 2, method cekInfo() sekarang bisa diakses
dengan perintah sta.cekInfo() seperti di baris System.out.println(sta.cekInfo());
}
10. Disini kita tidak perlu membuat object }
terlebih dahulu. Hasil kode program:

Laptop Lenovo Milik Gunawan


STATIC PROPERTY BAHASA JAVA

• Selain untuk method, keyword static juga bisa dipakai public class stapro {
untuk property. Cara penulisan dan efek yang static String processor = "intel core i9";
}
dihasilkan juga sama, dimana kita bisa mengakses
property tersebut tanpa harus membuat object terlebih class belstapro{
dahulu: public static void main (String[] args){
System.out.println(stapro.processor);
• Di baris 2, property processor ditambahkan }
keyword static, sehingga bisa langsung diakses }
dengan perintah stapro.processor di baris 8. Hasil kode program:
Intel Core i9
MENGHITUNG JUMLAH OBJECT DENGAN STATIC
PROPERTY
• Keyword static umumnya dipakai untuk kode program yang cukup kompleks
seperti design pattern. Salah satu penggunaan sederhana adalah untuk menghitung atau
men-tracking jumlah object dari sebuah class.
• Misalnya kita ingin mengetahui berapa kali class Laptop di instansiasi sepanjang kode
program. Caranya, buat sebuah static property sebagai counter dan tempatkan di dalam
constructor.
• Berikut kode yang dimaksud:
KODE PROGRAM
• Di dalam class hitsta, terdapat satu static property dengan
public class hitsta { nama totalLaptop. Sebagai nilai awal, property ini diisi angka
static int totalLaptop = 0; 0 di baris 2.
hitsta(){ • Property totalLaptop selanjutnya di increment dari dalam
totalLaptop++;
constructor dengan perintah totalLaptop++. Artinya,
System.out.println(" class hitsta ke- "+ totalLaptop + "
dibuat"); nilai totalLaptop akan naik 1 angka setiap kali constructor
} diakses
} • Sebagai tambahan, di dalam constructor juga terdapat
class belhitsta{ perintah System.out.println() sekedar menampilkan isi
public static void main (String[] args){ property totalLaptop.
hitsta LaptopDhany = new hitsta(); • Masuk ke dalam class Belhitsta, saya membuat 3 buah object
hitsta LaptopIndra = new hitsta();
dari class Laptop antara baris 11-14. Setiap kali class hitsta di
hitsta LaptopGunawan = new hitsta();
} instansiasi, itu akan menjalankan constructor yang pada
} gilirannya menaikkan nilai static property totalLaptop.
Hasil kode program:
• Inilah cara untuk menghitung berapa kali class Laptop dibuat
class hitsta ke- 1 dibuat
menggunakan static property.
class hitsta ke- 2 dibuat
class hitsta ke- 3 dibuat

Anda mungkin juga menyukai