Lompat ke konten Lompat ke sidebar Lompat ke footer

Menggunakan Parameter Tipe Terikat Java dan Fungsinya

Pada artikel ini akan dijelaskan mengenai cara penggunaan parameter tipe terikat Java beserta Fungsinya.


Sebelum mempelajari materi tentang cara Menggunakan Parameter Tipe Terikat Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Tipe Variabel Java dan Fungsinya, Membuat Scope Variabel Java dan Fungsinya, dan Membuat Program Final Blank Variabel pada Java.

Ada saat dimana ketika programmer ingin membatasi tipe data yang ingin digunakan pada argumen dalam sebuah tipe dari parameter. Misalnya, method yang beroperasi pada angka (number) mungkin hanya ingin dibatasi jumlah penerimaan instance-nya dari angka atau dari subclass-nya saja. Untuk kondisi tersebut, maka fungsi parameter tipe terikat dapat digunakan pada pembuatan program Java, dengan kondisi berikut:
  • Ingin menggunakan seluruh class sebagai parameter dengan kondisi bahwa method umum Java dapat diciptakan. Serta, sebagaimana halnya constructor yang berfungsi sebagai spesial method, maka constructor juga bisa digunakan sebagai tipe parameter umum.
  • Ingin membatasi jenis objek yang dapat digunakan dalam tipe parameter. Misalnya dalam metode yang membandingkan dua objek dan ingin memastikan bahwa objek yang diterima adalah yang sebanding.
  • Inovasi dari fungsi method tersebut sama dengan method tak terikat kecuali bahwa jika programmer ingin menggunakan class apapun yang tidak sebanding, maka hasilnya adalah pesan error pada program.

Deklarasi parameter tipe terikat
  • Daftarkan tipe nama-nama parameter.
  • Beserta extend keyword.
  • dan batas atasnya (upper bound).

Sintak:
<T extends superClassName>

Catatan: Pada konteks ini, extend digunakan sebagai istilah umum untuk makna "extends" (seperti pada class). Juga, spesifikasi T hanya bisa digantikan oleh superClassName, atau subclass dari superClassName. Dengan demikian, superclass didefinisikan secara inklusif dari batas atas (upper limit).

Contoh: Berikut program yang mengimplementasikan tipe terikat (extend superclass) dengan cara umum.

// Variabel tipe terikat pada

// bahasa pemrograman Java

 

// class ini hanya menerima

// tipe parameter dari class

// extend class A atau class A

// itu sendiri.

 

// Melewatkan tipe parameter

// yang lain yang bukan extend

// class A akan mengakibatkan

// error pada saat kompilasi

// program

class Bound<t extends A>

{

 

private T objRef;

 

public Bound(T obj){

this.objRef = obj;

}

 

 

public void doRunTest(){

this.objRef.displayClass();

}

}

 

 

class A

{

public void displayClass()

{

System.out.println("Dalam"

+" super class A");

}

}

 

 

class B extends A

{

public void displayClass()

{

System.out.println("Dalam sub"

+" class B");

}

}

 

 

class C extends A

{

public void displayClass()

{

System.out.println("Dalam sub"

+" class C");

}

}

 

 

public class BoundedClass

{

public static void main(String a[])

{

 

 

// Menciptakan objek dari sub

// class c dan melewatkannya

// menuju parameter tipe

// terikat

Bound<c> bec = new Bound<c>(new C());

bec.doRunTest();

 

 

// Menciptakan objek dari sub

// class B dan melewatkannya

// menuju parameter tipe

// terikat

Bound<b> beb = new Bound<b>(new B());

beb.doRunTest();

 

 

// Sama seperti melewatkan

// super class A

Bound<a> bea = new Bound<a>(new A());

bea.doRunTest();

 

 

}

}

Output :
Dalam sub class C
Dalam sub class B
Dalam super class A

Baca Juga:
Contoh: Untuk program selanjutnya dibatasi hanya pada tipe A dan sub class-nya.

// Variabel tipe terikat pada

// bahasa pemrograman Java

 

// class ini hanya menerima

// tipe parameter dari class

// extend class A atau class A

// itu sendiri.

 

// Melewatkan tipe parameter

// yang lain yang bukan extend

// class A akan mengakibatkan

// error pada saat kompilasi

// program

class Bound<t extends A>

{

 

private T objRef;

 

public Bound(T obj){

this.objRef = obj;

}

 

 

public void doRunTest(){

this.objRef.displayClass();

}

}

 

 

class A

{

public void displayClass()

{

System.out.println("Dalam"

+" super class A");

}

}

 

 

class B extends A

{

public void displayClass()

{

System.out.println("Dalam sub"

+" class B");

}

}

 

 

class C extends A

{

public void displayClass()

{

System.out.println("Dalam sub"

+" class C");

}

}

 

 

public class BoundedClass

{

public static void main(String a[])

{

// Menciptakan objek dari sub

// class c dan melewatkannya

// menuju parameter tipe

// terikat

Bound<c> bec = new Bound<c>(new C());

bec.doRunTest();

 

// Menciptakan objek dari sub

// class B dan melewatkannya

// menuju parameter tipe

// terikat

Bound<b> beb = new Bound<b>(new B());

beb.doRunTest();

 

// Sama seperti melewatkan

// super class A

Bound<a> bea = new Bound<a>(new A());

bea.doRunTest();

 

// String bukanlah extends

// dari class A  

Bound<string> bes = new Bound<string>(new String());

bea.doRunTest();

 

}

}

