Minggu, 17 November 2013

UJIAN TENGAH SEMESTER (PBO)

( JAWABAN UTS PBO )
 
USE CASE DIAGRAM


SEQUENCE DIAGRAM

ACTIVITY DIAGRAM
  • Kasus 1 " Program String"

Kasus 2 "Program Constant"
Kasus 3 "Program Operator"

  Kasus 4 "Program Array"

 Kasus 5 "Program I/O"

 Kasus 6 "Program Alir Control"
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;
        }
    }
}



STRUKTUR PEMROGRAMAN DAN LOGIKA JAVA

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

Attribut didalam PBO

TERMINOLOGI
·         Sifat, karakteristik, kualitas, yang menjelaskan suatu benda.
·         Dalam OOA (Object Oriented Analysis), attribute adalah data mengenai keadaan/kondisi suatu
obyek (state information), dimana setiap obyek memiliki nilainya sendiri-sendiri.
·         Attribute menjelaskan nilai-nilai yang tersimpan dalam suatu obyek.
·         Sifat attribute lebih mudah berubah dibandingkan dengan problem domain.

NOTASI

HOW
·         identifikasi attribute
·         perhatikan letak attribute
·         identifikasi instance connection
·         cek kasus-kasus khusus
·         menentukan/menetapkan attribute

Identifikasi Attribute
·         Apa yang perlu diketahui oleh sistem mengenai suatu obyek, hal-hal apa yang harus dilakukan oleh obyek.
·         Bagaimana suatu obyek dapat dijelaskan secara umum?
·         Bagaimana obyek tersebut dijelaskan dalam hubungannya dengan permasalahan dan tanggung jawab sistem?
·         Apa yang perlu diketahui dari obyek tersebut?
·         Informasi apa yang harus diingat?
·         Kondisi apa saja yang mungkin terjadi?
·         Cek hasil OOA dari sistem lain.
·         Atomic concept
·         single value
·         pengelompokan nilai-nilai yang berhubungan
·         Deferred to design
·         normalisasi
·         mekanisme identifikasi
·         recalculable attribute

Instance Connection
                Instance connections menunjukkan hubungan antar obyek.
·         Batas bawah  ->  = 0 (opsional)
                                                > 1 (harus ada)
·         Batas atas ->         = 1 (single)
                                                > 1 (multiple)

Cek instance connections yang
·           memiliki hubungan many to many
·           menghubungan antar obyek dalam sebuah class
·           lebih dari satu pada obyek/class yang sama
·           masih perlu ditambahkan

Letak Attribute
·         Obyek apa yang dijelaskan oleh suatu attribute ?
·         Dalam struktur inheritance, attribute selalu terletak pada class-&-object teratas.


Kasus Khusus
·         Attribute dengan nilai kosong (not applicable)
·         Class-&-Object yang hanya memiliki 1 buah attribute
·         Attribute untuk nilai yang berulang

Menetapkan Attribute
·         Gunakan kosa kata standard
·         Gunakan nama yang mudah dibaca
·         Jangan memakai nilai attribute

Class (OOP)

Apa itu 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.