Method pada Java
Metode (Method) adalah sekumpulan statement program yang disatukan menjadi sebuah subprogram atau fungsi, diawali dengan tanda “{“ diakhiri dengan tanda “}”. Ada 2 macam metode dan 1 metode pengendali, yaitu:
Metode tidak membalikkan nilai
Jika diberi awalan dengan kata void maka metode tersebut tidak memberi nilai balik.
contoh:
void Namametode(){
System.out.println(“INI METODE”);
}
Metode membalikkan nilai
Jenis kedua adalah jika metode diberi awalan sebuah tipe data maka metode tersebut akan memberi nilai balik data yang bertipedata sama dengan metode tersebut.
contoh :
int Namametode(){ int nilai;
System.out.println(“Kasih nilai balik”);
return nilai; // mengembalikan suatu nilai dari metode
}
Selain dua jenis di atas metode juga ada yang diberi parameter
contoh :
void Namametode(String a){
System.out.println(“INI METODE”); }
Karakteristik Method
Berikut adalah karakteristik dari method :
Untuk mengilustrasikan bagaimana memanggil method, mari kita menggunakan class string sebagai contoh. Anda dapat menggunakan the dokumentasi dari Java API untuk melihat semua method yang tersedia dalam class string. Selanjutnya, kita akan membuat method, kita sendiri. Tapi untuk saat ini, mari terlebih dahulu kita gunakan method yang sudah disediakan oleh Java.
Untuk memanggil sebuah instance method, kita dapat menuliskan :
nameOfObject.nameOfMethod( parameters );
mari kita mengambil dua contoh method yang ditemukan dalam class String.
Contoh program seperti di bawah ini :
String str1 = "Hello";
char x = str2.charAt(0);
String str2 = "hello";
boolean result = str1.equalsIgnoreCase( str1 );
Pemberian Variabel dalam Method
Pada contoh kita sebelumnya , kita sudah pernah mecoba melewati variabel pada method. Walaupun kita belum dapat membedakan antara perbedaan tipe variabel yang diberikan (passing) ke method dalam Java. Ada dua tipe data variabel passing pada method, yang pertama adalah pass-by-value dan yang kedua adalah pass-by-reference.
Pass-by-Value
Ketika pass-by-values terjadi, method membuat sebuah salinan dari nilai variable yang dikirimkan ke method. Walaupun demikian, method tidak dapat secara langsung memodifikasi nilai variabel pengirimnya meskipun parameter salinannya sudah dimodifikasi nilainya di dalam method.
Contoh :
public class TestPassByValue
{
public static void main( String[] args ){
int i = 10;
//mencetak nilai i
System.out.println( i );
//memanggil method test
//passing i pada method test test( i );
//Mencetak nilai i
System.out.println( i );
}
public static void test( int j ){ //merubah nilai parameter j
j = 33;
}
}
Pada contoh di atas, kita memanggil method tes dan melewatkan nilai variabel i sebagai parameter. Nilai pada i disalinkan ke variable j pada method. Pada kondisi ini variabel jadalah merupakan variabel pengganti pada method tes, jika nilai j berubah maka nilai variabel i yang terletak pada main tidak akan ikut berubah walaupun awalnya variabel j merupakan salinan dari variabel i.
Pass-by-reference
Ketika sebuah pass-by-reference terjadi, alamat memori dari nilai pada sebuah variable dilewatkan pada saat pemanggilan method. Hal ini berarti bahwa method menyalin alamat memori dari variabel yang dilewatkan pada method. Ini tidak seperti pada pass-by-value, method dapat memodifikasi variabel asli dengan menggunakan alamat memori tersebut, meskipun berbeda nama variabel yang digunakan dalam method dengan variabel aslinya, kedua variabel ini menunjukkan lokasi dari data yang sama.
contoh :
class TestPassByReference
{
public static void main( String[] args ){
//membuat array integer
int []ages = {10, 11, 12};
//mencetak nilai array
for( int i=0; i<ages.length; i++ ){
System.out.println( ages[i] );
}
}
test( ages );
for( int i=0; i<ages.length; i++ ){
System.out.println( ages[i] );
}
public static void test( int[] arr ){ //merubah nilai array
for( int i=0; i<arr.length; i++ ){
arr[i] = i + 50;
}
}
}
Memanggil Method Static
Method Static adalah method yang dapat dipakai tanpa harus menginisialisasi suatu class (maksudnya tanpa menggunakan variabel terlebih dahulu). Method static hanya dimiliki oleh class dan tidak dapat digunakan oleh instance (atau objek) dari suatu class. Method static dibedakan dari method yang dapat instance di dalam suatu class oleh kata kunci static.
Untuk memanggil method static, ketik :
Classname.staticMethodName(params);
Contoh dari static method yang digunakan :
System.out.println(“Hello world”);
int i = Integer.parseInt(“10”);
String hexEquivalent = Integer.toHexString( 10 );
Konstruktor
Konstruktor adalah suatu metode yang dapat digunakan untuk memberi nilai awal pada saat objek diciptakan. Konstruktor akan dipanggil secara otomatis begitu objek diciptakan. Konstruktor memiliki ciri :
a. namanya sama dengan nama kelas
b. Tidak mengembalikan nilai ( dan juga tidak boleh ada kata void didepannya)
Jika constructor tidak didefinisikan, Java memberikan constructor dengan nama constructor_default. Constructor default tidak melakukan apa-apa, namun semua variabel yang diinisialisasi dianggap sebagai berikut:
contoh :
class Coba
{
Coba(){ //Ini yang namanya konstruktor
System.out.println(“Ini Konstruktor”);
}
public static void main(String[] args)
{
Coba obj=new Coba();
}
}
Jika konstruktor dipanggil dari kelas turunan, maka caranya adalah dengan menuliskan kata super(); pada class turunan. Untuk penurunan sifat akan dibahas pada pertemuan selanjutnya Konstruktor juga ada yang diberi parameter
contoh :
konstrk(String a){
System.out.println(“INI KONSTRUKTOR”);}
Metode (Method) adalah sekumpulan statement program yang disatukan menjadi sebuah subprogram atau fungsi, diawali dengan tanda “{“ diakhiri dengan tanda “}”. Ada 2 macam metode dan 1 metode pengendali, yaitu:
- Metode kelas : Metode ini dapat dieksekusi walaupun tidak terdapat objek dalam kelas tersebut. Seperti variabel kelas, metode kelas juga dideklarasikan menggunkan keyword static.
- Metode objek : Metode ini hanya dapat dieksekusi sehubungan dengan objek tertentu.
- Metode main() : Metode ini digunakan pada saat aplikasi Java dimulai, menggunakan keyword static. Sebelum aplikasi mulai dieksekusi, diperlukan metode walaupun tanpa objek.
Metode tidak membalikkan nilai
Jika diberi awalan dengan kata void maka metode tersebut tidak memberi nilai balik.
contoh:
void Namametode(){
System.out.println(“INI METODE”);
}
Metode membalikkan nilai
Jenis kedua adalah jika metode diberi awalan sebuah tipe data maka metode tersebut akan memberi nilai balik data yang bertipedata sama dengan metode tersebut.
contoh :
int Namametode(){ int nilai;
System.out.println(“Kasih nilai balik”);
return nilai; // mengembalikan suatu nilai dari metode
}
Selain dua jenis di atas metode juga ada yang diberi parameter
contoh :
void Namametode(String a){
System.out.println(“INI METODE”); }
Karakteristik Method
Berikut adalah karakteristik dari method :
- Dapat mengembalikan satu nilai atau tidak sama sekali
- Dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama sekali.
- Setelah method telah selesai dieksekusi, dia akan kembali pada method yang memanggilnya.
Untuk mengilustrasikan bagaimana memanggil method, mari kita menggunakan class string sebagai contoh. Anda dapat menggunakan the dokumentasi dari Java API untuk melihat semua method yang tersedia dalam class string. Selanjutnya, kita akan membuat method, kita sendiri. Tapi untuk saat ini, mari terlebih dahulu kita gunakan method yang sudah disediakan oleh Java.
Untuk memanggil sebuah instance method, kita dapat menuliskan :
nameOfObject.nameOfMethod( parameters );
mari kita mengambil dua contoh method yang ditemukan dalam class String.
Contoh program seperti di bawah ini :
String str1 = "Hello";
char x = str2.charAt(0);
String str2 = "hello";
boolean result = str1.equalsIgnoreCase( str1 );
Pemberian Variabel dalam Method
Pada contoh kita sebelumnya , kita sudah pernah mecoba melewati variabel pada method. Walaupun kita belum dapat membedakan antara perbedaan tipe variabel yang diberikan (passing) ke method dalam Java. Ada dua tipe data variabel passing pada method, yang pertama adalah pass-by-value dan yang kedua adalah pass-by-reference.
Pass-by-Value
Ketika pass-by-values terjadi, method membuat sebuah salinan dari nilai variable yang dikirimkan ke method. Walaupun demikian, method tidak dapat secara langsung memodifikasi nilai variabel pengirimnya meskipun parameter salinannya sudah dimodifikasi nilainya di dalam method.
Contoh :
public class TestPassByValue
{
public static void main( String[] args ){
int i = 10;
//mencetak nilai i
System.out.println( i );
//memanggil method test
//passing i pada method test test( i );
//Mencetak nilai i
System.out.println( i );
}
public static void test( int j ){ //merubah nilai parameter j
j = 33;
}
}
Pada contoh di atas, kita memanggil method tes dan melewatkan nilai variabel i sebagai parameter. Nilai pada i disalinkan ke variable j pada method. Pada kondisi ini variabel jadalah merupakan variabel pengganti pada method tes, jika nilai j berubah maka nilai variabel i yang terletak pada main tidak akan ikut berubah walaupun awalnya variabel j merupakan salinan dari variabel i.
Pass-by-reference
Ketika sebuah pass-by-reference terjadi, alamat memori dari nilai pada sebuah variable dilewatkan pada saat pemanggilan method. Hal ini berarti bahwa method menyalin alamat memori dari variabel yang dilewatkan pada method. Ini tidak seperti pada pass-by-value, method dapat memodifikasi variabel asli dengan menggunakan alamat memori tersebut, meskipun berbeda nama variabel yang digunakan dalam method dengan variabel aslinya, kedua variabel ini menunjukkan lokasi dari data yang sama.
contoh :
class TestPassByReference
{
public static void main( String[] args ){
//membuat array integer
int []ages = {10, 11, 12};
//mencetak nilai array
for( int i=0; i<ages.length; i++ ){
System.out.println( ages[i] );
}
}
test( ages );
for( int i=0; i<ages.length; i++ ){
System.out.println( ages[i] );
}
public static void test( int[] arr ){ //merubah nilai array
for( int i=0; i<arr.length; i++ ){
arr[i] = i + 50;
}
}
}
Memanggil Method Static
Method Static adalah method yang dapat dipakai tanpa harus menginisialisasi suatu class (maksudnya tanpa menggunakan variabel terlebih dahulu). Method static hanya dimiliki oleh class dan tidak dapat digunakan oleh instance (atau objek) dari suatu class. Method static dibedakan dari method yang dapat instance di dalam suatu class oleh kata kunci static.
Untuk memanggil method static, ketik :
Classname.staticMethodName(params);
Contoh dari static method yang digunakan :
System.out.println(“Hello world”);
int i = Integer.parseInt(“10”);
String hexEquivalent = Integer.toHexString( 10 );
Konstruktor
Konstruktor adalah suatu metode yang dapat digunakan untuk memberi nilai awal pada saat objek diciptakan. Konstruktor akan dipanggil secara otomatis begitu objek diciptakan. Konstruktor memiliki ciri :
a. namanya sama dengan nama kelas
b. Tidak mengembalikan nilai ( dan juga tidak boleh ada kata void didepannya)
Jika constructor tidak didefinisikan, Java memberikan constructor dengan nama constructor_default. Constructor default tidak melakukan apa-apa, namun semua variabel yang diinisialisasi dianggap sebagai berikut:
- Variabel numerik diset ke 0
- String diset ke null
- Variabel boolean di set ke false
contoh :
class Coba
{
Coba(){ //Ini yang namanya konstruktor
System.out.println(“Ini Konstruktor”);
}
public static void main(String[] args)
{
Coba obj=new Coba();
}
}
Jika konstruktor dipanggil dari kelas turunan, maka caranya adalah dengan menuliskan kata super(); pada class turunan. Untuk penurunan sifat akan dibahas pada pertemuan selanjutnya Konstruktor juga ada yang diberi parameter
contoh :
konstrk(String a){
System.out.println(“INI KONSTRUKTOR”);}