Selasa, 31 Maret 2015

KALKULATOR SEDERHANA

Nama/NIM : Putu Pasek Okta Mahawardana/1404505040
Jurusan/Fakultas/Perguruan Tinggi : Teknologi Informasi/Teknik/Universitas Udayana
Mata Kuliah : Pemrograman Berorientasi Objek (B)
Dosen : I Putu Agus Eka Pratama, S.T., M.T.



Membuat Program Kalkulator Sederhana
Pada artikel ini saya akan membahas cara membuat kalkulator sederhana pada bahasa pemrograman java dengan menggunakan program Geany. Program kalkulator sederhana ini mirip dengan program aritmatika yang sebelumnya telah di buat, tapi yang membedakan adalah dalam program kalkulator sederhana ini setelah kita menginput angka yang akan diproses kita dapat memilih operasi apa yang akan dilakukan.
Dalam koding tersebut terdapat class kalkulator yang berisi operasi aritmatika penjumlahan, pengurangan, perkalian dan pembagian. Sebelum class kalkulator terdapat import java.util.Scanner yang berfungsi agar kita bisa menggunakan input dan output dalam program ini. Pada class Main program saya menggunakan menu pilihan yaitu 1. Penjumlahan, 2. Pengurangan, 3. Perkalian dan 4. Pembagian.
Cara kerja program kalkulator sederhana ini adalah pertama dengan memilih operasi apa yang diinginkan 1. Penjumlahan, 2. Pengurangan, 3. Perkalian, 4. Pembagian dan jika pilihan selain itu maka akan muncul pesan "Pilihan salah". Kemudian setelah memilih akan diminta untuk menginput angka pertama dan kedua yang kemudian langsung diproses oleh program.

Berikut ini adalah screenshot program :





Ini adalah output dari koding diatas:

Selasa, 17 Maret 2015

MENGETAHUI TENTANG UML USE CASE DIAGRAM

Nama/NIM : Putu Pasek Okta Mahawardana/1404505040
Jurusan/Fakultas/Perguruan Tinggi : Teknologi Informasi/Teknik/Universitas Udayana
Mata Kuliah : Pemrograman Berorientasi Objek (B)
Dosen : I Putu Agus Eka Pratama, S.T., M.T.



Unified Modeling Language (UML)

Merupakan sebuah bahasa pemodelan yang sudah menjadi standar industri software untuk visualisasi, merancang, dan mendokumentasikan sistem perangkat lunak. Bahasa Pemodelan UML lebih cocok untuk pembuatan perangkat lunak dalam bahasa pemrograman berorientasi objek (C , Java, VB.NET), namun demikian tetap dapat digunakan pada bahasa pemrograman prosedural .
10 macam diagram dari UML utuk memodelkan aplikasi berorientasi objek:
Use Case Diagram         : untuk memodelkan proses bisnis.
Conceptual Diagram      : untuk memodelkan konsep-konsep yang ada di dalam aplikasi.
Sequence Diagram         : untuk memodelkan pengiriman pesan (message) antar         objects.
Collaboration Diagram  : untuk memodelkan interaksi antar objects.
State Diagram               : untuk memodelkan perilaku objects di dalam sistem.
Activity Diagram           : untuk memodelkan perilaku Use Cases dan objects di dalam system.
Class Diagram               : untuk memodelkan struktur kelas.
Object Diagram             : untuk memodelkan struktur object.
Component Diagram     : untuk memodelkan komponen object.
Deployment Diagram    : untuk memodelkan distribusi aplikasi.

