Minggu, 29 Desember 2013

My First Java

// contoh program sederhana
public class salam
{
                public static void main(String[] args)
                {
                System.out.println(“Selamat datang di JAVA programming”);
                }
}
Aturan Dasar
·         Aturan Dasar dari penggunaan sintaks bahasa JAVA
·         AVA bersifat case-sensitive
·         Secara umum JAVA mengabaikan spasi kosong (karakter yang tidak muncul pada layar, mis kosong, tab, baris baru)
·         Brace { } adalah simbol pengelompokkan dalam JAVA yang menandai awal dan akhir bagian suatu program.
·         Setiap pernyataan JAVA diakhiri dengan simbol ;
·         Simbol // membuat sebuah baris komentar
                Simbol /* */ membatasi bagian awal dan akhir suatu komentar
·         JAVA memiliki beberapa kata yang dicadangkan dan tidak bisa digunakan dalam ekspresi biasa.
                Kata-kata tersebut disebut keyword.
·         Kelas pertama dalam sebuah program JAVA (disebut kelas pengendali) harus memiliki nama yang sama dengan file di mana ia disimpan.
Escape Sequence
\n Newline
\t Horizontal tab
\r Carriage return
\\ Backslash
\” Double quote mis:
                System.out.println(“\”Halo\””);
// menampilkan sebaris text dengan multiple statement
public class salam2 {
                public static void main(String[] args) {
                System.out.print(“Selamat datang”);
                System.out.println(“ di JAVA programming”);
                }
}
// menampilkan beberapa baris dengan sebaris statement
public class salam3 {
                public static void main(String[] args) {
                System.out.println(“Selamat datang\n di JAVA programming”);
}
}
Data Variabel
Data dapat berisi satu atau lebih item data (entity). Untuk setiap item data, penjelasannya diberikan berupa:
·         tipe data
·         nama yang unik untuk mengidentifikasikan data tersebut
·         nilai awal (optional)
Dalam JAVA, terdapat 2 kategori umum variabel
·         elementary (tipe data primitif)
·         numerik
·         teks
·         boolean
·         object variables (references)
DATA DEFINITION
<data_type> <variable> ;
    int x; int y ;
<data_type> <variable1> , <variable2> , … , <variable3>
    int x , y, z ;
<data_type> <variable> = <data_value>;
    int x = 10 ;
DATA ASSIGNMENT
<data_type> <variable> ;
<statement_statement_lain>
<variable> = <data_value> ;
    int x;
    :::::::::::::
    :::::::::::::
    x = 10 ;
CATATAN:
·         nama variabel harus dimulai dengan huruf (selanjutnya dapat berupa huruf atau angka)
·         nama variabel bersifat case sensitif
·         bukan reserved word
·         tidak ada spasi
Konversi Tipe Numerik
Untuk melakukan konversi tipe data secara ‘paksa’
dapat menggunakan casting
                double x = 2.14;
                int y = ( int ) x;
JAVA mengijinkan untuk melakukan assignment conversion
tanpa menggunakan casting (secara eksplisist)
byte ->short -> int -> long -> float -> double
Constant
·         final
                final int PANJANG_SEGIEMPAT = 30;
·         biasanya ditulis dengan huruf besar semua
public class contoh
{
                                public static void main (String[] args)
                                { final double CM_PER_INCH = 2.54;
                                double lebarKertas = 8.5;
                                double panjangKertas = 11;
                                System.out.println(“Ukuran kertas dalam cm : “
                                + lebarKertas * CM_PER_INCH + “ x “
                                + panjangKertas * CM_PER_INCH);
}
}

TENTANG CLASS

