FUNCTION

Function adalah submodul dalam program utama yang berfungsi secara khusus untuk mengembalikan nilai dengan tipe data tertentu dari parameter yang diberikan. Seperti halnya procedure, function juga merupakan upa-program yang mempunyai tujuan spesifik. Function/fungsi adalah upa-program yang memberikan/mengembalikan (return) sebuah nilai dari tipe tertentu (tipe dasar atau tipe bentukan). Definisi function di dalam matematika, kita mengenal cara penulisan fungsi seperti pada contoh berikut :

1.     ƒ(x) = 2×2  + 5x – 8

2.     H(x,y) = 3x – y + xy

Pada keuda contoh diatas, ƒ dan H adalah nama fungsi, sedangkan x dan y adalah parameter fungsi yang bersangkutan. Nilai yang diberikan oleh fungsi bergantung pada masukan parameter. sebagai misal :

1.     x = 2, maka ƒ(2) = 2 . 22 + 5 . 2 – 8 = 10

2.    x = 1, y = 2, maka H(1,2) = 3 . 1 – 2 + 1 . 2 = 3

Nilai 10 dan 3 pada kedua contoh di atas adalah nilai yang diberikan (return value) oleh masing-masing fungsi ƒ dan fungsi H

Pendefinisian FUNCTION

Sebagaimana halnya pada procedure, struktur fungsi sama dengan struktur algoritma yang sudah anda kenal: ada bagian header yang berisi nama fungsi (beserta parameter masukan, jika ada) dan spesifikasi tentang fungsi tersebut, bagian deklarasi, dan bagian fungsi.

Blok pada fungsi hampir sama dengan blok pada prosedur, hanya pada function harus dideklarasikan dengan tipe dari function tersebut yang merupakan tipe hasil dari function itu sendiri. Sehingga dikatakan function dapat mengembalikan nilai. Perbedaan fungsi dengan prosedur adalah:

  • Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya(kalau pada prosedur parameter yang dikirimkan secara acuan).
  • Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya. Atau nilai fungsi tersebut dapat juga langsung dipindahkan ke pengenal variabel yang lainnya.
  • Pada prosedur, nama prosedur tidak dapat digunakan langsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.

Contoh Program pada Function :

Uses crt;

Function faktor(bilangan :integer) : real;

Begin

If bilangan = 0 then faktor := 1

Else

Faktor := faktor(bilangan-1)*bilangan;

End;

Var

n : integer;

begin

clrscr;

write(‘ Berapa Faktorial Dari = ‘); readln(n);

writeln(n,’ faktorial = ‘, faktor(n):9:0);

readln;

end.

Hasilnya :

Berapa factorial dari 55 faktorial = 120

Blok Fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.

FUNGSI

FUNGSI merupakan suatu program terpisah dalam blok tersendiri yang berfungsi sebagai subprogram dan dideklarasikan dengan tipe yang menunjukkan tipe hasil dari fungsi

Bentuk Umum :

                             Function Identifier(daftar-parameter):type;

Contoh :

          Function Faktorial(Var Fak,Hasil : Integer):Integer;

          Function Pangkat(X,Y : Real):Real;

Blok Fungsi diawali dengan kata cadangan Begin dan diakhiri dengan kata cadangan End dan titik koma.

Contoh :

1.   Function Hitung(Var A,B : Integer):Integer;                         Output :

      Begin

                   Hitung :=A+B;                                             Nilai X ? 2

      End;                                                                         Nilai Y ? 3

      Var                                                                           2 + 3 = 5

          X,Y : Integer;

      Begin

          Write(‘Nilai X ?’);

          Readln(X);

          Write(‘Nilai Y ?’);

          Readln(Y);

          Writeln;

          Writeln(X,’+’,Y, ‘=’,Hitung(X,Y))

      End.

2.   Function Hitung(Var A,B,C : Integer): Integer;                     Output :

      Begin

                   A:=A+2;                                                       Nilai X ? 2

                   B:=B+2;                                                      Nilai Y ? 3

                   C:=A+B;

                   Hitung:=C;                                                  4 + 5 = 9

       End;

       Var

                   X,Y,Z,Hasil : Integer;

        Begin

                   Write(‘Nilai X ?’);

                   Readln(X);

                   Write(“Nilai Y ?’);

                   Readln(Y);

                   Writeln;

                   Hasil :=Hitung(X,Y,Z);

                   Writeln(X,’+’,Y, ‘=’,Hasil);

        End.   

 Perbedaan Fungsi  dengan Prosedur adalah :

