Senin, 06 Mei 2013

PEER TO PEER

PEER TO PEER

Pengertian Peer To Peer dan Pengertian istilah client-server
Peer to Peer adalah adalah suatu teknologi sharing (pemakaian bersama) resource dan service antara satu komputer dan komputer yang lain. pengertian yang lebih tepat mengenai peer to peer (p2p) adalah sistem terkomputerisasi Client-Server dimana suatu komputer berfungsi sebagai client sekaligus sebagai server, sehingga memungkinkan komunikasi dan pertukaran resource antara dua komputer secara langsung (real time).
Client-server adalah suatu bentuk arsitektur, dimana client adalah perangkat yang menerima yang akan menampilkan dan menjalankan aplikasi (software komputer) dan server adalah perangkat yang menyediakan dan bertindak sebagai pengelola aplikasi, data, dan keamanannya. Server biasanya terhubung dengan client melalui kabel UTP dan sebuah kartu jaringan (network card). Kartu jaringan ini biasanya berupa kartu PCI atau ISA.
Dalam teknologi informasi, client-server merujuk kepada cara mendistribusikan aplikasi ke pihak client dan pihak server. Dalam model client-server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah (tetapi masih dalam sebuah kesatuan) yakni komponen client dan komponen server.
Komponen client dijalankan pada sebuah workstation. Pemakai workstation memasukkan data dengan menggunakan teknologi pemrosesan tertentu, kemudian mengirimkannya ke komponen server, umumnya berupa permintaan layanan tertentu yang dimiliki oleh server. Komponen server akan menerima permintaan layanan tersebut dan langsung memprosesnya serta mengembalikan hasil pemrosesan kepada client. Client pun menerima informasi hasil pemrosesan data tadi dan menampilkannya kepada pemakai dengan menggunakan aplikasi yang digunakan oleh pemakai.
Sebuah contoh dari aplikasi client-server sederhana adalah aplikasi web yang didesain dengan menggunakan Active Server Pages (ASP). Skrip ASP akan dijalankan di dalam web server (Apache atau Internet Information Services), sementara skrip yang berjalan di pihak client akan dijalankan oleh web browser pada komputer client (workstation). Client-server merupakan penyelesaian masalah pada software yang menggunakan database sehingga setiap komputer tidak perlu diinstall database. Dengan metode client-server database dapat diinstal pada komputer server dan aplikasinya diinstal pada client.
Komponen client juga sering disebut sebagai front-end, sementara komponen server disebut sebagai back-end.

CLEINT SERVER

CLEINT SERVER
Client-Server adalah arsitektur jaringan yang memisahkan client(biasanya aplikasi yang menggunakan GUI ) dengan server. Masing-masing client dapat meminta data atau informasi dari server.
Sistem client server didefinisikan sebagai sistem terdistribusi, tetapi ada beberapa perbedaan karakteristik yaitu :
                        1.Servis (layanan)
    Hubungan antara proses yang berjalan pada mesin yang berbeda
    Pemisahan fungsi berdasarkan ide layanannya.
     Server sebagai provider, client sebagai konsumen
          2.Sharing resources (sumber daya)
    Server bisa melayani beberapa client pada waktu yang sama, dan  meregulasi akses bersama untuk share sumber daya dalam menjamin konsistensinya.
                        3.Asymmetrical protocol (protokol yang tidak simetris )
    Many-to-one relationship antara client dan server.Client selalu menginisiasikan dialog melalui layanan permintaan, dan server menunggu secara pasif request dari client.
                        
                        4.Transparansi lokasi
    Proses yang dilakukan server boleh terletak pada mesin yang sama atau pada mesin yang berbeda melalui jaringan.Lokasi server harus mudah diakses dari client.
5.Mix-and-Match
    Perbedaan server client platforms
                        
                        6.Pesan berbasiskan komunikasi
     Interaksi server dan client melalui pengiriman pesan yang menyertakan permintaan dan jawaban.
                        
                        7.Pemisahan interface dan implementasi
     Server bisa diupgrade tanpa mempengaruhi client selama interface pesan yang diterbitkan tidak berubah.

SISTEM TERDISTRIBUSI

SISTEM TERDISTRIBUSI


DEFINISI :
Sebelum menjelaskan tentang definisi dari sistem terdistribusi, saya akan menjelaskan lagi tentang apa itu sistem. Sistem adalah suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu tujuan tertentu.
Sedangkan definisi dari sistem terdistribusi adalah sebuah sistem dimana komponen software atau hardware-nya terletak di dalam jaringan komputer dan saling berkomunikasi menggunakan message passing (Message passing adalah sebuah teknik untuk melakukan sinkronisasi dan komunikasi antara proses-proses yang saling berinteraksi). Ada juga yang mengatakan Sistem Terdistribusi adalah sebuah sistem yang terdiri dari beberapa komponen yang terdapat di dalam sebuah jaringan komputer. Komponen-komponen tersebut saling berinteraksi dan berkomunikasi hanya dengan melalui pengiriman pesan.
Contoh Sistem Terdistribusi :
  • Internet.
  • Mobile Computing.
  • Sistem Otomasi Bank.
  • Deteksi Roaming Pada Telepon Seluler.
  • GPS (Global Positioning System).
  • Retail Point-of-Sale Terminals.

PENJELASAN :
Internet
  • Jaringan komputer dan aplikasi yang heterogen.
  • Mengimplementasikan protokol Internet.

Intranet
  • Jaringan yang teradministrasi secara local.
  • Terhubung ke internet melalui firewall.
  • Menyediakan layanan internal dan eksternal.