Dalam object oriented programming kita mulai mengenal adanya class & object. Class adalah sebuah bagian dari program , yang memiliki semua atribut atribut seperti halnya yang dimiliki oleh program biasa akan tetapi class tidak bersifat “Main” atau utama, sehingga sebuah class tidak akan bisa dirun dan dieksekusi tanpa menggunakan main class, atau class utama. Pada pemrograman struktural kita menaruh kodingan kita pada main class sehingga kita langsung bisa mengkompile dan mengeksekusi program kita tersebut, dimana pada pemrograman berorientasi object sekarang ini kita akan mulai menggunakan class untuk menaruh program kita, sehingga program kita dapat digunakan kembali dan dipadukan dengan program program lain oleh orang lain.
Ketika menggunakan class, kita tidak dapat menyamakannya seperti saat kita memprogram dengan basis pemrograman struktural. Class disini hanya bersifat sebagi cetakan atau “blueprint” dari program yang kita buat, untuk dapat mengeksekusi sebuah class kita harus melakukan “instansiasi” yaitu membuat sebuah object dari class yang telah kita buat. Untuk lebih mudahnya kita ibaratkan sebuah class adalah sebuah cetakan roti dan roti adalah sebuah object dimana proses pembuatan roti disebut sebagai instansiasi. Dalam hal ini sama halnya seperti cetakan roti, sebuah class juga bisa digunakan berkali kali untuk membuat sebuah object, dimana satu object dengan yang lainnya tidaklah memiliki keterkaitan meskipun berasal dari kelas yang sama.
Dalam pembuatan suatu class kita bisa jadikan satu file dengan main class atau juga bisa kita pisahkan menjadi file sendiri. Dimana dalam menaruh program kita di class tersebut, kita tidak bisa sembarang menaruh dalam class tersebut, melainkan kita harus membuat fungsi fungsi, yang nantinya akan bisa kita eksekusi melalui instance object yang telah kita buat.
Untuk lebih jelasnya perhatikan contoh dibawah ini :
public class Main
{
public static void main(String[] args) {
Penjumlahan p = new Penjumlahan(5,9);
System.out.println(p.hitungPenjumlahan());
Penjumlahan q = new Penjumlahan(7,9);
System.out.println(q.hitungPenjumlahan());
}
}
class Penjumlahan
{
int a;
int b;
public Penjumlahan(int a, int b)
{
this.a = a;
this.b = b;
}
public int hitungPenjumlahan()
{
return a + b;
}
}
Dalam contoh tersebut Penjumlahan adalah suatu class yang memiliki constructor(fungsi yang pertama kali dieksekusi ketika class diinstansiasi) yang membutuhkan passing 2 variable integer. Dimana dalam class tersebut juga terdapat method untuk menjumlahlkan dua bilangan yang telah dipassing pada constructor tersebut.
class Penjumlahan adalah pendefinisian nama class
public Penjumlahan(int a, int b) merupakan constructor dari class penjumlahan tersebut
int hitungPenjumlahan() merupakan method yang digunakan untuk menjumlahkan dua variabel integer yang telah dipassingkan pada constructor tadi
Penjumlahan p = new Penjumlahan(5,9) proses instansiasi dari class penjumlahan yang membentuk object p, dimana object p mengacu pada struktur yang ada dalam class penjumlahan. Keyword new adalah keyword yang digunakan untuk menginstansiasi sebuah object dari sebuah class dimana berikutnya diikuti oleh construcor dari class tersebut.
Operator this adalah operator yang digunakan untuk mengakses variabel yang paling global dari suatu class jika terdapat dua variabel yang memilki nama yang sama dam scope yang berbeda.
Operator (.) dot adalah operator yang digunakan untuk mengakses atribut atribut yang terdapat didalam class yang telah diinstansiasi tersebut.
Didalam contoh tersebut akan menghasilkan dua output yang berbeda yaitu 14 & 16, meskipun berasal dari class yang sama akan tetapi dalam contoh tersebut terdapat dua object yang berbeda. Hal ini membuktikan bahwa tidak ada keterkaitan pada satu object dengan object lainnya meski berasal dari class yang sama
Access Modifier
Didalam contoh tersebut kita juga bisa melihat keyword keyword seperti public , private dan protected , keyword keyword semacam itu disebut dengan access modifier yaitu memberikan spesifikasi akses pada class maupun method.
public : Adalah ditujukan untuk atribut atribut yang dapat diakses oleh siapapun dan dimanapun senyampang masih dalam scopenya
private : Adalah pembatasan akses hanya untuk di dalam class tersebut
protected : Adalah ditujukan untuk atribut atribut yang hanya dapat diakses oleh child class dari class tersebut (child class akan dibahas lebih lanjut pada inheritance)
Encapsulation
Encapsulation adalah proses packing semua variable dalam suatu class menjadi private dan membuat method mutator dan accessor pada class tersebut. Untuk lebih jelasnya perhatikan contoh dibawah ini :
public class Main {
public static void main(String[] args) {
Penjumlahan p = new Penjumlahan(5,9);
System.out.println(p.hitungPenjumlahan());
Penjumlahan q = new Penjumlahan(7,9);
System.out.println(q.hitungPenjumlahan());
}
}
class Penjumlahan {
private int a;
private int b;
public Penjumlahan(int a, int b) {
this.a = a;
this.b = b;
}
public int hitungPenjumlahan() {
return getA() + getB();
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
}
Dalam contoh sebelumnya variable a dan b tidak memiliki access modifier, sehingga dianggap public oleh java, sekarang kita meletakan access modifier private pada variable tersebut sehingga varibel tersebut tidak dapat dengan bebas diakses dari luar class, sehingga untuk merubah variable tersebut kita memerlukan method yang bernama mutator yaitu public int getA() & public int getB() yang mereturn nilai a dan b. Dan untuk dapat mendapatkan / mengetahui nilai dari a & b kita menggunakan method yang bernama Accessor yaitu public void setA(int a) & public void setB(int b) dimana method tersebut akan meng-assign nilai a dengan nilai a baru yang kita passingkan pada variable tersebut.
Encapsulation ini berfungsi untuk membatasi akses pada variable varibel yang ada didalam class secara bebas dari luar class, sehingga kita dapat membuat program yang lebih efektif dan efisien.

PEMROGRAMAN CLASS DAN OBJECT [ PBO 7 ]

Definisi Class
Class adalah blok-blok bangun pada program JAVA. Class mendefinisikan atribut dan perilaku obyek yang
dibuatnya. Class merupakan definisi formal suatu abstraksi. Class berlaku sebagai template untuk pembuatan obyek-obyek.
Class berisi abstraksi yang terdiri dari nama class, atribut dan service.
class Manusia {
     void menyapa() {
          System.out.println(“selamat pagi”);
     }
}
Class Instances
Untuk dapat menggunakan kelas yang telah didefinisikan, anda harus membuat sebuah obyek dari kelas tersebut (class instance), dengan sintaks:
          NamaKelas namaObyek = new NamaKelas ( [parameter] );
Contoh:
          Manusia tukijan = new Manusia();
Instance Variables
Suatu obyek dapat dibedakan berdasarkan sifat (behavior) yang berbeda. Obyek juga dapat dibedakan
berdasarkan atributnya.
Mis: manusia dapat dibedakan berdasarkan pekerjaan, ras, jenis kelamin, dsb. Atribut yang membedakan suatu instance obyek manusia yang satu dengan yang lainnya disebut instance variabel.
class Manusia {
          private String suku = “Jawa";
          private String jenisKelamin = “pria";
          private String sapaan = “halo dab!";
          void menyapa() {
               System.out.println(sapaan);
          }
}
Method
Method dapat digambarkan sebagai sifat (behavior) dari suatu class. Untuk mendefinisikan method pada dalam class digunakan sintaks sintaks
          hak_akses <tipe_data_return> nama_method( [parameter] )
Untuk memanggil method dapat digunakan sintaks sebagai berikut:
          namaObyek.nama_method( [parameter] );
Contoh:
          tukijan.menyapa();

class Manusia {
     void menyapa() {
          System.out.println(“selamat pagi”);
     }
}
public class ManusiaManusia {
     public static void main(String[] args) {
          Manusia tukijan = new Manusia();
          tukijan.menyapa();
          System.exit(0);
     }
}
Method Overloading
JAVA interpreter memiliki kemampuan untuk menggunakan beberapa cara pemanggilan method.
class Manusia {
     void menyapa() {
          System.out.println(“selamat pagi");
}
     void menyapa(String sapaan) {
          System.out.println(sapaan);
     }
}
public class ManusiaManusia {
     public static void main(String[] args) {
          Manusia susi = new Manusia();
          Manusia ginting = new Manusia();
          susi.menyapa();
          ginting.menyapa(“horas bah");
          System.exit(0);
     }
}
Akses Method
Nilai variabel dari suatu instance dapat berganti, oleh sebab itu harus ada suatu cara untuk mengubah nilai variabel tersebut (akses method). Secara konvensi method untuk mengubah nilai suatu instance variabel dimulai dengan kata set.
class Manusia {
     private String suku = “Melayu";
     private String jenisKelamin = “pria";
     private String sapaan = “selamat pagi";
     private boolean bekerja = true;

