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);
    }
    }

    Selasa, 27 September 2011

    Contoh membuat Stored Procedures, Functions, dan Trigger dalam SQL Server


      Nim / Nama     : 10.41010.0228 / Septian Dwi Jaya A.P
      Dosen            : Tan Amelia
      Tugas            : Contoh Stored Procedure, Function, Trigger



    Membuat Stored Procedure


    Contoh membuat proc barang dengan menampilkan semua data pada table product di database nortwind :
                              CREATE PROC BARANG AS
                              SELECT * FROM Products


    Disini kita memanggil data product dimana productId=@kode, dan saat menjalankan kita masukkan paramete @kodenya = 2.
                              create proc data_brg(@kode int)
                              as
                              select * from Products
                              where ProductID = @kode

                              exec data_brg '2'

    Jika dengan 2 parameter
                              create proc data_brg2
                              @cat int, @stock int
                              as
                              select * from Products
                              where CategoryID = @cat where CategoryID = @cat
                              and UnitsInStock < @stock exec data_brg2 @cat='2', @stock='5' execute data_brg2 '2', '5'

    Mengindikasikan bahwa parameter berupa return parameter. Nilai parameter dpt diubah dan diberikan nilainya pada program pemanggilnya. nilainya pada program pemanggilnya.
                             create proc lihat_brg
                             (@kode varchar(5),
                             @nama varchar(30) output,
                             @stock decimal output,
                             @hrgj decimal output)
                             AS
                             select @nama=ProductName,
                             @stock=UnitsInStock,
                             @hrgj=UnitPrice
                             From Products
                             where ProductID = @kode

    Untuk menjalankan, variabel pada program yg memanggil harus dideklarasikan dan saat dieksekusi diikuti kata output
                             Declare @nm varchar(50), @jml decimal,
                             @hargaj decimal
                             Execute lihat_brg '1', @nm output, @jml
                             output, @hargaj output
                             Print 'Nama Brg : ' + @nm
                             Print 'Stock : ' + str(@jml) Print 'Stock : ' + str(@jml)
                             Print 'Harga Jual : ' + str(@hargaj)
                             Print 'Total Harga : ' + str(@jml * @hargaj)

    Membuat Functions

    SUM untuk agregat dan agregat baris
    Contoh ini menunjukkan perbedaan antara fungsi agregat dan fungsi agregat baris. Yang pertama menunjukkan fungsi agregat memberikan data ringkasan saja, dan menunjukkan fungsi agregat baris kedua memberikan detail dan data ringkasan.

    1. USE pubs  
    2. GO  
    3. -- Aggregate functions  
    4. SELECT type, SUM(price), SUM(advance)  
    5. FROM titles  
    6. WHERE type LIKE '%cook'  
    7. GROUP BY type  
    8. ORDER BY type  
    9. GO  
    10.   
    11. USE pubs  
    12. GO  
    13. -- Row aggregates  
    14. SELECT type, price, advance  
    15. FROM titles  
    16. WHERE type LIKE '%cook'  
    17. ORDER BY type  
    18. COMPUTE SUM(price), SUM(advance) BY type

    Contoh menghitung total kelompok dengan lebih dari satu kolom, menghitung jumlah harga dan advance untuk setiap jenis buku.
    1. USE pubs  
    2. GO  
    3. SELECT type, SUM(price), SUM(advance)  
    4. FROM titles  
    5. GROUP BY type  
    6. ORDER BY type  
    7. GO 


    Membuat Trigger

    tabel yang ada :
               TourID |   StartDate   |   EndDate
               T001        5/18/2007      5/13/2007

    Trigger untuk Insert dan Update :

            CREATE TRIGGER Tour_Duration_TG
                   ON  Tour
                   FOR INSERT,UPDATE
            AS
                   SET NOCOUNT ON;
                   DECLARE @DURATION AS INT
                   SELECT @DURATION = DATEDIFF(dd,Start_Date, End_Date) FROM Tour
                   IF ((@DURATION BETWEEN 3 AND 18) OR (@DURATION=0))
            BEGIN
                   ROLLBACK TRANSACTION
                   RAISERROR('Tour duration must with in 3 to 18!',16,1)
       
            END
            GO

            DROP TRIGGER Tour_Duration_TG

            INSERT INTO Tour
            (Tour_ID, Start_Date, End_Date)
            VALUES
            ('T008', 5/11/2007, 5/16/2007)

    Untuk menghapus trigger
    Bentuk umum dan contoh menghapus trigger :
    CREATE TRIGGER [trigger_delete]
    02ON  [dbo].[Table_Siswa]
    03for DELETE
    04AS
    05BEGIN
    06SET NOCOUNT ON;
    07 
    08declare @ko_sis as char(7)
    09declare @na_sis as varchar(50)
    10declare @usr varchar(30)
    11declare @tgl datetime
    12 
    13set @usr = suser_sname()
    14set @tgl = getdate()
    15select @ko_sis = kode_siswa, @na_sis = nama_siswa from deleted
    16insert into Log_insert_delete values(@ko_sis, @na_sis, 'Delete', @usr, @tgl)
    17END