Use Case Diagram
Use case diagram digunakan untuk memodelkan bisnis proses berdasarkan perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case dan actor. Actor merepresentasikan orang yang akan mengoperasikan atau orang yang berinteraksi dengan sistem aplikasi.
Use case merepresentasikan operasi-operasi yang dilakukan oleh actor Use case digambarkan berbentuk elips dengannama operasi dituliskan di dalamnya. Actor yang melakukan operasi dihubungkan dengan garis lurus ke use case. Use Case diagram memiliki bagian – bagian, Bagian – bagian Use Case Diagram adalah sebagai berikut :
·         System
Menyatakan batasan sistem dalam relasi dengan actor-actor yang menggunakannya dan fitur-fitur yang harus disediakan (dalam sistem). Digambarkan dengan segi empat yang membatasi semua use case dalam sistem terhadap pihak mana sistem akan berinteraksi. Sistem disertai label yang menyebutkan nama dari sistem, tapi umumnya tidak digambarkan karena tidak terlalu memberi arti tambahan pada diagram.
·         Actor
Aktor adalah segala hal diluar sistem yang akan menggunakan sistem tersebut untuk melakukan sesuatu. Bisa merupakan manusia, sistem, atau device yang memiliki peranan dalam keberhasilan operasi dari sistem.
·         Use case
Mengidentifikasi fitur kunci dari sistem. Tanpa fitur ini, sistem tidak akan memenuhi permintaan user/actor. Setiap use case mengekspresikan goal dari sistem yang harus dicapai. Diberi nama sesuai dengan goal-nya dan digambarkan dengan elips dengan nama di dalamnya. Fokus tetap pada goal bukan bagaimana mengimplementasikannya walaupun use case berimplikasi pada prosesnya nanti. Setiap use case biasanya memiliki trigger/pemicu yang menyebabkan use case memulai. Terdapat 2 triger pertama triger eksternal, seperti pelanggan memesan atau alarm kebakaran berbunyi, kedua triger temporal, seperti tanggal pengembalian buku terlewati di perpustakaan atau keterlambatan bayar sewa.
·         Assosiation
Mengidentifikasikan interaksi antara setiap actor tertentu dengan setiap use case tertentu. Digambarkan sebagai garis antara actor terhadap use case yang bersangkutan. Asosiasi bisa berarah (garis dengan anak panah) jika komunikasi satu arah, namun umumnya terjadi kedua arah (tanpa anak panah) karena selalu diperlukan demikian.

Dependency
Dependensi <<include>>
Mengidentifikasi hubungan antar dua use case di mana yang satu memanggil yang lain.
Jika pada beberapa use case terdapat bagian yang memiliki aktivitas yang sama maka bagian aktivitas tersebut biasanya dijadikan use case tersendiri dengan relasi dependensi setiap use case semula ke use case yang baru ini sehingga memudahkan pemeliharaan.
Digambarkan dengan garis putus-putus bermata panah dengan notasi <<include>> pada garis. Arah mata panah sesuai dengan arah pemanggilan.
Dependensi <<extend>>
Jika pemanggilan memerlukan adanya kondisi tertentu maka berlaku dependensi <<extend>>.
Note: konsep “extend” ini berbeda dengan “extend” dalam Java!
Digambarkan serupa dengan dependensi <<include>> kecuali arah panah berlawanan.

Generalization
Mendefinisikan relasi antara dua actor atau dua use case yang mana salah satunya meng-inherit dan menambahkan atau override sifat dari yang lainnya. Penggambaran menggunakan garis bermata panah kosong dari yang meng-inherit mengarah ke yang di-inherit.

Contoh UML:




CONTOH PROGRAM PEWARISAN

Nama/NIM : Putu Pasek Okta Mahawardana/1404505040
Jurusan/Fakultas/Perguruan Tinggi : Teknologi Informasi/Teknik/Universitas Udayana
Mata Kuliah : Pemrograman Berorientasi Objek (B)
Dosen : I Putu Agus Eka Pratama, S.T., M.T. 





PROGRAM PEWARISAN MENAMPILKAN KELAS MAMALIA DAN REPTIL



// kelas Mamalia
//super kelas untuk kelas anak : Sapi, Kucing, Anjing.
class Mamalia {
 String Nama;
 String Keterangan;
  
 //konstruktor
 public Mamalia (String nama, String keterangan){
  Nama = nama;
  Keterangan = keterangan;
 }
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Mamalia = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
 }
}

//kelas Sapi
//Turunan dari kelas Mamalia, menggunakan "extends" dan "super"
class Sapi extends Mamalia {
 //konstruktor
 public Sapi (String nama, String keterangan) {
  super (nama, keterangan);
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Mamalia = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
 }
}

//kelas Kucing
//Turunan dari kelas Mamalia, menggunakan "extends" dan "super"
class Kucing extends Mamalia {
 //konstruktor
 public Kucing (String nama, String keterangan) {
  super (nama, keterangan);
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Mamalia = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
 }
}

