Wednesday 3 April 2013

Pattern Adapter di Java, C# dan PHP

Postingan kali ini masi membahas tentang design pattern, kalo kmaren pattern singleton, kali ini giliran Pattern adapter yang ane bahas :D .. ane gak berurutan untuk menjelaskan design pattern, seperti postingan pertama ane tentang design pattern di Java, C# dan PHP, kan ada 3 bagian tu pada design pattern versi gang of four (GOF).. karena ane pengen bahas dari pattern yang mudah dan sering dipakai sampai yang tersulit dan jarang sekali untuk dipakai... hehehee... sedikit penjelasan tentang pattern adapter ini, pattern adapter berfungi atau berguna untuk menghubungkan 2 Application programming interface (API).
secara gampangnya pattern ini akan membantu untuk menghubungkan Aplikasi yang kita bangun agar dapat dikembangkan juga oleh pihak ke 3 tanpa merubah system yang kita desain. misalnya seperti API facebook, API twitter, API Google. 
Dengan API facebook kita bisa menghubungkan website yang kita bangun dengan facebook kita, contoh nya seperti comment artikel melalui website dan komentar nya menjadi auto post ke facebook. itulah tugas nya adapter :D .. kali ini ane akan kasi contoh sedikit berbeda dengan penjelasan ane tadi. kasus nya seperti ini... kita membuat aplikasi blog dan CMS seperti wordpress atau Blogger. tentunya pada server kita telah menyediakan database nya juga.. satu masalah timbul saat ada pihak ke 3 yang ingin mengembangkan aplikasi yang kita bangun, pihak ke 3 ini ingin menggunakan database nya sendiri, dan itu pasti diluar server kita ? lalu bagaimana solusinya ?? :D laa sekarang saat nya adapter pattern beraksi menunjukkan ke bolehannya..hehehee...

Java
package Adapter;

public class MainClass {
 public static void main(String[] args) {
  Connection connection = new Connection("localhost", "kampus", "root", "");
  AdapterConnnection adapter = new AdapterConnnection(connection);
  adapter.GetDataMahasiswa();
  adapter.DeleteMahasiswa("1110100777");
 }
}

class Connection{
 public Connection(String host,String database,String username,String password) {
  this.host = host;
  this.database = database;
  this.username = username;
  this.password = password;
 }
 
 public void ExecuteQuery(String text){
  System.out.println(text);
 }
 
 public void ExecuteUpdate(String text){
  System.out.println(text);
 }
 
 private String host,database,username,password;
}

class AdapterConnnection{
 Connection connection;
 public AdapterConnnection(Connection connection) {
  this.connection = connection;
 }
 
 public void GetDataMahasiswa(){
  connection.ExecuteQuery("select * from mahasiswa");
 }
 
 public void DeleteMahasiswa(String nim){
  connection.ExecuteUpdate("delete from mahasiswa where nim = '"+nim+"'");
 }
}  

C#
using System;

namespace Adapter
{
 class Program
 {
  public static void Main(string[] args)
  {
   Connection connection = new Connection("localhost", "kampus", "root", "");
   AdapterConnnection adapter = new AdapterConnnection(connection);
   adapter.GetDataMahasiswa();
   adapter.DeleteMahasiswa("1110100777");
  
   Console.ReadKey(true);
  }
 }
 
 class Connection{
  public Connection(String host,String database,String username,String password) {
   this.host = host;
   this.database = database;
   this.username = username;
   this.password = password;
  }
  
  public void ExecuteQuery(String text){
   Console.WriteLine(text);
  }
  
  public void ExecuteUpdate(String text){
   Console.WriteLine(text);
  }
  
  private String host,database,username,password;
 }
 
 class AdapterConnnection{
  Connection connection;
  public AdapterConnnection(Connection connection) {
   this.connection = connection;
  }
  
  public void GetDataMahasiswa(){
   connection.ExecuteQuery("select * from mahasiswa");
  }
  
  public void DeleteMahasiswa(String nim){
   connection.ExecuteUpdate("delete from mahasiswa where nim = '"+nim+"'");
  }
 }
}  

PHP
<?php

 class Connection{
  function __construct($host,$database,$username,$password) {
   $this->host = $host;
   $this->database = $database;
   $this->username = $username;
   $this->password = $password;
  }
  
  function ExecuteQuery($text){
   echo $text.'< br />';
  }
  
  function ExecuteUpdate($text){
   echo $text.'< br />';
  }
  
  private $host,$database,$username,$password;
 }
 
 class AdapterConnnection{
  private $connection = null;
  function __construct($connection) {
   $this->connection = $connection;
  }
  
  function GetDataMahasiswa(){
   $this->connection->ExecuteQuery("select * from mahasiswa");
  }
  
  function DeleteMahasiswa($nim){
   $this->connection->ExecuteUpdate("delete from mahasiswa where nim = '".$nim."'");
  }
 }

 $connection = new Connection("localhost", "kampus", "root", "");
 $adapter = new AdapterConnnection($connection);
 $adapter->GetDataMahasiswa();
 $adapter->DeleteMahasiswa("1110100777");
?>  

Contoh program diatas itu ente bisa lihat ada class Connection, yang pada Constructor class nya itu bisa setting server, username, password dan database :D ... kemudian class ini dijadikan sebagai parameter pada class adapter... kan begitu to... dengan kita kasi setting server database nya jadi pihak ke tiga bisa bebas mau menggunakan database dimana saja... itu lah penerapan pattern adapter di Java, C# dan C++ ... cukup dulu untuk postingan kali ini, semoga bermanfaat buat ane dan para pengunjung blog ini :)

No comments:

Post a Comment