Archive for November, 2007



17
Nov
07

Laut yang tenang tidak akan melahirkan pelaut yang tangguh

Hari ini saya makan siang special bareng si ghondrong dan pacarnya Ici. Makan siang di KS (Kampung Steak), skali” makan “besar” :mrgreen: . Dalam perjalanan saya ngomong ke ghondrong:

(Ini versi EYD-nya, soalnya kita ngomong pake inggris “british” ūüėą )

jolly: “tox, ternyata kita dah tua yak!!! Udah ada 2 angkatan di bawah kita”

ghondrong: “Iya nih, seharusnya saya udah bisa buat sistem operasi sendiri kayak Linus Torvalds”

ghondrong: “Linus bikin sistem operasi pas tahun keberapa kuliah yak jol?”

jolly: “Gak tau tox.”

ghondrong: “Kita blum bisa bikin, mungkin kuliah kita kurang tantangan.”

ghondrong: “Betul juga kata orang ‚ě° Laut yang tenang tidak akan melahirkan perlaut yang tangguh”

jolly: “Iyak, di FTI kurang tantangan kali yeee?”

ghondrong: “Tugasnya gak terlalu sulit, dan tidak mematikan, Lihat tuh anak” elektro, biar IP kecil” tapi mereka terbiasa dengan hal yang sulit”

jolly: “Tul, kita terbiasa dengan kemudahan, dikasih tugas susah ngeluh, dikasih yang gampang eh malah kopi-paste, Maunya maen tyussss.

Nah gitu deh kenyataannya, saya masih merasa kurang ditantang saat kuliah ini, saya harus cari tantangan sendiri, untuk bisa berkembang. Ayo fakultasku tercinta tantang saya, jangan ragu, berikan pukulan terbaikmu kepada saya, saya akan memberikan balasannya pasti ūüėą

15
Nov
07

Java-Hibernate Codes [technical]

2 Hal yang saya suka menggunakan framework hibernate, Pertama-saya gak perlu bikin database secara langsung, cukup bikin designnya aje pake DBDesigner ‚ě° bikin class untuk modelnya/setter-getter ‚ě° bikin file hibernate.cfg.xml yang bakalan ngasih tahu apa aja properties dari app itu skalian ama keterangan koneksi ke database dan nama databasenya supaya databasenya langsung dibuatin secara otomatiiiis ūüėą and xml untuk tiap table supaya table-table-nya juga ikut dibuatin. Jadi waktu yang biasa dipake untuk bikin database, bisa dialihkan untuk boker yang laen :mrgreen: . Kedua-codingnya relatif lebih dikit, dan mudah untuk maintainance.

OK dah saya mulai dengan buat hibernate.cfg.xml dulu:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <!-- DB Connection Setting -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/mybook</property>
        <property name="connection.username">dbuser</property>
        <property name="connection.password">dbpass</property>

        <!-- SQL Dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- JDBC Connection pool -->
        <property name="connection.pool_size">1</property>

        <property name="hibernate.c3p0.min_size">5</property>
        <property name="hibernate.c3p0.max_size">20</property>
        <property name="hibernate.c3p0.timeout">1800</property>
        <property name="hibernate.c3p0.max_statements">50</property>

        <!-- Enable hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

	<!-- Show the sql query when it executed -->
	<property name="show_sql">true</property>

        <property name="hbm2ddl.auto">update</property>

        <mapping resource="model/Buku.hbm.xml"/>
        <mapping resource="model/Category.hbm.xml"/>

    </session-factory>
</hibernate-configuration>

tahap satu selesai, lanjut ke tahap 2 ‚ě° skarang saya bikin file xml untuk tiap table. Yang pertama dan terakhir ūüėĮ table Buku [ ex]:


<?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : Buku.hbm.xml
    Created on : September 3, 2007, 11:29 PM
    Author     : JollkY
    Description:
        Purpose of the document follows.
-->
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="model.Buku" table="BUKU">
        <id name="id" column="ID" type="java.lang.Long">
            <generator class="native"/>
        </id>
        <property name="title" column="TITLE" type="java.lang.String" length="100"/>
        <property name="page" column="PAGE" type="java.lang.Integer" length="5"/>
        <property name="publisher" column="PUBLISHER" type="java.lang.String" length="100"/>
        <property name="writer" column="WRITER" type="java.lang.String" length="100"/>
    </class>
</hibernate-mapping>

