Males Koding

Icon

Blog yang isinya ternyata banyak kodingannya

Aplikasi Medis Sederhana di Java – Entity

*Maaf baru posting setelah sekian lama*

Sekarang saya akan mencoba membuat kelas Entity Persistence pada project yang pernah diposting sebelum ini. Pada proyek itu telah dibuat Persistence Unitnya.
Read the rest of this entry »

Filed under: Eksplorasi, How To, Java, Medium, Network Programming, tutorial , , , , , , , ,

Aplikasi Medis Sederhana di Java EE – Introduction

Didedikasikan buat rekan-rekan IF ITB 2006.

Ada sedikit permintaaan dari beberapa junior supaya saya sedikit mengupas tentang aplikasi medis sederhana di Java EE. Aplikasi ini cuman aplikasi pengaturan dokter, pasien, dan pemeriksaan. Aplikasi ini akan dibangun dengan menggunakan basis data MySQL dan IDE Netbeans.classdiagram

Read the rest of this entry »

Filed under: Dedicated, Easy, Snippets, Software Engineering, Web Programming, tutorial , , , , ,

Persistence di Java EE

Persistence adalah sebuah fitur yang mampu melakukan mapping object ke relasional. Dengan adanya fitur ini maka kita bisa dengan mudah melakukan pengembangan objek dengan menggunakan basisdata tanpa harus mengkodekan koneksi manual ke database. Kemaren gw baru nyobain fitur persistence itu untuk Java EE dengan menggunakan Netbeans dan MySQL.

Ceritanya gw bikin sebuah table namanya products

CREATE TABLE `product` (
`ID` VARCHAR( 8 ) NOT NULL ,
`Name` TEXT NOT NULL ,
`Price` INT NOT NULL ,
`Quantity` INT NOT NULL ,
PRIMARY KEY ( `ID` )
) ENGINE = MYISAM ;

Untuk melakukan manajemennya bisa dilihat di sini.
Nantinya akan keluar
mysql1

Setelah itu kita bikin aplikasi berbasis Java EE, entah itu Enterprise app atau sekadar Web app.
Nah kita langsung coba bikin Class dari database.

mysql2

Setelah itu tinggal ikutin langkah-langkah aja.

mysql3

Kita pilih data source yang diperlukan…. Terus abis itu kita pilih table-table yang dibutuhkan juga… Dan nanti masing-masing table akan menjadi sebuah class.

mysql4

Nah nantinya kita akan punya sebuah class Product. (Nama product terpaksa direname sendiri karena pada table biasanya menggunakan nama plural sedangkan nama class biasanya singular)

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package model;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author Petra Barus
 */
@Entity
@Table(name = "products")
@NamedQueries({@NamedQuery(name = "Product.findAll", query = "SELECT p FROM Product p"), @NamedQuery(name = "Product.findById", query = "SELECT p FROM Product p WHERE p.id = :id"), @NamedQuery(name = "Product.findByPrice", query = "SELECT p FROM Product p WHERE p.price = :price"), @NamedQuery(name = "Product.findByQuantity", query = "SELECT p FROM Product p WHERE p.quantity = :quantity")})
public class Product implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID")
    private String id;
    @Basic(optional = false)
    @Lob
    @Column(name = "Name")
    private String name;
    @Basic(optional = false)
    @Column(name = "Price")
    private int price;
    @Basic(optional = false)
    @Column(name = "Quantity")
    private int quantity;

    public Product() {
    }

    public Product(String id) {
        this.id = id;
    }

    public Product(String id, String name, int price, int quantity) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.quantity = quantity;
    }

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Product)) {
            return false;
        }
        Product other = (Product) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "model.Product[id=" + id + "]";
    }

}

Filed under: Java, Medium, Web Programming , , , , , , , ,

Koneksi MySQL pada Java EE

Kalau dulu pernah gw tulis mengenai cara menggunakan MySQL C API pada Netbeans C/C++, maka sekarang pengen nulis tentang melakukan koneksi MySQL pada Servlet. Pada dasarnya menggunakan koneksi MySQL pada pemrograman web berbasis Java tidak berbeda dengan melakukan koneksi MySQL pada pemrograman aplikasi desktop biasa. Untuk melakukan koneksi dari Java, MySQL menyediakan sebuah library bernama Connector/J.

Read the rest of this entry »

Filed under: Easy, Web Programming, tutorial , , , , , ,

Manajemen MySQL dengan Netbeans

Selain sebagai IDE pemrograman, Netbeans mempunyai fasilitas untuk melakukan manajemen basis data. Pada Netbeans 6.5.1, kita diberikan opsi untuk melakukan instalasi Glassfish sebagai web server untuk Java EE. Salah satu keuntungan penggunaan Glassfish adalah fitur Java DB yang sudah terintegrasi di dalam Glassfish. Netbeans memberikan fitur untuk melakukan manajemen web server dan DBMS tersebut secara terintegrasi.

Meski demikian, dengan menggunakan Netbeans kita juga dapat melakukan manajemen web server dan DBMS yang telah terinstal sebelumnya. Kali ini akan diberikan contoh manajemen DBMS MySQL yang sudah terinstal pada paket XAMPP.

Read the rest of this entry »

Filed under: Easy , ,

Mengeksekusi dump MySQL di PHP

Untuk proses pengumpulan tugas besar II Pemrograman Internet, gw sengaja bikin sistem yang bisa mendeploy langsung hasil pekerjaan peserta. Peserta kuliah wajib mengarsipkan pekerjaannya dalam format Zip. Kemudian untuk membuat databasenya, saya wajibkan peserta untuk menyertakan berkas bernama database.sql yang berisi dump dari basisdata yang digunakan. Peserta juga diwajibkan menggunakan koneksi basisdata dengan nama pengguna, sandi, dan nama basisdata yang sudah ditentukan.

