Minggu, 22 April 2012


Sekilas tentang OOP & Contoh Sederhana Studi Kasus-nya

            OOP (Object Oriented Programming) merupakan salah satu bentuk pemprograman yang keseluruhan paradigma-paradigmanya berdasarkan pada obyek. Compiler-compiler yang digunakan dalam OOP seperti C++, Java, Ruby, Python, Delphi dan masih banyak yang lainnya. Pada Object Oriented juga mengenal beberapa istilah yaitu :
a.       Object ( Obyek )
Obyek merupakan segala sesuatu yang ada dalam dunia nyata, yang punya identitas atau informasi mengenai diri mereka sendiri. Di dalam obyek juga terdapat dua karakteristik. Karakteristik yang pertama setiap obyek yang telah memiliki masing-masing yang atribut sebagai sebuah status, akan nantinya akan dikenal dengan istilah state. Kedua, setiap obyek yang telah didefinisikan yang mempunyai tingkah laku disebut dengan behavior. Misalnya manusia sebagai obyek. Manusia mempunyai atribut misalnya nama, jenis kelamin, pigmen warna kulit, bentuk tangan dll, sedangkan tingkah lakunya (behavior-nya), manusia dapat berjalan, menyapu, mencuci dll.
b.      Class ( Kelas )
Merupakan kumpulan dari variable-variabel beserta method-method yang berkonfigurasi membentuk suatu fungsi tertentu.
c.       Hak Akses atau akses modifier
Hak akses adalah hak akses yang akan ditempatkan atau “dilekatkan” pada variable-variabel, fungsi-fungsi atau bahkan kelas. Nah macam-macam variasi dari hal akses yaitu :
1.      Public : merupakan suatu hak akses yang mengizinkan semua class untuk mengakses semua variable maupun fungsi yang mempunyai hak akses ini.
2.      Private : merupakan hak akses yang hanya bisa digunakan dalam satu class saja.
3.                  Protected : merupakan hak akses yang hanya mengizinkan subclass (kelas turunan) untuk mengakses variable serta fungsi yang punya hak akses ini.
Selain itu terdapat juga istilah Static. Static adalah sebuah variable/fungsi yang memiliki nilai kembalian (return) yang nilainya tetap selama tidak ada perubahan dalam variable dan fungsi tersebut. Contoh dalam bahasa pemprograman java :
public class Perabot{
    protected String namaPrabot;
    protected String kualitas;
    String namaPrabot(String nmPrabot){
        namaPrabot = nmPrabot;
        return namaPrabot;
    }
    String kualitas(String kwlts){
        kualitas = kwlts;
        return kualitas;
    }
}
            Contoh sederhana Studi Kasus :
            Membuat daftar laporan berupa nama peminjam, no id, jenis id yang digunakan untuk meminjam, jumlah buku, total harga serta list buku (jumlah buku, kode dan nama buku) yang dipinjam. Ketentuan-ketentuan sebagai berikut : tiap peminjam harus menyebutkan nama, No ID, jenis ID. Peminjam berhak meminjam buku maksimal lima buah. Tiap buku yang akan dipinjam dikenakan biaya Rp100,00.  
           
public class Peminjam
{
    private String nama, noId;
    private String jenisId;
    private int total;
    private int jumlah;
    private ListBuku [] lb = new ListBuku [5];

    public Peminjam (){
        this.nama = "";
        this.noId = "";
    }
    public Peminjam(String nama, String noId){
        this.nama = nama;
        this.noId = noId;
    }
    public Peminjam(String nama, String noId, String jenisId, int jumlah, int total){
        this.nama = nama;
        this.noId = noId;
        this.jenisId = jenisId;
        this.total = total;
        this.jumlah = jumlah;
       }
    public void setNama(String nama)
    {
        this.nama = nama;
    }
    public void setNoId(String noId)
    {
        this.noId = noId;
    }
    public String getJenisId()
    {
        return jenisId;
    }
    public String getNama (){
        return " ";
    }
    public void inputListBuku(int idx, ListBuku lb){
        this.lb[idx] = lb;
    } 
       public void printDaftar(){
        System.out.println("***************************************");
        System.out.println("NO ID           : "+noId+"");
        System.out.println("Jenis ID        : "+getJenisId());
        System.out.println("Nama Peminjam   : "+nama+"");
        System.out.println("Jumlah          : "+jumlah);
          total = jumlah * 100;
        System.out.println("Total           : "+total);
        System.out.println("++++++++ Daftar List Buku ++++++++++++++");
        for(int i = 0; i < 5; i++){
            System.out.println((i+1)+". "+lb[i].Laporan());
        }     System.out.println("++++++++++++++++++++++++++++++++++");
    }
}

public class ListBuku
{
    private String kodeBuku;
    private String namaBuku;
   
    public ListBuku(String kode, String nama){
        this.kodeBuku = kode;
        this.namaBuku = nama;
    }
    public String getKode(){
        return this.kodeBuku;
    }
   
    public String getNama(){
        return this.namaBuku;
    }
    public String Laporan(){
        return ("Buku dengan kode "+getKode()+" judulnya "+getNama()+"");
    }
}

Sabtu, 21 April 2012



INHERITANCE & POLIMORFISME PADA JAVA

Inheritance atau pewarisan adalah pendeklarasian yang dilakukan dengan cara menurunkan atribut beserta method (dengan catatan selain private) dari superclass ke subclass. Pengertian dari superclass adalah class yang mewariskan atribut dan methodnya ke subclass sedangkan subclass merupakan class yang diwarisi sifat-sifat dari superclass. Dan nantinya class yang baru yang telah diwarisi sifat dari superclass, akan mempunyai sifat-sifat yang sama dengan superclass.
Misal sama seperti seekor kucing yang mewarisi pigmen warna yang sama seperti milik induknya dan juga behaviour (sifat-sifat) dari induknya. Namun hal ini juga tidak menutup kemungkinan untuk menemberikan state-state yang lebih spesifik dan juga behaviour yang baru atau bahkan bisa dimodifikasi seperti yang diinginkan. Misalnya kucing tadi kita dapat memberikan data membernya yang lebih spesifik seperti lingkungan tempat kucing tersebut hidup dll.  Nah dalam mendeklarasikan inheritance (pewarisan) dalam compiler java, cukup dengan menuliskan kata extends setelah deklarasi dari nama class, lalu setelah itu ketik lagi kata superclassnya. Ditulis seperti ini :
               class Kucing extends Mamalia {
               
                              // spesifikasi atau modifikasi
                              // struktur atau sifat-sifat dari kelas Mamalia
               }
 
            Ada juga beberapa jenis dari inheritance yaitu single inheritance, multiple inheritance serta multilevel inheritance. Single inheritance merupakan suatu class yang hanya mempunyai satu superclass, sedangkan multiple inheritance adalah class yang mempunyai lebih dari satu superclassnya pada variabel dan method yang telah diwariskan merupakan hasil variasi dari superclass-nya. Dan multilevel inheritance adalah subclass yang menjadi superclass bagi class yang lain.
Dalam pewarisan terdapat method overriding dan juga overloading. Pengertian dari method overriding merupakan pendefinisian kembali method yang sama. Contohnya kasusnya misalnya penulisan nama method yang sama atau pada parameter (signature) yang ada pada subclass. Lalu overloading merupakan pendefinisian pada method yang sama, tetapi parameter yang beda dalam definisi class yang sama (masih dalam satu class). Contohnya inheritance dalam java :
public class Persegi{
    double Sisi;
    Persegi(double Sisi) {
        this.Sisi = Sisi;
    }
    double hitungLuas() {
        return (Sisi * Sisi);
    }
    double getSisi() {
        return Sisi;
    }
}
class Kubus extends Persegi{
    Kubus(double Sisi){
        super(Sisi);
    }
    @Override
    double hitungLuas() {
        return (Sisi * Sisi * Sisi);
    }
}
public class Hitung
{
    public static void main (String[]args){
        Kubus k1 = new Kubus (5);
        Persegi p1 = new Persegi(5);
        System.out.println("Sisi = " +k1.Sisi);
        System.out.println("Luas = " +p1.hitungLuas());
        System.out.println("Volume = " +k1.hitungLuas());
    }
}
B. POLIMORFISME
Polimorfisme merupakan sebuah pemikiran yang intinya suatu hal yang sama dapat menghasilkan bentuk dan perilaku yang berbeda-beda. Polimorfisme juga berarti terdapat operasi yang sama pada class yang berbeda. Misalnya saat kita punya class “PersegiPanjang” dan “Persegi”, dimana class tersebut adalah sebuah subclass dari class “Balok” dan “Kubus”. Maka saat kita ingin memperkecil ukuran dari persegi panjang kita harus memperkecil panjang dan juga lebarnya, begitu pula pada persegi kita harus memperkecil sisinya. Nah itu lah yang dimaksud dengan konsep polimorfisme, saat kita sama-sama ingin mengecilkan ukuran masing-masing bangun tersebut namun dengan cara yang berbeda-beda.
Dalam pembuatan polimorfisme terdapat beberapa aspek yang harus diperhatikan :
1.      Method access attribute yang ada pada subclass harus lebih spesifik dibandingan dengan yang ada di superclass
2.      Method-method yang akan dipanggil, cara pemanggilannya harus melalui variable-variabel yang ada pada superclass.
3.      Method-method yang akan dipanggil harus menjadi method juga di superclass
4.      Parameter yang ada di method harus sama antara yang ada di subclass dan yang ada di superclass
Berikut contoh-nya dalam java :
public class Tumbuhan
{
public void info (){
       System.out.println("info () pada Tumbuhan : berklorofil, berkembang, bernafas");
    }
public class Dikotil extends Tumbuhan
{
   public void info(){
       System.out.println("info() pada Dikotil : biji berkeping dua");
    }
}
public class Rambutan extends Dikotil
{
    public void info (){
        System.out.println("info() pada Rambutan : daunnya berklorofil, buahnya berwarna merah");
    }
}
public class Info
{
    public static void main (String[]args){
        Dikotil dikotil;
        Rambutan rambutanKlengkeng;
        Tumbuhan tumbuhan;
       
        dikotil = new Dikotil();
        rambutanKlengkeng = new Rambutan();
       
        tumbuhan = dikotil;
        tumbuhan.info();
       
        tumbuhan = rambutanKlengkeng;
        tumbuhan.info();
    }
}

Minggu, 01 April 2012


Diagram di Database (Entity Relationship Diagram)

                Ha..ha..ha. Oke, yuukk mulai ngejelasin, yuukk mari..Hihihi.. (khusus buat ngejelasin ERD ye posting kali nie). Entity Relationship Diagram tu ya diagram (bagan??) yang digunain buat nggambarin database termasuk di dalemnya entitas, relationship & atribut. Eits sebelumnye mo tanya nie, dah pada tau lom sii maksudnye entitas, relationship & atribut? Langsung aja yah buat nyingkat (ngeles.com ha..ha..ha). Entitas (entity) tu kata bu dosen obyek yang bisa dibedain didunia nyata. Misalnye : Pegawai, Pasien, Siswa, Mahasiswa dll pokoknye buanyak bangets contoh lainnye. Relationship tu hubungan yang terjadi antara satu ato lebih entity. Trus atribut (atributte) tu hal-hal yang fungsinye buat deskripsiin entity. Misalnya : Nim, Nama, Tgl_lahir, Jns_kelamin dll.
Nah atribut tu dibagi jadi beberapa macem.
Ø  Atribut Atribut Berharga Tunggal - Single-valued Attribute
Atribut yang cuma punya satu nilai buat suatu entitas tertentu. Contoh : nim di entity mahasiswa
Ø  Atribut Berharga Banyak - Multi-valued Attribute 
Atribut yang bisa terdiri dari sekumpulan nilai buat suatu entitas tertentu. Misal : atribut hobi pada entity mahasiswa
Ø   Atribut Derivatif  - Derived Attribute
Atribut yang didapetin dari atribut lain. Misal : atribut Umur yang dapat dihasilkan dari atribut Tgl_lahir. Contoh gambarnye :
  
                        Sekarang ke soal nih, buatlah ERD dari database Perusahaan. Bingung? Nah nie tahapan-tahapan yang kudu dilakuin kalo sebelum buat ERD
1.      Identifikasi & tentuin semua himpunan entity yang bakal terlibat.  Langsung aja ya langsung aku jawab : Karyawan, Perusahaan & Proyek
2.      Menentukan atribut-atribut dari setiap entity. 
Karyawan : No_ID, Nama, Alamat, Jns_kelamin, Tgl_lahir
Perusahaan : Nama, Alamat
Proyek : Nama, Nomer
3.      Menentukan atribut primary key dari setiap entity.
Karyawan : No_ID
Perusahaan : Nama
Proyek : Nomer
4.      Menentukan relationship antar entity.
Karyawan – Bekerja – Perusahaan
Karyawan – Mengerjakan – Proyek
5.      Menentukan atribut-atribut dari setiap relationship (jika ada).
Mengerjakan : Jam (maksudnya berapa jam karyawan tu kerja), Absensi
6.      Menentukan Cardinality Ratio.
Karyawan – Bekerja – Perusahaan tu Cardinality Ratio-nya tu Many to One
Karyawan – Mengerjakan – Proyek Cardinality Ratio tu  Many to Many
7.      Menentukan Participation Constraint.
(sorry guys.. khusus yang satu ini belom diajari, jadi sorry kalo salah ya ^_^ v  ). Karyawan tu harus merupakan anggota Perusahaan, nah tu artinye Karyawan tu punya total partipation ma relationship-nya ma entity Perusahaan. Tiap karyawan nggak harus kerja tiap hari nah dari situ diambil kesimpulan kalo entity ni punya partial participation relationship.
Siipp... nih ERD-nya :


         Okeee... Selesaiii.. Minna san, arigatou gozaimasu.  Ja mata... ^_^

KENALAN YUK MA DESAIN DATABASE


Eits, before we go to main topic yaitu desain database. Kita kudu kenal, yah paling nggak tau lah dikit tentang yang namanya data, informasi, database & DataBase Management System. Okee, gak usah kelamaan, langsung ajah, nyang namanya data tuh ya semua fakta-fakta yang belom diolah yang istilahnye masih murni gituh, masih pure gitu lah (ya iyalah namanya juga belom diolah jadi ya belom ada artinye gituh). Trus lanjutannye informasi tu hasil dari data yang udah diolah, udah rapi trus dah gitu punya makna pula. Nah yang satu lagi database yang bahasa kerennya basis data tu sebenernya kumpulan arsip-arsip (file-file) yang punya hubungan trus disimpen rapi deh (gak pake perulangan yang bikin gak efisien) ya kalo anytime mo manfaatin lagi tu kita gak usah beribet lagi gituh, efisien banget gitu lah. Trus terakhir tu DataBase Management System (konon biar kita gak ribet-ribet ngomong panjang gitu kita singkat aja jadi DBMS, he..he..he bercanda dink) DBMS tu sebuah program (ato banyak buah program...he..he..he) maksudnya bisa satu program ato sekumpulan program yang fungsinye mulai dari masukin, proses, ngatur dll pokoknya tu intinya buat manipulasi database gitu. Contoh programnye : Oracle, Ms. SQL, MySQL, Ms. Acess, PostgreSQL, DB2 dll.
               Okee, waktunya kenalan ma desain database nih. Hihihi... Gini, pengertiannye desain database tu diciptain buat ngatur & nentuin data-data yang dibutuhin di dalem sistem, nah trus mereka (data-data) pada dikumpulin gituh jadi kita gak usah beribet lagi coz pastinya kita dapat informasi yang kita pengen (semua lengkap gitu dah intinye). Biasanya ada macem-macem alesan napa perlu diadain desain database, salah satunya buat nghindarin perulangan yang gak perlu (ato istilahnya redudancy). Nah metode-motode yang biasanya digunain buat nghindarin perulangan tu ada beberapa macem yaitu Normalisasi, Dekomposisi lossless, ERD ato yang lebih dikenal ma sebutan Entity Relationship Diagram (khusus yang satu nie bakal dibahas di posting selanjutnye...sabar guys, ha..ha..ha) & nenentuin kardinalitas relasi.
Balik lagi ke desain database nih ada yang perlu kita omongin lagi, he..he..he. Kita kudu paham nih kalo ada tiga model desain database, nih dia :
1.      Yang pertama, Conceptual model (model ni tuh ngumpulin ato integrasiin semua kebutuhan atribut dari para user ato aplikasi jadi satu pandangan organisasi
2.      Yang kedua tu Logical model :  model nie diambil dari model conceptual yang terbentuk bisa dipilih salah satu model data dasar logical misalnya hirarki-nya, network ato relational. Trus dibagiin deh ke user-user yang berwenang
3.      Yang terakhir Physical model : nah ni metode tu intinya usahain gimana caranya biar secara fisik data tu kesimpen di penyimpanan sekunder, trus hal-hal yang perlu dipertimbangin tu kayak metode akses (nyimpen ato stored & ngambil ato retrieval), teknik pengindeksan buat pencarian cepet.
            Yokk lanjut yokkk... sekarang waktunye buat tau langkah-langkah buat proses desain database :
Ø  Analisis semua persyaratan
Paham en tau data yang kudu disimpen di database tu yang mana, aplikasi apa yang kudu dibuat, jenis operasi yang kudu digunain dll
Ø  Desain database konseptual
Info yang dikumpulin di tahapan analisis persyaratan digunain buat deskripsi data tingkat tinggi· biasenye pakek model ER biar gambaran tu sama ma pemikiran user.
Ø  Desain database Logika
Ngrubah skema ER jadi skema database relasional· Fungsinye biar dapet data konseptual dimodel data  relasional yang sering dinamain skema logika
Ø  Benerin skema
Analisis semua relasi di skema database relasional buat ngidentifikasi masalah yang muncul trus dibenerin.
Ø  Desain data base fisik
Yang dikerjain ditahap ini tu biasanye pengindeksan dibeberapa tabel (buat indeks maksudnye), nglompokin tabel-tabel / nglibatin desain ulang yang substansial dibagian skema database
Ø  Desain Aplikasi dan Keamanan
Oh yah semua proyek PL tu kudu perhatiin aplikasi yang ada diluar database kayak Enkripsi & Digital Signature.
            Okee.. okee. Udah mulai bosen ye? Ya udah lah.. nyambungke posting berikutnye aje..Bye..Bye..C.U
            ^_^