Mobile Computing (Sistem Komunikasi Telepon Seluler)
  • Menggunakan frekuensi radio sebagai media transmisi.
  • Perangkat dapat bergerak kemanapun asal masih terjangkau dengan frekuensinya.
  • Dapat menghandle/dihubungan dengan perangkat lain.

Contoh lain Sistem Terdistribusi
  • Sistem Telepon : ISDN, PSTN.
  • Network File System (NFS). (Arsitektur untuk mengakses sistem file melalui jaringan).
  • www. (Arsitektur client server yang diterapkan dalam infrastruktur internet).


source code membuat server dan client pada program java

source code membuat server dan client pada program java


source code client :


package client;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author UNLA
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[]args)throws IOException{
        Socket s = new Socket("localhost",5111);

        ObjectInputStream in = null;
        ObjectOutputStream out = null;

        Scanner scanf = new Scanner(System.in);

        String input="";
        String balasan;
        String balasan2;

        out=new ObjectOutputStream(s.getOutputStream());
        out.flush();
        in=new ObjectInputStream(s.getInputStream());
        balasan="";
        balasan2="";

        while(true)
        {
            balasan="";
            balasan2="";
            input = scanf.nextLine();
            SendMessage(input,out);
            if(input.equals("exit"))break;
            else
            {
                balasan=ReadMessage(in);
                if(balasan.equals("ini server, masukkan username"))
                {
                    input=scanf.nextLine();
                    SendMessage(input,out);
                    balasan2=ReadMessage(in);
                }
            }
        }
        in.close();
        out.close();
        s.close();
    }

    public static void SendMessage(String word, ObjectOutputStream out)
    {
        try{
            out.writeObject(word);
            out.flush();
        }catch(IOException ex){
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE,null,ex);
        }
    }
    public static String ReadMessage(ObjectInputStream in)

    {
        String reader="";
        try{
            reader=(String)in.readObject();
        }catch(IOException ex){
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null,ex);
        }catch(ClassNotFoundException ex){
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null,ex);
        }
        System.out.println(reader);
        return reader;
    }
}




source code server :


package server;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Tugas_Server {

    public static void main(String[] args) {
        try {
            ServerSocket ss = new ServerSocket(5111);
            Socket s;
            String balasan;
            String balasan2;
            ObjectInputStream in = null;
            ObjectOutputStream out = null;
            s = ss.accept();
            out = new ObjectOutputStream(s.getOutputStream());
            out.flush();
            in = new ObjectInputStream(s.getInputStream());
            balasan = "";
            balasan2 = "";
            while (true) {
                balasan = "";
                balasan2 = "";
                balasan = ReadMessage(in);
                if (balasan.equals("exit")) break;
                else {
                    if(balasan.equals("ini client"))
                    {
                    SendMessage("ini server, masukan username", out);
                    balasan2 = ReadMessage(in);
                    if (balasan2.equals("admin")){ SendMessage("Selamat Datang Admin", out);}
                    else {
                        if (balasan2.equals("user")){SendMessage("Selamat Datang User", out);}
                        else SendMessage("username tidak diketahui", out);
                        }
                    }
                    else
                    {
                        SendMessage("perintah tidak diketahui", out);
                }
            }
            }
    in.close();
    out.close();
    s.close();
    ss.close();
}catch (IOException ex){
    Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,null,ex);
    }
    }
 public static String ReadMessage(ObjectInputStream in)
 {
 String Reader="";
 try {
     Reader=(String)in.readObject();
 }catch (IOException ex){
     Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,null,ex);
 }catch (ClassNotFoundException ex){
     Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,null,ex);
 }
 System.out.println(Reader);
 return Reader;
 }
 public static void SendMessage(String word, ObjectOutputStream out)
 {
     try{
         out.writeObject(word);
         out.flush();
     }catch (IOException ex){
         Logger.getLogger(Tugas_Server.class.getName()).log(Level.SEVERE,null,ex);
     }
    }

}

Socket pada sistem client server

Socket pada sistem client server


Mengenal Socket

Bayangkan sebuah server game online yang berkomunikasi tanpa henti, dimainkan oleh entah berapa banyak client yang tersebar. Ini merupakan salah satu contoh aplikasi dari sekian banyak aplikasi yang menggunakan socket jaringan untuk saling berkomunikasi dan bertukar data.

Komunikasi socket jaringan memang tidak mengenal lelah, pertukaran data terjadi terus-menerus dan memegang peranan vital. Jika oleh karena suatu hal komunikasi berhenti karena maintenance, kerusakan, ataupun sebab lainnya, maka dapat dipastikan para penggunanya akan kecewa.

Maka dari itu, komunikasi jaringan selalu diusahakan tidak terhenti. Demikianlah tugas berat yang harus dilakukan socket jaringan. Sebelum membahas lebih jauh, apakah sebenarnya pengertian socket itu?

Pengertian socket adalah interface pada jaringan yang menjadi titik komunikasi antarmesin pada Internet Protocol, dan tentunya tanpa komunikasi ini, tidak akan ada pertukaran data dan informasi jaringan.

Socket terdiri dari elemen-elemen utama sebagai berikut:

1. Protokol.

2. Local IP.

3. Local Port.

4. Remote IP.

5. Remote Port.

Dalam komunikasi antara dua pihak, tentunya harus digunakan kesepakatan aturan dan format yang sama agar komunikasi dapat dimengerti. Seperti halnya dua orang yang menggunakan bahasa yang sama, maka bahasa di sini berfungsi sebagai protokol. Protokol yang digunakan dalam socket dapat menggunakan TCP ataupun UDP.

