TUTORIAL CODEIGNITER : APLIKASI WEBSITE / BLOG (WEBLOG) SEDERHANA DENGAN CODEIGNITER

Oke gan, langsung saja untuk screen shoot contoh aplikasi website, weblog, blog dengan codeigniter yang ane kasi, seperti di bawah ini...

Tutorial HTML

HTML merupakan bahasa dasar pembuatan web. Disebut dasar karena dalam membuat web, jika hanya menggunakan HTML tampilan web terasa hambar. Terdapat banyak bahasa pemograman web yang ditujukan untuk memanipulasi kode HTML, seperti ...

TUTORIAL ORACLE - KONEKSI ORACLE KE JAVA, PHP DAN C# (C-SHARP)

Disitu juga ane kasi contoh aplikasi CRUD nya yang bisa ente download Gratisss :D ...

Rabu, 03 April 2013

Pattern Template di Java, C# dan PHP

Kali ini ane coba untuk membahas salah satu jenis dari design pattern Behaviour, setelah postingan - postingan sebelumnya udah ane bahas pattern creational (singleton dan prototype)dan structural (adapter, dan tentunya masih menggunakan Java, C# dan C++.. kan kemaren ane udah ane upload kategori creational dan structural kali ini giliran salah satu pattern model behaviour, biar gak iri maksud nya :D ...
Pattern ini juga sering sekali dipakai, melihat dari kebutuhan system jika menggunakan pattern template ini akan sangat mudah untuk dirawa.. kenapa ? pertama kita harus mengerti dulu definisi pattern template ini yang nanti akan ane kasi contoh programnya dengan Java, C# dan PHP... template yang kita tau definisinya adalah sebuah karya jadi yang bisa kita gunakan. laa tidak jauh berbeda pengertinnya dengan itu, pattern template ini juga menyediakan kerangka sebuah desain system yang bisa digunakan namun kita tidak bisa mengubahnya karena didalam nya ada standarisasi yang harus diikuti :D ... dari pada kebingungan mending kita langsung ke contoh programnya yang ane tulis pake Java, C# dan PHP, dan nanti Insya Alloh akan ane kasi sedikit penjelasan :)

Java
package Template;

public class MainClass {
public static void main(String[] args) {
Template kopi = new BikinKopi();
kopi.DoIt();

System.out.println("-----------------");

Template mie = new BikinMieInstans();
mie.DoIt();
}
}

abstract class Template{
public final void DoIt(){
Persiapan();
Proses();
Selesai();
}
public abstract void Persiapan();
public abstract void Proses();
public abstract void Selesai();
}

class BikinKopi extends Template{
@Override
public void Persiapan() {
System.out.println("Buka Bungkus Kopi Saset");
}

@Override
public void Proses() {
System.out.println("Seduh dengan air panas");
}

@Override
public void Selesai() {
System.out.println("Siap disajikan");
}
}

class BikinMieInstans extends Template{
@Override
public void Persiapan() {
System.out.println("Buka Bungkus Mie Instance");
}
@Override
public void Proses() {
System.out.println("Masak dengan air mendidih");
}
@Override
public void Selesai() {
System.out.println("Siap disajikan");
}
}

C#
using System;

namespace Template
{
class Program
{
public static void Main(string[] args)
{
Template kopi = new BikinKopi();
kopi.DoIt();

Console.WriteLine("-----------------");

Template mie = new BikinMieInstans();
mie.DoIt();

Console.ReadKey(true);
}
}

abstract class Template{
public void DoIt(){
Persiapan();
Proses();
Selesai();
}
public abstract void Persiapan();
public abstract void Proses();
public abstract void Selesai();
}

class BikinKopi : Template{

public override void Persiapan() {
Console.WriteLine("Buka Bungkus Kopi Saset");
}

public override void Proses() {
Console.WriteLine("Seduh dengan air panas");
}

public override void Selesai() {
Console.WriteLine("Siap disajikan");
}
}

class BikinMieInstans : Template{

public override void Persiapan() {
Console.WriteLine("Buka Bungkus Mie Instance");
}

public override void Proses() {
Console.WriteLine("Masak dengan air mendidih");
}

public override void Selesai() {
Console.WriteLine("Siap disajikan");
}
}
}

PHP
<?php
abstract class Template{
final function DoIt(){
$this->Persiapan();
$this->Proses();
$this->Selesai();
}
abstract function Persiapan();
abstract function Proses();
abstract function Selesai();
}

class BikinKopi extends Template{
function Persiapan() {
echo("Buka Bungkus Kopi Saset< br />");
}

function Proses() {
echo("Seduh dengan air panas<br />");
}

function Selesai() {
echo("Siap disajikan< br />");
}
}

class BikinMieInstans extends Template{

function Persiapan() {
echo("Buka Bungkus Mie Instance< br />");
}

function Proses() {
echo("Masak dengan air mendidih< br />");
}

function Selesai() {
echo("Siap disajikan< br />");
}
}

$kopi = new BikinKopi();
$kopi->DoIt();

echo("-----------------< br />");

$mie = new BikinMieInstans();
$mie->DoIt();
?>
Kalo ente perhatikan contoh program diatas ada sebuah abstract class yang mempunyai function DoIt(), pada function itu ada beberapa method local yang dipanggil dan tidak boleh dirubah, itu karena algoritma standarnya seperti itu, sedangkan methon lainnya seperti persiapan(),proses() dan selesai() itu merupakan abstract methon yang bisa diganti isi nya setelah nanti diturunkan pada class child dari absract class ini dan isi nya ya terserah yang penting kalo function DoIt tidak boleh dirubah... begitu konsep kerjanya Pattern template method ini yang udah ane bahas pake Java, C# dan PHP ... udah paham ?? :D kalo gak paham silahkan Comment atau hubungi ane di Facebook, kalo udah paham ya cukup sekian dulu postingan kali ini semoga bermanfaat buat ane dan ente juga para pengunjung blog ini :)

Pattern prototype di Java, C# dan PHP

Protoype pattern yang secara bahasa katanya google translate artinya bentuk asli atau bentuk dasar, akan ane bahas pada postingan kali ini dengan Java, C# dan PHP, design pattern ini tergolong pada creation pattern yang menangani pembuatan object :D , seperti namanya prototype pattern ini berguna untuk mengkloning suatu object sehingga akan seperti bentuk aslinya, gak mbuang - mbuang dan pasti seperti object aslinya... sudah paham kan ? kalo implementasinya pada Java dan C# itu sama, tetapi pada PHP kita bisa memanfaatkan magic method "__clone()" untuk mengkloning sebuah object instance dari class...
Tetapi contoh pattern prototype pada postingan ini ane gak pake magic method "__clone()" karena ane menyesuaikan dengan bahas lainnya yang ane pakai yaitu Java dan C# dan PHP nya ane sesuaikan dengan standart dari 2 bahasa pemrograman ini. tapi intinya sama kok, hanya saja cooding nya berbeda, algoritmanya pun juga sama tentunya :D
dari pada ane panjang lebar menjelaskan dan ente tambah bingung lebih baik ane kasi langsung kode nya dan silahkan di analisa.

Java

package Clone;

public class MainClass {
public static void main(String[] args) {
Manusia man_1 = new Manusia("Rizal Afani");
System.out.println("Class Manusia asli, "+man_1);
Manusia man_2 = (Manusia)man_1.Cloning();
System.out.println("Class Manusia cloning, "+man_2);
}
}

interface Prototype{
public Prototype Cloning();
}

class Manusia implements Prototype{
public Manusia(String name) {
this.name = name;
}

private String name;

@Override
public Prototype Cloning() {
return new Manusia(name);
}

public String toString(){
return "Class ini nama nya "+this.name;
}
}

C#

using System;

namespace Prototype
{
class Program
{
public static void Main(string[] args)
{
Manusia man_1 = new Manusia("Rizal Afani");
Console.WriteLine("Class Manusia asli, "+man_1.ToString());
Manusia man_2 = (Manusia)man_1.Cloning();
Console.WriteLine("Class Manusia cloning, "+man_2.ToString());
Console.ReadKey(true);
}
}

interface Prototype{
Prototype Cloning();
}

class Manusia : Prototype{
public Manusia(string name) {
this.name = name;
}

private string name;

public Prototype Cloning() {
return new Manusia(name);
}

public string ToString(){
return "Class ini nama nya "+this.name;
}
}
}

PHP

<?php
interface Prototype{
public function Cloning();
}

class Manusia implements Prototype{
function __construct($name) {
$this->name = $name;
}

private $name;

function Cloning() {
return new Manusia($this->name);
}

function toString(){
return "Class ini nama nya ".$this->name.'< br />';
}
}

$man_1 = new Manusia("Rizal Afani");
echo("Class Manusia asli, ".$man_1->toString());
$man_2 = $man_1->Cloning();
echo("Class Manusia cloning, ".$man_2->toString());
?>
kalo ente perhatikan pada kode diatas ane cuma melakukan inisialisasi 1 kali pada program main, kemudian ane cloning dah class yang ane inisialisasi tadi dengan memanfaatkan function cloning yang ber return value prototype dan juga hasil dari override interface prototype.. dan hasilnya terlihat seperti object aslinya :D ... sekian dulu postingan kali ini dan semoga bermanfaat.

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 :)

Design Pattern di Java, C# dan PHP

Alhamdulillah kali ini ane udah sempat nulis lagi diblog ini, dan tentunya masi tentang design pattern, pada postingan sebelumnya ane udah bahas satu pattern yaitu pattern singleton menggunakan java. kali ini ane berniat untuk menulis lagi tutorial implementasi design pattern dengan Java, C# dan PHP. jadi ane nulis mulai awal. sebelumnya ane berfikir untuk menulis design pattern hanya dengan java yang bisa ente baca disini, karena, jujur saja untuk pemrograman dekstop ane lebih suka javva dari pada C#, kalo web ane suka PHP :D . selang sehari ane upload pattern singleton kmaren, ane liat temen2 pada bingung dengan penerapannya di C# dan sebagian meminta bantuan ane... ane suruh mereka ke blog ane tapi sebagian gak bisa buat mengkonversi dari C# ke Java..
Hemmb.. kalo dipikir-pikir kalo ane upload pake C# di blog ini, bisa untuk menambah page view nya blog ini :D , bisa jadi bisnis... wkwkwkwk.. dan kita memang harus bisa memanfaatkan peluang yang ada... dari situlah ane berniat untuk menulis ulang tutorial design pattern ini dengan 3 bahasa yaitu Java, C# dan PHP.. bagaimana dengan C++.. kalo C++ itu seperti nya kagak sekarang, karena ane sendiri jarang skali menggunakan bahasa C++ ini, walaupun C++ .NET , ane kurang Userfriendly dengan bahasa ini, tapi jika ada tuntutan dari pihak akademik ataupun jika ada pengunjung blog yang request dan mau memberi sedikit donasi mungkin besok2 ane upload dah :D janji...

