Buatlah contoh suatu kelas dan definisikan atribut dan methodnya

Dalam PBO dasar kita harus memahami apa itu class, method, dan attribute, langsung saja penjelasannya.

  1. Class (Kelas)  digunakan untuk membuat objek, dan berperan sebagai tipe data dari objek. Class merupakan sarana pengkapsulan kumpulan data dan kumpulan method yang mengoperasikan kumpulan data tersebut.
  2. Attribute adalah segala sesuatu (data )yang berhubungan dengan karakteristik objek dalam setiap kelas. Tiap atribut memiliki nilai berbeda untuk setiap objek.
  3. Method merupakan tingkah laku dari suatu objek, jika bersifat static berarti tingkah laku semua objek dalam kelas tersebut.

Modifier untuk Method dan Attribute

1.       Public

Menyatakan bahwa kelas/method/attribute tersebut dapat diakses oleh kelas lain dimanapun.

2.       Protected

Menyatakan bahwa kelas/method/attribute tersebut dapat diakses oleh kelas lain yang berada dalam satu package atau kelas lain tersebut merupakan turunannya.

3.        Private

Menyatakan bahwa kelas tersebut tidakdapat diakses sama sekali oleh kelas lain bahkan juga tidak dapat diturunkan. Berarti attribute-attribute yang private hanya dapat diakses oleh

method-method dalam kelas yang sama, kelas lain masih dapat mengakses melalui method-method tersebut asal modifiernya public.

Pertimbangan suatu attribute dideklarasikan private :

  1. Bila kelas lain tak memerlukan attribute tersebut.
  2. Melindungi suatu attribute dari kemungkinan nilainya diubah oleh method lain dari kelas lain.

4.        Final (no extended, no overrided)

  • Menyatakan bahwa suatu kelas tidak dapat menurunkan (extend) kelas lain.
  • Menyatakan bahwa suatu method tidak dapat dioverride oleh method lain.
  • Membentuk suatu attribute menjadi konstanta.

5.        Static (no need instanciation, no overrided)

Method dan attribute ada dua jenis, yaitu method dan attribute milik kelas serta method dan attribute milik suatu objek. Method dan attribute milik kelas, diakses melalui tiga cara, pertama melalui nama kelasnya, kedua melalui nama objek yang diinstant dari kelasnya, dan ketiga bebas tanpa didahului nama kelas atau nama objeknya. Method dan attribute milik objek, diakses hanya melalui nama objeknya. Method static tidak bisa dioverride. Method main() harus memiliki modifier static. Modifier static artinya method dan attribute milik kelas, menjadi sifat

bersama dari semua objek dalam kelas tersebut (tidak memerlukan instansiasi objek untuk menjalankannya).

Contoh System.out.println() bersifat static artinya untuk memanggil method println()tidak harus dilakukan instansiasi dari kelas System.

6.        Abstract (no instanciation, should be overrided)

Abstract class adalah kelas murni (tanpa objek) dan tidak boleh memiliki objek (tidak boleh ada instansiasi) serta method-method yang abstract harus disempurna-kan oleh kelas turunannya melalui override. Kelas seperti ini biasanya merupakan root suatu struktur kelas.  Konsekuensi penggunaan sifat abstract :

  1. Tidak dapat dibuat constructor yang abstract.
  2. Tidak dapat dibuat method yang static dan abstract (kedua sifat saling kontradiktif).
  3. Tidak diijinkan membuat method yang private dan abstract (kedua sifat ini juga saling kontradiktif).

7.       Synchronized (khusus modifier method)

Pada lingkungan multithread, dimungkinkan lebih dari satu jalui eksekusi yang berjalan di kode yang sama, kondisi tersebut dapat diatur sehingga pada selang waktu tertentu hanya ada satu jalur eksekusi yang diijinkan di method yang synchronized (eksekusi dilakukan secara mutual exclusive).

8.         Native (khusus modifier method)

Modifier ini digunakan untuk memanggil/mengakses method yang ditulis dalam bahasa C/C++. Seperti method yang abstract, method yang native hanya berupa prototype, implementasi method ini berada di file external (dalam folder yang sama).

9.         Transient (khusus modifier attribute)

Java memiliki konsep serialisasi, yaitu kemampuan untuk mentransformasikan objek menjadi suatu stream, sehingga objek dapat ditransfer dari suatu aplikasi ke aplikasi lainnya, atau dari suatu workstation ke workstation lainnya. Prinsip ini digunakan dalam aplikasi client-server.