Contoh komunikasi sederhana adalah komunikasi antara komputer A dan komputer B. Baik komputer A maupun komputer B harus memiliki identitas unik, yang direpresentasikan oleh IP masing-masing.

Komunikasi yang terjadi melalui port, sehingga baik komputer A maupun komputer B harus memiliki port yang dapat diakses satu sama lain.

TCP dan UDP

Pemrograman socket adalah cara untuk menggunakan komponen/API (Application Programming Interface) socket untuk membuat sebuah aplikasi.

Aplikasi socket umumnya terdiri dari dua kategori berdasarkan pengiriman datanya, yaitu:

1. Datagram socket (menggunakan UDP).

2. Stream socket (menggunakan TCP).

Terdapat perlakuan yang berbeda antara UDP dan TCP, walaupun sama-sama berfungsi sebagai protokol pertukaran data.

UDP tidak memerlukan proses koneksi terlebih dahulu untuk dapat mengirimkan data, paket-paket data yang dikirimkan UDP bisa jadi melalui rute yang berbeda-beda, sehingga hasil yang diterima bisa jadi tidak berurutan.

Contohnya jika aplikasi socket pengirim mengirimkan berturut-turut pesan 1, pesan 2, dan pesan 3, maka aplikasi socket penerima belum tentu mendapatkan pesan yang berurutan dimulai dari pesan 1, pesan 2, dan terakhir pesan 3. Bisa saja pesan 2 terlebih dulu diterima, menyusul pesan-pesan yang lain, atau berbagai kemungkinan lainnya. Bahkan, dapat terjadi pesan yang dikirimkan tidak sampai ke penerima karena kegagalan pengiriman paket data.

Tidak demikian halnya dengan stream socket yang menggunakan TCP. Jenis ini mengharuskan terjadinya koneksi terlebih dahulu, kemudian mengirimkan paket-paket data secara berurutan, penerima juga dijamin akan menerima data dengan urutan yang benar, dimulai dari data pertama yang dikirimkan hingga data terakhir. TCP dapat menangani data yang hilang, rusak, terpecah, ataupun terduplikasi.

Dari sekilas perbedaan ini, kita dapat menarik kesimpulan bahwa aplikasi socket yang menggunakan TCP memerlukan pertukaran data dua arah yang valid. Sedangkan, aplikasi socket yang menggunakan UDP lebih memprioritaskan pada pengumpulan data.

Karena itu aplikasi socket dengan TCP sering diterapkan untuk aplikasi chat, transfer file, ataupun transaksi-transaksi penting. Sedangkan aplikasi socket dengan UDP cocok diterapkan untuk aplikasi monitoring jaringan, game online, dan aplikasi-aplikasi broadcast.

Port

Salah satu elemen penting yang digunakan dalam aplikasi socket adalah port. Port merupakan sebuah koneksi data virtual yang digunakan aplikasi untuk bertukar data secara langsung.

Terdapat banyak port di dalam sebuah sistem komputer dengan fungsinya masing-masing. Sebagai contoh, dalam mengirim e-mail digunakan service SMTP yang umumnya menggunakan port 25. Sementara service POP3 untuk menerima e-mail menggunakan port 110, port 80 digunakan untuk HTTP, port 443 digunakan untuk HTTPS, dan seterusnya.

Nomor-nomor port dikategorikan dalam tiga jenis sebagai berikut:

1. Well-known ports.

Merupakan port yang telah digunakan secara internal oleh sistem Windows, misalnya port untuk koneksi Internet, service FTP, dan seterusnya. Port yang telah digunakan ini adalah port 0 sampai dengan port 1023.

2. Registered ports.

Port ini dapat digunakan dalam aplikasi Anda, range-nya adalah port 1024 hingga port 49151, cukup banyak port yang tersedia yang bebas Anda pilih sehingga Anda tidak perlu kuatir kekurangan port untuk aplikasi Anda.

3. Dynamic/Private ports.

Dari port 49152 sampai dengan port 65535.

Winsock

Untuk pemrograman aplikasi socket berbasis Windows, maka komponen API yang sering digunakan adalah Winsock (Win-dows Socket API) yang mendukung interface standar TCP/IP, yang merupakan protokol jaringan paling popular saat ini (contoh protokol jaringan yang lain adalah NetBIOS, IPX dari Novell, AppleTalk dari Apple, dan seterusnya).

Pengertian TCP/IP (TCP over IP) mungkin dapat menjadi sedikit rancu jika diartikan TCP/IP hanya mengizinkan pengiriman TCP (dan tidak UDP), padahal seperti yang telah kita bahas, pengiriman socket dapat melalui TCP maupun UDP.

Pengertian TCP/IP di sini sebenarnya digunakan untuk menunjukkan teknologi jaringan/Internet, termasuk di dalamnya adalah UDP. Jika Anda menggunakan UDP, dapat juga disebut sebagai UDP/IP (UDP over IP), tetapi umumnya istilah ini jarang digunakan dan istilah TCP/IP telah mencakup, baik TCP maupun UDP.

Pada bahasa pemrograman visual seperti Visual Basic/Delphi, Anda dapat menggunakan control Winsock yang telah disediakan untuk mengembangkan aplikasi socket.

Walaupun kita akan mencontohkan aplikasi socket dalam environment Windows, Anda tidak perlu khawatir jika aplikasi socket yang menggunakan Winsock tidak dapat berkomunikasi dengan aplikasi socket berbasis Unix/Linux, karena komunikasi tetap dapat terjadi selama aplikasi tersebut menggunakan protokol jaringan yang sama.

