- 1 1. Pendahuluan
- 2 3. Kasus Penggunaan Utama this
- 3 4. Catatan Penting Saat Menggunakan this
- 4 5. Contoh Kode Praktis
- 4.1 5.1 Membedakan Variabel Anggota dan Lokal
- 4.2 5.2 Rantai Konstruktor
- 4.3 5.3 Rantai Metode
- 4.4 5.4 Mengirimkan Instance Saat Ini
- 4.5 6. Pertanyaan yang Sering Diajukan (FAQ)
- 4.6 Q1. Apakah saya perlu menulis “this” sepanjang waktu?
- 4.7 Q2. Apa yang terjadi jika saya menggunakan this di dalam metode static?
- 4.8 Q3. Apa perbedaan antara this dan super?
- 4.9 Q4. Apa manfaat mengembalikan this dalam rantai metode?
- 4.10 Q5. Apa yang terjadi jika saya lupa menggunakan ini ketika diperlukan?
- 4.11 7. Kesimpulan
1. Pendahuluan
Saat Anda mulai belajar pemrograman dengan Java, Anda akan menemui berbagai kata kunci. Di antaranya, “this” memainkan peran yang sangat penting dalam memahami kelas dan konsep berorientasi objek. Namun, karena kata “this” secara harfiah berarti “ini/yang ini” dalam bahasa Inggris, banyak pemula pada awalnya merasa bingung mengapa kata tersebut digunakan dalam pemrograman.
Artikel ini menjelaskan peran dan penggunaan kata kunci “this” dalam Java secara jelas dan ramah pemula. Anda akan mempelajari poin‑poin penting seperti membedakan antara variabel anggota dan variabel lokal serta menggunakan “this” di dalam konstruktor, lengkap dengan contoh kode yang praktis.
Kami juga akan membahas pertanyaan umum, kesalahan yang sering terjadi, dan catatan penting. Pada akhir panduan ini, Anda akan memahami cara kerja kata kunci this dan bagaimana menggunakannya dengan percaya diri, mulai dari skenario dasar hingga lanjutan.
2. Apa Itu Kata Kunci “this”?
Dalam Java, “this” mengacu pada objek saat ini. Ketika sebuah instance (objek) dibuat dari sebuah kelas, kata kunci “this” digunakan untuk merujuk ke objek spesifik tersebut.
Bahkan jika banyak objek dibuat dari kelas yang sama, masing‑masing this pada setiap objek mengacu pada instance yang berbeda. Hal ini membantu memperjelas “objek mana yang sedang dioperasikan” di dalam kode Anda.
Peran Dasar this
- Mengakses variabel dan metode instance
Menggunakanthis.namaVariabelatauthis.namaMetode()memungkinkan Anda mengakses variabel dan metode milik objek tertentu. - Membedakan antara variabel lokal dan variabel instance
Ketika parameter konstruktor atau parameter metode memiliki nama yang sama dengan variabel anggota, “this” dipakai untuk membedakannya.
Mengapa Kita Membutuhkan “this”?
Di Java, Anda dapat membuat banyak objek dari satu kelas, masing‑masing dengan keadaan dan perilaku yang independen. Di dalam objek‑objek tersebut, Anda memerlukan cara untuk merujuk pada “objek ini sendiri.”
Itulah fungsi kata kunci “this”.
Sebagai contoh, di dalam kelas Person, penggunaan “this” memungkinkan Anda menyatakan “objek Person ini.”
Ringkasan
this adalah konsep yang sangat penting dalam pemrograman berorientasi objek. Ia berfungsi sebagai jembatan yang memungkinkan sebuah objek mengakses data dan perilaku miliknya sendiri.
3. Kasus Penggunaan Utama this
Kata kunci “this” muncul di banyak tempat dalam Java. Berikut adalah contoh‑contoh representatif beserta cuplikan kode.
3.1 Membedakan Variabel Anggota dari Variabel Lokal
Java sering menggunakan nama yang sama untuk parameter konstruktor dan variabel anggota. Dalam kasus seperti itu, “this” membedakannya.
Contoh: Membedakan variabel anggota dari variabel lokal
public class Student {
private String name;
public Student(String name) {
this.name = name; // Left: member variable, Right: constructor parameter
}
}
Jika Anda menghilangkan this, variabel lokal akan memiliki prioritas, sehingga variabel anggota tidak akan terisi dengan benar.
3.2 Menggunakan this di Konstruktor
Java memungkinkan adanya banyak konstruktor melalui constructor overloading. Anda dapat memanggil konstruktor lain menggunakan this() untuk mengurangi duplikasi kode.
Contoh: Memanggil konstruktor lain dengan this()
public class Book {
private String title;
private int price;
public Book(String title) {
this(title, 0); // calls another constructor
}
public Book(String title, int price) {
this.title = title;
this.price = price;
}
}
Hal ini membantu memusatkan logika inisialisasi dan mencegah kode yang berulang.
3.3 Method Chaining
Mengembalikan this memungkinkan pemanggilan metode secara berurutan pada instance yang sama.
Contoh: Method chaining
public class Person {
private String name;
private int age;
public Person setName(String name) {
this.name = name;
return this;
}
public Person setAge(int age) {
this.age = age;
return this;
}
}
// Method chaining
Person p = new Person().setName("佐藤").setAge(25);
Pendekatan ini banyak dipakai dalam pola builder dan kelas konfigurasi.
3.4 Mengirimkan Instance Saat Ini
Anda dapat menggunakan “this” ketika perlu mengirimkan instance saat ini ke metode atau kelas lain. Contoh: Mengirimkan objek saat ini
public class Printer {
public void print(Person person) {
System.out.println(person);
}
}
public class Person {
public void show(Printer printer) {
printer.print(this); // passes this instance
}
}
4. Catatan Penting Saat Menggunakan this
Meskipun sangat berguna, “this” harus digunakan dengan hati-hati untuk menghindari kesalahan.
4.1 this Tidak Dapat Digunakan dalam Konteks static
Metode atau variabel static milik kelas itu sendiri—bukan instance—jadi “this” tidak dapat digunakan. Contoh tidak valid
public class Example {
private int value;
public static void printValue() {
// System.out.println(this.value); // Compile error
}
}
4.2 Penggunaan Berlebihan this Dapat Mengurangi Keterbacaan
Menggunakan “this” secara tidak perlu dapat membuat kode lebih sulit dibaca. Gunakan hanya ketika diperlukan. Contoh penggunaan yang tidak perlu
public class Test {
private int x;
public void setX(int x) {
this.x = x; // needed
// this.x = this.x + 1; // excessive use
}
}
4.3 Jangan Salah Mengira this Dengan super
- this → instance saat ini
- super → induk (superclass)
Contoh: Menggunakan this vs super
public class Parent {
public void greet() {
System.out.println("Parent method");
}
}
public class Child extends Parent {
public void greet() {
System.out.println("Child method");
super.greet();
}
}
5. Contoh Kode Praktis
5.1 Membedakan Variabel Anggota dan Lokal
public class Account {
private String owner;
public Account(String owner) {
this.owner = owner;
}
public void printOwner() {
System.out.println("Account Owner: " + this.owner);
}
}