Permasalahannya adalah bagaimana memasukkan dump pada berkas tersebut ke dalam basis data.

Salah satu caranya adalah dengan menggunakan fungsi exec atau system. Dengan menggunakan perintah ini kita dapat langsung mengeksekusi lewat command line.

$commandline = "mysql -h localhost -u $username -p$password $databasename -e \"source $databasepath\"";
system($commandline);

MySQL memberikan argumen -e untuk mengeksekusi sebuah perintah kemudian keluar dari aplikasi. Dengan demikian kita hanya butuh memasukkan perintah “source” lewat argumen tersebut.

Selain itu ada cara yang sedikit naif, yakni dengan melakukan parsing terhadap berkas dan mengeksekusi satu persatu.

$fd = fopen($databasepath, 'r');
$read = fread($fd, filesize($databasepath));
$queries = explode(';', $read);
foreach($queries as $query)
    mysql_query($query);

Berkas akan diparsing berdasarkan keberadaan karakter ‘;’ yang menunjukkan batas antara sebuah klausa dengan klausa yang lain. Dan,Voila! Cukup dengan perintah explode klausa akan langsung dimasukkan ke dalam array untuk dieksekusi satu per satu.

Filed under: PHP, Snippets, Web Programming , , , , ,

Simpel MySQL Wrapper

Lumayan hasil bebersih folder tugas progin tahun lalu. Ada class wrapper buat koneksi database MySQL :P

<?php

class database {
    var $database_host;
    var $database_user;
    var $database_pswd;
    var $database_name;
    var $database_link;
    var $last_result;

    function mysql($database_host, $database_user, $database_pswd, $database_name){
        $this->database_host = $database_host;
        $this->database_user = $database_user;
        $this->database_pswd = $database_pswd;
        $this->database_name = $database_name;
        $this->database_link = mysql_connect($this->database_host, $this->database_user, $this->database_pswd) or die("<strong>Could not connect to database</strong> : ".mysql_error());
        mysql_select_db($this->database_name, $this->database_link) or die("<strong>Could not select database</strong>".mysql_error());
    }

    function query($query_string){
        $result = mysql_query($query_string, $this->database_link);
        if(!$result) {
            return false;
        } else {
            return $result;
        }
    }

    function fetch_assoc($result){
        return mysql_fetch_assoc($result);
    }

    function rows_affected($result){
        return mysql_rows_affected($result);
    }    

    function num_rows($result){
        return mysql_num_rows($result);
    }
}
//end of file

well, sekarang udah ada yang namanya framework. Bener-bener menyenangkan.

Filed under: PHP, Snippets, Web Programming , , , ,

Simple ORM di PHP

Menyambung tulisan dari Bung Aqsath mengenai pengenalan OOP di PHP, gw ada sedikit tambahan yang menarik yakni mengenai konsep ORM.

ORM atau Object Relational Mapping adalah teknik yang menghubungkan basisdata relasional dengan konsep OOP. Dengan menggunakan ORM kita dapat dengan mudah mempertahankan persistensi objek pada database. Kita dapat melakukan pembuatan obyek dan manipulasi-manipulasinya sembari mempertahankan isi data pada database yang direpresentasikan oleh objek tersebut.

Teknik ini sudah banyak sekali diimplementasikan diframework-framework seperti KohanaPHP, Symfony, CakePHP, dll.

Read the rest of this entry »

Filed under: PHP, Web Programming , , , , , , ,

Menggunakan MySQL C API pada Netbeans

Belakangan gw sering banget menggunakan Netbeans sebagai IDE utama untuk ngoding aplikasi dengan bahasa C. Penggunaan Netbeans C/C++ Development adalah salah satu fitur yang sangat menyenangkan bagi para programmer C/C++. Salah satu fitur yang menyenangkannya adalah kemudahan untuk mengkonfigurasi kode seperti penambahan library dan include folder.

Sebagai contoh kemudahannya adalah saat gw ingin menggunakan MySQL C API untuk aplikasi yang sedang gw kembangkan. Tahap-tahapnya adalah

  1. Instalasi libmysqlclient.
    Caranya sangat mudah. Untuk Ubuntu tinggal ketik pada terminal

    #sudo apt-get install libmysqlclient15-dev
  2. Include header mysql.
    Tinggal mengetikkan
    #include <mysql/mysql.h>
    

    Dapat dilihat fitur intellisense pada Netbeans langsung bekerja.

  3. Tambahkan library libmysql pada linker.
    Tanpa melakukan ini fungsi-fungsi yang akan digunakan tidak dapat dilink. Caranya adalah klik kanan pada project yang sedang dikerjakan, pilih Properties. Kemudian pilih menu Linker > Libraries. Pilih Add Library. Kemudian masukkan /usr/lib/libmysqlclient.a
  4. Setelah itu penulisan kode dapat dengan mudah dilakukan karena ada fitur intellisense.

    Dan pembangunnya juga dapat tinggal dilakukan dengan fungsi Build pada Netbeans.

Gampang jadinya ^_^

Referensi lebih lengkap mengenai fungsi-fungsi yang disediakan, ada pada dokumentasi resmi MySQL C API di sini

Filed under: C, Linux , , , , , ,

About Me

avatar
Just a man who only knows how to code but really dislike doing it

Contact Me





Top Rated

Twitter Terbaru