kalo penerapannya di PHP, itu karena ane pengen skalian mengupload dengan 3 bahasa yang ane sering pakai yaitu Java, C# dan PHP.. dan mungkin ada dari temen2 ane yang juga pengen mempelajarinya dengan pemrograman web (PHP) walaupun penerapan design pattern di PHP udah banyak dibahas oleh sesepuh ane :D
Oke, sekarang kita bahas design pattern nya dahulu... Apa design pattern itu ? Design pattern secara bahasa artinya pola bentuk, sedangkan secara pemrograman design pattern adalah pola-pola algoritma untuk menyelesaikan suatu permasalahan tertentu dan secara gampang nya adalah kumpulan algoritma programmer2 untuk menyelesaikan permasalahan2 pemrograman secara efisien...kenapa ane bilang efisien ? karena algoritma yang ada di design pattern didesain salah satunya untuk memangkas penggunaan memory, selain itu algoritma nya tidak melakukan proses yang sangat lama... coba kita bandingkan dengan algoritma bikinan kita sendiri, kadang kita asal2an dalam membuat algoritma pada suatu pemorgraman, memang program berhasil dirunning tapi kita melupakan  satu hal yaitu penghematan memory dan proses kompilasi program yang lama... :D selain itu manfaat menggunakan design pattern ini adalah design aplikasi yang kita buat bisa tertata rapi dan itu tentunya sangat berguna untuk perawatan dan kemudahan untuk memaintenance aplikasi jika suatu hari ada penambahan ataupun perubahan :D ... sejauh ini paham ya sama penjelasan ane.. kalo gak paham silahkan tanya via facebook kalo yang mau cepet :D ... dasar dari design pattern ini sebenarnya adalah Object oriented programming (OOP). kalo ente mau belajar design pattern sebaiknya ente kuasai dulu konsep dari OOP, yang antara lain adalah inheritance, polymorphisme, abstract class dll. yang ane udah bahas disini dengan C#, Java dan C++. dan untuk PHP nya di blog ini juga udah ane bahas beberapa :D yang ente bisa pelajari tentunya.. kalo gak paham OOP kayak nya agak berat untuk belajar design pattern, karena semua design pattern yang jumlah nya 23 itu pasti menggunakan OOP :D

Design Pattern ada banyak versi, yang pak dosen minta itu menurut versinya gang of four, dan jumlah patternnya itu ada 23 dan dari 23 pattern itu masi dibagi lagi menjadi 3 bagian.
  • Creation Patterns
    Pattern model ini menangani pembuatan object, kalo kita kan kadang membuat object sesuka kita tanpa mempertimbangkannya. contohnya saat kita membuat suatu object yang kita buat pada suatu class tidak bisa dimanfaatkan pada kelas lain. padahal harusnya kita bisa memanfaatkannya. dengan patterns model ini kita lebih bisa mengoptimalkan pembuatan suatu object. Pattern - pattern pada model ini adalah : 
    1.   Singleton
    2.   Factory Method
    3.   Abstract Factory
    4.   Prototype
    5.   Builder
  • Structural Patterns
    Pattern model ini menyangkut tentang struktur program. Pattern model ini akan lebih fokus pada class object composite. Akan banyak ditemukan pewarisan dan penggunaan interface atau abstract class pada Pattern model ini dan penggabungan suatu object. Pattern - pattern pada model Structural ini adalah :
    1.   Adapter
    2.   Bridge
    3.   Composite
    4.   Decorator
    5.   Facade
    6.   Fly Weight
    7.   Proxy
  • Behavioral Patterns
    Pattern jenis behaviour ini lebih menangani kepada kelakuan program. Pattern jenis ini juga sering memanfaatkan tentang hubungan antar object. Pattern - pattern model ini adalah :
    1.   Chain of responsibility
    2.   Command
    3.   Interpreter
    4.   Iterator
    5.   Mediator
    6.   Memento
    7.   Observer
    8.   State
    9.   Strategi
    10. Template
    11. Visitor
Hembb.. postingan ini memang tidak menjelaskan implementasi nya pada bahasa pemrograman. insya Alloh ane akan bahas pada postingan selanjutnya tapi kalo salah satu pattern udah ane bahas nanti ane kasi link nya pada list pattern diatas... oke gan, monggo di bookmark kalo perlu :D ... sebenarnya tinggal upload saja dan contoh kode programnya sudah ane siap kan dengan Java, C# dan PHP seperti kata ane tadi :D .. oke dah gan... sekian dulu untuk postingan ini, semoga bermanfaat untuk kita semua... keep cooding :)

Pattern Singleton di Java, C#, PHP

Design Pattern Singleton udah ane bahas pada postingan sebelumnya tetapi hanya menggunakan Java, Kali ini ane bahas dengan Java, C# dan PHP sesuai janji ane pada postingan sebelum nya... dan ane udah jelasin juga pengertian Pattern Singleton di postingan sebelumnya dan apa manfaat dan kegunaannya... sedikit mengulang cerita yang lalu :D .. singleton adalah algoritma yang digunakan untuk pembentukan suatu object yang membatasi pembentukannya hanya satu kali..
Mungkin ente agak bingung dari definisi ini ya ? seperti yang ane bilang tadi (sedikit mengulang), contoh kasus singleton ini loo... ente tau kan cara nya bikin Instance object dari suatu class ?? tentunya memakai keyword "new" ... inget ? itu namanya pembentukan instance object... kadang saat kita membuat sebuah aplikasi kita bisa berulang kali membuat instance object yang sama dari sebuah class dan itu tidak efisien.. karena bisa terjadi pemborosan memory... dalam hal ini ane coba mengambil contoh yang sama seperti postingan sebelumnya yaitu koneksi database, perhatikan gambar berikut


jika ente lihat pada gambar diatas ada 3 buah koneksi ke database dan tiap koneksi memakan memory 5 KB. dan itu terjadi karena pencetakan object dari koneksi lebih dari satu, maka di butuhkan limitasi untuk mengefisiensikan koneksi database, artinya cukup dengan satu koneksi saja untuk menghubungkan ke database :D kalo digambarkan seperti ini


bukan kah ini lebih efisien ?? tentunya iya :D ... dengan pattern Singleton kita bisa implementasi algoritma  seperti ini... oia, untuk penggunaan Pattern ini tidak hanya untuk mengkoneksikan ke database, tetapi bisa dilakukan untuk yang lainnya dan sesuai kebutuhan... dan contoh program penerapan Design pattern singleton pada Java, C# dan PHP seperti ini


Java

package Singleton;
public class MainClass {
public static void main(String[] args) {
Connection conn_1 = Connection.GetInstance();
conn_1.PrintText("Select * from mahasiswa");
Connection conn_2 = Connection.GetInstance();
conn_2.PrintText("Select * from dosen");
}
}

class Connection{
static int counter = 0;
static Connection connection = null;
public Connection() {
Connection.counter++;
System.out.println("Object instance class Connection ke "+Connection.counter);
}

public static Connection GetInstance(){
if(Connection.connection == null){
Connection.connection = new Connection();
}

return Connection.connection;
}

public void PrintText(String text){
System.out.println(text);
}
}


C#
using System;
namespace Singleton
{
class Program
{
public static void Main(string[] args)
{
Connection conn_1 = Connection.GetInstance();
conn_1.PrintText("Select * from mahasiswa");
Connection conn_2 = Connection.GetInstance();
conn_2.PrintText("Select * from dosen");
Console.ReadKey(true);
}
}

class Connection
{
static int counter = 0;
static Connection connection = null;
public Connection() {
Connection.counter++;
Console.WriteLine("Object instance class Connection ke "+Connection.counter);
}

public static Connection GetInstance(){
if(Connection.connection == null){
Connection.connection = new Connection();
}

return Connection.connection;
}

public void PrintText(String text){
Console.WriteLine(text);
}
}
}

PHP
<?php
class Connection{
public function __construct(){
self::$counter++;
echo "Object instance class Connection ke ".self::$counter."< br />< br />";
}

public static $counter = 0;
public static $connection = null;

public static function GetInstance(){
if(self::$connection == null){
self::$connection = new Connection();
}
return self::$connection;
}

public function PrintText($text){
echo $text.'< br />';
}
}

$conn_1 = Connection::GetInstance();
$conn_1->PrintText("Select * from mahasiswa");
$conn_2 = Connection::GetInstance();
$conn_2->PrintText("Select * from dosen");
?>

Mudah bukan penerapan dan implementasi singleton di Java, C# dan PHP nya ? :D ... sebenarnya hanya memanfaatkan static method dan statement if saja untuk penerapan pattern Singleton ini... oke gan, untuk postingan kali ini cukup sampai disini dulu... Insya Alloh besok masi membahas Design pattern.. semoga bermanfaat... keep smile and happy cooding :)

Senin, 25 Maret 2013

Design pattern Singleton dengan Java

Ini potingan yang ke dua dihari ini... sebenar sih jatahnya seminggu tiga kali, eh ini malah sehari 2 kali... hembb... karena tuntutan kuliah si... bukan tuntutan juga sebenarnya... tetapi ane pengen cepet2 selesai dari matakuliah design pattern ini, oia ane lupa gak jelasin design pattern itu apa :D ... hehehee... design pattern adalah kumpulan algoritma yang sering dipakai untuk membuat sebuah aplikasi dan system, kenapa harus memakai design pattern?? jawaban gampang nya, kalo pake design pattern aplikasi akan mudah untuk dirawat dan diperbaiki jika di kemudian hari ada perubahan... biar gak bikin dari awal, jadi kalo pake design pattern ini sebuah sytem Aplikasi akan tertata rapi :D katanya si gitu... hehehee...
ada banyak design pattern, menurut versi gank of 4 ada 21 design patern, i.Alloh ane bahas dalam waktu dekat ini... doain aja yak gan ? :D ... kali ini ane bahas pake java ya ?? gak ane bahas design pattern pake C# / C++ / PHP.. bukannya gak bisa, tapi cukup satu ajalah... soalnya masi banyak kerjaan yang lain... lagian kalo pake C# kebanyakan temen - temen ane juga pake C#, jadi biar agak sedikit berbeda gitulah.... :D
oke gan dari pada panjang lebar, kita ngobrol diblog ini mending d facebook aje  :D ni ane langsung jelasin desain pattern yang pertama yaitu Singleton. secara bahasa katanya google translate singleton artinya tunggal, tapi bagaimana pengertiannya dalam sebuah pemrograman ??
gini... biasanya design pattern model ini, maksud nya model Singleton ini digunakan untuk koneksi ke Database.. dalam pemrograman prosedural, bukan yang OOP maksud nya kita bisa berkali-kali melakukan koneksi ke dalam dalam database... dan itu sangat tidak efisien.. karena akan terjadi pemborosan memory... seperti contoh aplikasi java sederhana yang ane buat disini ...jika digambarkan bisa seperti ini



Itulah sebab nya perlu diterapkan konsep Singleton dalam pengkoneksian ke Database.. jadi untuk satu koneksi untuk melakukan banyak Eksekusi Query... tapi apa harus pake singleton ?? tidak juga, mugkin ente punya algoritma yang lebih bagus dari Singleton juga gak papa kalo mau dipakai :D .. Singleton jika digambarkan bisa seperti ini




gimana cara ngodingnya ?? mungkin ini yang ditunggu -tunggu olah para pengunjung :D ... okelah... ini pake Java loo ya... bukan C#... tapi ente bisa edit sendiri kok jadi source kode C#... hehehehee..
/**
* @(#)Singleton.java
*
* Singleton application
*
* @author
* @version 1.00 2013/3/25
*/

public class Singleton {
public static void main(String[] args) {
System.out.println("\t\t\tDesign Patern Single Ton\n\n");
Connection conn_1 = Connection.GetConnection();
conn_1.PrintText("select * from mahasiswa");
Connection conn_2 = Connection.GetConnection();
conn_2.PrintText("select * from dosen");
}
}

class Connection{
public Connection(){
Connection.counter++;
System.out.println("Object Instance Class Connection ke "+Connection.counter+"\n");
}

public static int counter = 0;
public static Connection connection = null;
public static Connection GetConnection(){
if(Connection.connection == null){
Connection.connection = new Connection();
}
return Connection.connection;
}

public void PrintText(String text){
System.out.println(text);
}
}
untuk screen shoot compilasi program diatas begini gan...


Minggu, 24 Maret 2013

Contoh Aplikasi CRUD C# WPF

Alhamdulillahirobbilalamin... postingan kali ini masi membahas Aplikasi C#, tapi agak beda C# nya, yang ini pake C# WPF (Windows presentation fundation), dan nanti ane kasi contoh Aplikasi CRUD C# WPF yang bisa ente download, hembb... kali ini boleh ane sdikit lega dari beberapa kesibukan, sampai - sampai hampir satu bulan kurang 3 kali ane kagak njamah blog ksayangan ane ini, sebenarnya si gak terlalu sibuk, cuma kmaren ada beberapa project yang harus ane selesaikan sehingga ane gak bisa bikin dan nulis beberapa tutorial pemrograman, mau nya si sminggu ane kasi 3 tulisan di blog ini :D tapi apa mau dikata terpaksa ane ninggalin blog ini dulu sementara... 
Oke, sekarang ane mau sdikit bahas tentang WPF, apa WPF itu ?? mungkin sebagian pengunjung sudah mengerti apa WPF itu dan mungkin mampir ke blog ini hanya mengambil Contoh aplikasi CRUD nya C# WPF saja :D y gapapalah... bagi ente yang masi gak ngerti,
secara gampangnya C# WPF itu adalah bahasa pemrograman yang bisa bikin GUI yang keren, yang bagus, yang elegan... hehehee... Apa C# biasa gak bisa ?? ya bisa2 saja tapi kalo pake C# biasa ya agak sulit... :) mangkanya disediakan oleh microsoft "WPF" untuk membuat aplikasi yang Desain Interface nya bagus.. untuk selengkap nya ente bisa baca langsung di web nya microsoft...
hemm.. okelah ane gak akan panjang lebar untuk membahas WPF, langsung aja ane kasi contoh Aplikasi CRUD C# WPF...
Silahkan gan kali mau didownload disini tempat nya.. monggo...
Oia Mungkin ada yang pengen tau Screen shoot nya... kayak gini gan...