Rabu, 28 September 2011

METHOD

 Nama / NIM    :    Septian Dwi Jaya A.P / 10.41010.0228
 Resume Pert.3 PBO
 Kelas Q2


Method adalah sarana bagi programmer untuk memodularisasi, 

artinya membreak atau memecah program kompleks menjadi bagian yang kecil-kecil sehingga nantinya dapat digunakan berulang-ulang, daripada menulis beberapa baris kode yang sama.  Method dalam Java mirip dengan fungsi atau procedure dalam bahasa pemrograman yang lain. Pada konsep Object Oriented Programming, Function lebih dikenal dengan istilah Method dimana merupakan suatu bagian dari Object yang mendefinisikan apa yang bisa Object tersebut lakukan. 
Jadi :
Method adalah fungsi atau prosedur yang dibuat oleh seorang programmer didalam suatu Class.  Method dapat dibagi menjadi fungsi dan prosedur. Fungsi adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah dengan mengembalikan hasil. Prosedur adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah tanpa mengembalikan suatu nilai hasil. Secara umum method dalam java adalah sebuah fungsi. Setiap method menghasilkan suatu nilai dengan tipe data tertentu yang dinamai Return Type. Apabila terdapat suatu fungsi yang tidak menghasilkan suatu nilai apapun maka bagian return type ini diganti dengan void. Penamaan method mengikuti kaidah penamaan seperti pada penamaan variabel. Bagian parameter pada method diisi dengan parameter-parameter fungsi yang diperlukan. Passing Parameter  dilakukan dengan cara pass by value dan pass by reference. Dengan analogi tersebut, otomatis beberapa hal umum seperti local variable,  pemanggilan method, pendefinisian return value type, dsb adalah sama.

Mendeklarasikan Method
      <methodDeclaration> ::=
      <modifier> <returnType> <name>(<parameter>*) {
      <statement>*
      }
      <parameter> ::=
      <parameter_type> <parameter_name>[,]

       contoh method:
       class MethodDemo {
       int data;
       int getData() {
       return data;
       }
       void setData(int data) {
       this.data = data;
        }
        void setMaxData(int data1, int data2) {
       data = (data1>data2)? data1 : data2;
        }
      }

contoh program dengan method:
public class TesMak
     {
          /** Main method */
         public static void main(String[] args)
         {
                int i = 5;
                int j = 2;
                int k = mak(i, j);
                System.out.println("The maximum between " + i + " and " + j + " is " + k);
          }

           /** Return the max between two numbers */
           public static int mak(int num1, int num2)
          {
                  int hasil;
                  if (num1 > num2)
                  hasil = num1;
                  else
                  hasil = num2;
                  return hasil;
                }
          }

Contoh lain Method yang mengembalikan nilai

         import java.util.*;
         public class cobaMethod{
         static double luasKotak(int sisi){
         return Math.pow(sisi,2);
          }
         public static void main(String[ ] args){
         Scanner input=new Scanner(System.in);
         System.out.println("Program hitung luas kotak");
         System.out.print("Panjang sisi : ");
         int s=input.nextInt();
         System.out.println("Luas Kotak : "+luasKotak(s));
         }
         } 

Contoh lain Method yang tidak mengembalikan nilai 
          import java.util.*;
          public class cobaMethod{
          static void luasKotak(int sisi){
          System.out.println("Luas Kotak : "+Math.pow(sisi,2));
           }
          public static void main(String[ ] args){
          Scanner input=new Scanner(System.in);
          System.out.println("Program hitung luas kotak");
          System.out.print("Panjang sisi : ");
          int s=input.nextInt();
          luasKotak(s);
           }
           } 

Membuat abstraksi dalam bentuk class yang dapat merepresentasikan Tape Commpo

Nama / NIM  :  Septian Dwi Jaya A.P / 10.41010.0228


Abtraksi Tape Commpo :