5.2 Rantai Konstruktor
public class Rectangle {
private int width;
private int height;
public Rectangle(int width) {
this(width, 1);
}
public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
public void printSize() {
System.out.println("Size: " + width + " x " + height);
}
}
5.3 Rantai Metode
public class BuilderExample {
private String name;
private int age;
public BuilderExample setName(String name) {
this.name = name;
return this;
}
public BuilderExample setAge(int age) {
this.age = age;
return this;
}
public void printInfo() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
BuilderExample person = new BuilderExample().setName("山田").setAge(30);
person.printInfo();
5.4 Mengirimkan Instance Saat Ini
public class Notifier {
public void notifyUser(User user) {
System.out.println(user.getName() + " has been notified.");
}
}
public class User {
private String name;
public User(String name) { this.name = name; }
public String getName() { return this.name; }
public void sendNotification(Notifier notifier) {
notifier.notifyUser(this);
}
}
Notifier notifier = new Notifier();
User user = new User("佐藤");
user.sendNotification(notifier);
6. Pertanyaan yang Sering Diajukan (FAQ)
Q1. Apakah saya perlu menulis “this” sepanjang waktu?
A. Tidak selalu. Gunakan ketika:
- nama variabel lokal dan anggota tumpang tindih
- Anda ingin merujuk secara eksplisit ke instance saat ini
Q2. Apa yang terjadi jika saya menggunakan this di dalam metode static?
A. Anda akan mendapatkan kesalahan kompilasi. Metode static milik kelas, bukan instance.
Q3. Apa perbedaan antara this dan super?
- this : instance saat ini
- super : kelas induk
Q4. Apa manfaat mengembalikan this dalam rantai metode?
It memungkinkan pemanggilan berurutan pada instance yang sama, meningkatkan keterbacaan.
Q5. Apa yang terjadi jika saya lupa menggunakan ini ketika diperlukan?
Variabel lokal dapat menimpa variabel anggota, menyebabkan penugasan yang salah dan bug.
7. Kesimpulan
Artikel ini menjelaskan kata kunci “this” dalam Java dari dasar hingga penggunaan praktis. Anda telah mempelajari:
- Cara membedakan variabel anggota dan variabel lokal
- Cara memusatkan logika konstruktor
- Cara membuat rantai metode
- Cara meneruskan instance saat ini ke metode lain
Kami juga membahas catatan penting seperti:
- “this” tidak dapat digunakan dalam konteks statis
- Jangan terlalu sering menggunakan “this”
- Gunakan dengan benar bersama “super”
Memahami cara kerja “this” akan membuat desain kelas Java Anda lebih jelas dan mengurangi bug. Terus jelajahi dasar-dasar Java dan terapkan konsep ini dalam kode nyata.