Kalau demikian, untuk mencoba aplikasi socket, apakah mutlak diperlukan setidaknya jaringan dengan minimal dua komputer yang saling terkoneksi? Bagi Anda yang terpaksa hanya menggunakan satu komputer, dapat memanfaatkan alamat localhost atau 127.0.0.1 yang mengizinkan dua aplikasi berjalan pada satu mesin komputer dan berkomunikasi satu sama lain.

Aplikasi Server

Untuk membuat aplikasi socket yang sederhana, tidak diperlukan langkah-langkah yang rumit. Kita akan mencoba membuat dua buah aplikasi, yang pertama adalah aplikasi server yang akan menerima data, sedangkan aplikasi kedua adalah aplikasi client yang mengirimkan data pada server. Baik aplikasi server dan aplikasi client mendefi nisikan port yang sama sebagai jalur komunikasi.

Contoh program dibuat dengan menggunakan Visual Basic 6. Konsep pemrograman yang serupa juga dapat Anda implementasikan pada bahasa pemrograman lain seperti Visual Basic.NET, Delphi, dan lain sebagainya.

Kita akan memulainya dengan aplikasi server, tugas aplikasi server cukup sederhana, yaitu hanya siap sedia menerima data yang masuk pada sebuah port. Control yang Anda perlukan adalah control winsock bernama Winsock1 dan sebuah textbox bernama Text1. Pada event Form_Load, tuliskan kode program di bawah

ini:

Private Sub Form_Load()

With Winsock1

.LocalPort = 1025

.Listen

End With

End Sub

Kode program tersebut melakukan inisialisasi socket, socket memilih port 1025 pada komputer server dan menunggu data yang masuk melalui port tersebut dengan perintah Listen.

Selanjutnya pada event Winsock1_ConnectionRequest, ketikkan kode program berikut:

Private Sub Winsock1_ConnectionRequest(ByVal requestID As

Long)

If Winsock1.State <> sckClosed Then Winsock1.Close

Winsock1.Accept requestID

End Sub

Kode program di atas berfungsi untuk menerima request koneksi. Selanjutnya pada event Winsock1_DataArrival, ketikkan kode program berikut:

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim strData As String

Winsock1.GetData strData

Text1.Text = Text1.Text & strData

End Sub

Kode program di atas berfungsi untuk mengambil data yang diterima oleh socket dan menampilkannya pada Text1. Aplikasi server telah selesai!

Aplikasi Client

Seperti aplikasi server, Anda perlu menyiapkan control Winsock dan Text, ditambah sebuah control Command Button yang dapat Anda namakan cmdKirim yang berfungsi untuk mengirimkan data yang diketik pada Text1 ke aplikasi server.

Pada event Form_Load, ketikkan kode program di bawah:

Private Sub Form_Load()

With Winsock1

.RemoteHost = “127.0.0.1”

.RemotePort = 1025

.Connect

End With

End Sub

Kode program di atas berfungsi untuk melakukan inisialisasi, tentukan IP tujuan/server/remote dengan 127.0.0.1 seperti pada contoh jika Anda mencoba aplikasi ini dengan menggunakan satu mesin komputer.

Jika Anda mencobanya dengan menggunakan dua komputer dalam sebuah jaringan, isikan dengan IP komputer yang berfungsi sebagai server.

Selanjutnya pada cmdKirim, ketikkan kode program sebagai berikut:

Private Sub cmdKirim_Click()

If Winsock1.State = sckConnected Then

Winsock1.SendData Text1.Text

End If

End Sub

Kode program di atas akan mengirimkan pesan yang Anda ketik pada textbox Text1 pada aplikasi server.

Selesailah sudah aplikasi server dan client. Cukup mudah, bukan? Anda dapat melakukan uji coba dengan menjalankan aplikasi server pada komputer yang berfungsi sebagai server (ataupun komputer yang sama dengan aplikasi client jika Anda menggunakan 127.0.0.1 sebagai remote IP).

Jalankan aplikasi client, dan ketik kata-kata yang Anda inginkan, lalu tekan Command Button cmdKirim, maka aplikasi server akan menampilkan pesan yang Anda ketikkan

tersebut.

Dari program sederhana ini, Anda dapat mengembangkannya menjadi aplikasi socket yang sesuai dengan keperluan Anda, penggunaannya sangat luas dan bisa jadi sangat bermanfaat, misalnya aplikasi instant messenger seperti Yahoo! Messenger ataupun MSN Messenger yang merupakan aplikasi socket yang banyak digunakan.

Pengolahan Data

Komunikasi data antara server dan client di atas merupakan bentuk komunikasi satu arah sederhana. Data yang dikirimkan dari client pun merupakan data mentah yang tidak memerlukan pengolahan data lebih lanjut.

Anda dapat membuat sendiri function dan rutin untuk mengolah data yang dikirim dan diterima sesuai dengan kebutuhan aplikasi, karena data yang dikirimkan antarmesin bisa jadi sangat bervariasi.

Misalnya saja aplikasi server/client Anda memerlukan pertukaran data identitas mesin, tanggal, jam, header pesan, isi pesan, dan lain sebagainya. Anda dapat mengirimkannya dalam format tertentu, misalnya bentuk string dengan karakter pemisah untuk membedakan masing-masing field.

Dalam komunikasi data di dalam jaringan, Anda perlu mempertimbangkan besarnya data yang lalu-lalang pada jaringan, baik dengan menggunakan TCP maupun UDP. Keduanya harusdipersiapkan untuk mampu menangani data yang besar jika memang pengguna aplikasi socket Anda sangat luas.