Perhatikan code di atas, untuk name=”model.Buku” menyatakan <namaPaket>.<namaClass> sedangkan table=”BUKU” merupakan name tabelnya. Kemudian untuk name=”id” menyatakan nama variable untuk id pada class Buku dalam paket model. Sedangkan column=”TITLE” akan menjadi salah satu nama kolom saat table BUKU diciptakan.

tahap 3 ‚ě° bikin class model untuk table Buku:


package model;

/**

*

* @author JollkY

*/

public class Buku {

private long id;

private String title;

private int page;

private String publisher;

private String writer;

/**

* Creates a new instance of Buku

*/

public Buku() {

}

public long getId() {

return id;

}

public void setId(long id) {

this.id = id;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public int getPage() {

return page;

}

public void setPage(int page) {

this.page = page;

}

[...bleh...bleh...bleh...]

}

tahap 4 ‚ě° class yang akan berinteraksi dengan DB:


package dao;

import java.util.ArrayList;
import java.util.List;
import model.Buku;
import org.hibernate.Session;

/**
 *
 * @author JollkY
 */
public class BukuDAO {

    /** Creates a new instance of BukuDAO */
    public BukuDAO() {
    }

    public Buku getBuku(long id, Session session) {
        Buku book = (Buku) session.load(Buku.class, id);
        return book;
    }

    public List getBooks(String publisher, Session session) {
        List listBook = new ArrayList();
        listBook = session.createQuery("SELECT buku FROM Buku buku WHERE buku.publisher= :input").setParameter("input", publisher).list();
        return listBook;
    }

}

satu lagi:


package dao;

import org.hibernate.Session;

/**
 *
 * @author JollkY
 */
public class ObjectDAO {

    /** Creates a new instance of ObjectDAO */
    public ObjectDAO() {
    }

    public void save(Object obj, Session sess) {
        sess.save(obj);
    }
    public void delete(Object obj, Session sess) {
        sess.delete(obj);
    }
    public void update(Object obj, Session sess) {
        sess.update(obj);
    }
 }

tahap 5 ‚ě° class percobaannya:


package tester;

import dao.BukuDAO;
import dao.ObjectDAO;
import java.util.List;
import model.Buku;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 *
 * @author JollkY
 */
public class tester {

    /** Creates a new instance of tester */
    public tester() {
    }

    public static void main(String[] args) {
        SessionFactory sessFactory = new Configuration().configure().buildSessionFactory();
        Session sess = sessFactory.getCurrentSession();
        sess.beginTransaction();
        BukuDAO dao = new BukuDAO();
//        Buku buku = dao.getBuku(1, sess);
//        System.out.print(buku.getTitle()+" | ");
//        System.out.print(buku.getWriter()+" | ");
//        System.out.print(buku.getPublisher()+" | ");
//        System.out.println(buku.getPage());

        List<Buku> listBuku = (List<Buku>)dao.getBooks("Andi Publisher", sess);
        for(Buku b:listBuku) {
            System.out.print(b.getTitle()+" | ");
            System.out.print(b.getWriter()+" | ");
            System.out.print(b.getPublisher()+" | ");
            System.out.println(b.getPage());
        }

//        Buku book = new Buku();
//        book.setId(3);
//        book.setTitle("Fedora Core 4");
//        book.setWriter("Sto");
//        book.setPublisher("Andi Publisher");
//        book.setPage(240);
//        new ObjectDAO().update(book,sess);
        sess.getTransaction().commit();
    }

}

ūüí° Maap buru” jadi penjelasannya kurang, nanti deh abis kuliah saya edit lagi nih posting. later budy ūüėą

14
Nov
07

Serializable? saya kira saya mulai paham

Saya tulis kode ini:

package model;
import java.io.Serializable; 

public class bookModel implements Serializable {
    private int id;
    private String title;
    private String writer;
    private String publisher;
    private int page;
    /** Creates a new instance of bookModel */
    public bookModel() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    [...ble..ble..ble...]

}

class di atas merupakan class serializable, kenapa perlu mengimplementasi Serializable? Karena nantinya setelah object dari class ini tercipta, object tersebut akan di passing ke-class lain dan di pakai di sana. Kedua class harus tahu tipe data dari object tersebut sehingga dapat digunakan dengan baik.Misalnya, saya menciptakan object dari class di atas:

 bookModel book = new bookModel();

Jika object itu diakses melalui jaringan (socket, RMI, dll) tipe data dari object tersebut akan menjadi Object. Jadi book menjadi bertipe Object. Padahal class lain yang memerlukan object book harus tahu tipe aslinya (bookModel). Untuk mengetahui itu, maka perlu di-deserialize / casting object tersebut:


//rmi

bookModel book = (bookModel)Naming.lookup("bookDesign");

Untuk itulah diperlukan java serialization yang mempermudah proses-proses pertukaran object.

13
Nov
07

Mengapa tidak? kuliah cukup 1 jam

Cukup banyak yang saya bicarakan bareng temen saya itoxXx. Salah satunya kuliah tentang kuliah dengan waktu 1 jam saja, menurut kami akan lebih menyenangkan dan efektif. Selama ini kuliah di tempat saya UKSW fakultas FTI waktu kuliah tuh ada yang 2 jam dan ada yang 3 jam. Si gondrong ItoxXx yang ngaku sering mengeluarkan ide-ide yang kontroversial mengatakan pada saya kalau kuliah 1 jam full untuk suatu matakuliah dan dalam satu minggu di bagi menjadi 2-3 pertemuan akan lebih efektif dan efisien dari pada kuliah dua jam membosankan yang belum tentu full dan dalam 1 pertemuan tiap minggu. Jika tiap pertemuan untuk suatu matakuliah berlangsung hanya 1 jam, menurut kita bedua akan lebih menyenangkan sebab saat lebih dari 1 jam saya akan mulai jenuh, gak tau yang lain. Apa lagi klo dosen yang kurang semangat, saya juga ikutan gak semangat, dan klo hanya sejam saya akan sangat bersedia mengikuti kuliah hingga akhir, kan cuma 1 jam. Jadi semua yang dijelaskan akan saya simak dengan baik, tapi klo udah lebih belum tentu, sehingga walopun 2 jam tapi belum tentu semuanya bisa saya pahami. Resikonya tiap hari bisa full kuliah.

Bandingkan dengan 2 jam pertemuan untuk tiap matakuliah. Biasanya gak nyampe 2 jam dah pulang, bukan gak nyampe 2 jam yang jadi masalah, tapi pertemuan yang tidak efektif, jadi jangan heran klo banyak makeup class, khususnya FTI. Pernah saya alami dan saya sangat menyayangkan, yaitu dikelas saya dimana blum selesai pertemuannya, barisan blakang dah tandus, padahal tau ndiri klo kuliah yang pull itu bagian blakang. Dosennya gak bisa bikin apa” karena kenyataannya situasi kelasnya … T.T

Sangat disayangkan kan? dan waktu itu kuliahnya tiga jam, buset, sapa yang mau kuliah tiga jam full. Keluar” pala jadi panas, bukan karena konsen tapi karna emang puanas.

Ayo silahkan coba ide so gondrong yang cemerlang itu. ūüôā munkin aja berhasil, sbab anda tidak akan pernah tahu tempe, saat anda tidak pernah mencoba.

h4ppy thuesday pal

12
Nov
07

Sistem yang bagus.

Sekarang jam 4:37 pagi, dan tadi (alias kemaren) jam 5 sore saya pulang dari kantor (BISTEK). Lalu kuterus tidur. Yang sangat di sayangkan dan tak disangka saya bangun jam 9:40 malam, Buset dah. Yang bukan seharusnya jam tidur eh malah tidur. Untuk itu saya tebus deh tuh kelalaian, makanya saya gak tidur sampe skarang jam 4:40. Btw ada untungnya juga saya tidur jam 5 sore trus gak tidur sampe pagi. Suasana menjadi sangat tenang, jadinya saya bisa konsen dan “belajar” dengan sukses. Eits jangan salah kaprah tuh kata belajarnya, Kan belajar sumbernya bisa dari mana aja. Internet contohnya. Tapi skarang rasa lapar benar” terasa, dari tadi nih perut kriuk-kriuk >.< mo makan gak tau makan apa? yawdah tahan aja lah.

Saya sempat mikir bagaimana kalo ini diteruskan? tapi yang menjadi pertimbangan, klo tidur jam 5 sore trus bangun jam 10, nanti gak bisa maen ke kosnya temen dong, ato gak bisa maen DoTA bareng itoxx (temen karib saya sejak SMA). nih potonya:

untitled1.png yang paling parah makan malam terlambat>.< jadi kemungkinan untuk dilakukan lagi sangat kecil, soalnya lebih banyak gak enaknya. Nanti ajalah hari-hari tertentu gitu. Pas tes akhir ato lagi ada tugas gitu.

Ya udalah cepek liatin monitor trus ūüôā

Later…

 

 

 

 

12
Nov
07

Info free file sharing

Nih ada file sharing yang cukup bagus:

1. www.4shared.com kapasitas 5 GB and bisa ganti” theme. Tampilannya kayak window gitu.

filesharing.png

2. www.bestsharing.com klo mau cepat pke ini aja, gak perlu login”, upload langsung deh di kasih link download ama skalian link delete. Supaya klo dah “bosan” bisa di delete, org lain ga bisa donlod lagi. Trus bisa di kasih email supaya link” tsb dikirim ke email kita, jadi ndak perlu nyatet ato hapal” link na.

filesharing2.png

3. www.filecrunch.com bisa daftar bisa gak terserah pilih mana, yang penting bisa upload dan di share:)

filecrunchdotcom.png

4. www.orbitfiles.com Keren, pake ajax soalnya. Optionnya banyak jadi keliatan kayak file manager gitu. Bisa earn cash juga, sistem referal. Ada juga fasilitas untuk jualan file. Ayo daftar….!!!

orbitfilesdotcom.png

5. www.imageshack.us Lumayan nih, tapi yang ini free image hosting. Klo mao share gambar” upload di sini, nanti dikasih share link.

imageshackdotus.png

12
Nov
07

Problem in writing RMI-database application, but it solved today :)

Dari hari jumat kemaren saya nulis aplikasi database sederhana tapi nerapin RMI di dalamnya, untuk manggil method yang berfungsi untuk melakukan beberapa proses ke database. Dari hari jumat ketemu masalah dan stuck di situ, connection variabel yang sial itu selalu null. Hari ini dah ketemu pemecahannya, satu dari sekian cara mungkin ūüė¶

Sebelum lanjut berikut ini pemahaman saya tentang RMI, RMI itu di pake memanggil method yang ada di komputer lain (bisa jadi server) secara remote. Untuk memakai suatau method sebenarnya saya cukup membuat object dari class yang memiliki method yang ingin dipakai dan memanggil method itu via object tsb. Tapi bagaimana klo method tersebut ada di komputer lain? Karena itulah saya pake RMI. Bagaimana teori kerjanya secara masih sedang dipelajari. Nanti saya tulis dipost selanjutnya. Ok lanjut…

Editor yang saya pake NETBEANS 5.5 dengan JDK 1.5

Ini model tabel database-nya dari app yang dibuat:

table.png
Berhubung saya juga nerapin arsitektur MVC maka saya buat modelnya(setter/getter) dulu:

Code:


package model;

import java.io.Serializable;

/**

*

* @author JollkY

*/

public class Book implements Serializable {

	private int id;
 	private String title;
	private int page;
	private String publisher;

	private String writer;</font>

	/** Creates a new instance of Book */
	public Book() {

	}

	public int getId() {
		return id;
	}

	public void setId(int id) {

		this.id = id;

	}

	public String getTitle() {

		return title;

	}

	public void setTitle(String title) {

		this.title = title;

	}

