class%&%object%2% - wordpress.com...* ubah%klas%rekening%di%slide% sebelumnya,dengan%mengubah%...

28
Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Upload: others

Post on 19-Feb-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

  • Class  &  Object  2  ~Praktikum~  

    Imam  Fahrur  Rozi  

  • *  Package  *  Kata  kunci  “import”  *  Access  Modifier  *  Konstruktor  *  Kata  kunci  “static”  

    Materi  

  • Package    

  • *  Package  dalam  Java  digunakan  untuk  mengorganisir  klas  dengan  kategori  yang  sama  atau  yang  menyediakan  fungsionalitas  yang  sama  *  Mirip  seperti  folder  yang  digunakan  untuk  mengorganisir  file  

    Package  

    namapaket  

             

  • package  

    *  Deklarasi  package      package  namapaket;  

     *  Deklarasi  subpackage  yang  ada  dalam  package  lain      package  namapaket.namasubpaket;  

  • *  Gambar  di  samping  menunjukkan  klas  A  ada  dalam  package  paket1  *  Maka  klas  A  dideklarasikan  sbb:  

     package  paket1;        class  A{      String  a1;      ……    }  

    Deklarasi  Package  

    A  

    a1:  String  

    paket1  

             

  • *  Di  dalam  suatu  package  boleh  ada  package  yang  lain  *  Gambar  di  samping  menunjukkan  klas  A  ada  dalam  package  paket2  dan  paket2  ada  dalam  paket1  *  Maka  klas  A  dideklarasikan  sbb:  

     package  paket1.paket2;        class  A{      String  a1;      ……    }  

    Deklarasi  Package  

    A  

    a1:  String  

    paket2  

             

    paket1  

                     

  • Kata  Kunci  “import”    

  • Kata  Kunci  “import”  

    *  Import  dipakai  ketika  dalam  suatu  klas,  dipakai  klas  lain  atau  mengacu  ke  klas  yang  lain,  dimana  klas  lain  tersebut  berada  pada  paket  yang  berbeda  *  Deklarasi  import  diletakkan  di  bawah  deklarasi  package  (kalau  ada)  

  • Contoh  package  entiti1;    public  class  Matakuliah{  

     public  String  kode;    

     public  Matakuliah(){      kode  =  “-‐-‐-‐-‐”;    }  

       public  Matakuliah(String  n){      kode=  n;    }  

       public  void  tampilData(){      System.out.println(“Kode  =  ”+kode);    }  

    }  

  • Contoh  *  Pada  klas  MkTester,  dibuat  objek  mk  dari  klas  Matakuliah  yang  ada  di  paket  entiti1.  Oleh  karena  itu  perlu  import  klas  Matakuliah  dari  paket  entiti1.  

    package  entiti2;    import  entiti1.Matakuliah;    public  class  MkTester{  

     public  static  void  main(String[]  argv){      Matakuliah  mk=new  Matakuliah();      mk.tampilData();    }  

    }  

  • import  paket1.*;    *  Untuk  meng-‐import  semua  klas  yang  ada  dalam  suatu  paket,  digunakan  tanda  *  

    Import  All  Classes  

  • Access  Modifier  

  • Access  Modifier  

    Balok  

    +  panjang:  int  ~  lebar:  int  -‐  tinggi:  int  

    +  hitungVolume():  int  ~  hitungLuasPermukaan():  int  +  main(String[]  argv):  void  

    BalokTester1  

    +  main(String[]  argv):  void  

    bangundatar  

    BalokTester2  

    +  main(String[]  argv):  void  

    bangundatartester  

  • *  Mekanisme  Percobaan:  *  Dalam  method  main  di  klas  BalokTester1  dan  

    BalokTester2,  lakukan  instansiasi  objek  dari  klas  Balok  *  Coba  akses  masing-‐masing  atribut  dan  masing-‐masing  

    method-‐nya    

    Access  Modifier  

  • *  Pertanyaan:  *  Atribut  dan  method  apa  saja  dari  klas  Balok  yang  tidak  

    bisa  diakses  dari  klas  BalokTester1?  Mengapa  demikian?  *  Atribut  dan  method  apa  saja  dari  klas  Balok  yang  tidak  

    bisa  diakses  dari  klas  BalokTester2?  Mengapa  demikian?  *  Bagaimana  caranya  agar  atribut  tinggi  bisa  diakses  dari  

    klas  BalokTester1  dan  BalokTester2,  selain  dengan  mengubah  access  modifier-‐nya?  

    Access  Modifier  

  • *  Atribut  dengan  access  modifier  private  bisa  diakses  dengan  menggunakan  accessor  &  mutator  method  *  Accessor/Getter  method:  method  yang  digunakan  untuk  mengakses  atau  mengambil  nilai  dari  suatu  atribut  dengan    acccess  modifier  private  *  Mutator/Setter  method:  method  yang  digunakan  untuk  memberikan/mengatur/men-‐set  nilai  kepada  atribut  dengan    acccess  modifier  private  

    Accessor/Getter  &  Mutator/Setter  Method  

  • *  Diawali  dengan  get,  diikuti  dengan  nama  atributnya  *  Tipe  data  getter  sama  dengan  tipe  data  atributnya  class  Mahasiswa{  

     private  String  nim;    private  float  ipk;        public  String  getNim(){      return  nim;    }    public  float  getIpk(){      return  ipk;    }  

    }  

    Getter  Method  

  • *  Diawali  dengan  set,  diikuti  dengan  nama  atributnya  *  Tipe  data  setter  pasti  void  *  Method  setter  memiliki  parameter  sesuai  dengan  atributnya  

    Setter  Method  

    class  Mahasiswa{    private  String  nim;    private  float  ipk;        public  void  setNim(String  n){      nim  =  n;    }    public  void  setIpk(float  f){      ipk  =  f;    }  

    }  

  • class  Mahasiswa{    private  String  nim;    private  float  ipk;        public  String  getNim(){      return  nim;    }    public  float  getIpk(){      return  ipk;    }    public    void  setNim(String  n){      nim  =  n;    }    public  void  setIpk(float  f){      ipk  =  f;    }  

     }  

  • *  Lengkapi  klas  Balok  di  atas  dengan  setter  dan  getter  untuk  atribut  tinggi  dan  lebar  (atribut  panjang  tidak  perlu  dibuatkan  setter  dan  getter  krn  sudah  public)  *  Kemudian  sesuaikan  klas  BalokTester1  dan  BalokTester2  agar  tidak  error  

    Tugas  

  • Konstruktor  

  • *  Di  dalam  method  main()  lakukan  instansiasi  objek  dari  klas  Rekening  *  Apakah  bisa?  Padahal  di  dalam  klas  Rekening  tidak  dituliskan  konstruktor!  Mengapa  demikian?  

    Konstruktor  

    Rekening  

    -‐  noRek:  String  -‐  saldo:  int  

    +  setNoRek(String  n):  void  +  setSaldo(int  s):  void  +  getNoRek():  String  +  getSaldo():  int  

    RekeningTester  

    +  main(String[]  argv):  void  

  • *  Ubah  klas  Rekening,  dengan  menambahkan  konstruktor  default  di  dalamnya!  *  Apa  bedanya  dengan  klas  Rekening  di  slide  sebelumnya?  

    Konstruktor  

    Rekening  

    -‐  noRek:  String  -‐  saldo:  int  

    +  Rekening()  +  setNoRek(String  n):  void  +  setSaldo(int  s):  void  +  getNoRek():  String  +  getSaldo():  int  

    RekeningTester  

    +  main(String[]  argv):  void  

  • *  Ubah  klas  Rekening  di  slide  sebelumnya,  dengan  mengubah  konstruktor  default  menjadi  konstruktor  berparameter  (2  parameter)!  *  Di  method  main  coba  instansiasi  

    dengan  menggunakan  konstuktor  berparameter!  Apakah  bisa?  *  Kemudian  coba  instansiasi  objek  lagi  

    dengan  menggunakan  konstruktor  default!  Apakah  bisa?  Mengapa  demikian?  

    Konstruktor  

    Rekening  

    -‐  noRek:  String  -‐  saldo:  int  

    +  Rekening(String  no,  int  s)  +  setNoRek(String  n):  void  +  setSaldo(int  s):  void  +  getNoRek():  String  +  getSaldo():  int  

    RekeningTester  

    +  main(String[]  argv):  void  

  • *  Ubah  klas  Rekening  di  slide  sebelumnya,  dengan  menambahkan  konstruktor  default  dan  beberapa  konstruktor  berparameter  (konsep  konstruktor  overloading)!  *  Di  method  main  coba  instansiasi  dengan  menggunakan  masing-‐masing  konstuktor!    

    Konstruktor  

    Rekening  

    -‐  noRek:  String  -‐  saldo:  int  

    +  Rekening()  +  Rekening(String  no)  +  Rekening(int  s)  +  Rekening(String  no,  int  s)  +  setNoRek(String  n):  void  +  setSaldo(int  s):  void  +  getNoRek():  String  +  getSaldo():  int  

    RekeningTester  

    +  main(String[]  argv):  void  

  • Kata  Kunci  “static”  

  • *  Tambahkan  atribut  bunga,  yang  merupakan  atribut  klas  (menggunakan  kata  kunci  static).  Hal  ini  karena  diasumsikan  bahwa  nilai  bunga  untuk  semua  objek  rekening  sama  (sehingga  bunga  dibuat  static)  *  Di  method  main  coba  akses  atribut  bunga  

    Kata  Kunci  “static”  Rekening  

    -‐  noRek:  String  -‐  saldo:  int  +  bunga:  double  

    +  Rekening()  +  Rekening(String  no)  +  Rekening(int  s)  +  Rekening(String  no,  int  s)  +  setNoRek(String  n):  void  +  setSaldo(int  s):  void  +  getNoRek():  String  +  getSaldo():  int  

    RekeningTester  

    +  main(String[]  argv):  void