     void menyapa() {
          System.out.println(sapaan); }
     void setSapaan(String sapaan) {
          this.sapaan = sapaan; }
     void setSuku (String suku) {
          this.suku = suku; }
     void setBekerja(boolean punyaPekerjaan) {
          bekerja = punyaPekerjaan; }
}
public class ManusiaManusia {
     public static void main(String[ ] args) {
          Manusia changNam = new Manusia();
          changNam.setSapaan(“anyong haseo");
          changNam.menyapa();
     }
}

Suatu method dapat pula mengembalikan nilai pada saat pemanggilan.
boolean menantuIdaman() {
     if (bekerja == true && gajiTinggi == true)
          return true; else return false;
}
Constructor
Constructor merupakan metode khusus yang memiliki nama sama dengan kelasnya. Jika kita tidak mengkodekan sebuah constructor, JAVA akan membuat sebuah constructor default untuk kita. Constructor default tidak melakukan apa-apa, namun memungkinkan semua variabel yang tidak diinisialisasi dalam deklarasi diberi suatu nilai default.
class Mahasiswa {
     private String nama = "";
     private int nim = 0;
     private static int NIM = 0;
     private double ipk = 0.0;
     public Mahasiswa() { this.nim = ++NIM; }
     public Mahasiswa(String na, double i) {
          this.nama = na;
          this.ipk = i;
          this.nim = ++NIM; }
     public void LihatData() {
          System.out.println("Nama : " + nama + "\tNIM : " + nim +
          "\tIPK : " + ipk ); }
}
public class MahasiswaInfo {
     public static void main(String args[]) {
          Mahasiswa mhs1 = new Mahasiswa( "Dinda“ , 3.4 );
          Mahasiswa mhs2 = new Mahasiswa( "Ninda“ , 3.25 );
          Mahasiswa mhs3 = new Mahasiswa();
          mhs1.LihatData();
          mhs2.LihatData();
          mhs3.LihatData();
     }
}
Reference Variable
Reference variable digunakan untuk menyimpan alamat dinamis suatu class instance.
class Mahasiswa {
     String nama = “Ari";
     void setNama(String nama) {
     this.nama = nama;
     }
}
public class RefVariabel {
     public static void main(String[] args) {
          Mahasiswa A = new Mahasiswa();
          Mahasiswa B = A;
          Mahasiswa C = new Mahasiswa();

System.out.println("A:"+A.nama+"\tB:"+B.nama+"\tC:"+C.nama);
          A.setNama(“Ira");
     System.out.println("A:"+A.nama+"\tB:"+B.nama+"\tC:"+ C.nama);
          C.setNama("Ria");
     System.out.println("A:"+A.nama+"\tB:"+B.nama+"\tC:"+C.nama);
          System.exit(0);
     }
}
Hubungan Antar Class
Pemrograman berorientasi obyek adalah sekumpulan class-clas yang saling berintarksi. Ada banyak cara suatu class dapat berinteraksi dengan class lainnya, seperti pewarisan (GenSpec), agregasi (WholePart) dan asosiasi (instance/ message connection).

STRUCTURES [ PBO 6 ]

Structures
Merupakan ekspresi kompleksitas lingkup permasalahan yang termasuk dalam tanggung jawab sistem.
Structure berguna untuk menyederhanakan kompleksitas multiple objects-&-class dan memusatkan perhatian analist.

Hal-hal yang harus diperhatikan :

  • Apakah termasuk dalam batasan masalah?
  • Apakah termasuk dalam tanggung jawab sistem?
  • Apakah memenuhi syarat-syarat suatu obyek?

Gen-Spec
( Inheritance )
Melihat hubungan antar class dan object sebagai obyek yang bersifat umum dan bersifat spesifik
“adalah” , “adalah sejenis”
terdapat penurunan sifat / pewarisan (inheritance)

Notasi
Cara mengidentifikasi struktur
Apakah ada penurunan sifat?
Apakah ada sifat-sifat (attribut/service) yang berlaku untuk semua object (umum) dan ada yang hanya berlaku untuk object tertentu (khusus)
Cara menggambarkan ada 2 cara :
  • hierarchy
  • lattice.
Lattice, digunakan untuk memperjelas spesialisasi tambahan dan menunjukkan kesamaan sifat suatu object.
Whole-Part
( Aggregation )
“ memiliki “
terdapat 3 macam :
• assembly – parts (benda dan bagian-bagiannya)
• container – contain (wadah dan isinya)
• collection - members (kumpulan dan anggotanya)

Notasi

Cara mengidentifikasi struktur
  • Apakah obyek tersebut menjelaskan lebih dari sekedar nilai attribute?
  • Jika tidak, lebih baik didefinisikan sebagai attribute dari obyek “whole”
TERMINOLOGI
Subjects
  • Suatu mekanisme yang digunakan untuk membantu pembaca dalam memahami suatu model yang besar dan kompleks.
  • Subject merupakan penerapan dari hukum Miller (kapasitas memori jangka pendek manusia pada suatu saat berkisar 5-9). Hukum tersebut diterapkan dengan menunjukkan visibilitas model dan pembatasan jumlah obyek yang ditampilkan pada suatu saat.
Subjects
HOW
1. Pilih class teratas dari masing-masing struktur sebagai calon subyek
2. Pilih object-&-class yang tidak termasuk dalam suatu struktur sebagai calon subyek.
3. Cari subyek dengan memperkecil ketergantungan dan interaksi antar subyek.

Senin, 18 November 2013

jawaban UTS PBO

USE CASE DIAGRAM


SEQUENCE DIAGRAM



ACTIVITY DIAGRAM
    • Kasus 1


  • Kasus 2
  • Kasus 3
  • Kasus 4
  • Kasus 5
  • Kasus 6
CLASS DIAGRAM
  • Kasus 1
  • Kasus 2
  • Kasus 3
  • Kasus 4
  • Kasus 5
  • Kasus 6
LISTING PROGRAM JAVA 
  • Kasus 1

import java.io.*;
public class satu {
    public static void main(String[] args) {
        System.out.println("Selamat Datang di Java Programming");
    }
}
  • Kasus 2
import java.io.*;
public class dua {
        
    public static void main(String[] args) {
        final int p=5;
        final int l=7;
        int L;
        L=p*l;
        System.out.println("Luas persegi panjang adalah = "+L);
    }
}
  • Kasus 3
import java.io.*;
public class tiga {
        
    public static void main(String[] args) {
        double f;        
        f=5+4-6*7/3;
        System.out.println("Hasil dari perhitungan 5+4-6*7/3 adalah "+f);
    }
}
  • Kasus 4
import java.io.*;
public class empat {
    public static void main(String[] args) {
        int array[];
        array = new int[5];
        array[0] = 5;
        array[1] = 8;
        array[2] = 20;
        for (int i = 0; i < 4; i++) {
            System.out.println("Array[" + i + "] = " + array[i]);
        }
    }
}
  • Kasus 5
import java.io.*;
import java.util.Scanner;
public class lima {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int luas;
        System.out.print("Masukkan Panjang : ");
        Integer panjang = sc.nextInt();
        System.out.print("Masukkan Lebar : ");
        Integer lebar = sc.nextInt();
        luas = panjang * lebar;
        System.out.println("Luas Persegipanjang : " + luas);
    }
}
  • Kasus 6
import java.io.*;
import java.util.Scanner;
public class enam {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("========== MENU ==========");
        System.out.println("1. Contoh Program If then");
        System.out.println("2. Contoh Program For");
        System.out.println("3. Contoh Program Do-While");
        System.out.print("Masukan Pilihan (1/2/3)=");
        Integer pilihan = sc.nextInt();
        switch (pilihan) {
            case 1:
                System.out.print("Masukan angka=");
                Integer angka = sc.nextInt();
                if (angka % 2 == 0) {
                    System.out.println("genap");
                } else {
                    System.out.println("ganjil");
                }
                break;
            case 2:
                System.out.print("Masukan jumlah perulangan=");
                Integer ulang = sc.nextInt();
                for (int i = 1; i <= ulang; i++) {
                    System.out.println(i);
                }
                break;
            case 3:
                int i = 1;
                System.out.print("Masukan jumlah perulangan=");
                Integer ulang2 = sc.nextInt();
                do {
                    System.out.println(i);
                    i++;
                } while (i <= ulang2);
                break;
        }
    }
}

Minggu, 17 November 2013

pendahuluan oo [PBO]

APA ITU MBO?
Manajemen Berbasis Tujuan: Apa Itu MBO? Banyak orang telah mendengar istilah Manajemen oleh Tujuan atau MBO tapi apa adalah MBO atau Manajemen oleh Tujuan Ini adalah gaya manajemen yang melibatkan berkomitmen untuk satu set tujuan atau tonggak terukur dalam jangka waktu yang ditetapkan mengatakan kuartal selama tahun bisnis. Biasanya Manajemen oleh Tujuan dilakukan atas dasar organisasi. Setiap tim menulis satu set yang MBO ini adalah kiriman yang akan dilakukan pada kuartal saat ini. Tim menyerahkan MBO mereka adalah kepada tim manajemen di atas mereka yang kemudian gulungan tersebut MBO ke dalam set mereka sendiri yang MBO. Setiap kali daftar itu MBO digulung sampai mereka mendapatkan lebih luas dan umum. Semakin rendah dalam organisasi yang lebih spesifik ini MBO seharusnya.

Menulis MBO ini efektif. Ketika Anda menulis MBO Anda Anda ingin berhati-hati untuk memastikan MBO setiap terukur atau yang lain bagaimana Anda menentukan kapan selesai Menetapkan tanggal untuk MBO masing-masing dan menaatinya. Ini akan membantu Anda memprioritaskan ini MBO seluruh kuartal. Biasanya tim ini akan memiliki – MBO dengan kiriman sub mungkin dalam MBO. Whan kerajinan MBO Anda yang berhati-hati untuk menulis mereka dengan kiriman yang berada dalam kendali Anda. Saya selalu mencoba untuk memastikan bahwa keberhasilan MBO saya tidak tergantung pada orang lain di luar tim saya karyawan. Jika MBO saya melibatkan partisipasi dengan kelompok lain manajemen atau departemen saya menulis MBO saya dengan bagian saya dari proyek dalam pikiran. Hal ini umumnya memungkinkan saya memberikan saya bagian dari proyek terlepas dari kinerja orang lain.
Pada kuartal tersebut dan tentu pada akhirnya daftar itu MBO yang mencetak gol. Skor ini kini tim bisnis dan manajemen dapat menentukan apakah mereka berada pada jalur. Apakah tim bisnis atau karyawan memenuhi tujuan mereka tetapkan ketika menulis itu MBO Jika skor tinggi maka organisasi berada di trek. Jika tidak maka tim manajemen perlu menentukan mengapa apa yang dilakukan atau tidak dilakukan tidak sejalan dengan MBO yang ditulis oleh tim dan organisasi. Semoga MBO ini umumnya menyelesaikan setiap kuartal dan bisnis bergerak maju dengan tujuan.
APA ITU OBJEK ?
Membungkus data dan objek menjadi satu unit dalam sebuah komputer.objek merupakan dasar dari modularitasi dan struktur dalam sebuah program komputer berorientasi objek.

APA ITU KELAS?
Kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk tujuan tertentu.sebagai contoj 'clss of dog'ada suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjukan pada berbagia macan perilaku/turunan dari anjing.
sebuah class adalah dasar dari moduliritas dan struktur dalam pemrograman berorientasi object.sebuah class tipikal sebaiknya dapat dikenali seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaik nya (relatif) bersifat mandiri dan indefenden.

APA ITU ENKAPSULASI ?
memastikan pengguna sebuah objek tidak dapat menggantikan keadaan dalam dari sebuah objek dengan cara yang tidak layak. hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tsb.

APA ITU INHERITANSI ?

Inherintance/inheritansi salah sati konsep utama dalam pemrograman berorientasi objek. Inheritance meperbolehkan pengguna kembali kode-kode yang ada pada base class nya untuk diturunkan pada Derived class. inheritance ini diawali berdasarkan superclassnya. sehingga akan terbentuk subclass yang mana setiap objeck subclass dapat mengakses semua data dan program yang dimiliki superclass.

APA ITU GENERALISASI/SPESIALISASI?

-Generalisasi
Pendefinisian subclass-subclass yang disatukan menjadi entitas superclass tunggal berdasarkan karakterisik umum. Disamping proses desain top-down(dari inisial entitas kelevel lebih rendah(subgrup)),desain juga dapat dilakukan dengan proses bottom-up,yaitu banyak entitas disintesiskan menjadi entity yang lebih tinggi berdasarkan kesamaan feature-nya.
-Spesialisasi
Proses yang meperhatikan perbedaan setiap anggota dari sebuah entitas sehinggal anggota dari sebuah entitas bisa dikelompokan ke dalam kelompok yang lebih kecil.

APA itu POLIMORFISME?
Melalui pengiriman pesan. Tidak bergantung kepada pemggilan subrutin, bahasa orientasi objek dapat mengiri pesan. metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu dimana pesan tersebut dikirim. contohnya,bila sebuah burung menerima pesan "gerak cepat". dia akan menggerakan sayapnya dan terbang

APA ITU UML ?
Unified Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek(OOP) serta aplikasinya. untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut.

Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng- create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancangtest case untuk semua feature yang ada pada sistem. Sebuah use casedapat meng- include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di- include akan dipanggil setiap kali use case yang meng- includedieksekusi secara normal. Sebuah use case dapat di- include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common . Sebuah use case juga dapat meng- extend use case lain denganbehaviour -nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.
Class Diagram
Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagrammenggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment , pewarisan, asosiasi, dan lain-lain.
Class memiliki tiga area pokok :

1. Nama (dan stereotype)
2. Atribut
3. Metoda

Atribut dan metoda dapat memiliki salah satu sifat berikut :
·         Private , tidak dapat dipanggil dari luar class yang bersangkutan
·         Protected , hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya
·         Public , dapat dipanggil oleh siapa saja
Class dapat merupakan implementasi dari sebuah interface , yaitu classabstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time .

Statechart Diagram

Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima. Pada umumnya statechart diagrammenggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram ). Dalam UML, state digambarkan berbentuk segiempat dengan sudut membulat dan memiliki nama sesuai kondisinya saat itu. Transisi antar state umumnya memiliki kondisiguard yang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. Action yang dilakukan sebagai akibat darievent tertentu dituliskan dengan diawali garis miring. Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna setengah.
Activity Diagram
Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal,decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di- trigger oleh selesainya state sebelumnya (internal processing ). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use casemenggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state , standar UML menggunakan segiempat dengan sudut membulat untuk menggambarkan aktivitas.Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel ( fork dan join ) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu.

Sequence Diagram

Sequence diagram mengga
mbarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display , dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagramterdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkanoutput tertentu. Diawali dari apa yang men- trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal danoutput apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya,message akan dipetakan menjadi operasi/metoda dari class . Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message.
Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus untuk objek boundary, controller danpersistent entity .

Collaboration Diagram

Collaboration diagram juga menggambarkan interaksi antar objek seperti sequence diagram , tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message . Setiap message memiliki sequence number , di mana message dari level tertinggi memiliki nomor 1. Messages dari level yang sama memiliki prefiks yang sama.

Component Diagram

Component diagram menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan ( dependency ) di antaranya. Komponen piranti lunak adalah modul berisi code , baik berisi source code maupun binary code , baik library maupun executable , baik yang muncul pada compile time, link time , maupun run time . Umumnya komponen terbentuk dari beberapa class dan/atau package , tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga berupa interface , yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain.

Deployment Diagram

Deployment/physical diagram menggambarkan detail bagaimana komponen di- deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal Sebuah node adalah server, workstation , atau piranti keras lain yang digunakan untuk men- deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini.
Kesimpulan :
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.