Output:
error: type argument String is not within bounds of type-variable T

Variabel terikat tipe berganda
Parameter tipe terikat dapat digunakan bersama dengan method, class, dan interface.

Java juga mendukung variabel tipe terikat berganda. Pada kasus ini A dapat menjadi sebagai interface atau class. Jika A adalah class, maka B dan C harus menjadi interface-nya. Program tidak bisa memiliki lebih dari satu class pada variabel terikat tipe berganda.

Sintak:
<T extends superClassName & Interface>

Contoh:

// Variabel tipe terikat pada

// bahasa pemrograman Java

class Bound<t extends A & B>

{

 

private T objRef;

 

public Bound(T obj){

this.objRef = obj;

}

 

 

public void doRunTest(){

this.objRef.displayClass();

}

}

 

 

interface B

{

public void displayClass();

}

 

 

class A implements B

{

public void displayClass()

{

System.out.println("Dalam"

+" super class A");

}

}

 

 

public class BoundedClass

{

public static void main(String a[])

{

// menciptakan objek dari sub

// class A dan melewatkan nya

// menuju parameter tipe

// terikat

Bound<a> bea = new Bound<a>(new A());

bea.doRunTest();

 

 

}

}

Output:
Dalam super class A

Dalam bahasa pemrograman Java, parameter tipe terikat (bounded type parameter) dapat digunakan untuk memberikan batasan pada jenis data yang dapat digunakan sebagai parameter dalam sebuah kelas atau metode. Berikut adalah beberapa kelebihan dan fungsinya dalam menggunakan parameter tipe terikat Java:
  • Keamanan Tipe (Type Safety): Penggunaan parameter tipe terikat memungkinkan untuk memberikan batasan tipe data yang dapat diterima oleh suatu kelas atau metode. Hal ini meningkatkan keamanan tipe (type safety) karena kesalahan tipe dapat terdeteksi pada tahap kompilasi, bukan pada saat runtime.
  • Reusable Code: Parameter tipe terikat membuat kode lebih dapat digunakan kembali. Pengembang dapat membuat kelas atau metode yang bekerja dengan berbagai jenis tipe data yang memenuhi batasan tertentu.
  • Kode yang Lebih Abstrak: Penggunaan parameter tipe terikat meningkatkan abstraksi dalam kode. Pengembang dapat menentukan fungsionalitas yang bergantung pada sifat umum dari tipe data tanpa harus mengetahui jenis spesifiknya.
  • Meningkatkan Keterbacaan Kode: Penggunaan parameter tipe terikat dapat meningkatkan keterbacaan kode karena menyampaikan informasi tambahan tentang jenis data yang diharapkan. Ini membantu pembaca kode untuk memahami lebih baik maksud dan batasan dari suatu kelas atau metode.
  • Pencegahan Penggunaan Tipe Data yang Tidak Sesuai: Parameter tipe terikat membantu mencegah penggunaan tipe data yang tidak sesuai dengan kebutuhan suatu kelas atau metode. Dengan menentukan batasan tipe, maka dapat dipastikan bahwa hanya tipe data yang sesuai yang dapat digunakan.

Penggunaan parameter tipe terikat di Java memberikan kelebihan-kelebihan di atas, membantu dalam meningkatkan keamanan tipe, membuat kode lebih abstrak, dan memungkinkan penggunaan kembali yang lebih baik. Namun, penting untuk mempertimbangkan kebutuhan proyek dan memilih batasan tipe yang sesuai dengan tujuan dan desain keseluruhan aplikasi.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Nila Putri Anindita, Nur Sarah Fahma Diba', Nurman Satria Herlangga, R Aryo Pradipto Suryandaru, dan Resti Aprilya Safitri.

5 komentar untuk "Menggunakan Parameter Tipe Terikat Java dan Fungsinya"

  1. Apa fungsi keyword extends pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Keyword extends pada bahasa pemrograman Java digunakan untuk memperluas class yang merupakan pewarisan dari class lainnya pada program.

      Pada Java, sangat dimungkinkan untuk dilakukan pewarisan atribut dan method dari satu class ke class lainnya.

      Hapus
    2. Pada Java, keyword extends digunakan untuk menunjukkan bahwa new class diturunkan dari inheritance class sebelumnya. Jadi, pada dasarnya, fungsi dari keyword extends adalah untuk memperluas fungsionalitas class pada program Java.

      Hapus
  2. Apakah Java mendukung konsep multiple inheritance?

    BalasHapus
    Balasan
    1. Java tidak mendukung penggunaan konsep pewarisan ganda atau multiple inheritance, inilah mengapa programmer tidak bisa melakukan perluasan dari dua class yang berbeda secara bersamaan pada sebuah program. Sebaliknya, dapat digunakan satu buah class untuk dilakukan perluasan, dan juga dapat menggunakan interface untuk menyertakan fungsionalitas tambahan pada program Java.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -