Selasa, 22 Oktober 2013

Konsep Dasar PBO (Pertemuan 3)

KONSEP DASAR PEMROGRAMAN BERORIENTASI OBJEK (ATTRIBUT DAN METHOD)

Konsep utama pemrograman berorientasi objek adalah melakukan permodelan objek dari kehidupan nyata ke dalam tipe data abstrak, yaitu merupakan konsep pemrograman untuk memodelkan objek yang kita gunakan dalam kehidupansehari-hari.Setiap objek dalam kehidupan nyata dapat kita pandang sebagai kelas, misalnya kelas Hewan, kelas Manusia, kelas Mobil. Sedangkan objek dari kelas tersebut misalnya kucing dan burung untuk kelas Hewan, Indra dan Deni untuk kelas Manusia serta Toyota dan Daihatsu untuk kelas Mobil. Kemudian dari setiap objek tersebut  memiliki State/ Atribut (Variable) dan Behavior (Method).
Contoh Beberapa Objek Type data :
 - Events
- Relational
-Judgements
State/Attribute
Adalah berbagai variable yang mengitari class yang nilai datanya bisa ditentukandi object, atau segala sesuatu yang berhubungan dengan karakteristik objek,seperti Tipe, Model, Warna. Misalnya “Warna cat rumah itu adalah biru langit.”,dari pernyataan tersebut dapat disimpulkan bahwa Rumah adalah sebagai objek,dan warna cat sebagai atributnya. Contohnya di dalam pemrograman java:

String nama,alamat;
   

Behavior/Method
Behavior/Method adalah implementasi dari bagaimana bekerjanya sebuah class,atau dengan kata lain method merupakan segala sesuatu yang dapat dilakukanoleh object. Method dapat memanipulasi data, perhitungan matematika dan memonitor kejadian dari suatu even. Sebagai contoh untuk object
perhitungan_nilai_mahasiswa , methodnya adalah cara Masukan Nama Mahasiswa  dan cara menjalankannya. Jika dituliskan pada pemrograman java adalah sebagai berikut:


package Latihanoop;

/**
 *
 * @author Blackberry 9810
 */
import java.io.*;
public class perhitungan_nilai_mahasiswa
{
public static void main (String[]args) throws IOException
   {
    BufferedReader Input = new BufferedReader (new InputStreamReader (System.in));
    String nama;
    double nmuts,nmuas,nmtugas,na;
    int nuts,nuas,ntugas,nim;

    System.out.print("Masukan Nama Mahasiswa    ="); nama = Input.readLine();
    System.out.print("Masukan NIM Mahasiswa      ="); nama = Input.readLine();
    System.out.print("Masukan Nilai Uts                  ="); nuts = Integer.parseInt(Input.readLine());
    System.out.print("Masukan Nilai Uas                 ="); nuas = Integer.parseInt(Input.readLine());
    System.out.print("Masukan Nilai Tugas              ="); ntugas = Integer.parseInt(Input.readLine());
    System.out.print("\n");
    nmuts= (nuts*35)/100;
    nmuas= (nuts*25)/100;
    nmtugas= (nuts*25)/100;
    na = (nmuts+nmuas+nmtugas);
    System.out.println("Nama Mahasiswa                 ="+nama);
    System.out.println("Nilai Murni yang diperoleh  =A");
    System.out.println("Nilai UTS                             ="+nmuts);
    System.out.println("Nilai UAS                             ="+nmuas);
    System.out.println("Nilai TUGAS                        ="+nmtugas);
    System.out.println("Nilai yang diperoleh             ="+na);
    }
}
 Delapan macam tipe data primitif dalam pemrograman Java, yaitu :
Integer merupakan tipe data numerik yang digunakan apabilatidak berurusan dengan pecahan atau bilangan desimal. Tipe data numerik yang termasuk integer adalah sebagai berikut :
·         Byte Memiliki nilai integer dari -128 sampai +127 dan menempati 1 byte ( 8 bits ) di memori
·         Short Memiliki nilai integer dari -32768 sampai 32767 dan menempati 2 bytes ( 16 bits ) di memori
·         Int Memiliki nilai integer dari -2147483648 sampai 2147483647 dan menempati 4 bytes ( 32 bits ) di memori
·         Long Memiliki nilai dari -9223372036854775808 sampai 9223372036854775807 dan menempati 8 bytes ( 64 bits ) dimemori

Bilangan integer biasanya menggunakan int, dan bukan byte, short maupun long. Bilangan integer juga mengenal nilai positif dan negatif ( signed number ). Tipe data byte dan short hanya digunakan pada aplikasi khusus yang memperhatikan penggunaan memori.
Sedangkan long jarang digunakan karena jarang memerlukan bilangan sebesar kapasitas long.

Floating Point digunakan untuk menangani bilangan desimal atau perhitungan yang lebih detail dibanding integer. Ada dua macam floating point, yaitu :
·         Float memiliki nilai -3.4x108 sampai +3.4x108 dan menempati 4 byte di memori\
·         Double memiliki nilai -1.7x10308 sampai +1.7x10308
Semua bilangan pecahan atau desimal dalam Java tanpa diakhiri huruf f akan dianggap sebagai double. Sedangkan bilangan yang ingin dikategorikan sebagai float harus diakhiri dengan huruf F.  Misalnya : 4.22 F atau 2.314f. Sedangkan untuk bilangan double, bisa menambah dengan huruf D, karena secara default bilangan dengan koma atau pecahan atau desimal akan dianggap sebagai double.

c.       Char
Char adalahkarakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan tanda ‘ ( petik tunggal ). Char berbeda dengan String, karena String bukan merupakan tipe data primitif, tetapi sudah merupakan sebuah objek. Tipe char mengikuti aturan unicode, sehingga dapat menggunakan kode /u kemudian diikuti bilangan dari 0 sampai 65535, tetapi yang biasa digunakan adalah bilangan heksadesimal dari 0000 sampai FFFF. Misalnya : ‘\u123’
d.      Boolean
Dalam Java dikenal tipe data boolean yang terdiri dari dua nilai saja, yaitu true dan false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk menentukan alur program.

2.      Tipe Data Referensi
Kelebihan pemrograman berorientasi objek adalah dapat mendefinisikan tipe data baru yang merupakan objek dari class tertentu. Tipe data ini digunakan untuk mereferensikan objek atau class tertentu, seperti String.
Sumber ; http://bbentris.blogspot.com/

Selasa, 15 Oktober 2013

Pertemuan 2

 Konsep Dasar Pemograman Berorientasi Objek


Obyek adalah “benda” secara fisik atau konseptual, yang dapat kita temui di sekeliling kita. Obyek adalah riil. Contoh obyek adalah orang, hardware, software, dokumen dan lain-lain.
Setiap obyek mempunyai dua ciri, yaitu atribut (property atau data) yang menjadi ciri khas dari suatu obyek (what they have) dan method (behavior/function), yaitu apa yang dapat dilakukan oleh obyek (what they do).
Berorientasi Obyek (object oriented) berarti permasalahan didefinisikan melalui istilah dari obyek yang mengkapsulasi data (atribut) dan perilaku (behavior), yaitu melalui paradigma/pendekatan obyek.
Selain object, ada beberapa istilah yang akan membantu untuk memahami pengertian kita dalam skripsi ini:
a.       Class, yaitu kumpulan obyek yang sejenis. Secara lebih lugas obyek adalah instant dari sebuah class, atau dengan pengertian lain dengan class kita menggambarkan property dan behavior dari tipe obyek.
b.      Inheritance, adalah penurunan atribut atau method dari suatu obyek class ke obyek class lainnya.
c.       Polymorphisme, berasal dari bahasa Yunani yang berarti banyak bentuk.
Dalam konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah suatu obyek untuk melakukan suatu aksi  atau tindakan yang mungkin secara prinsip sama tetapi secara proses berbeda. Secara sederhana bisa juga disebut : satu interface, banyak aksi.

      Metodologi adalah cara sistematis untuk mengerjakan pekerjaan analisis dan desain. Metodologi berorientasi obyek adalah metode penyelesaian masalah dengan menggunakan pendekatan berorientasi obyek.
      Metodologi berorientasi obyek pertama kali muncul pada pertengahan tahun 1970 dan terus berkelanjutan dikembangkan sampai saat ini. Pada tahun 1994 ada 72 lebih metode object oriented. Dengan berkembang pesatnya metode ini maka masyarakat object oriented menyadari perlunya standarisasi.
 

Requirement yang dibutuhkan saaat Membangun Pemrograman Berorientasi Objek :

1. Kebutuhan User ---> Tabel/Dokumen
2. Daftar Tugas

Prosesnya

Analisis ---> Perbaikan Proses --- > Design ---> Koding/Source

Analisis :

1. Use Case Activity
2. Class Object

Perabaik
1. Proses Bisnis


Karena UML sangat fleksibel, ada juga cara melihat diagram UML berdasar kategori berikut :
a.       Static Diagram : menunjukkan segi static dari system. Kategori ini sama dengan structural diagram.
b.      Dynamic Diagram : menunjukkan bagaimana system berkembang setiap waktu. Meliputi state-machine diagram dan timing diagram.
      c.   Functional Diagram : menunjukkan detail dari perilaku (behavior) dan algoritma bagaimana system             memenuhi perilaku yang diinginkannya. Kategori ini termasuk use case, interaction dan activity 
            diagram.

1. Static Structure
     a. Class yaitu kumpulan obyek yang sejenis. Secara lebih lugas obyek adalah instant dari sebuah class,  
          atau dengan pengertian lain dengan class kita menggambarkan property dan behavior dari tipe obyek
     b. Komponen
     c. Objek
     d. Deployment

2. Dinamis Structure
     a. Use Case yang dibuat berdasar keperluan aktor merupakan gambaran dari “apa” yang dikerjakan 
         oleh  sistem, bukan “bagaimana” sistem mengerjakannya. Use case diberi nama yang menyatakan apa 
         hal yang dicapai dari interaksinya dengan aktor.

     b. Activity
     c. Sequence Diagram yang menggambarkan bagaimana obyek berinteraksi dengan obyek lainnya melalui 
         pesan (message) yang disampaikan, disusun dalam urutan kejadian atau waktu dan secara khusus 
         berasosiasi dengan use case.
     d. State Chart

Senin, 23 September 2013

Class Diagram & Notasi UML


1.       Pengertian Metode Berorientasi Objek ...

Jawaban : Pemrograman berorientasi objek (object-oriented Programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam  kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,

2.       Apa Itu Objek ?

Jawaban : pembungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

3.       Apa Itu Kelas ?

Jawaban : kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.

4.       Apa Itu Pembungkusan  atau Encapsulation ?

Jawaban : emastikan pengguna sebuah objek tidak dapat mengganti 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 tersebut.

5.       Apa Itu Pewarisan atau  Inheritance ?
Jawaban : Inheritance adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung. Atribut dan metode dari objek dari objek induk diturunkan kepada anak objek, demikian seterusnya. Inheritance mempunyai arti bahwa atribut dan operasi yang dimiliki bersama di anatara kelas yang mempunyai hubungan secara hirarki. Suatu kelas dapat ditentukan secara umum, kemudian ditentukan spesifik menjadi subkelas. Setiap subkelas mempunyai hubungan atau mewarisi semua sifat yang dimiliki oleh kelas induknya, dan ditambah dengan sifat unik yang dimilikinya. Kelas Objek dapat didefinisikan atribut dan service dari kelas Objek lainnya. Inheritance menggambarkan generalisasi sebuah kelas.
6.       Apa Itu Generalisasi/Spesialisasi ?
Jawaban : Generalisasi  adalah pendefinisian subclass-subclass yang  disatukan  menjadi entitas  superclass  tunggal  berdasarkan karakteristik umum. Disamping proses desain top-down (dari inisial entitas ke level 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 adalah proses yang memperhatikan perbedaan setiap anggota dari sebuah entitas sehingga anggota dari sebuah entitas bisa dikelompokkan ke dalam kelompok yang lebih kecil.

7.       Apa Ito Polimorfisme ?
Jawaban : melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
8.       Apa Itu UML ?
Jawaban : merupakan standard modeling language yang terdiri dari kumpulan-kumpulan diagram, dikembangkan untuk membantu para pengembang sistem dansoftware agar bisa menyelesaikan tugas-tugas seperti :
§   Spesifikasi
§   Visualisasi
§   Desain arsitektur
§   Konstruksi
§   Simulasi dan testing
§   Dokumentasi

9.       Jelaskan Semua Diagram & Notasi UML !

Jawaban :

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.


   http://harmiprasetyo.wordpress.com/2006/09/26/pengantar-uniifiied-modelliing-language-uml/