1.   Pada fungsi, nilai yang dikirimkan balik terdapat pada nama Fungsinya (kalau pada prosedur pada Parameter yang dikirimkan secara acuan). Pada contoh, nama Fungsi tersebut adalah Hitung dan nilai yang dikirim balik berada pada nama Fungsi tersebut. Sehingga nama Fungsi ini harus digunakan untuk menampung hasil yang akan dikirimkan dari Fungsi sebagai berikut :

Hitung := A+B;

Description: http://4.bp.blogspot.com/-5MfzCgbzCDw/VMdU-1PN2UI/AAAAAAAAAD0/B7rKBRmWvMs/s1600/tunjuk.jpg

          Nama Fungsi yang berisi nilai yang akan dikirimkan

2.   Karena nilai balik berada di nama Fungsi tersebut, maka Fungsi tersebut dapat langsung digunakan untuk dicetak hasil sebagai berikut :

Writeln(X,’+’,Y, ‘=’, Hitung(X,Y);

 Description: http://4.bp.blogspot.com/-5MfzCgbzCDw/VMdU-1PN2UI/AAAAAAAAAD0/B7rKBRmWvMs/s1600/tunjuk.jpg

 Nama Fungsi yang langsung digunakan untuk ditampilkan hasilnya

Atau Nilai Fungsi tersebut dapat juga langsung dipindahkan ke pengenal Variabel yang lainnya, sebagai berikut :

Hasil := Hitung(X,Y);

Writeln(X, ‘+’ ,Y, ‘=’, Hasil)

Sedang pada Prosedur, nama Prosedur tersebut tidak dapat digunakan langsung, yang dapat langsung digunakan adalah parameternya yang langsung mengandung nilai balik.   

Parameter

Parameter merupakan suatu nilai atau referensi yang dilewatkan ke dalam rutin tertentu dan kehadirannya akan mempengaruhi proses maupun nilai yang terdapat di dalam rutin itu sendiri. Parameter ditempatkan di dalam tanda kurung setelah nama rutin bersangkutan.

Suatu fungsi umumnya mempunyai parameter. Namun bisa saja suatu fungsi tidak memiliki paramater.

Setiap parameter yang dilewatkan harus memiliki tipe data tersendiri yang dapat berupa dari tipe dasar maupun bentukan seperti array, record atau pointer. Untuk mengetahui arti parameter, perhatikan fungsi matematika di bawah ini.

f (x) =  2×2 + 5x – 3

Bila x=1, maka f akan mengembalikan nilai 4, yang berasal dari

f (1) =  2(1)2 + 5(1) – 3 = 2 + 5 – 3 = 4

Bila x=2, maka f akan mengembalikan nilai 15, yang berasal dari

f (2) =  2(2)2 + 5(2) – 3 = 8 + 10 – 3 = 15

Dari ilustrasi tersebut terlihat jelas bahwa hasil nilai dari fungsi f ditentukan oleh besarnya nilai x, sehingga x disebut sebagai parameter dari fungsi f.

Contoh:

Function hitung(Var A,B : integer):integer; è Var A,B: integer merupakan

Begin                                                                      parameter

hitung:=A+B;

end;

Fungsi Tanpa Parameter

Suatu Fungsi yang tanpa menggunakan parameter berarti nilai balik yang akan dihasilkan merupakan nilai yang sudah pasti. Pada Fungsi yang tidak mempunyai parameter, maka hsail tersebut tidak dapat diatur dari modul yang menggunakannya, karena tidak ada parameter yang dikirimkan.

Contoh

Type                                                             

Huruf  = String;                                           

Function Garis : Huruf;                               Output:

Begin                                                           ——–                           

                       Garis := ‘———–‘;                Pascal

End;                                                             ——–

Begin

          Writeln(Garis);

          Writeln(‘Pascal’);

          Writeln(Garis);

End. 

Atau dapat juga didefinisikan sebagai suatu konstanta dibagian definisi konstanta, sebagai berikut :

Contoh :

Const                                                           Output :

Garis:=’———‘;                                           ———

Begin                                                           Pascal

                   Writeln(Garis);                          ———                          

                   Writeln(‘Pascal’);

                   Writeln(Garis);

End.

  • Pengiriman Parameter Dalam Fungsi

Parameter dalam fungsi dapat dikirimkan secara Nilai (By Value) atau secara Acuan (By Reference).

Pengiriman parameter secara Nilai (By Value) adalah tampak sebagai berikut :

           Function Hitung(A,B : Integer): Integer

Contoh :

Suatu Fungsi yang akan menghasilkan nilai terbesar dari 2 buah Nilai Real.

 Function Terbesar(X,Y:Real):Real;               

Begin                                                  Output :    

If X>Y then                                         Nilai Pertama ? 12,356

Terbesar :=X                                       Nilai Kedua ? 55.182

Else                                                    Nilai Terbesar adalah 55,182 

Terbesar :=Y;

End;

Var

          Nilai1,Nilai2 :Real;

Begin

          Write(‘Nilai Pertama  ?’);Readln(Nilai1);

          Write(‘Nilai Kedua ?’); Readln(Nilai2);

          Writeln(‘Nilai Terbesar adalah’ ,Terbesar(Nilai1,Nilai2):9:3);

End.

Pengiriman parameter secara Acuan (By Reference) adalah dengan menambahkan kata cadangan Var sebagai berikut :

          Function Hitung(Var A,B : Integer):Integer;

Pengiriman parameter dengan secara Acuan akan mengakibatkan perubahan nilai parameter di Fungsi juga merubah nilai parameter dimodul yang mengirimkannya.

Contoh :

Function Hitung(Var A,B,C : Integer):Integer;                Output :

Begin

          Hitung :=A+B;                                                      Nilai X ? 2

          C :=A*B;                                                               Nilai Y ? 3

End.

                                                                                      2 + 3 = 5

Var                                                                                 2 * 3 = 6

          X,Y,Z : Integer;

Begin

          Write(‘Nilai X ?’);

          Readln(X);

          Write(‘Nilai Y?’);

          Readln(Y);

          Writeln;

          Writeln(X,’+’,Y, ‘=’,Hitung(X,Y,Z);

          Writeln(X,’*’,Y, ‘=’,Z);

End. 

  • Fungsi Pangkat

Pascal tidak menyediakan Fungsi untuk perpangkatan tinggi, yang ada hanyalah SQR, yaitu untuk pemangkatan kuadrat. Bila akan melakukan perpangkatan lebih dari pangkat 2, maka harus dibuat program tersendiri.

Contoh :

Function PangkatI(X:Real; Y:Integer):Real;

Var

          Pangkat :=1;

          For I := 1 to Y do

                   Pangkat := Pangkat * X;

                   PangkatI := Pangkat;

End;

Var

          A: Real;

          B : Integer;

Begin

          Write(‘Nilai akan dipangkatkan ?’);

          Readln(A);

          Write(‘Dipangkatkan dengan ?’);

          Readln(B);

          Writeln(A:9:3, ‘Pangkat’ ,B, ‘adalah’,PangkatI(A,B):9:3);

End,

Output :

Nilai akan dipangkatkan ? 1.5

Dipangkatkan dengan ? 3

          1.500 pangkat 3 adalah 3.375

  • Fungsi Memanggil Dirinya Sendiri (Fungsi Rekursif)

Suatu Fungsi dapat juga memanggil dirinya sendiri atau disebut dengan Recursion

Fungsi Rekursif : fungsi yang dapat memanggil dirinya sendiri. Berikut ini sebuah contoh fungsi rekursif

Contoh :

Function Faktorial(Nilai :Integer):Real;

Begin

          If Nilai = 0 Then

                   Faktorial := 1

          Else

                   Faktorial := Nilai * Faktorial(Nilai-1);

End;

Var

          N:=Integer;

Begin

          Write(‘Berapa Faktorial ?’);

          Readln(N);

          Writeln(N,’Faktorial = ‘,Faktorial(N):9:0)

End.

Output :

Berapa Faktorial ? 5

5 Faktorial = 120

  • Fungsi Memanggil Fungsi Yang Lain

      Suatu Fungsi dapat juga memanggil Fungsi yang lainnya. Fungsi yang dipanggil letaknya harus berada diatas Fungsi yang memanggil.

Contoh :                                                      Output :

Function Fungsi2(Y:Integer):Integer;           11

Begin                          

          Fungsi2 := Y*2;                                 Didapat dari :

End;                                                                    

                                                                   Fungsi1 := Fungsi2(X) + 5

Function Fungsi1(X:Integer):Integer;          Fungsi1 := Y * 2+5

Begin                                                           Maka untuk Nilai Fungsi(3) adalah

3 * 2 + 5 = 11  

          Fungsi1 := Fungsi2(X)+5;                

End;

Begin

          Writeln(Fungsi1(3));

End.

Pengertian Prosedur, Fungsi, dan Method

PROSEDUR

Prosedur adalah sebutan untuk fungsi yang tidak mengembalikan nilai. Fungsi ini biasanya ditandai dengan kata kunci “void”.

FUNGSI

Fungsi adalah sebutan untuk fungsi yang mengembalikan nilai.

METHOD

Method adalah fungsi yang berada di dalam Class. Sebutan ini, biasanya digunakan pada OOP.

Untuk memudahkan, mari kita sebut semuanya fungsi.

Cara Membuat Fungsi di Java

Fungsi harus dibuat atau ditulis di dalam class.

Struktur dasarnya seperti ini:

static TypeDataKembalian namaFungsi(){

    // statemen atau kode fungsi

}

Penjelasan:

  • Kata kunci static, artinya kita membuat fungsi yang dapat dipanggil tanpa harus membuat instansiasi objek.
  • TypeDataKembalian adalah tipe data dari nilai yang dikembalikan setelah fungsi dieksekusi.
  • namaFungsi() adalah nama fungsinya. Biasanya ditulis dengan huruf kecil di awalnya. Lalu, kalau terdapat lebih dari satu suku kata, huruf awal di kata kedua ditulis kapital.

Contoh:

static void ucapSalam(){

    System.out.println(“Selamat Pagi”);

}

Tipe data void artinya kosong, fungsi tersebut tidak mengebalikan nilai apa-apa.

Cara Memanggil/Eksekusi Fungsi

Setelah kita membuat fungsi, selanjutnya kita akan mengeksekusi fungsinya.

Fungsi dapat dipanggil dari fungsi main atau dari fungsi yang lainnya.

Contoh pemanggilan fungsi dalam dalam funsgi main:

public static void main(String[] args){

    ucapSalam();

}

Maka akan menghasilkan output:

Selamat Pagi

Kode lengkapnya, silahkan dicoba sendiri:

class BelajarFungsi {

    // membuat fungsi ucapSalam()

    static void ucapSalam(){

        System.out.println(“Selamat Pagi”);

    }

    // membuat fungsi main()

    public static void main(String[] args){

        // memanggil/eksekusi fungsi ucapSalam()

        ucapSalam();

    }

}

Fungsi dengan Parameter

Parameter adalah variabel yang menampung nilai untuk diproses di dalam fungsi. Parameter berperan sebagai input untuk fungsi.

Struktur dasarnya seperti ini:

static TipeData namaFungsi(TipeData namaParameter, TipeData namaParameterLain){

    // kode fungsi

}

Penjelasan:

  • Parameter ditulis di antara tanda kurung (…);
  • Parameter harus diberikan tipe data;
  • Bila terdapat lebih dari satu parameter, maka dipisah dengan tanda koma.

Contoh fungsi yang memiliki parameter:

static void ucapin(String ucapan){

    System.out.println(ucapan);

}

Pada contoh tersebut, kita membuat parameter bernama ucapan dengan tipe String. Sehingga kita bisa menggunakan variabel ucapan di dalam fungsi.

Cara pemanggilan fungsi yang memiliki parameter:

ucapin(“Hallo!”);

ucapin(“Selamat datang di pemrograman Java”);

ucapin(“Saya kira ini bagian terakhir”);

ucapin(“Sampai jumpa lagi, ya!”);

Hasil outputnya:

Hallo!

Selamat datang di pemrograman Java

Saya kira ini bagian terakhir

Sampai jumpa lagi, ya!

Fungsi yang Mengembalikan Nilai

Setelah fungsi memproses data yang diinputkan melalui parameter, selanjutnya fungsi harus mengembalikan nilai agar dapat diolah pada proses berikutnya.

Pengembalian nilai pada fungsi menggunakan kata kunci return.

Contoh:

static int luasPersegi(int sisi){

    int luas = sisi * sisi;

    return luas;

}

Pada contoh tersebut, kita membuat sebuah parameter bernama sisi. Kemudian fungsi akan mengembalikan nilai dengan tipe int (integer) dari variabel luas.

Contoh pemanggilanya:

System.out.println(“Luas Persegi dengan panjang sisi 5 adalah ” + luasPersegi(5));

Hasil Output:

Luas Persegi dengan panjang sisi 5 adalah 25

Pemanggilan Fungsi di Fungsi Lain

Fungsi-fungsi dapat saling memanggil untuk memproses data.

Contoh, sebuah program Kalkulator Bangun Ruang memiliki fungsi-fungsi: luasPersegi(), luasPersegiPanjang(), luasSegitiga(), luasBalok(), luasKubus() dsb.

Fungsi-fungsi tersebut dapat saling membantu, contoh fungsi luasKubus() membutuhkan fungsi luasPersegi().

Rumus:

Luas Kubus = 6 *  luasPersegi;

Luas Persegi = sisi * sisi;

Maka programnya bisa dibuat seperti ini:

public class BangunRuang {

    public static void main(String[] args) {

        int s = 12;

        int luas = luasKubus(s);

        System.out.println(luas);

    }

    // membuat fungsi luasPersegi()

    static int luasPersegi(int sisi){

        return sisi * sisi;

    }

    // membuat fungsi luasKubus()

    static int luasKubus(int sisi){

        // memanggil fungsi luasPersegi

        return 6 * luasPersegi(sisi);

    }

}

Hasil output

864

Fungsi Static dan Non-Static

Pada contoh-contoh diatas, kita menggunakan kata kunci static sebelum membuat fungsi.

Kata kunci static akan membuat fungsi dapat dieksekusi langsung, tanpa harus membuat instansiasi objek dari class.

Contoh:

public class FungsiStatic {

    // Fungsi non-static

    void makan(String makanan){

        System.out.println(“Hi!”);

        System.out.println(“Saya sedang makan ” + makanan);

    }

    // fungsi static

    static void minum(String minuman){

        System.out.println(“Saya sedang minum ” + minuman);

    }

    // fungsi main

    public static void main(String[] args) {

        // pemanggilan fungsi static

        minum(“Kopi”);

        // mambuat instansiasi objek saya dari class FungsiStatic

        FungsiStatic saya = new FungsiStatic();

        // pemanggilan fungsi non-static

        saya.makan(“Nasi Goreng”);

    }

}

Pada contoh tersebut, fungsi makan() adalah fungsi non-static. Sedangkan fungsi minum() adalah fungsi static.

Hasil output dari program di atas:

Saya sedang minum Kopi

Hi!

Saya sedang makan Nasi Goreng

Apabila kita tidak membuat objek untuk memanggil fungsi non-static, maka akan terjadi error.

Variabel Global dan Variabel Lokal pada Java

Variabel global adalah variabel yang bisa diakses dari semua fungsi. Sedangkan variabel lokal adalah variabel yang hanya bisa diakses dari dalam fungsi tempat variabel itu berada.

Bingung?

Mari kita lihat contohnya:

class ProgramKu{

    // ini variabel global

    static String nama = “Programku”;

    static String version = “1.0.0”;

    static void help(){

        // ini variabel lokal

        String nama = “Petani Kode”;

        // mengakses variabel global di dalam fungso help()

        System.out.println(“Nama: ” + nama);

        System.out.println(“Versi: ” + version);

    }

    public static void main(String args[]){

        // panggil fungsi help()

        help();

        System.out.println(“Nama: ” + nama);

        System.out.println(“Versi: ” + version);

    }

}

Hasil outputnya:

Nama: Petani Kode

Versi: 1.0.0

Nama: Programku

Versi: 1.0.0

Saat pemanggilan fungsi help() kita membuat ulang variabel nama. Sehingga variabel nama menjadi variabel lokal pada fungsi help() dan nilainya berubah menjadi “Petani Kode”.

Sedangkan, saat kita akases lagi variabel nama melalui fungsi main() nilainya tetap sama seperti yang didefinisikan.

Program ini adalah program sederhana dengan fitur sebagai berikut:

  1. Baca data dari ArrayList
  2. Simpan data ke ArrayList
  3. Ubah data
  4. Hapus Data
  5. Keluar

Belum tahu tentang ArrayList?

Silahkan baca meteri: Mengenal Array di Java

Baiklah, silahkan buat class baru bernama FungsiProsedur. Lalu impor class-class yang dibutuhkan.

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.ArrayList;

Setelah itu buat variabel global di dalam class FungsiProsedur:

static ArrayList listBuah = new ArrayList();

static boolean isRunning = true;

static InputStreamReader inputStreamReader = new InputStreamReader(System.in);

static BufferedReader input = new BufferedReader(inputStreamReader);

Penjelasan:

  • Variabel listBuah adalah variabel global untuk menyimpan nama-nama buah.
  • Variabel isRunning adalah variabel global untuk membuat loop.
  • Kemudian inputStreamReader dan input adalah objek yang kita butuhkan untuk mengambil input dari keyboard.

Setelah itu, buat masing-masing fungsi.

Fungsi untuk menampilkan menu:

static void showMenu() throws IOException {

    System.out.println(“========= MENU ========”);

    System.out.println(“[1] Show All Buah”);

    System.out.println(“[2] Insert Buah”);

    System.out.println(“[3] Edit Buah”);

    System.out.println(“[4] Delete Buah”);

    System.out.println(“[5] Exit”);

    System.out.print(“PILIH MENU> “);

    int selectedMenu = Integer.valueOf(input.readLine());

    switch(selectedMenu){

        case 1:

            showAllBuah();

            break;

        case 2:

            insertBuah();

            break;

        case 3:

            editBuah();

            break;

        case 4:

            deleteBuah();

            break;

        case 5:

            System.exit(0);

            break;

        default:

            System.out.println(“Pilihan salah!”);

    }

}

Fungsi tersebut bertugas untuk menampilkan menu dan menentukan fungsi mana yang akan dipanggil berdasarkan nomer menu yang diinputkan.

Apa itu throws IOException?

Nanti saya akan bahas di kesempatan berikutnya. Untuk saat ini diabaikan saja dulu. Ini karena kita menggunakan Buffereader, jadi throws IOException wajib ditulis.

Fungsi untuk menampilkan data:

static void showAllBuah(){

    if(listBuah.isEmpty()){

       System.out.println(“Belum ada data”);

    } else {

         // tampilkan semua buah

        for(int i = 0; i < listBuah.size(); i++){

            System.out.println(String.format(“[%d] %s”,i, listBuah.get(i)));

        }

    }

}

Fungsi tersebut bertugas menampilkan isi dari listBuah. Kalau listBuah kosong, maka akan ditampilkan pesan “Belum ada data”

Fungsi untuk menambah data buah:

static void insertBuah() throws IOException{

    System.out.print(“Nama buah: “);

    String namaBuah = input.readLine();

    listBuah.add(namaBuah);

}

Pada fungsi tersebut, kita menggunakan method listBuah.add(namaBuah); untuk menambah data ke dalam listBuah berdasarkan namaBuah yang diberikan.

Fungsi untuk mengubah data buah:

static void editBuah() throws IOException{

    showAllBuah();

    System.out.print(“Pilih nomer buah: “);

    int indexBuah = Integer.valueOf(input.readLine());

    System.out.print(“Nama Baru: “);

    String namaBaru = input.readLine();

    // ubah nama buah

    listBuah.set(indexBuah, namaBaru);

}

Pertama kita perlu tampilkan dulu daftar buahnya, lalu kita minta user untuk memilih buah mana yang akan diedit.

Setelah itu, kita update buahnya dengan method listBuah.set(indexBuah, namaBaru);.

Fungsi untuk menghapus buah:

static void deleteBuah() throws IOException{

    showAllBuah();

    System.out.print(“Pilih nomer buah: “);

    int indexBuah = Integer.valueOf(input.readLine());

    // hapus buah

    listBuah.remove(indexBuah);

}

Hampir sama seperti edit buah, untuk menghapus buah kita juga butuh nomer indeks buah yang akan dihapus.

Lalu mengapusnya dengan method listBuah.remove(indexBuah);.

Fungsi main:

public static void main(String[] args) throws IOException {

    do {

        showMenu();

    } while (isRunning);

}

Lengkap sudah, berikut ini bentuk kode lengkapnya.

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.ArrayList;

public class FungsiProsedur {

    static ArrayList listBuah = new ArrayList();

    static boolean isRunning = true;

    static InputStreamReader inputStreamReader = new InputStreamReader(System.in);

    static BufferedReader input = new BufferedReader(inputStreamReader);

    static void showMenu() throws IOException{

        System.out.println(“========= MENU ========”);

        System.out.println(“[1] Show All Buah”);

        System.out.println(“[2] Insert Buah”);

        System.out.println(“[3] Edit Buah”);

        System.out.println(“[4] Delete Buah”);

        System.out.println(“[5] Exit”);

        System.out.print(“PILIH MENU> “);

        int selectedMenu = Integer.valueOf(input.readLine());

        switch(selectedMenu){

            case 1:

                showAllBuah();

                break;

            case 2:

                insertBuah();

                break;

            case 3:

                editBuah();

                break;

            case 4:

                deleteBuah();

                break;

            case 5:

                System.exit(0);

                break;

            default:

                System.out.println(“Pilihan salah!”);

        }

    }

    static void showAllBuah(){

        if(listBuah.isEmpty()){

           System.out.println(“Belum ada data”);

        } else {

             // tampilkan semua buah

            for(int i = 0; i < listBuah.size(); i++){

                System.out.println(String.format(“[%d] %s”,i, listBuah.get(i)));

            }

        }

    }

    static void insertBuah() throws IOException{

        System.out.print(“Nama buah: “);

        String namaBuah = input.readLine();

        listBuah.add(namaBuah);

    }

    static void editBuah() throws IOException{

        showAllBuah();

        System.out.print(“Pilih nomer buah: “);

        int indexBuah = Integer.valueOf(input.readLine());

        System.out.print(“Nama Baru: “);

        String namaBaru = input.readLine();

        // ubah nama buah

        listBuah.set(indexBuah, namaBaru);

    }

    static void deleteBuah() throws IOException{

        showAllBuah();

        System.out.print(“Pilih nomer buah: “);

        int indexBuah = Integer.valueOf(input.readLine());

        // hapus buah

        listBuah.remove(indexBuah);

    }

    public static void main(String[] args) throws IOException {

        do {

            showMenu();

        } while (isRunning);

    }

}

Setelah itu, silahkan dijalankan dan perhatikanlah hasilnya.

========= MENU ========

[1] Show All Buah

[2] Insert Buah

[3] Edit Buah

[4] Delete Buah

[5] Exit

PILIH MENU> 1

Belum ada data

========= MENU ========

[1] Show All Buah

[2] Insert Buah

[3] Edit Buah

[4] Delete Buah

[5] Exit

PILIH MENU> 2

Nama buah: Apel

========= MENU ========

[1] Show All Buah

[2] Insert Buah

[3] Edit Buah

[4] Delete Buah

[5] Exit

PILIH MENU> 1

[0] Apel

========= MENU ========

[1] Show All Buah

[2] Insert Buah

[3] Edit Buah

[4] Delete Buah

[5] Exit

PILIH MENU>

CONTOH PROGRAM FUNCTION DIJAVA

By Kurobane

Sekedar Sharing tugas tugas waktu SMK TKJ, mohon maaf bila ada kesalahan HakimYusa Portal Page

Leave a Reply

Your email address will not be published. Required fields are marked *