Pastinya tidak terdapat masalah yang berarti jika Anda mencobanya dengan dua atau beberapa komputer dalam sebuah jaringan lokal, tetapi coba bayangkan seberapa besar total data yang harus dikirim dan diterima pada sebuah aplikasi game online, misalnya.

Pada contoh game online, sebuah server harus dipersiapkan untuk mampu melayani sedemikian banyak client, dan jaringan yang digunakan bukan lagi jaringan lokal, tetapi sudah merupakan jaringan Internet, di mana siapapun dapat menggunakan aplikasi Anda selama ia memiliki koneksi Internet.

Mungkin Anda bertanya, jika data yang keluar-masuk memerlukan pengolahan lebih lanjut, mengapa tidak digunakan database, sehingga Anda tidak perlu pusing membuat rutin atau modul untuk mengolah data yang dikirim/diterima melalui komunikasi socket?

Pada umumnya, aplikasi socket client/server memang menggunakan database pada sisi server, tetapi jika aplikasi socket mengharuskan sisi client menggunakan database tertentu, maka akan membatasi penggunaan aplikasi itu sendiri.

Selain itu, kegunaan komunikasi socket adalah agar dapat berjalan lintas platform. Tidak peduli operating system apa yang digunakan pengguna aplikasi, komunikasi socket tetap berjalan selama digunakan protokol yang sama.

Metode Berorientasi Objek ( Objek Dan Class)

Metode Berorientasi Objek ( Objek Dan Class)


1.            1.      OBYEK (OBJECT)
-          Obyek dapat berarti orang, tempat, benda, kejadian, sesuatu, atau konsep-konsep yang ada di dunia nyata yang penting bagi suatu aplikasi (perangkat lunak atau sistem informasi).
-          Sebuah obyek memiliki keadaan sesaat (state) dan perilaku (behavior).
-          State sebuah obyek adalah kondisi obyek tersebut yang dinyatakan dalamatribut (attribute).
-          Perilaku sebuah obyek mendefinisikan bagaimana sebuah obyek bertindak/beraksi dan memberikan reaksi. Perilaku ini dinamakan operasi (operation).
-          Menurut Schumuller, jika atribut dan operasi disatukan, maka akan memberikan fitur (features).
-          Contoh obyek adalah :
a. Obyek orang                : anda, saya, seorang lelaki tampan
b. Obyek tempat              : kampus, negara, jalan, kota
c. Obyek benda                : mesin, komputer, gedung, printer, keyboard
d. Obyek kejadian                        : pembayaran, registrasi, kuliah, mengetik
e. Obyek konsep               : liberalisme, kapitalisme, marxisme
1.            2.      KELAS (CLASS)
-     Himpunan obyek-obyek yang sejenis disebut kelas (class).
-     Obyek adalah sebuah contoh dari kelas (class).
-     Kelas Desain menggambarkan sebuah abstraksi dari satu atau berbagai kelas dalam implementasi. Nama untuk tiap-tiap kelas desain bergantung pada bahasa pemrograman yang berpadanan dengan kelas tersebut dalam implementasi.
-     Contoh sebuah kelas adalah sebagai berikut :
mahasiswa=nama kelas .NIM,NAMA,dll=Atribut. ikut kuliah=operasi
Class merupakan cetak biru (blue print) dari objek atau dengan kata lain sebuah class menggambarkan ciri-ciri objek secara umum. Sebagai contoh Suzuki Semash,Yamaha,VegaR,Honda SupraFit,dan Kawasaki KazR merupakan objek dari klas sepedah motor. Sujuki smash dan objek lainnya juga memiliki kesamaan atribut (merk,tipe,berat,kapasitas bensin,tipe mesin,warna,harga) dan method untuk mengakses data pada atributnya (misal fungsi untuk menginfutkan data merk,tipe,berat dsb serta fungsi untuk mencetak data merk,tipe,berat,dsb).
Contoh:
PERBEDAAN OBJECT DAN CLASS
Object adalah sesuatu yang bisa dianalogikan dengan benda, orang, tempat, kejadian atau konsep-konsep yang ada di dunia nyata yang digunakan pada perangkat lunak atau sistem informasi. Contohnya kampus, gedung, mahasiswa, kuliah, registrasi, pembayaran dan yang lainnya.Disamping itu Object juga merupakan realisasi dari sebuah class. Ketika kita membuat sebuah class, tidak berarti kita membuat sebuah object. Bayangkan jika kita menjadi seorang dewa. Lalu kita menentukan bahwa ada jenis makhluk bernama Sapi di bumi. Hal ini dapat disamakan dengan kita membuat sebuah class bernama sapi. Ketika kita menciptakan seekor sapi, seekor sapi itulah yang disebut object.
Objek dalam konsep OOP masih memiliki keadaan dan sifat seperti halnya objek di dunia nyata, karena pada dasarnya objek dalam OOP merupakan representasi dari dunia nyata. Objek dalam OOP merepresentasikan keadaan melalui variabel, sedangkan sifatnya direpresentasikan menjadi method. Method merupakan suatu fungsi (sub-routine) yang berhubungan dengan objek.Definisi: “objek merupakan penggabungan variabel-variabel dan method-method yang berhubungan dengannya.”Setiap objek bisa dibedakan antara satu dengan yang lainnya. Misalnya, objek mobil bisa dibedakan berdasarkan merknya. Objek hewan bisa dibedakan berdasarkan jenis dan ciri fisiknya. Walaupun objek tersebut bernama sama, tetapi masih tetap bisa dibedakan. Misalnya, objek mobil Kijang bisa dibedakan berdasarkan nomor rangka, warna, tahun keluaran, tipe, nomor polisi, dan sebagainya. Objek kucing bisa dibedakan dari warna dan corak bulunya. Bahkan dua orang yang kembar pun masih bisa dibedakan satu sama lainnya, misalnya dengan nama atau ciri tertentu yang spesifik dan juga sifatnya. Konsep “pembedaan” ini disebut dengan konsep identitas.
Sedangkan class adalah kumpulan/himpunan objek dengan atribut/properti yang mirip, prilaku yang mirip, serta hubungan dengan object yang lain dengan cara yang mirip. Class hampir serupa dengan structure, namun bedanya adalah class dapat memiliki fungsi di dalamnya. Jadi, class adalah beberapa variabel dan fungsi/method yang dikelompokkan di dalam sebuah nama. Variabel-variabel tersebut biasa disebut field dan biasanya merupakan atribut dari class tersebut. Fungsi/method adalah aksi yang dapat dilakukan oleh class tersebut. Class juga merupakan suatu konsep yang lebih tinggi lagi hierarkinya dari objek yang dihasilkan dari proses generalisasi objek-objek yang memiliki beberapa ciri yang sama. Dalam OOP, kelas merupakan suatu hasil pemodelan fakta-fakta dari suatu objek yang berguna bagi suatu aplikasi yang diprogram. Proses pemodelan fakta-fakta tersebut disebut dengan abstraksi.
Jadi, dari penjelasan itu dapat disimpulkan perbedaan antara objek dengan class yaitu Kelas adalah sesuatu yang menjelaskan ciri-ciri secara umum dari suatu objek, termasuk apa-apa yang bisa dilakukan objek tersebut. Sedangkan objek adalah keadaan tertentu dari suatu kelas, atau sering juga disebut dengan instans dari kelas.
Untuk lebih jelasnya perbedaan antara objek dan class dapat dicontohkan sebagai berikut:
“Seekor kucing Persia memiliki empat ekor anak.”
Kalimat tersebut mengisyaratkan bahwa kucing Persia merupakan kelasnya, sedangkan anak-anaknya merupakan objek. Dengan kata lain, jika seekor kucing Persia tersebut memiliki empat anak, berarti dia telah membuat empat buah objek (instans) dari kelas kucing Persia. Setiap anak kucing memiliki cirinya tersendiri. Ada yang berbulu putih, kuning hitam, atau campuran hitam kuning. Selain itu ada yang memiliki ekor panjang sempurna, panjang bengkok, pendek, ekor “keriting”, dan sebagainya. Dan jenis kelaminnya juga ada beberapa yang jantan dan ada juga yang betina. Tetapi walaupun berbeda dalam hal ciri-ciri fisiknya, harus diingat bahwa semuanya tetaplah kucing Persia.

use case diagram

Use Case Diagram
Pengertian :
● Use case class digunakan untuk memodelkan dan menyatakan unit fungsi/layanan yang disediakan oleh sistem (or bagian sistem: subsistem atau class) ke pemakai.
● Use case dapat dilingkupi dengan batasan sistem yang diberi label nama sistem.
● Use case adalah sesuatu yang menyediakan hasil yang dapat diukur ke pemakai atau sistem eksternal.
Karakteristik :
– Use cases adalah interaksi atau dialog antara sistem dan actor, termasuk pertukaran pesan dan tindakan yang dilakukan oleh sistem.
– Use cases diprakarsai oleh actor dan mungkin melibatkan peran actor lain. Use cases harus menyediakan nilai minimal kepada satu actor.
– Use cases bisa memiliki perluasan yang mendefinisikan tindakan khusus dalam interaksi atau use case lain mungkin disisipkan.
– Use case class memiliki objek use case yang disebut skenario. Skenario menyatakan urutan pesan dan tindakan tunggal.
Komponen Pembentuk Use Case Diagram :
1. Actor
Pada dasarnya actor bukanlah bagian dari use case diagram, namun untuk dapat terciptanya suatu use case diagram diperlukan beberapa actor. Actor tersebut mempresentasikan seseorang atau sesuatu (seperti perangkat, sistem lain) yang berinteraksi dengan sistem. Sebuah actor mungkin hanya memberikan informasi inputan pada sistem, hanya menerima informasi dari sistem atau keduanya menerima, dan memberi informasi pada sistem. Actor hanya berinteraksi dengan use case, tetapi tidak memiliki kontrol atas use case. Actor digambarkan dengan stick man . Actor dapat digambarkan secara secara umum atau spesifik, dimana untuk membedakannya kita dapat menggunakan relationship
Actor
Gambar Actor
2. Use Case
Use case adalah gambaran fungsionalitas dari suatu sistem, sehingga customer atau pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun.
Catatan : Use case diagram adalah penggambaran sistem dari sudut pandang pengguna sistem tersebut (user), sehingga pembuatan use case lebih dititikberatkan pada fungsionalitas yang ada pada sistem, bukan berdasarkan alur atau urutan kejadian.
Cara menentukan Use Case dalam suatu sistem:
a. Pola perilaku perangkat lunak aplikasi.
b. Gambaran tugas dari sebuah actor.
c. Sistem atau “benda” yang memberikan sesuatu yang bernilai kepada actor.
d.   Apa yang dikerjakan oleh suatu perangkat lunak (*bukan bagaimana cara mengerjakannya).
Use Case
Gambar Use Case
Relasi dalam Use Case
Ada beberapa relasi yang terdapat pada use case diagram:
1. Association, menghubungkan link antar element.
2. Generalization, disebut juga inheritance (pewarisan), sebuah elemen dapat merupakan spesialisasi dari elemen lainnya.
3. Dependency, sebuah element bergantung dalam beberapa cara ke element lainnya.
4. Aggregation, bentuk assosiation dimana sebuah elemen berisi elemen lainnya.
Tipe relasi/ stereotype yang mungkin terjadi pada use case diagram:
1. <<include>> , yaitu kelakuan yang harus terpenuhi agar sebuah event dapat terjadi, dimana pada kondisi ini sebuah use case adalah bagian dari use case lainnya.
2. <<extends>>, kelakuan yang hanya berjalan di bawah kondisi tertentu seperti menggerakkan alarm.
3. <<communicates>>, mungkin ditambahkan untuk asosiasi yang menunjukkan asosiasinya adalah communicates association . Ini merupakan pilihan selama asosiasi hanya tipe relationship yang dibolehkan antara actor dan use case.
3. Contoh Use Case Diagram
Contoh Use Case
Contoh Use Case Diagram