	[........ source lengkapnya di http://www.4shared.com/file/29059871/5faf7c8/src.html .......]
}

Sebelum lanjut untuk membuat controller dan DAO-nya, diperlukan design method-nya dulu dalam suatu interface sehingga untuk controller dan DAO-nya tinggal implements aje gitu.Code: package design;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;
import model.Book;

/**
*
* @author JollkY
*/
public interface dataAccessObject extends Remote {
public int saveBook(Book objBuku) throws RemoteException;
public int deleteBook(int idBuku) throws RemoteException;
public int editBook(Book objBuku) throws RemoteException;
public List<Book> getAllBook() throws RemoteException;
public Book getBookById(int id) throws RemoteException;
public Book getBookByTitle(String title) throws RemoteException;
public Book getBookByWriter(String writer) throws RemoteException;
}

err… dari listing method yang ada di interface itu, saya baru buat coding lenkap untuk method getAllBook(), yang lainnya blum. Blum sempat aja. Selanjutnya adalah buat File koneksi dolo.

Code:

package Connection;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
*
* @author JollkY
*/
public class DBConnection {
private Connection con = null;
private String DRIVER = “com.mysql.jdbc.Driver”;
private String URL = “jdbc:mysql://localhost:3306/mybook”;
private String USER = “binsus”;
private String PASS = “phpBB2”;
/**
* Creates a new instance of DBConnection
*/
public DBConnection() {
if(con==null) {
try {
Class.forName(DRIVER).newInstance();
this.con = DriverManager.getConnection(URL, USER, PASS);
} catch(Exception ex) {
ex.printStackTrace();
}
}
}

public Connection getConnection() {
return this.con;
}

[…..Source lengkap di sini…..]
}

Abis itu buat code untuk controller dan DAO. Controller dan DAO ini yang merupakan implement dari interface dataAccessObject, nantinya di letakkan di sisi server yang dipakai server untuk membuat koneksi dan melakukan akses ke database.

Berikut code controller

Code:

package controller;

import Connection.DBConnection;
import dao.BookDao;
import design.dataAccessObject;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.List;
import model.Book;

/**
*
* @author JollkY
*/
public class BookController implements dataAccessObject {

/** Creates a new instance of BookController */
public BookController() throws RemoteException {
UnicastRemoteObject.exportObject(this);
}

public int saveBook(Book objBuku) throws RemoteException {

return 0;
}

public int deleteBook(int idBuku) throws RemoteException {

return 0;
}

public int editBook(Book objBuku) throws RemoteException {

return 0;
}

public List<Book> getAllBook() throws RemoteException {
List<Book> listBook = new ArrayList<Book>();
DBConnection con = new DBConnection();
BookDao dao = new BookDao(con.getConnection());
listBook = dao.getAllBook();
return listBook;
}

[…..Source lengkap di sini….]
}

berikut code DAO,

Code:

package dao;

import Connection.DBConnection;
import design.dataAccessObject;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import model.Book;

/**
*
* @author JollkY
*/
public class BookDao implements dataAccessObject {
private Connection con = null;
private PreparedStatement st = null;
private ResultSet rs = null;
int sukes = 0;

/** Creates a new instance of BookDao */
public BookDao(Connection con) {
this.con = con;
}

public int saveBook(Book objBuku) throws RemoteException {

return 0;
}

public int deleteBook(int idBuku) throws RemoteException {

return 0;
}

public int editBook(Book objBuku) throws RemoteException {

return 0;
}

public List<Book> getAllBook() throws RemoteException {
String query = “SELECT * FROM buku”;
List<Book> daftarBuku = new ArrayList<Book>();
if(this.con==null) {
System.out.println(“Con null”);
}
try {
this.st = this.con.prepareStatement(query);
this.rs = this.st.executeQuery();
while(this.rs.next()) {
Book b = new Book();
b.setId(this.rs.getInt(1));
b.setTitle(this.rs.getString(2));
b.setPage(this.rs.getInt(3));
b.setPublisher(this.rs.getString(4));
b.setWriter(this.rs.getString(5));

daftarBuku.add(b);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
return daftarBuku;
}

[….sorce lengkap di sini….]

}

Code untuk server

Code:

package Server;

import controller.BookController;
import design.dataAccessObject;
import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;

/**
*
* @author JollkY
*/
public class ServerBook {

/** Creates a new instance of ServerBook */
public ServerBook() {
try {
// String name = “dataAccessObject”;
dataAccessObject bookController = new BookController();
// dataAccessObject stub = (dataAccessObject) UnicastRemoteObject.exportObject(bookController, 0);
// Registry regist = LocateRegistry.getRegistry();
// regist.rebind(name, stub);

Naming.rebind(“dataAccessObject”, bookController);
System.out.println(“Server Ready”);
} catch(Exception ex) {
ex.printStackTrace();
}
}

public static void main(String[] args) {
new ServerBook();
}

}

Naming.rebind(“dataAccessObject”, bookController); – berguna untuk melakukan remote call ke RMI registry yang ada di localhost.

Code untuk client

Code:

package Client;

import controller.BookController;
import design.dataAccessObject;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.util.List;
import model.Book;

/**
*
* @author JollkY
*/
public class Tester {

/** Creates a new instance of Tester */
public Tester() {
}

public static void main(String[] args) {
try {
//Registry regis = LocateRegistry.getRegistry();
//dataAccessObject dataBuku = (dataAccessObject) regis.lookup(“dataAccessObject”);

Object obj = Naming.lookup(“dataAccessObject”);
dataAccessObject dataBuku = (dataAccessObject) obj;
// BookController dataBuku = new BookController();

List<Book> allBook = dataBuku.getAllBook();
// System.out.println(allBook);
for(Book b:allBook) {
System.out.println(b.getId());
System.out.println(b.getTitle());
System.out.println(b.getPage());
System.out.println(b.getPublisher());
System.out.println(b.getWriter());
System.out.println(“======================”);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}

}

Naming looku, untuk melihat apakah di dalam rmiregistry ada object dengan nama “dataAccessObject”. Obect ini sebenarnya bertipe dataAccessObject, tetapi saat “diambil” dari rmiregistry dia kehilangan tipe datanya. Untuk perlu dilakukan casting

dataAccessObject dataBuku = (dataAccessObject) obj;

Compiling and Running…

1. Lakukan hal berikut. Klik kanan pada nama project -> pilih Properties -> klik menu Run -> Browse main class -> pilih class server (“ServerBook” untuk app saya). Hal ini berguna untuk memberitahukan pada java, untuk menjalankan class ini saat saya mengeksekusi file .jar -nya.

2. Compile fil-file tersebut

compiling.png

3. Buat class stub dan skeleton -nya.

stub_skel.png

4. Jalankan rmregistry. Lakukan ini dalam folder src, sebab akan gagal saat menjalankan server jika dilakukan di luar folder src. Blum tau juga apa sebabnya T.T

start_rmi.png

5. Pindah ke folder dist dan eksekusi file .jar -nya

run_jar.png

6. Eksekusi file file client

done.png

Hampir lupa ini struktur project di netbean -nya

struct.png

Masalah yang saya temukan adalah saat saya menjalankan server sama dengan cara menjalankan client, variabel connection selalu null. Tapi setelah melakukan point 1 dan point 5 server berjalan dengan lancar. Dan jangan lupa pada class Book perlu implements Serializable. ūüôā

Link download http://www.4shared.com/file/29059871/5faf7c8/src.html

that’s all for today, Gracias ūüôā

10
Nov
07

PHP with XML Data source

Berikut catatan n3tg33ks, gimana caranya membuat dan membaca data dari file xml.

Hal pertama yang perlu diperhatikan adalah, pastikan extension yang mendukung xml untuk php anda aktif. Saya pake simpleXML! Lihat di phpinfo().

simplexml.png

Untuk PHP5 settingan ini dah default.

Setelah itu saya generate file xml dengan menjalankan file php. misalnya nama file php-na create-beachfront.php. isinya kayak gini:

<?php

¬†¬†¬† $dom = new DomDocument(‘1.0’);

¬†¬†¬† $rentals = $dom->appendChild($dom->createElement(‘rentals’));

¬†¬†¬† $description = $rentals->appendChild($dom->createElement(‘description’));

¬†¬†¬† #———-

¬†¬†¬† $title = $description->appendChild($dom->createElement(‘name’));

¬†¬†¬† $title->appendChild($dom->createTextNode(‘TheBayFont’));

¬†¬†¬† #———-

¬†¬†¬† $title = $description->appendChild($dom->createElement(‘type’));

¬†¬†¬† $title->appendChild($dom->createTextNode(‘Condo’));

¬†¬†¬† #———-

¬†¬†¬† $title = $description->appendChild($dom->createElement(‘view’));

¬†¬†¬† $title->appendChild($dom->createTextNode(‘Oeanfront’));

¬†¬†¬† #———-

¬†¬†¬† $title = $description->appendChild($dom->createElement(‘space’));

¬†¬†¬† $title->appendChild($dom->createTextNode(‘1200 square feet’));

¬†¬†¬† #———–

¬†¬†¬† $title = $description->appendChild($dom->createElement(‘location’));

¬†¬†¬† $title->appendChild($dom->createTextNode(‘Long beach’));

¬†¬†¬† #———–

¬†¬†¬† $title = $description->appendChild($dom->createElement(‘price’));

¬†¬†¬† $title->appendChild($dom->createTextNode(‘1000 per week’));

¬†¬†¬† #———–

    $dom->formatOutput = true;

    $test = $dom->saveXML();

¬†¬†¬† $dom->save(‘beachFront.xml’);

    echo $test;

?>

Script di atas akan menghasilkan satu file xml dengan nama beachFront.xml.

Kemudiab saya buat file untuk membaca data dari file xml yang tercipta. Misalnya nama filenya readFromXml.php

<?php

¬†¬†¬† if(file_exists(‘beachFront.xml‘)) {

¬†¬†¬† $data = simplexml_load_file(‘beachFront.xml‘);

    # raw data in array form

    printr_r($data);

    foreach($data as $key => $dat) {

        foreach($dat as $k => $v) {

¬†¬†¬† ¬†¬†¬† ¬†¬†¬† echo $k.” : “$v;

¬†¬†¬† ¬† ¬†¬†¬† ¬† echo “<br />”;

        }

    }

}

?>

Hasilnya kira” seperti ini ūüôā

Raw data in array form:
SimpleXMLElement Object ( [description] => SimpleXMLElement Object ( [name] => TheBayFont [type] => Condo [view] => Oeanfront [space] => 1200 square feet [location] => Long beach [price] => 1000 per week ) )

Hasil iterasi:
name : TheBayFont
type : Condo
view : Oeanfront
space : 1200 square feet
location : Long beach
price : 1000 per week

09
Nov
07

Konsep MVC di PHP

ash-mvc-architecture.gifKemarin saya bikin sistem voting untuk fasilitator-masyarakat.org ¬†dan saya coba terapkan konsep arsitektur MVC¬†(Model-View_Controll) di dalamnya. Ternyata jadi juga asik deh rasanya dah bisa pasing”objek pake php. Sebenarnya sudah banyak framework” PHP yang make arsitektur MVC seperti phpMVC, cakePHP, dll. Tapi saya masih rada” sulit ngerti makanya saya coba buat aja menurut pemahaman saya paling tidak gak lari” jauhlah dari arsitektur MVC-nya.

Pertama¬†saya¬†buat¬†dulu¬†satu¬†class¬†(1 file)¬†yang¬†didalamnya¬†terdapat¬†fungsi”¬†yang¬†digunakan¬†untuk¬†komunikasi¬†dengan¬†database, ¬†cukup operasi” standar dulu, seperti nyimpen, tambah, dan hapus data. Kemudian buat view-nya yang berfungsi sebagai interface buat si user. Setelah itu buat controllernya, yang nantinya sebagai navigasi, misalnya method apa yang akan dipanggil dan kemana user akan di dispatch. Jadinya user interface¬†berdiri¬†sendiri dan¬†bagian¬†yang¬†berhubungan¬†dengan¬†database¬†berdiri¬†sendiri.

ars.png

Yah¬†lumayanlah,¬†codingnya¬†jadi¬†gak¬†berantakan¬†ūüôā

Berikut saya sertakan donlod link-na:

link 1 :  http://www.bestsharing.com/files/a3CwO363095/mvcphp.zip.html

link 2 : http://www.4shared.com/file/28782547/5b8fead1/mvcphp.html

skalian tuh promosi file sharing bagus =)

09
Nov
07

Saya jadi gila DoTA

dota_loading_screen_wallpaper_by_artgerm11.jpgTiap¬†hari¬†pasti¬†disempet”in¬†deh¬†main¬†DoTA, sampe pake” analisa segala. Saya sudah bookmark beberapa forum dan site yang bisa dijadiin pedoman gitu. Tiap hari dibaca bo, kayak lagi ambil mata kuliah 3 SKS aja nih, 2 SKS teorinya 1 SKS¬†prakteknya.¬†Sampe”¬†di¬†komputer¬†kantor¬†dah¬†ada¬†DoTA-nya¬†:P.

Pokoknya¬†seneng¬†dah¬†maen¬†DoTA.¬†Gak¬†nahan¬†gitu¬†klo¬†liat¬†temen¬†Mooo..ooo..ooo…nster¬†Kill

Jadi¬†pengen¬†main¬†aja¬†bawaannya :D. Tapi skarang sih masih cupu tunggu deh 1 taon lagi pasti dah jago. Supaya klo FTI bikin lomba DoTA bisa ikutan, biar cuma jadi bulan”an :P.

Pesan¬†buat¬†FTI,¬†jangan cuma keseringan bikin lomba DoTA¬†dan¬†bola¬†kaki¬†donk emang kita kuliah buat maen DoTA. Sering” deh bikin lomba APC gitu, biar bisa ngukur kemampuan nih. Soalnya sampe skarang saya masih anggap FTI itu tempat “penampungan” menang nama doank. Mahasiswanya cuma kebanyakan maen ūüė¶




November 2007
S S M T W T F
 12
3456789
10111213141516
17181920212223
24252627282930

Top Clicks

  • None

Blog Stats

  • 18,115 hits