Salah satu ketentuan serialisasi adalah tidak boleh ada perubahan nilai attribute suatu objek, saat objek tersebutditransformasikan menjadi stream, dan sebaliknya, namun suatu objek dapat memiliki nilai attribute yang boleh berubah (bersifat transient).

10.    Volatile (khusus modifier attribute)

Dalam manajemen thread, java dapat menyimpan nilai suatu attribute (yang sering diakses thread) menjadi cache value, sehingga tidak perlu selalu merujuk ke lokasi memori aslinya.

Attribute tersebut bersifat volatile, karena nilainya rentan berubah bila diakses oleh lebih dari satu thread.

11.    Extends

Bila terjadi pewarisan, kelas yang mewariskan method dan attributenya disebut kelas super, sedangkan yang diwariskan disebut subkelas. Kelas yang memiliki modifier ini berarti merupakan subkelas dari suatu kelas super.

Caranya :

[modifier1] class NamaSubKelas extends NamaKelasSuper { classBody }

12.    Implements

Kelas yang memilki modifier2 implements artinya kelas tersebut mengimplementasikan satu atau lebih interface. Bila terdapat lebih dari satu interface, gunakan tanda koma di antara interface-interface tersebut.

Caranya :

  • [modifer] class NamaKelas implements NamaInterface1, NamaInterface2 { classBody }

Selanjutnya contoh Program sederhana penggunaan class, attribute, Method :

Dalam C#
buat Class dahulu