//kelas Anjing
//Turunan dari kelas Mamalia, menggunakan "extends" dan "super"
class Anjing extends Mamalia {
 //konstruktor
 public Anjing (String nama, String keterangan) {
  super (nama, keterangan);
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Mamalia = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
 }
}

//kelas ShibaInu
//Turunan dari kelas Anjing, menggunakan "extends" dan "super"
class ShibaInu extends Anjing {
 String Negara;
 String Warna;
  
 //konstruktor
 public ShibaInu (String nama, String keterangan,String warna,
 String negara) {
  super (nama, keterangan);
  Negara = negara;
  Warna = warna;
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Mamalia = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
  System.out.println("Warna = " +Warna);
  System.out.println("Negara Asal = " +Negara);
 }
}

//kelas SiberianHusky
//Turunan dari kelas Anjing, menggunakan "extends" dan "super"
class SiberianHusky extends Anjing {
 String Negara;
 String Warna;
  
 //konstruktor
 public SiberianHusky (String nama, String keterangan,String warna,
 String negara) {
  super (nama, keterangan);
  Negara = negara;
  Warna = warna;
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Mamalia = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
  System.out.println("Warna = " +Warna);
  System.out.println("Negara Asal = " +Negara);
 }
}

//kelas GermanShepherd
//Turunan dari kelas Anjing, menggunakan "extends" dan "super"
class GermanShepherd extends Anjing {
 String Negara;
 String Warna;
  
 //konstruktor
 public GermanShepherd (String nama, String keterangan,String warna,
 String negara) {
  super (nama, keterangan);
  Negara = negara;
  Warna = warna;
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Mamalia = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
  System.out.println("Warna = " +Warna);
  System.out.println("Negara Asal = " +Negara);
 }
}

// kelas Reptil
//super kelas untuk kelas anak : Ular, Buaya, Cicak.
class Reptil {
 String Nama;
 String Keterangan;
  
 //konstruktor
 public Reptil (String nama, String keterangan){
  Nama = nama;
  Keterangan = keterangan;
 }
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Reptil = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
 }
}

//kelas Ular
//Turunan dari kelas Reptil, menggunakan "extends" dan "super"
class Ular extends Reptil {
 //konstruktor
 public Ular (String nama, String keterangan) {
  super (nama, keterangan);
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Reptil = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
 }
}

//kelas Buaya
//Turunan dari kelas Reptil, menggunakan "extends" dan "super"
class Buaya extends Reptil {
 //konstruktor
 public Buaya (String nama, String keterangan) {
  super (nama, keterangan);
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Reptil = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
 }
}

//kelas Cicak
//Turunan dari kelas Reptil, menggunakan "extends" dan "super"
class Cicak extends Reptil {
 //konstruktor
 public Cicak (String nama, String keterangan) {
  super (nama, keterangan);
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Reptil = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
 }
}

//kelas Kobra
//Turunan dari kelas Ular, menggunakan "extends" dan "super"
class Kobra extends Ular {
 //konstruktor
 public Kobra (String nama, String keterangan) {
  super (nama, keterangan);
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Reptil = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
 }
}

//kelas Python
//Turunan dari kelas Ular, menggunakan "extends" dan "super"
class Python extends Ular {
 //konstruktor
 public Python (String nama, String keterangan) {
  super (nama, keterangan);
 }
  
 //methode
 public void TampilkanRincian(){
  System.out.println("Nama Reptil = " +Nama);
  System.out.println("Keterangan = " +Keterangan);
 }
}

//Kelas utama
public class Binatang {
  
