
Belajar Java OOP: Memahami Konsep Dasar OOP (untuk Pemula)
OOP merupakan hal yang harus dipelajari untuk memahami Java lebih dalam. Karena Java sendiri merupakan bahasa yang didesain untuk OOP.
Buktinya:
Saat kita membuat program pertama, kita diwajibkan menggunakan class.
class Hello {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
OOP dikenal sebagai teknik pemrograman modern yang lebih efisien dan banyak digunakan pada Framework.
Jika kamu ingin memahami Framework, pelajari dulu konsep OOP
Jadi tidak ada alasan untuk tidak belajar OOP.
Apa saja yang akan kita pelajari pada artikel ini?
- Mengapa Harus Belajar OOP?
- Apa itu OOP?
- Objek dan Class
- Class Diagram
Mari kita mulai…
Mengapa Sih Harus Belajar OOP?
Mengapa sih OOP itu penting?
Bukannya kita bisa bikin program dengan prosedural saja?
Ya memang bisa…
Tapi masalahnya nanti kalau programnya sudah semakin besar dan kompleks.
Kode program akan sulit di-maintenance.
Pada pemrograman prosedural, kita biasanya memecah program menjadi beberapa prosedur.
Lalu membuat variabel global dan lokal untuk menyimpan data.

Semakin besar programnya, semakin banyak pula variabel dan prosedur yang harus dibuat.
Lama-kelamaan, kode program akan sulit dimodifikasi.. karena sudah terlalu kompleks.
Di sinilah kita harus menggunakan OOP.
Jadi..
Apa itu OOP?
OOP (Object Oriented Programming) atau dalam bahasa indonesia dikenal dengan pemrograman berorientasikan objek (PBO) merupakan sebuah paradigma atau teknik pemrograman yang berorientesikan Objek.
Pada OOP, Fungsi dan variabel dibungkus dalam sebuah objek atau class yang dapat saling brinteraksi, sehingga membentuk sebuah program.

Dengan demikian, tidak akan ada lagi kode yang “berantakan.”
Semua akan kita bungkus dalam objek.
Tapi sebelum membuat objek, kita harus membuat class dulu…
Class dan Object
Class sebenarnya bertugas untuk mengumpulkan prosedur/fungsi dan variabel dalam satu tempat.
Contoh:
Kita ingin membuat game sederhana, di dalamnya ada kucing dan makanan.

Dengan class, kita bisa menentukan.. mana variabel dan prosedur untuk kucing dan makanan.
Class ini nanti yang akan kita pakai untuk membuat objek.
Jadi…
Class adalah rancangan atau blue print dari sebuah objek.
Sedangkan objek adalah sebuah variabel yang merupakan instance atau perwujudan dari Class.
Instance bisa diartikan sebagai wujud dari class.
Class berisi definisi variabel dan fungsi yang menggambarkan sebuah objek.
Dalam OOP:
- Variabel disebut atribut atau properti;
- Fungsi disebut method.
Contoh Class:
class NamaClass {
String atribut1;
String atribut2;
void namaMethod(){ ... }
void namaMethodLain(){ ... }
}
Lalu, Kita biasanya membuat objek (instance) seperti ini:
NamaClass namaObj = new NamaClass();
Kata kunci new
berfungsi untuk membuat objek baru dari class tertentu.
Setelah membuat objek, kita bisa mengakses atribut dan method dari objek tersebut.
Contoh:
namaObj.namaMethod();
namaObj.atribut1;
Tanda titik (.
) berfungsi untuk mengakses atribut dan method.
Contoh Program OOP
Kita akan menggunakan Netbeans, silahkan buat project baru.

Isi nama project-nya dengan “BelajarOOP” dan jangan centang “Create Main Class”.

Setelah itu, silahkan buat package baru. Klik kanan pada <default package>, lalu pilih New->Java Package.

Isi nama package dengan “dasar”:

Setelah itu, di dalam package dasar
, silahkan buat class baru bernama Player.java
.
Klik kanan pada package dasar
lalu pilih New->Java Class. Setelah itu, isi namanya dengan Player.java
.
Silahkan tulis kode pada Player.java
seperti ini:
package dasar;
public class Player {
// definisi atribut
String name;
int speed;
int healthPoin;
// definisi method run
void run(){
System.out.println(name +" is running...");
System.out.println("Speed: "+ speed);
}
// definisi method isDead untuk mengecek nilai kesehatan (healthPoin)
boolean isDead(){
if(healthPoin <= 0) return true;
return false;
}
}
Berikutnya, buat class baru lagi bernama Game.java
dan isi kodenya seperti ini:
package dasar;
public class Game {
public static void main(String[] args){
// membuat objek player
Player petani = new Player();
// mengisi atribut player
petani.name = "Petani Kode";
petani.speed = 78;
petani.healthPoin = 100;
// menjalankan method
petani.run();
if(petani.isDead()){
System.out.println("Game Over!");
}
}
}
Coba eksekusi Game.java
dengan klik kanan pada Game.java
lalu pilih Run File. Maka hasilnya:

Coba ganti nilai healthPoin
menjadi 0
.
petani.healthPoin = 0;
Setelah itu, coba eksekusi lagi:

Player petani
sudah mati, Game selsai! 😄
Kok Bisa Begitu? Jelaskan Donk!
Baik, kita mulai dari pembuatan class.
Pertama-tama, kita membuat sebuah class dengan nama Player
. Class ini mendefinisikan objek Player dalam Game dengan atribut sebagai berikut:
name
adalah nama objek;speed
adalah kecepatan;healthPoin
adalah nilai kesehatan dari player, biasanya disingkathp
.
Lalu class Player
memiliki method:
run()
untuk menggerakkan player;isDead()
untuk mengecek kondisi kesehatan player. Method ini akan mengembalikan nilaitrue
apabila nilaihp
lebih kecil atau sama dengan nol (0
), sebaliknya akan mengembalikan nilaifalse
.
Berikutnya kita membuat objek baru dari class Player
pada class Game
bernama petani
.
// membuat objek player
Player petani = new Player();
Setelah itu mengisi atribut-atributny. Karena kalau tidak diisi akan bernilai Null dan bisa menyebabkan NullPointerException.

Berikutnya kita coba modifikasi nilai hp
menjadi nol.
Hasilnya, pesan Game Over!
akan ditampilkan. Karena method isDead()
akan mengembalikan nilai true
jika nilai hp
kurang atau sama dengan nol.

Contoh Program OOP 2: Program Drone
Untuk praktek berikutnya, coba buat class Drone
.
class Drone {
// atribut
int energi;
int ketinggian;
int kecepatan;
String merek;
// method
void terbang(){
energi--;
if(energi > 10){
// terbang berarti nilai ketinggian bertambah
ketinggian++;
System.out.println("Dorne terbang...");
} else {
System.out.println("Energi lemah: Drone nggak bisa terbang");
}
}
void matikanMesin(){
if(ketinggian > 0){
System.out.println("Mesin tidak bisa dimatikan karena sedang terbang");
} else {
System.out.println("Mesin dimatikan...");
}
}
void turun(){
// ketinggian berkurang, karena turun
ketinggian--;
energi--;
System.out.println("Drone turun");
}
void belok(){
energi--;
System.out.println("Drone belok");
// belok ke mana? perlu dicek :)
}
void maju(){
energi--;
System.out.println("Drone maju ke depan");
kecepatan++;
}
void mundur(){
energi--;
System.out.println("Drone mundur");
kecepatan++;
}
}
Bagaimana Menentukan Atribut dan Method dari Objek?
Seperti yang sudah dijelaskan di awal. Objek memiliki data (atribut) dan operasi (fungsi).
Kuncinya:
- Atribut itu seperti ciri-ciri dari objek.
- Method itu seperti tingkah laku atau operasi.
Contoh:
Misalkan kita ingin membuat class dari Senjata
.
Apa ciri-ciri dari senjata atau data yang bisa dijadikan atribut?
- jumlah peluru
- jenis
- nama senjata
- berat
- warna
- dll
Lalu apa tingkah laku atau operasi (fungsi) yang bisa dilakukan?
- tembak()
- lempar()
- kurangiPeluru()
- reload()
- dll.

Maka class-nya bisa dibuat seperti ini:
class Senjata {
// atribut
String nama;
int jumlahPeluru;
// method
void tembak(){
//..
// setelah nembak, kurangi peluru
jumlahPeluru--;
}
void reload(){
//..
// kalau di-reload maka jumlah peluru diisi ulang
jumlahPeluru = 300;
}
}
Mudah bukan…
Mengenal Class Diagram
Class Diagram adalah sebuah diagram yang menggambarkan hubungan antar class. Class Diagram dapat kita buat dengan aplikasi perancangan (CASE), seperti StarUML.

Sebauh class digambarkan dengan sebuah tabel 1 kolom dan 3 baris.
Baris pertama berisi nama class; Baris kedua berisi atribut; dan Baris ketiga berisi method.

Selain itu, terdapat garis yang menggambarkan hubungan antar class.

Class Diagram biasanya digunakan oleh software engineer untuk merancang software dengan paradigma OOP.
Sebagai programmer, kita hanya perlu tahu cara membaca dan menuliskannya ke dalam kode.
Jika kamu tertarik dengan class diagram, bisa membaca buku-buku tentang UML.https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-6279325630224392&output=html&h=158&slotname=7009414453&adk=2905135379&adf=3195657256&pi=t.ma~as.7009414453&w=630&fwrn=4&lmt=1646533491&rafmt=11&psa=1&format=630×158&url=https%3A%2F%2Fwww.petanikode.com%2Fjava-oop%2F&flash=0&wgl=1&uach=WyJXaW5kb3dzIiwiMTAuMC4wIiwieDg2IiwiIiwiOTkuMC40ODQ0LjUxIixbXSxudWxsLG51bGwsIjY0IixbWyIgTm90IEE7QnJhbmQiLCI5OS4wLjAuMCJdLFsiQ2hyb21pdW0iLCI5OS4wLjQ4NDQuNTEiXSxbIkdvb2dsZSBDaHJvbWUiLCI5OS4wLjQ4NDQuNTEiXV1d&dt=1647067718926&bpp=117&bdt=M&idt=118&shv=r20220308&mjsv=m202203080101&ptt=9&saldr=aa&abxe=1&cookie=ID%3De3e7874f23861b42%3AT%3D1646722876%3AS%3DALNI_MahLjiG5dkzAeI_WgQUnAunSnGDjA&prev_fmts=0x0%2C728x90%2C350x280%2C630x378%2C350x280%2C630x378%2C630x378%2C630x378%2C630x378%2C630x158%2C630x378%2C630x158%2C630x378%2C630x378%2C630x378%2C630x158%2C630x378&nras=2&correlator=862479169134&frm=20&pv=1&ga_vid=196402682.1646722006&ga_sid=1647058257&ga_hid=59364888&ga_fc=1&ga_cid=1813016355.1646983929&rplot=4&u_tz=420&u_his=5&u_h=768&u_w=1366&u_ah=738&u_aw=1366&u_cd=24&u_sd=1&dmc=8&adx=170&ady=15896&biw=1349&bih=667&scr_x=0&scr_y=13317&eid=44759875%2C44759926%2C42531397%2C44750774%2C31065531%2C31065595%2C21067496%2C31062930&oid=2&psts=AGkb-H83apE6FwMcVLnmQ0sxsC6L9lxEVEmCYzGrjLqxZ27KskoQELRBmD-E-fLms-vk5osqR8NPqf5JSKViQnw%2CAGkb-H-WYBZbVx9-gXHVwvJu5mciVXqHKwv5i_ugRbyhU-km2A2_t25qOERGYi-ZIz0qUIk8rcumB28H2JNm81hZ0–HkrplhPxqXtittcY%2CAGkb-H8LpLQQ46RYUSvF9EzwmfbPyJPNplCL0b9W-FV9hnv4HGvwAPcnDXRDJ4v6XxVCjf4z4SrvLywoq3zv9bf2UKBfT4bY%2CAGkb-H8KWGJceCLVLMwg6jwJgbUXIS4eDNqKBz_AJhS2UHfKTxjt9WmxsVZGF-E876y8BKX8uUbE_F7pu2gbj3YR3zXsZ-xvu8PRZwuxHgMg8mm2%2CAGkb-H-1B4NFc5R1VBiNt-v3wH8yDOunHxSpoDFjYJfnAFUFls_BmvEJYP0L9FRGwkibJliUwcoh56YI3-iEvg%2CAGkb-H-GR7SyRkoh-IcwjMlsG925GFHSfpQs1E3OE39CWdvgMgA5tdLPKfBokTCNWNbttydVF–kboJYhc5xung%2CAGkb-H-upULMsxa-M2YhrYfFvNvWJDJr1sNC9rM9Q0fJn3locrJuVA4cGTbbXOstgp8Y9PHZkIzGr0hIeysHRTY%2CAGkb-H_7i1Tcq1_CNwFLCok18o06-qWaafXg7b3x3wv1WsqIWjKrShFtm3d6y-1uZAW8moEMSykUlq2wju9q7A%2CAGkb-H9Q3bFk7GLiVuGf5gI1p29oe5QtBUpLRrBdN2qK8_o4_HR2Gv7KUQYUG5QwYpOrIjqv9KmVjXbMOmg73ud4eZafydfllqo%2CAGkb-H91XmM-FGYW0qaP0LvvtdXk9WZHh11NkkL5NlQveepITdbbg_xdjtH9UKnWQnu3imLreKYe22Za1QKJzQ%2CAGkb-H_F5sxqp5dIBM0_zwZG3PF9tu9R0GB2kROshMbwdnp9AWNwgDpLqHQk6aGnLjtkOFNEU-UeLmqV0i1bdAV0p5xbivntna4%2CAGkb-H9tOoZJJsm7Z3hHYpFMP6G2vDA_XuOUema9nQBtNKyDwx93ZW58wt-HGj7zGWgQtJU4kFhTArF-6KM%2CAGkb-H-cNOp3rhzBfon7dB3BssFoSka1v5h0gFF1rzUEthHBIKNgzdd91EDihZUu0Q3fuyRp9t_EX97f7JFtD0I&pvsid=4012896385575592&pem=575&tmod=137353669&uas=1&nvt=3&ref=https%3A%2F%2Fwww.google.com%2F&eae=0&fc=1920&brdim=0%2C0%2C0%2C0%2C1366%2C0%2C1366%2C738%2C1366%2C667&vis=1&rsz=%7Co%7CpeEbr%7C&abl=NS&pfx=0&fu=128&bc=31&ifi=31&uci=a!v&btvi=15&fsb=1&xpc=85FBl9OeE9&p=https%3A//www.petanikode.com&dtd=50064
Akhirnya selesai juga pembahasan kita kali ini tentang “Belajar Java OOP: Memahami Konsep Dasar OOP (untuk Pemula)”. Gimana? Seru, kan? Sekarang, yuk perdalam pengetahuanmu tentang pemrograman di Java dengan membaca artikel berikut!
Belajar Java: Belajar Java OOP: Memahami Inheritance dan Method Overriding | Belajar Java OOP: Memahami Tingkatan Akses Member dan Class (Modifier) | Belajar Java OOP: Mengenal Constructor & Destructor dalam Java
Recent Post
-
Bybit Diretas! Rp 23,8 Triliun Raib dalam Sekejap
-
Lagu Sukatani Diblokir tapi Tak Bisa Dibungkam!
-
Tagar Indonesia Gelap Trending, Gerakan Perlawanan di Media Sosial
-
Mau Bisnis Cepat Untung? Gini Cara Efisiensinya
-
6 Tren Marketing yang Wajib Anda Ketahui di tahun 2025
-
Duolingo Trending, Maskotnya Meninggal Demi Marketing?
-
Teknologi Mengubah Cara kita Belajar di Era Digital?
-
Mama-Bisa-Investasi
Categories
- Business (129)
- Company Profile (3)
- Developer Connect (126)
- HR and L&D (23)
- Human Reasearch and Development (15)
- Landing Page (2)
- Marketing (27)
- Media Relations (72)
- News (39)
- Public Relations (48)
- Story (8)
- Technology (221)
- Tips and Trick (59)
- Toko Online (2)
- Uncategorized (23)
- Video & Tips (13)
- Wesclic (30)
Tags
Read More
Bybit Diretas! Rp 23,8 Triliun Raib dalam Sekejap
titah 22/02/2025 0Keamanan dalam dunia kripto kembali diuji setelah Bybit, salah satu platform pertukaran mata uang digital terbesar, dikabarkan mengalami peretasan besar. Sebanyak $1,46 miliar dalam bentuk…
Lagu Sukatani Diblokir tapi Tak Bisa Dibungkam!
titah 21/02/2025 0Ketika musik dilarang, apakah benar akan hilang? Tidak juga. Justru sebaliknya, band Sukatani yang baru…
Tagar Indonesia Gelap Trending, Gerakan Perlawanan di Media Sosial
titah 19/02/2025 0Media sosial telah menjadi alat yang sangat berpengaruh di media sosial untuk mengekspresikan berbagai masalah…
Mau Bisnis Cepat Untung? Gini Cara Efisiensinya
titah 18/02/2025 0Bisnis yang efisien tidak hanya berfokus pada penghematan biaya tapi juga pada cara memaksimalkan waktu,…
6 Tren Marketing yang Wajib Anda Ketahui di tahun 2025
titah 17/02/2025 0Agar dapat bersaing dan berkembang di pasar, UMKM perlu menyesuaikan diri dengan strategi marketing yang…