UML



UML (Unified Modeling Language)
Dalam suatu proses pengembangan software, analisa dan rancangan telah merupakan terminologi yang sangat tua. Pada saat masalah ditelusuri dan spesifikasi dinegoisasikan, dapat dikatakan kita berada pada tahap rancangan. Merancang adalah menemukan suatu cara untuk menyelesaikan masalah, salah satu tool / model untuk merancang pengembangan software yang berbasis object oriented adalah UML.

Konsep Objek
Obyek dalam ‘software analysis & design’ adalah sesuatu berupa konsep (concept), benda (thing), dan sesuatu yang membedakannya dengan lingkungannya. Secara sederhana obyek adalah mobil, manusia, alarm dan lainlainnya. Tapi obyek dapat pula merupakan sesuatu yang abstrak yang hidup didalam sistem seperti tabel, database, event, system messages.
Obyek dikenali dari keadaannya dan juga operasinya. Sebagai contoh sebuah mobil dikenali dari warnanya, bentuknya, sedangkan manusia dari suaranya. Ciriciri ini yang akan membedakan obyek tersebut dari obyek lainnya.

Teknik Dasar OOA/D (Object-Oriented Analysis/Design)
Dalam dunia pemodelan, metodologi implementasi obyek walaupun terikat kaidah-kaidah standar, namun teknik pemilihan obyek tidak terlepas pada subyektifitas software analyst & designer. Beberapa obyek akan diabaikan dan beberapa obyek menjadi perhatian untuk diimplementasikan di dalam sistem. Hal ini sah-sah saja karena kenyataan bahwa suatu permasalahan sudah tentu memiliki lebih dari satu solusi. Ada 3 (tiga) teknik/konsep dasar dalam OOA/D yaitu pemodulan (encapsulation), penurunan (inheritance) dan polymorphism.

Sejarah Singkat UML
UML (Unified Modeling Language) adalah bahasa yang di gunakan dalam permodelan berorientasi object.
UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem software.

Pengenalan UML
UML sebagai sebuah bahasa yang memberikan vocabulary dan tatanan penulisan kata-kata dalam ‘MS Word’ untuk kegunaan komunikasi. Sebuah bahasa model adalah sebuah bahasa yang mempunyai vocabulary dan konsep tatanan / aturan penulisan serta secara fisik mempresentasikan dari sebuah sistem. Seperti halnya
UML adalah sebuah bahasa standard untuk pengembangan sebuah software yang dapat menyampaikan bagaimana membuat dan membentuk model-model, tetapi tidak menyampaikan apa dan kapan model yang seharusnya dibuat yang merupakan salah satu proses implementasi pengembangan software.

UML tidak hanya merupakan sebuah bahasa pemograman visual saja, namun juga dapat secara langsung dihubungkan ke berbagai bahasa pemograman, seperti JAVA, C++, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah object-oriented database. Begitu juga mengenai pendokumentasian dapat dilakukan seperti; requirements, arsitektur, design, source code, project plan, tests, dan prototypes.
Untuk dapat memahami UML membutuhkan bentuk konsep dari sebuah bahasa model, dan mempelajari 3 (tiga) elemen utama dari UML seperti building block, aturan-aturan yang menyatakan bagaimana building block diletakkan secara bersamaan, dan beberapa mekanisme umum (common).

Building blocks
3 (tiga) macam yang terdapat dalam building block adalah katagori benda/Things, hubungan, dan diagram. Benda/things adalah abstraksi yang pertama dalam sebuah model, hubungan sebagai alat komunikasi dari bendabenda, dan diagram sebagai kumpulan / group dari benda-benda/things.

  • Benda/Things
    Adalah hal yang sangat mendasar dalam model UML, juga merupakan bagian paling statik dari sebuah model, serta menjelaskan elemen-elemen lainnya dari sebuah konsep dan atau fisik. 