public class Class1 { public void LuasLing() { //deklarasi int jari; double luas; //input Console.WriteLine("Hitung Luas lingkaran"); Console.Write("Masukkan jari-jari lingkaran : "); jari=Convert.ToInt32(Console.ReadLine()); //proses luas=3.14*jari*jari; //output Console.Write("hasilnya = "+luas); Console.ReadLine(); } }

lalu buat Main Program

class Program { public static void Main(string[] args) { Class1 c1=new Class1(); c1.LuasLing(); Console.ReadKey(true); } }

Screenshotnya


dalam versi Java

package tugas1_java; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner inp = new Scanner (System.in); //deklarasi int jari; double luas; //input System.out.println("Hitung Luas lingkaran"); System.out.println("Masukkan jari-jari lingkaran : "); jari=inp.nextInt(); //proses luas=3.14*jari*jari; System.out.println("Hasilnya = "+luas); } }

Screenshotnya

dalam versi C++

#include <iostream> #include <cstdlib> using namespace std; int main() { //deklarasi int jari; double luas; //input cout << "Hitung Luas Lingkaran" << endl; cout << "Masukkan jari-jari lingkaran : "; cin>>jari; //proses luas=3.14*jari*jari; //output cout<<"Hasilnya = "<<luas<<endl; system("pause"); return 0; }

Screenshotnya


sekian postingan saya, harap maklum karena masih beginner 🙂

Hallo, teman-teman! Bagaimana kabarnya? Mudah-mudahan dalam keadaan sehat walafiat. Aamiin.

Apa kamu pernah mendengar OOP? Mungkin sudah dengar tapi belum terlalu paham seperti apa OOP itu ya. Sebagai calon programmer, kamu wajib tahu lho konsep dasar OOP. Mengapa? Sebab zaman now, programmer harus mampu meminimalisir program dan membuatnya tertata rapi. Selain itu juga untuk mempercepat pembuatan aplikasi, serta meminimalisir timbulnya bug.

Hal tersebut dapat teratasi dengan OOP. Kamu tidak perlu menuliskan kode berulang dalam satu script panjang. Itulah salah satu alasan seorang programmer menggebu-gebu untuk mempelajari konsep OOP.

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

Baik, langsung saja penjelasan mengenai apa itu OOP? Beserta contohnya. Yuk simak bersama-sama.

Mengenal Apa itu OOP?

Apa kamu sudah tahu kepanjangan dari OOP? OOP adalah merupakan kepanjangan dari Object Oriented Programming. OOP merupakan suatu metode pemrograman yang berorientasi kepada objek. Dalam bahasa Indonesia OOP dikenal dengan PBO (Pemrograman Berorientasi Objek).

Lalu apa tujuannya? OOP bertujuan untuk mempermudah pengembangan sebuah program. Ia memiliki variabel dan fungsi yang  dibungkus ke dalam objek ataupun class. Keduanya dapat saling berinteraksi sehingga membentuk sebuah program.

Mengapa Harus OOP?

Seperti yang kamu ketahui sebelumnya, programmer harus mampu meminimalisir program dan membuatnya tertata rapi. Selain itu juga untuk mempercepat pembuatan aplikasi. Lalu, bukannya kamu bisa bikin program dengan prosedural saja? Iya, tentu bisa. Masalahnya, kalau programnya semakin besar maupun kompleks maka tu semua akan membuat kodemu sulit  di-maintenance

Sebab teknik prosedural identik dengan menggabungkan seluruh kode. Bayangkan jika kamu membuat program sebesar GOJEK dengan teknik prosedural, kamu akan kesulitan untuk memodifikasi kode program tersebut. Malah akan dibuat pusing jika seluruh program disatukan tanpa mengorganisasikan kode program. Nah, itulah alasan mengapa kamu harus menggunakan teknik OOP. Berikut merupakan komponen OOP yang penting untuk kamu pelajari.

Class dan Object

Class bertugas untuk mengumpulkan prosedur/fungsi dan variabel dalam satu tempat. Class merupakan blueprint dari sebuah objek atau cetakan untuk membuat objek. Contoh class sebagai berikut ini.


Class akan merepresentasikan objek yang mau dibuat. Jadi dalam membuat nama kelas harus disesuaikan dengan objek yang akan dibuat. Penulisan nama class memiliki aturan. Yakni dengan format PascalCase. Apa itu? Penulisannya diiawali dengan huruf kapital. Jika nama variabel tersusun dari dua kata atau lebih maka tidak perlu diberi spasi di antaranya dan diawali dengan huruf kapital pula.

Misal: class MakananKucing, class Senjata, dan class SignIn.

Sedangkan object adalah sebuah variabel instance yang merupakan wujud dari class. Instance merupakan wujud dari sebuah kelas. Sebuah objek digambarkan dengan variable dan method.

Class berisi dari beberapa kumpulan definisi variabel dan fungsi yang menggambarkan sebuah objek. Ok, apakah teman-teman sudah mulai paham? Tidak hanya terdiri dari class, OOP juga terdiri dari beberapa elemen penyusun lainnya seperti attribute, method, inheritance dsb.

Atribut

Atribut merupakan bagian dari sebuah kelas yang masih berhubungan erat dari kelas tersebut. Atribut bisa juga disebut sebagai properti atau properties dari sebuah class. Contohnya ketika kamu punya sebuah class Motor, maka kamu dapat menambahkan atribut seperti kecepatan motor, umur motor, ukuran, ban, warna dsb. Untuk lebih detailnya, kita contohkan pada program berikut:


Penggunaan atribut berlaku dari kurung kurawal awal ({) sampai dengan sebelum kurung kurawal akhir (}). Ini dinamakan scope. Untuk penulisannya menggunakan format lowerCamelCase. Jadi untuk kata pertama diawali dengan huruf kecil, sedangkan kata selanjutnya diawali dengan huruf kapital. Sama seperti PascalCase, penggunaan spasi tidak diperkenankan ketika menghubungkan dua kata atau lebih dari sebuah nama properti.

Contohnya length, width, apple, speedlistMovies, dll.

Method

Method berperan menjelaskan bagaimana suatu atribut beraksi. Peran yang dimaksud berupa tingkah laku (behavior) yang dapat digambarkan oleh suatu methodMisal class Manusia. Manusia tentu memiliki method berupa tingkah laku, seperti berpikir, berjalan, berbicara, makan dll. Maka tentunya method dapat disesuaikan dengan program yang dibuat.

Baik, biar lebih jelas kita akan coba implementasikan ke dalam sebuah kode Java. Kalian bisa menggunakan IDE seperti Bluej ataupun Intellij. Selain itu kamu bisa gunakan compiler online seperti repl.it atau glot.io.

Eits, kamu wajib baca dan pahami Materi Pemrograman Dasar Pada Java sebelum kamu lanjut belajar lebih dalam mengenai OOP.

Pertama, kamu bisa buat class Hewan.

Kode lab:

    // Method dari kelas Hewan

        System.out.println("Berlari dengan sangat cepat.");

        System.out.println("Berjalan sambil melompat.");

        System.out.println("Makan wortel dengan menggunakan mulutnya");


Kemudian kamu bisa buat class Kelinci. Tulislah kode program berikut ini:

Kode lab:

    public static void main(String[] args) {

        Hewan kelinci = new Hewan(); 

        kelinci.makan(); // Method atau tingkah laku hewan kelinci


Tabel class Hewan dan class Kelinci saling berkaitan. Artinya kelas Kelinci dapat memanggil method dari class Hewan.

Kamu dapat menjalankan program tersebut, maka output-nya seperti ini:

Kemudian kita akan menambahkan beberapa properti tambahan seperti ini

Kode lab:

    // Inisialisasi properti melalui konstruktor

    // Konstruktor dengan parameter

        System.out.println("Berlari dengan sangat cepat..");

        System.out.println("Berjalan sambil melompat.");

        System.out.println("Makan wortel dengan menggunakan mulutnya");


Kemudian tambahkan beberapa kode program pada class Kelinci.

Kode lab:

     public static void main(String[] args) {

         Hewan kelinci = new Hewan(4);

         kelinci.makan(); //Method atau tingkah laku hewan kelinci

         // Penggunaan fungsi getUmur dari class Hewan

         System.out.println("Umur Kelinci adalah" + kelinci.getUmur() + "tahun");

         // Perhitungan indeks massa tubuh (BMI)

         // Rumus: berat(kg) / ( tinggi(m) * tinggi(m) )

         double bmi = kelinci.getBerat() / ((kelinci.getTinggi() * 0.01) * (kelinci.getTinggi() * 0.01));

         System.out.println("Indeks massa tubuhnya adalah " + bmi);


Maka output-nya:

Catatan : Tanda // adalah komentar yang bisa Anda gunakan untuk menjelaskan maksud dari kode program java.

Inheritance

Inheritance adalah hubungan antara dua objek atau lebih. Di mana terdapat sebuah objek utama yang mewariskan attribute maupun method yang dimilikinya kepada objek lainnya, baik itu sebagian maupun keseluruhan.

Contohnya seekor anak kucing berjenis mamalia, mewarisi sifat dan juga bentuk fisik orang tuanya, seperti bulu, mata, telinga, bahkan suaranya.

Suatu objek diwariskan dengan menggunakan keyword extends. Baik, pertama buatlah class Hewan. Class Hewan merupakan parent class  atau orang tua dari semua kelas.

Kode lab:

        System.out.println("Hewan Mamalia");


Kemudian Buat class Kucing, yang artinya merupakan turunan dari class Hewan. Gunakanlah keyword extends.

Kode lab:

public class Kucing extends Hewan {

        super(); // Akan tetap memanggil constructor “hewan mamalia” dari parent Class

        System.out.println("Kucing Bersuara Meong");


Dan yang terakhir buatlah class  dengan nama Main. Kelas ini berguna untuk menjalankan atau mengeksekusi sebuah program.

Kode lab:

   public static void main(String[] args) {

        Hewan hewan = new Hewan(); // Memanggil class Hewan

        System.out.println("Apakah hewan IS-A Objek -> " + (hewan instanceof Object));

        System.out.println("Apakah hewan IS-A Hewan -> " + (hewan instanceof Hewan));

        System.out.println("Apakah hewan IS-A Kucing -> " + (hewan instanceof Kucing));

        System.out.println("------------------------"); // spasi

        Kucing kucing = new Kucing(); // Memanggil class Kucing “Kucing bersuara meong” 

        System.out.println("Apakah hewan IS-A Objek -> " + (kucing instanceof Object));

        System.out.println("Apakah kucing IS-A Hewan -> " + (kucing instanceof Hewan));

        System.out.println("Apakah kucing IS-A Kucing -> " + (kucing instanceof Kucing));


Jika coding-mu benar, maka tabel akan berbentuk seperti gambar di bawah ini:

Dan ketika dijalankan maka output-nya seperti ini:

Baik sekian yang saya dapat sampaikan. Agar lebih mahir ngoding bahasa Java, kamu bisa gabung di kelas Memulai Pemrograman Dengan Java.

“Masalah utama seorang programmer adalah anda tidak pernah tau apa yang sedang dia kerjakan, sampai ketika masalah itu muncul dan sudah terlambat untuk mengatasinya.” 

(Seymour Cray)

Jika ada yang ditanyakan jangan sungkan isi pada kolom komentar ya.

Apa Itu OOP Pada Java? Beserta Contohnya– karya Rendi Juliarto, Intern Junior Content Writer

Video yang berhubungan

Postingan terbaru

LIHAT SEMUA