BAB 4 DASAR PEMROGRAMAN DENGAN JAVA
Tujuan: Dari perkuliahan ini, diharapkan mahasiswa mampu memahami konsep dan implementasi dengan menggunakan bahasa pemrograman Java terkait dengan: 1. Variabel dan tipe data 2. Operator 3. Pencabangan dan Perulangan 4. Array 5. Fungsi
4.1. Variabel dan Tipe Data Keyword dalam bahasa Java tidak boleh digunakan sebagai nama variabel (pengenal), tabel di bawah memperlihatkan daftar kata-kata kunci bahasa Java.
Daftar Keyword pada Java abstract boolean break byte case catch char class const continue do double
Else extends final finally float for goto if implements import instanceof int
Interface long native new null package private protected public return short static
super switch syncronized this throw throws transient try void volatile while
4.2. Pendeklarasian Variabel dan Tipe Data Primitif dalam Java Variabel dalam bahasa pemrograman berfungsi untuk menyimpan suatu nilai dengan tipe data tertentu. Begitu juga dalam bahasa java, memungkinkan untuk mendeklarasikan suatu variabel. Variabel merupakan tempat penyimpanan data atau informasi dengan tipe data tertentu yang ada di memori. Pada dasarnya ada 2 macam tipe variabel data dalam bahasa Java, yaitu tipe data primitif dan tipe data reference. Tabel di bawah ini menunjukkan jenisjenis tipe data primitif.
Tipe
Panjang bit
Range
boolean
16
-
char
16
0
byte
8
short
16
int
32
long
64
7 -2 15 -2 31 -2 63 -2
float
32
double
64
–
216-1 7 – 2 -1 15 – 2 -1 31 – 2 -1 63 – 2 -1 -
Nilai default untuk masing-masing tipe adalah sebagai berikut: Tipe
Nilai Default
boolean
false
char
‘\u0000’
byte
0
short
0
int long float double
0 0L 0.0F 0.0
Casting diperlukan untuk mengkonversi dari suatu tipe ke tipe data yang lebih kecil panjang bitnya. Sedangkan promotion terjadi pada saat mengkonversi dari suatu tipe data ke tipe data yang lebih panjang bitnya. Contoh : int p = (int) 10L; long i = 10;
Untuk mendeklarasikan variabel dalam java, sintaksnya adalah : tipe-data
contoh :
nama_variabel;
int tahun; byte usia; char jenis_kelamin;
Berikut contoh penggunaan tipe data primitif pada Java seperti pada program di bawah ini. ////nama file : Variabel.java class Variabel { public static void main(String[] args) { byte byteData = 100; short shortData = 501; int intData = 999; char charData = 'A'; float floatData = 99.99; double doubleData = 99.999; boolean booleanData1 = true; boolean booleanData2 = false; System.out.println("Contoh tipe data byte System.out.println("Contoh tipe data short
= "+byteData); = "+shortData);
System.out.println("Contoh System.out.println("Contoh System.out.println("Contoh System.out.println("Contoh System.out.println("Contoh System.out.println("Contoh
tipe tipe tipe tipe tipe tipe
data data data data data data
integer char float double boolean boolean
= = = = = =
"+intData); \'"+charData+"\'"); "+floatData); "+doubleData); "+booleanData1); "+booleanData2);
} }
4.3. Tipe Data Reference Selain tipe data primitive di Java juga dikenal tipe data reference. Jenis tipe data reference pada bahasa Java adalah ; tipe class, array, dan interface. Tipe data referensi digunakan untuk mengacu suatu objek. Di mana variabel objek tersebut dapat digunakan untuk mengakses nilai variabel instant yang biasanya berupa tipe data primitif. Variabel yang memiliki tipe data berupa tippe data reference, maka di dalam variable tersebut dapat terdiri dari referensi atau alamat memori dari suatu objek yang tercipta secara dinamis. Program di bawah menunjukkan contoh penggunaan tipe data referensi. ////nama file : Referensi.java class Referensi { int rescue; //pendeklarasian variabel dgn tipe data int public static void main(String[] args) { Referensi mengacu_ke; //pendeklarasian variabel dgn tipe data class mengacu_ke = new Referensi(); //instansiasi tipe data class menjadi objek mengacu_ke.rescue = 911; // mengakses objek -> tipedataReferensi melalui variabel objek 'mengacu_ke' System.out.println("Variabel objek \'mengacu_ke\' bernilai -> "+mengacu_ke.rescue); } }
4.4. Karakter Khusus / Escape dalam Java Dalam tabel di bawah ini diberikan penjelasan tentang karakter escape yang ada dalam Java
Kode karakter khusus (karakter escape) pada Java Kode
Keterangan
\n
New line (baris baru)
\t
Tab
\b
Backspace
\r
Carriage Return
\f
Form feed01
\\
Backslash
\’
Tanda kutip tunggal
\”
Tanda kutip ganda
\ddd
Bilangan Oktal
\xdd
Bilangan Heksadesimal
\udddd
Karakter Unicode
Contoh penggunaan kode karakter khusus seperti yang ditunjukkan pada listing program di bawah ini
////nama file : Charkhusus.java class Charkhusus { public static void main(String[] args) { System.out.println(“Java\nLanguage”); System.out.println(“\n”); System.out.println(“\’Programming\’”); } }
4.5. Operator Operator dapat diklasifikasikan menjadi 2 bentuk, yaitu unary operator dan binary operator. Unary operator adalah operator yang hanya melibatkan 1 operan. binary operator adalah operator yang melibatkan 2 operan.
Sedangkan
Java mempunyai berbagai macam jenis operator yang dapat digolongkan menjadi operator aritmatika, increment-decrement, bitwise, boolean, logik, shift (geser), penugasan, kombinasi dan kondisi.
1. Operator Aritmatika, digunakan untuk memanipulasi nilai variabel yang bersifat numerik. Macam-macam bentuk operator aritmatika dapat dilihat pada Tabel di bawah ini : Operator Aritmatika dalam Java Operator
Pemakaian
Keterangan
+
Operan1
+
Operan2
Menambahkan Operan1 dengan Operan2
-
Operan1
-
Operan2
Mengurangkan Operan1 dengan Operan2
*
Operan1
*
Operan2
Mengalikan Operan1 dengan Operan2
/
Operan1
/
Operan2
Membagi Operan1 dengan Operan2
%
Operan1
%
Operan2
Memberikan sisa hasil bagi antara Operan1 dengan Operan2
Selain operator di atas, operator-operator yang ditunjukkan pada Tabel di atas juga termasuk dalam operator aritmatika.
Operator
Pemakaian
Keterangan
++
Operan++
Menaikkan nilai operan sebanyak 1 setelah dilakukan operasi terhadap operan tersebut.
++
++Operan
Menaikkan nilai operan sebanyak 1 sebelum dilakukan operasi terhadap operan tersebut.
--
Operan--
Menurunkan nilai operan sebanyak 1 setelah dilakukan operasi terhadap operan tersebut.
--
--Operan
Menaikkan nilai operan sebanyak 1 sebelum dilakukan operasi terhadap operan tersebut.
-
-Operan
Merubah nilai operan menjadi negasinya (jika operan
positif
menjadi
negatif,
begitu
sebaliknya).
Berikut ini adalah contoh penggunaan operator aritmatika dalam program :
juga
// nama file : operatoraritmatika.java import java.io.*; class operatoraritmatika { public static void main(String[] args) { int operan1, operan2, angka_pilihan = -1; try { while (true) { System.out.println("\nPenggunaan Operator Aritmatika"); System.out.println("============================"); System.out.println("0. K e l u a r"); System.out.println("1. Penambahan (+)"); System.out.println("2. Pengurangan (-)"); System.out.println("3. Perkalian (*)"); System.out.println("4. Pembagian (/)"); System.out.println("5. Hasil Bagi/Modulo (%)"); System.out.println("\n"); System.out.print("Silahkan pilih 1-5, 0 untuk keluar : "); angka_pilihan = (new Integer((new BufferedReader(new InputStreamReader(System.in))).readLine())).intValue(); if (angka_pilihan==0) { System.out.println("Bye..bye....."); break; } else if (angka_pilihan > 5 || angka_pilihan < 0) { System.out.print("\n"); System.out.print("Angka yang bisa anda masukkan adalah 1-5 \n"); } else { System.out.print("Masukkan operan 1 : "); operan1 = (new Integer((new BufferedReader(new InputStreamReader(System.in))).readLine())).intValue(); System.out.print("Masukkan operan 2 : "); operan2 = (new Integer((new BufferedReader(new InputStreamReader(System.in))).readLine())).intValue(); switch(angka_pilihan) { case 1: System.out.println(operan1 + " + " + operan2 + " = " +(operan1+operan2)); break; case 2: System.out.println(operan1 + " - " + operan2 + " = " +(operan1-operan2)); break; case 3: System.out.println(operan1 + " x " + operan2 + " = " +(operan1*operan2)); break; case 4: System.out.println(operan1 + " / " + operan2 + " = " +(operan1/operan2));
break; case 5: System.out.println(operan1 + " % " + operan2 + " = " +(operan1%operan2)); break; } System.out.println("\n"); } } }catch(IOException e) { System.out.println("Error I/O"); System.exit(0); } } }
2. Operator Relasional Operator relasional berfungsi untuk membandingkan antara dua nilai variabel. Tabel di bawah ini menunjukkan operator relasional. Operator Relasional Operator >
Pemakaian Operan1 >
Operan2
<
Operan1
<
Operan2
>=
Operan1
>=
Operan2
<=
Operan1
<=
Operan2
==
Operan1
==
Operan2
!=
Operan1
!=
Operan2
Keterangan Menghasilkan nilai true jika Operan1 lebih besar dari Operan2 Menghasilkan nilai true jika Operan1 lebih kecil dari Operan2 Menghasilkan nilai true jika Operan1 lebih besar atau sama dengan Operan2 Menghasilkan nilai true jika Operan1 lebih kecil atau sama dengan Operan2 Menghasilkan nilai true jika Operan1 sama dengan Operan2 Menghasilkan nilai true jika Operan1 tidak sama dengan Operan2
3. Operator Logika, adalah jenis operator yang sering dipakai untuk operasi perbandingan dan selalu mengghasilkan suatu nilai bertipe boolean . Yang termasuk dalam operator logika ditunjukkan dalam tabel di bawah ini. Operator Logika Operator &&
Pemakaian Operan1 &&
Operan2
||
Operan1
Operan2
||
Keterangan Menghasilkan true jika Operan1 dan Operan2, keduanya bernilai boolean true. Menghasilkan true jika Operan1 atau Operan2, keduanya bernilai boolean true.
!
!Operan1
&
Operan1
&
Operan2
|
Operan1
|
Operan2
^
Operan1
^
Operan2
Menghasilkan true jika Operan1 bernilai boolean false. Menghasilkan true jika Operan1 dan Operan2 bernilai true (bitwise AND) Menghasilkan true jika Operan1 atau Operan2 salah satunya bernilai true (bitwise OR). Menghasilkan true jika salah satu diantara Operan1 atau Operan2 bernilai true, tetapi tidak keduanya.
4. Operator Assignment, digunakan untuk memberikan nilai dari suatu hasil operasi ke sebuah variabel, umumnya diberikan kepada variabel yang sama. Operator Assignment Operator += -= *= /= %= &= |= ^= >>= <<= >>>=
5. Operator
Pemakaian Operan1 Operan1 Operan1 Operan1 Operan1 Operan1 Operan1 Operan1 Operan1 Operan1 Operan1
kondisional,
+= -= *= /= %= &= |= ^= >>= <<= >>>=
adalah
Operan2 Operan2 Operan2 Operan2 Operan2 Operan2 Operan2 Operan2 Operan2 Operan2 Operan2
operator
Ekivalen Dengan Operan1 = Operan1 + Operan2 Operan1 = Operan1 = Operan2 Operan1 = Operan1 * Operan2 Operan1 = Operan1 / Operan2 Operan1 = Operan1 % Operan2 Operan1 = Operan1 & Operan2 Operan1 = Operan1 | Operan2 Operan1 = Operan1 ^ Operan2 Operan1 = Operan1 >> Operan2 Operan1 = Operan1 << Operan2 Operan1 = Operan1 >>> Operan2
yang
dipakai untuk
operasi
kondisi
(persyaratan), sama sebagaimana if-then-else dan hanya berlaku untuk pernyataan tunggal. Operator ini mengembalikan suatu nilai yang benar sesuai dengan kondisi yang diberikan. Conditional operator (operator konditional) ini hanya ada 1 macam, yaitu ? disertai dengan tanda : (titik dua). Jika kondisi persyaratan yang terletak di sebelah kiri tanda ? bernilai benar, maka pernyataan yang berada di sebelah kiri tanda : yang akan diambil. Demikian juga sebaliknya, jika kondisi
persyaratan bernilai salah, maka
pernyataan yang berada di sebelah kanan tanda : yang akan diambil
Melakukan increment dan decrement nilai class IncDec { public static void main (String args[]) { int x = 8, y = 13; System.out.println("x = "
+ x); System.out.println("y = " + y); System.out.println("x = " + ++x); System.out.println("y = " + y++); System.out.println("x = " + x--); System.out.println("y = " + --y); } }
Melakukan operasi bit class Bitwise { public static void main (String args[]) { int x = 5, y = 6; System.out.println("x = " + x); System.out.println("y = " + y); System.out.println("x & y = " + (x & y)); System.out.println("x | y = " + (x | y)); System.out.println("x ^ y = " + (x ^ y)); } }
Melakukan operasi komplemen class BitwiseComplement { public static void main (String args[]) { int x = 8; System.out.println("x = " + x); int y = ~x; System.out.println("y = " + y); } }
Melakukan operasi shift class Shift { public static void main (String args[]) { int x = 7; System.out.println("x = " + x); System.out.println("x >> 2 = " + (x >> 2)); System.out.println("x << 1 = " + (x << 1)); System.out.println("x >>> 1 = " + (x >>> 1)); } }
Menggunakan logical operator class LogicalOperator { public static void main (String args[]) { int x = 7, y = 11, z = 11; System.out.println("x = " + x);
System.out.println("y System.out.println("z System.out.println("x System.out.println("x System.out.println("y System.out.println("x System.out.println("y System.out.println("x
= " + y); = " + z); < y = " + (x < y)); > z = " + (x > z)); <= z = " + (y <= z)); >= y = " + (x >= y)); == z = " + (y == z)); != y = " + (x != z));
} }
Menggunakan operator boolean and public class BooleanAnd { public static void main(String args[]) { int a=5, b=7; if ((a<2) & (b++<10)) b+=2; System.out.println(b); } }
Menggunakan operator boolean and short-circuit public class ShortCircuitBooleanAnd { public static void main(String args[]) { int a=5, b=7; if ((a<2) && (b++<10)) b+=2; System.out.println(b); } }
Menggunakan boolean or public class BooleanOr { public static void main(String args[]) { int a=5, b=7; if ((a>2) | (b++<10)) b+=2; System.out.println(b); } }
Menggunakan boolean or short-circuit public class ShortCircuitBooleanOr { public static void main(String args[]) { int a=5, b=7; if ((a>2) || (b++<10)) b+=2; System.out.println(b); } }
Menggunakan operator kondisi class Conditional { public static void main (String args[]) { int x = 0; boolean isEven = false; System.out.println("x = " + x); x = isEven ? 4 : 7; System.out.println("x = " + x); } }
4.6. Seleksi Kondisi dan Perulangan Secara garis besar, pengendalian eksekusi dapat dibagi menjadi beberapa bagian, yaitu seleksi kondisi (if dan switch – case), perulangan atau iterasi (for, while, dan do while). Ada 2 kata kunci (keywords) yang digunakan untuk melakukan seleksi suatu kondisi, yaitu if dan switch – case.
1. Statement if – else, akan membandingkan suatu operand yang apabila memenuhi suatu kondisi tertentu, maka blok program di dalamnya akan dieksekusi. Sintaks statementnya adalah sebagai berikut :
if (kondisi) {
if (kondisi) {
……..statement…….
……..statement1…….
}
atau
} else { ……..statement2……. }
if (kondisi1) {
if (kondisi1) {
……..statement1…….
……..statement1……. atau
} else if
} else if (kondisi2) {
(kondisi2) {
……..statement2…….
……..statement2……. } else if (kondisi3) { } else if
……..statement3…….
(kondisi3) { ……..statement3…….
} else if (kondisin) { ……..statementn…….
} else if (kondisin) {
} else {
……..statementn…….
……..default
}
statement……. }
2. Statement switch – case, digunakan untuk percabangan yang berjumlah lebih dari satu, penggunaannya mirip dengan penggunaan if bertingkat. Sintaks penggunaannya sebagai berikut :
switch (ekspresi) { case (kondisi1): …..statement1; break; case (kondisi2): …..statement2; break; case (kondisi3): …..statement3;
break; case (kondisin): …..statementn; break; default: …..default statement; break; }
Dengan adanya penggunaan iterasi, dapat menghindai terjadinya penulisan statement secara berulang-ulang.
3. Statement for, digunakan untuk mengeksekusi sebuah blok secara berulang-ulang selama kondisinya memenuhi. Sintaks adalah sebagai berikut : for (inisialisasi; terminasi; increment) { …….statement; }
4. Statement while, mempunyai bentuk sebagai berikut : while (ekspresi) { …….statement; }
5. Statement do – while, do { …….statement; } while (ekspresi) ;
Program di bawah ini menunjukkan bagaimana menyusun kendali dengan if.
// nama file : IfElse.java public class IfElse {
public static void main(String[] args) { double a=4; double b=-13; double c=-12; double d=b*b - 4*a*c; double x1,x2; System.out.println("Persamaan Kuadrat a*x^2+b*x+c=0, dimana : "); System.out.println("a = "+a); System.out.println("b = "+b); System.out.println("c = "+c); System.out.println("Dengan menerapkan rumus ABC diketahui bahwa : "); if (d<0) { System.out.println("Akar-akar persamaan imaginer."); } else if (d==0) { System.out.println("Akar-akar persamaan nyata tetapi kembar."); x1 = -b/(2*a); System.out.println("x1 = x2 = "+x1); } else { System.out.println("Akar-akar persamaan nyata dan berbeda"); x1 = (-b+Math.sqrt(d))/(2*a); x2 = (-b-Math.sqrt(d))/(2*a); System.out.println("x1 = "+x1 + " x2 = "+x2); } } }
Program di bawah merupakan contoh bagaimana menggunakan statement switch. // nama file : SwitchCase.java public class SwitchCase { public static void main(String[] args) { char inisial='F'; String nama = null; switch (inisial) { case 'J' : nama = "John"; break; case 'F' : nama = "JFK"; break; case 'K' : nama = "Kennedy"; break; default : nama = "unknown object"; } System.out.println("Nama inisial anda : "+nama); } }
Sedangkan program di bawah menunjukkan bagaimana menggunakan struktur perulangan for. // nama file : ContohFor.java public class ContohFor {
public static void main(String args[]) { int bil=7; int sum=2; for (int iterasi=2; iterasi<=bil; iterasi++) { System.out.print(sum + " * " + iterasi + " = "); sum *= iterasi; System.out.println(sum); } System.out.println(bil + " ! = "+sum); } }
Sedangkan program di bawah menunjukkan bagaimana menggunakan struktur perulangan while.
// nama file : ContohWhile.java public class ContohWhile { public static void main(String args[]) { int bil=7; int i=2; int sum=2; while (i<=bil) { System.out.print(sum + " * " + i + " = "); sum = sum * i; System.out.println(sum); i++; } System.out.println(bil + " ! = "+sum); } }
Program di bawah menunjukkan bagaimana menggunakan struktur perulangan do while.
// nama file : ContohDoWhile.java public class ContohDoWhile { public static void main(String args[]) { int bil=7; int i=2; int sum=2; do{ System.out.print(sum + " * " + i + " = "); sum = sum * i; System.out.println(sum); i++; } while (i<=bil); System.out.println(bil + " ! = "+sum); }
}
4.7. Array Seperti yang telah kita ketahui bahwa kita harus mendeklarasikan suatu variabel sebelum kita hendak menggunakannya. Variabel array atau larik merupakan variabel yang mampu menyimpan sejumlah data dengan nama variabel yang sama. Misalkan kita memerlukan 100 buah variabel bertipe String untuk menyimpan sebanyak 100 nama mahasiswa. Tentu sangat tidak efisien apabila kita mendeklarasikan pula sebanyak 100 variabel satu
persatu
(misalkan;
nama_mhs1,
nama_mhs2,
……sampai
100).
Kita
cukup
mendeklarasikannya satu kali dengan mengunakan variabel bertipe array dengan range sebanyak 100). Di sinilah kegunaan dari variabel bertipe array tersebut.
Untuk mendeklarasikan variabel bertipe array digunakan cara seperti berikut : Cara I : tipe-data[] nama_variabel; atau Cara II : tipe-data nama_variabel[];
Contoh :
int[] nim; String[] nama_mahasiswa; float IPK[];
Pendeklarasian array dengan menggunakan “Cara I” seperti di atas merupakan cara yang paling sering digunakan. Contoh di atas merupakan bentuk pendeklarsian array berdimensi satu. Adapun bentuk pendeklasian array multidimensi, seperti berikut :
Cara I : tipe-data[][] nama_variabel; atau Cara II : tipe-data nama_variabel[][];
Contoh : String[][] myheartCondition = { {“angry”,”happy”,”sad”,”bad”,”alone”,”relax”}, {“laugh”,”grumble”,”fresh”,”good”,”ok”,}, {“ready”,”ill”,”jealous”,”glum”,”busy”,”werrrr”} };
Setelah mendeklarasikan array dengan cara di atas, langkah selanjutnya adalah melakukan inisialisasi atau menciptakan objek dari variabel array tersebut. Ada 2 cara yang umum digunakan, yaitu :
Dengan menggunakan kata kunci new, sintaksnya adalah sebagai berikut :
Cara Pertama : new
tipe-data[range];
Contoh : nim = new int[100] nama_mahasiswa = new String[75] IPK = new float[75]
Cara Kedua :
Dengan langsung memberikan nilai awal :
nama_variabel = {nilai_data1, nilai_data2, …..nilai_data-n};
Contoh : nim = {1,9,25,55,75,95,101}; nama_mahasiswa
=
{Scott,
Jane,
Ann,
Armstrong};
Variabel array dapat diketahui panjangnya dengan mengakses kata ; length, sintaknya : nama_variabel_array.length;
Contoh : nama_mahasiswa.length;
Smith,
Sedangkan untuk mengacu ke salah satu elemen array. Menggunakan sintaks : nama_variabel_array[nomor_index];
Contoh : nim[9];
Contoh lengkap dari penggunaan array atau larik dapat dilihat pada program di bawah ini : // nama file : Array.java class Array { public static void main(String[] args) { String[] lifestyle; // membuat array/larik lifestyle = new String[7]; lifestyle[0] lifestyle[1] lifestyle[2] lifestyle[3] lifestyle[4] lifestyle[5] lifestyle[6]
= = = = = = =
"Sederhana"; // cara mengisi elemen array "Parlente"; "Glamour"; "Nebeng Glamour - Necis"; "Kosmo"; "Matre"; "Electronic-Live Style";
System.out.println("Macam-macam gaya hidup : "); System.out.println(lifestyle[0]); System.out.println(lifestyle[1]); System.out.println(lifestyle[2]); System.out.println(lifestyle[3]); System.out.println(lifestyle[4]); System.out.println(lifestyle[5]); System.out.println(lifestyle[6]); // menampilkan elemen array } }
// nama file : Larik.java class Larik { public static void boolean ketemu = int[] arrayInt = char[] arrayChar
main(String args[]) { false; new int[7]; = {'X','Y','Z'};
for (int i=0; i<arrayInt.length; i++) { arrayInt[i] = i+1; System.out.println("Elemen ke "+(i-7)+"="+arrayInt[i]); } for (int i=0; i<arrayChar.length; i++) {
arrayInt[i] = i+1; System.out.println("Elemen ke "+(i+8)+"="+arrayChar[i]); } }
}
4.8. Fungsi Fungsi merupakan sekumpulan instruksi atau statement program untuk melakukan suatu proses atau task tertentu. Dengan menggunakan fungsi, program bisa disusun secara modular dengan cara mengumpulkan beberapa statement yang digunakan untuk melakukan suatu proses atau task tertentu ke dalam satu modul atau fungsi. Ketika suatu saat dibutuhkan untuk menjalankan proses atau task tersebut, yang perlu dilakukan hanyalah dengan menjalankan fungsi tersebut atau memanggil fungsi tersebut. Untuk menggunakan fungsi yang harus dilakukan adalah: 1. Mendeklarasikan fungsi, 2. Memanggil fungsi tersebut saat diperlukan.
Cara mendeklarasikan fungsi adalah sebagai berikut tipe_data_fungsi namaFungsi (tipe_data_argumen namaArgumen) { //…. Isi tubuh fungsi …// }
Contoh: int
tambah (int a, int b) { int c = a+b; return c;
}
Cara memanggil fungsi adalah sebagai berikut: namaFungsi(nilaiArgumen);
Contoh: int hasil = tambah(3,5);
Untuk memudahkan pemahaman fungsi, fungsi bisa dikategorikan berdasarkan kategori dibawah ini: 1. Ada tidaknya nilai kembalian atau nilai yang dikembalikan oleh fungsi a. Fungsi yang memiliki nilai kembalian Fungsi yang memiliki nilai kembalian berarti ada suatu nilai yang dikembalikan pada instruksi akhir yang dijalankan dalam fungsi. Fungsi ini dibutuhkan ketika
kita
menginginkan
ada
data
hasil
proses
yang
harus
dikembalikan/diberikan/dikeluarkan oleh fungsi. Ciri fungsi ini: •
Memiliki tipe data fungsi yang bukan void
•
Memiliki statement return yang diikuti nilai yang akan dikeluarkan atau dikembalikan oleh fungsi.
•
Nilai yang dikembalikan atau dikeluarkan oleh fungsi harus sesuai dengan tipe data fungsi. Dengan kata lain tipe data fungsi menentukan jenis nilai yang akan dikembalikan oleh fungsi tersebut. Misalnya jika tipe data fungsi berupa String, maka nilai yang harus dikembalikan fungsi terbut harus data string, jika tipe data fungsi berupa int berarti data yang harus dikembalikan oleh fungsi tersebut adalah data bilangan numeric bulat dst.
Contoh: int
tambah (int a, int b) { int c = a+b; return c;
} String
sambung () { String str = “Aku ”+”Belajar ”+”Java”; return str;
}
b. Fungsi yang tidak memiliki nilai kembalian Fungsi ini dibutuhkan ketika kita menginginkan suatu fungsi yang tidak mengembalikan atau mengeluarkan atau memberikan suatu nilai keluaran atau kembalian. Ketika fungsi ini dijalankan maka, proses yang ada di dalam fungsi tersebut juga akan jalan, tap tidak ada nilai yang dikembalikan atau dikeluarkan oleh fungsi tersebut. Ciri: •
Memiliki tipe data fungsi berupa void.
•
Tidak memiliki sintaks return yang diikiti dengan suatu nilai di dalam fungsi tersebut. Atau bolem ada sintaks return di dalam fungsi akantetapi tanpa diikitu suatu nilai yang dikembalikan.
Contoh: void tampil () { System.out.println(“Hello world !!”);
} void tampilHasilJumlah (int a, int b) { System.out.println(“Hasilnya = ”+(a+b)); return; }
2. Ada tidaknya argument atau parameter fungsi Argumen dalam fungsi digunakan untuk memberikan nilai masukan yang dilewatkan saat fungsi tersebut dipanggil atau dijalankan. Kita membutuhkan fungsi yang memiliki argument ketika memang diperlukan ada data yang akan dimasukkan atau dilewatkan ke dalam fungsi untuk diproses dalam fungsi tersebut. Dan sebaliknya, ketika memang tidak dibutuhkan untuk memasukkan data saat pemanggilan fungsi, maka fungsi tersebut didesain tidak memiliki argument. •
Contoh fungsi yang tidak memiliki argument void tampil () { System.out.println(“Hello world !!”); }
Fungsi tersebut tidak dibuat memiliki argument karena memang tidak ada data yang hendak dilewatkan atau dimasukkan ke dalam fungsi saat fungsi dipanggil atau dijalankan. Yang diinginkan hanya menjalankan fungsi tersebut dan tanpa ada nilai yang akan dimasukkan ke dalam fungsi untuk diolah. Ketika pemanggilan yang dilakukan adalah: tampil ();
•
Contoh fungsi yang memiliki argumen void tampilHasilJumlah (int a, int b) { System.out.println(“Hasilnya = ”+(a+b)); return; }
Fungsi tersebut didesain untuk memiliki argument dikarenakan ada data yang harus dimasukkan ke dalam fungsi, dan data tersebut dimasukkan atau dilewatkan ketika pemanggilan fungsi, untuk selanjutnya diproses di dalamnya. Pemanggilan fungsi contohnya dilakukan dengan: tampilHasilJumlah (5,3) {
Nilai 5 dan 3 akan dimasukkan ke dalam fungsi tampilHasilJumlah untuk selanjutnya diproses di dalamnya.