 public static void main (String args[]) {
   
  //instansiasi kelas
  //menggunakan "new"
  System.out.println("Berikut daftar binatang beserta salah satu turunannya :");
  System.out.println("");
  Sapi sapi = new Sapi("Sapi","Hewan Ternak");
  Kucing kucing = new Kucing("Kucing","Hewan Peliharaan");
  Anjing anjing = new Anjing("Anjing",
  "Hewan Peliharaan yang juga bisa membantu manusia dalam pekerjaan");
  ShibaInu shiba = new ShibaInu("Shiba Inu","Anjing yang setia",
  "Coklat Kekuningan, Hitam & kecoklatan, Hitam kekuningan","Jepang");
  SiberianHusky husky = new SiberianHusky("Siberian Husky",
  "Anjing tangguh, aktif, efisien dan penuh energik ",
  "Hitam, Merah, Hitam & Putih, Hitam & kecokelatan, belang-belang","Rusia");
  GermanShepherd german = new GermanShepherd("German Shepherd",
  "Anjing yang Pintar, Berani dan Setia",
  "Hitam, Abu-abu, Biru, Putih, Hitam & Tan, Sable, Merah & Hitam","Jerman");
  Ular ular = new Ular("Ular",
  "Hewan Berbahaya, yang bisa membunuh dengan melilit atau dengan bisa");
  Buaya buaya = new Buaya("Buaya",
  "Hewan Berbahaya yang sering terdapat di pinggir sungai atau danau");
  Cicak cicak = new Cicak("Cicak",
  "Hewan yang merayap di dindin atau pohon");
  Kobra kobra = new Kobra("Kobra",
  "Jenis dari ular yang memiliki bisa yang mematikan");
  Python python = new Python("Python",
  "Jenis dari ular yang membunuh mangsanya dengan cara melilitnya");
      
  //Pemanggilan konstruktor masing - masing
  sapi.TampilkanRincian();
  System.out.println("");
  kucing.TampilkanRincian();
  System.out.println("");
  anjing.TampilkanRincian();
  System.out.println("");
  shiba.TampilkanRincian();
  System.out.println("");
  husky.TampilkanRincian();
  System.out.println("");
  german.TampilkanRincian();
  System.out.println("");
  ular.TampilkanRincian();
  System.out.println("");
  buaya.TampilkanRincian();
  System.out.println("");
  cicak.TampilkanRincian();
  System.out.println("");
  kobra.TampilkanRincian();
  System.out.println("");
  python.TampilkanRincian();
  System.out.println("");
 }

}

Pada Program ini terdapat dua Class utama yaitu Mamalia dan Reptil. Pada baris awal terdapat Member yaitu String Nama dan Keterangan. Baris selanjutnya merupakan konstrukor, Public dipakai agar class lain dapat mengaksesnya. [public Mamalia(String name, String keterangan)] digunakan untuk men-set variabel name dan keterangan pada saat pertama kali mendeklarasikan Obyek dengan tipe Class Mamalia. Kemudian paling bawah yaitu methode [public void TampilkanRincian()] digunakan untuk menampilkan nama dan keterangan yang diinputkan.

Class Sapi adalah sub class dari Class Mamalia. Class ini merupakan pewarisan dari class mamalia. super(nama,keterangan) pada konstruktor tersebut digunakan untuk mewariskan member nama dan keterangan yang terdapat dalam Class Mamalia. Sama seperti Class Sapi, Class Kucing dan Class Anjing adalah sub class dari Class Mamalia. Dengan super(nama,keterangan) pada konstruktor Class Kucing dan Class Anjing ini mewariskan member nama dan keterangan yang terdapat dalam Class Mamalia.

Class Reptil merupakan Class Utama. Class Reptil ini adalah super class dari Class Ular, Buaya, Cicak. Pada baris awal terdapat Member yaitu String Nama dan Keterangan. Baris selanjutnya merupakan konstrukor, Public dipakai agar class lain dapat mengaksesnya. [public Reptil(String name, String keterangan)] digunakan untuk men-set variabel name dan keterangan pada saat pertama kali mendeklarasikan Obyek dengan tipe Class Reptil. Kemudian paling bawah yaitu methode [public void TampilkanRincian()] digunakan untuk menampilkan nama dan keterangan yang diinputkan. 

Class Ular adalah sub class. Class ini mendapat pewarisan dari class Reptil. Menuliskan super(nama,keterangan) pada konstruktor digunakan untuk mewariskan member nama dan keterangan yang terdapat dalam Class Reptil. Sama seperti Class Ular, Class Buaya dan Class Cicak adalah sub class yang mendapat pewarisan nama dan keterangan dari Class Reptil. Dengan menuliskan super(nama,keterangan) pada konstruktor Class Buaya dan Class Cicak ini mewariskan member nama dan keterangan yang terdapat dalam Class Reptil. Class Kobra adalah sub class, turunan dari Class Ular. Class ini mendapat pewarisan nama dan keterangan dari Class Ular yang sebelumnya juga menerima pewarisan nama dan keterangan dari Class Reptil.Menuliskan super(nama,keterangan) pada konstruktor tersebut digunakan untuk mewariskan member nama dan keterangan yang terdapat dalam Class