- Interface merupakan sebuah antar-muka yang menghubungkan dan melayani antar kelas dan atau elemen. ‘Interface’ / antarmuka mendefinisikan sebuah set / kelompok dari spesifikasi pengoperasian,
umumnya digambarkan dengan sebuah lingkaran yang disertai dengan namanya.
-Colaboration didefinisikan dengan interaksi dan sebuah kumpulan / kelompok dari kelas-kelas/elemen-elemen yang bekerja secara bersama-sama. Collaborations mempunyai struktura dan dimensi. Pemberian sebuah kelas memungkinkan berpartisipasi didalam beberapa collaborations dan
digambarkan dengan sebuah ‘elips’ dengan garis terpotong-potong.
-Use Case adalah rangkaian/uraian sekelompok yang saling terkait dan membentuk sistem secara teratur yang dilakukan atau diawasi oleh sebuah aktor. ‘use case’ digunakan untuk membentuk tingkah-laku benda/ things dalam sebuah model serta di realisasikan oleh sebuah collaboration. Umumnya use case’ digambarkan dengan sebuah ‘elips’ dengan garis yang solid.
-Node merupakan fisik dari elemen-elemen yang ada pada saat dijalankannya sebuah sistem, contohnya adalaha sebuah komputer, umumnya mempunyai sedikitnya memory dan processor. Sekelompok komponen mungkin terletak pada sebuah node dan juga mungkin akan berpindah dari node satu ke node lainnya. Umumnya node ini digambarkan seperti kubus.
  •   Hubungan / Relationship
Ada 4 macam hubungan didalam penggunaan UML, yaitu; dependency, association, generalization, dan realization.
-Dependency adalah hubungan semantik antara dua benda/things yang mana sebuah benda berubah mengakibatkan benda satunya akan berubah pula. Umumnya sebuah dependency digambarkan sebuah panah dengan garis terputus-putus .
-Association adalah hubungan antar benda struktural yang terhubung diantara obyek. Kesatuan obyek yang terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural diantara seluruh atau sebagian. Umumnya assosiation digambarkan dengan sebuah garis yang
dilengkapi dengan sebuah label, nama, dan status hubungannya.
-Generalization adalah menggambarkan hubungan khusus dalam obyek anak/child yang menggantikan obyek parent / induk . Dalam hal ini, obyek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada obyek induk.
-Realization merupakan hubungan semantik antara pengelompokkan yang menjamin adanya ikatan diantaranya. Hubungan ini dapat diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations.  
Diagram
UML sendiri terdiri atas pengelompokkan diagram-diagram sistem menurut aspek atau sudut pandang tertentu. Diagram adalah yang menggambarkan permasalahan maupun solusi dari permasalahan suatu model. Adapun jenis-jenis  diagram antara lain :
-Use Case Diagram adalah abstraksi dari interaksi antara system dan actor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah system dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah system dipakai. Use case merupakan konstruksi untuk mendeskripsikan bagaimana system akan terlihat di mata user. Sedangkan use case diagram memfasilitasi komunikasi diantara analis dan pengguna serta antara analis dan client.
-Class Diagram adalah dekripsi kelompok obyek-obyek dengan property, perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class diagram dapat memberikan pandangan global atas sebuah system. Hal tersebut tercermin dari class- class yang ada dan relasinya satu dengan yang lainnya. Sebuah sistem biasanya mempunyai beberapa class diagram. Class diagram sangat membantu dalam visualisasi struktur kelas dari suatu system.
-Component Diagram merupakan bagian fisik dari sebuah system, karena menetap di komputer tidak berada di benak para analis. Komponent merupakan implementasi software dari sebuah atau lebih class. Komponent dapat berupa source code, komponent biner, atau executable component. Sebuah komponent berisi informasi tentang logic class atau class yang diimplementasikan sehingga membuat pemetaan dari logical view ke component view.Sehingga component diagram merepresentasikan dunia riil yaitu component software yang mengandung component, interface dan relationship.
-Deployment Diagram Menggambarkan tata letak sebuah system secara fisik, menampakkan bagian-bagian software yang berjalan pada bagian-bagian hardware, menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis hubungannya. Di dalam nodes,executeable component dan object yang dialokasikan untuk memperlihatkan unit perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan komponen.
-State Diagram Menggambarkan semua state (kondisi) yang dimiliki oleh suatu object dari suatu class dan keadaan yang menyebabkan state berubah. Kejadian dapat berupa object lain yang mengirim pesan. State class tidak digambarkan untuk semua class, hanya yang mempunyai sejumlah state yang terdefinisi dengan baik dan kondisi class berubah oleh stateyang berbeda.
-Sequence Diagram digunakan untuk menggambarkan perilaku pada sebuah scenario. Kegunaannya untuk menunjukkan rangkaian pesan yang dikirim antara object juga interaksi antaraobject, sesuatu yang terjadi pada titik tertentu dalam eksekusi sistem.
-Collaboration Diagram Menggambarkan kolaborasi dinamis sepertisequence diagrams. Dalam menunjukkan pertukaran pesan, collaboration diagrams menggambarkan objectdan hubungannya (mengacu ke konteks). Jika penekannya pada waktu atau urutan gunakansequencediagrams, tapi jika penekanannya pada konteks gunakan collaboration diagram.
-Activity Diagram Menggambarkan rangkaian aliran dari aktivitas, digunakan untuk mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga dapat juga digunakan untuk aktifitas lainnya seperti use caseatau interaksi.
Tujuan Penggunaan UML
1.      Memberikan bahasa pemodelan yang bebas dari berbagai bahas pemrograman dan proses rekayasa.
2.      Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan.
3.      Memberikan model yang siap pakai, bahsa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum.
4.      UML bisa juga berfungsi sebagai sebuah (blue print) cetak biru karena sangat lengkap dan detail. Dengan cetak biru ini maka akan bias diketahui informasi secara detail tentang coding program atau bahkan membaca program dan menginterpretasikan kembali ke dalam bentuk diagram (reserve enginering).