Class tape commpo
  • Attribute
  1. button
  2. sound system
  3. volume
  4. equalizer
  5. antena
  6. speeker
  7. nama tape player
  8. type tape player
    Class radio
    • Attribute
    1. frekuensi
    2. nama radio
    Class kaset
    • Attribute
    1. nama kaset
    2. type kaset
    3. judul lagu/film
    Class tape mp3
    • Attribute
    1. play
    2. pause
    3. next
    4. previous
    5. stop
    6. record
    Class DVD/VCD
    • Attribute
    1. play
    2. pause
    3. next
    4. previous
    5. stop
    6. record
    7. nama DVD/VCD
    8. judul lagu

    Membuat Simulasi System Perbankan Sederhana

    Nama / NIM  :  Septian Dwi Jaya A.P / 10.41010.0228

    Membuat simulasi perbankan sederhana. Seperti yang umum kita ketahui bahwa sebuah bank pasti memiliki Nasabah (Account\Rekening) yang memiliki data nama, nomer rekening dan saldo. Setiap nasabah akan dibuatkan sebuah Rekening yang memiliki data nomer rekening, nama nasabah dan saldo. Setiap nasabah dapat melakukan transaksi penyetoran uang, penarikan uang dan lihat saldo.

    Maka dibuatkan class Implementasi, sebagai berikut :
         import java.io.*;
         class Implementasi 
         {
         public static void main(String[] a) throws Exception
         {
         int pil=0, idx=0;
         double saldo=0;
         Nasabah [] n=new Nasabah[50];
         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
         do
         {
         System.out.println("MENU");
         System.out.println("1. Tambah Nasabah");
         System.out.println("2. Transfer");
         System.out.println("3. Tabung");
         System.out.println("4. Tarik Tunai");
         System.out.println("5. e-Banking");
         System.out.println("6. Lihat");
         System.out.println("7. Keluar");
         System.out.print("Masukkan pilihan Anda [1-7] = ");
         pil=Integer.parseInt(br.readLine());
         if (pil==1)
         {
         FileOutputStream fostream = new FileOutputStream ("Data.txt", true);
         DataOutputStream out = new DataOutputStream(fostream);
         BufferedWriter bw= new BufferedWriter (new OutputStreamWriter(out));
         System.out.println("TAMBAH NASABAH");
         System.out.print ("masukkan Norek : ");
         String norek=br.readLine();
         //cek apakah norek udah pernah dipakai atau belum...
              /* try
           {
         Nasabah n_norek=null;
         for (int i=0; i<idx; i++)
         {
         if (n[i].getNorek().equals(norek))
      n_norek=n[i];
         }
         if (n_norek == null)
         {
          System.out.println("Norek bisa");
         }
         else
         {
          System.out.println("Norek gagal");
          norek=br.readLine();
         }
         }
         catch (Exception e)
         {
         }*/
         System.out.print ("masukkan Nama : ");
         String nama=br.readLine();
         System.out.print ("masukkan bank : ");
         String bank=br.readLine();
         System.out.print ("masukkan saldo : ");
         saldo=Double.parseDouble(br.readLine());
         System.out.print ("masukkan pin : ");
         String pin=br.readLine();
           //PIN harus 6 digit!!!
         if (pin.length()!= 6)
         {
         System.out.println ("pin harus 6 digit");
         pin=br.readLine();
         bw.write(norek+"\t");
         bw.write(nama+"\t");
         bw.write(bank+"\t");
         bw.write(pin+"\t");
         bw.write(saldo+"\t");
         }
         else
         {
            bw.write(norek+"\t");
         bw.write(nama+"\t");
         bw.write(bank+"\t");
         bw.write(pin+"\t");
         bw.write(saldo+"\t");
         }

         bw.newLine();
         bw.close();
         out.close();
         n[idx]=new Nasabah(norek, nama, bank, pin, saldo);
         idx++;
         }
         else if(pil==2)
        {
    System.out.println("TRANSFER");
    System.out.print("Masukkan norek Anda = ");
    String asal=br.readLine();
    System.out.print("Masukkan norek tujuan = ");
    String tujuan=br.readLine();
    System.out.print("Masukkan nominal transfer = ");
    int nom=Integer.parseInt(br.readLine());
    Nasabah n_asal=null;
    Nasabah n_tujuan=null;
    for (int i=0; i<idx; i++)
    {
    if (n[i].getNorek().equals(asal))
    n_asal=n[i];
    if (n[i].getNorek().equals(tujuan))
    n_tujuan=n[i];
    }
    if (n_asal==null)
    {
    System.out.println("Norek asal tidak ada");
    }
    else if(n_tujuan == null)
    {
    System.out.println("Norek tujuan tidak ada");
    }
    else if (saldo<nom)
    {
    System.out.println("Saldo Anda tidak mencukupi");
    }
    else
    {
    n_asal.transfer(n_tujuan,nom);
    System.out.println("transfer sukses");
    }
    }
    else if (pil==3)
    {
    Nasabah n_asal=null;
    int i;
    /*FileOutputStream fostream = new FileOutputStream ("Data.txt",true);
    DataOutputStream out = new DataOutputStream(fostream);
    BufferedWriter bw= new BufferedWriter (new OutputStreamWriter(out));*/
    System.out.println("TABUNG");
    System.out.print("Masukkan norek Anda = ");
    String asal=br.readLine();
    System.out.print("Masukkan nominal tabung = ");
    int nom=Integer.parseInt(br.readLine());
    for ( i=0; i<idx; i++)
    {
    if (n[i].getNorek().equals(asal))
    n_asal=n[i];
    }
    if (n_asal==null)
    {
    System.out.println("Norek asal tidak ada");
    }
    else
    {
    n_asal.tabung(n_asal,nom);
    System.out.println("tabung sukses");
    }
    /*bw.write(asal+ "\t");
    bw.write(saldo+ "\t");
    bw.newLine();
    bw.close();
    out.close();*/
    }
    else if (pil==4)
    {
    Nasabah n_asal=null;
    int i;
    System.out.println("TARIK TUNAI");
    System.out.print("Masukkan norek Anda = ");
    String asal=br.readLine();
    System.out.print("Masukkan nominal tarik tunai = ");
    int nom=Integer.parseInt(br.readLine());
    for ( i=0; i<idx; i++)
    {
    if (n[i].getNorek().equals(asal))
    n_asal=n[i];
    }
    if (n_asal==null)
    {
    System.out.println("Norek asal tidak ada");
    }
    if (saldo<nom)
    {
    System.out.println("Saldo Anda tidak mencukupi");
    }
    else
    {
    n_asal.tarik(n_asal,nom);
    System.out.println("tarik tunai sukses");
    }
    }
    else if (pil==5)
    {
    Nasabah n_asal=null;
    int i=0, nil=0;
    FileOutputStream fostream = new FileOutputStream ("Data.txt", true);
    DataOutputStream out = new DataOutputStream(fostream);
    BufferedWriter bw= new BufferedWriter (new OutputStreamWriter(out));
    do
    {
    System.out.println("1. Bayar Listrik");
    System.out.println("2. Beli Pulsa");
    System.out.println("3. Keluar");
    System.out.print("Masukkan pilihan Anda [1-3] = ");
    nil=Integer.parseInt(br.readLine());
    if (nil==1)
    {
    System.out.println("Bayar Listrik");
    System.out.print("Masukkan norek Anda = ");
    String asal=br.readLine();
    System.out.print("Masukkan nominal = ");
    int nom=Integer.parseInt(br.readLine());
    for ( i=0; i<idx; i++)
    {
    if (n[i].getNorek().equals(asal))
    n_asal=n[i];
    }
    if (n_asal==null)
    {
    System.out.println("Norek asal tidak ada");
    }
    else
    {
    if (saldo<nom)
    {
    System.out.println("Saldo Anda tidak mencukupi");
    }
    else
    {
    n_asal.bayar(n_asal,nom);
    System.out.println("bayar listrik sukses");
    }
    }
    }
    else if (nil==2)
    {
    System.out.println("Beli pulsa");
    System.out.print("Masukkan norek Anda = ");
    String asal=br.readLine();
    System.out.print("Masukkan nominal = ");
    int nom=Integer.parseInt(br.readLine());
    for ( i=0; i<idx; i++) 
    {
    if (n[i].getNorek().equals(asal))
    n_asal=n[i];
    }
    if (n_asal==null)
    {
    System.out.println("Norek asal tidak ada");
    }
    else
    {
    if (saldo<nom)
    {
    System.out.println("Saldo Anda tidak mencukupi");
    }
    else
    {
    n_asal.bayar(n_asal,nom);
    System.out.println("beli pulsa sukses");
    }
    }
    }
    }
    while(nil!=3);
    }
    else if (pil==6)
    {
    int bil=0;
    do
    {
    System.out.println("1.tampilkan semua data");
    System.out.println("2.tampilkan 1 saja");
    System.out.println("3. Keluar");
    System.out.print("Masukkan pilihan Anda [1-3] = ");
    bil=Integer.parseInt(br.readLine());
    if (bil==1)
    {
    FileInputStream fis=new FileInputStream ("Data.txt");
    DataInputStream in = new DataInputStream(fis);  
    BufferedReader bw= new BufferedReader (new InputStreamReader(in));
    String strLine;
    while ((strLine = bw.readLine()) !=null)
    {
    System.out.println (strLine);
    }
    }
    else if (bil==2)
    {
    int i=0;
    for( i=0; i<idx; i++)
    {
    System.out.println(n[i].getNorek()+"\t"+n[i].getNama()+"\t"+n[i].getBank()+"  \t"+n[i].getSaldo());
    }
    }
    }while (bil!=3);
    }
    }while(pil!=7);
    }
    }

    Dari class Implementasi di atas, maka di buatkan constructor untuk membuat objek Nasabah

    class Nasabah
    {
    protected String norek, nama, bank, pin;
    protected double saldo;
    public Nasabah()
    {
    norek="";
    nama="";
    bank="";
    pin="";
    saldo=0;
    }
    public Nasabah(String no, String na, String ba, String pi, double sa)
    {
    norek=no;
    nama=na;
    bank=ba;
    pin=pi;
    saldo=sa;
    }
    public String getNorek()
    {
    return norek;
    }
    public String getNama()
    {
    return nama;
    }
    public String getBank()
    {
    return bank;
    }
    public String getPin()
    {
    return pin;
    }
    public double getSaldo()
    {
    return saldo;
    }
    public void setSaldo(double s)
    {
    saldo=s;
    }
    public void transfer(Nasabah n, int jum)
    {
    this.saldo=saldo-jum;
    n.setSaldo(n.getSaldo()+jum);
    }
    public void tabung(Nasabah n, int jum)
    {
    this.saldo=saldo;
    n.setSaldo(n.getSaldo()+jum);
    }
    public void tarik(Nasabah n, int jum)
    {
    this.saldo=saldo;
    n.setSaldo(n.getSaldo()-jum);
    }
    public void bayar(Nasabah n, int jum)
    {
    this.saldo=saldo;
    n.setSaldo(n.getSaldo()-jum);
    }
    }