Friday, January 13, 2012

Uml (use case diagram)

Tags
Use Case Model
1. Teknik pemodelan untuk mendapatkan functional requirement dari sebua sistem
2. Menggambarkan interaksi antara penguna denga sistem
3. Menjelaskan secara naratif bagaimana sistem akan digunakan
4. Mengunakan skenario untuk menjelaskan setiap aktifitas yang munkin terjadi
      -Terkadang notasi kurang detil, terutama untuk bebrapa aktifitas tertentu

Kapan mengunakan Use Case?
1. Use ase sederhana digunakan pada saat proses requerement analysis
         - tidak semua paham bahasa tenis
2. Versi lebih detil dibuat sebelum implementasi rancangan
       - Dibuat khusus untuk mempermudah desain sistem oleh para developer
catatan:
- Use case merupakan sekumpulan secenario yang dihubungka sati sama lain dengan satu tujuan yang sama dari penguna.
- Use Case berisi apa yang dilakukan oleh sistem / apa yang terjadi pada sistem, bukan bagaimana sistem melakukan.

Level Use case Model
  • Usecase memiliki 2 istilah 
  1. sistem use case :interaksi denga sistem
  2. Busenes use case: interaksi bisnis dengan konsumen atau kejadian nyata
  • Cookburn menyarankan adanya pembedaan level
  1. sea level : ineraksi sistem denga aktor utama
  2. fish level : usecase yang ada karena include dari use case sea level 
  3. kite level : mengambarkan sealevel usecase untu inteaksi bisnis yang lebih luas
Element Use Case
  • Akasi yang terdapat didala sistem, melingkupi semua aksi yang harus maupun dapat terjadi
  • tidak harus berrelasi denga seorang atau sebuah actor 
  • pada umumya berupa kata kerja
element Actor
  • dalam notasi use case, penguna sistem disebut dengan actor (role)
  • actor dapat berupa namaer, pimpinan, mahasiswa dan lain sebagainya 
    • Actor tidak harus berupa manusia 
    • jika sitem A mngerjakan sebuah fungsi untuk sistem B, maka sistem B disebut dengan actor.
  • Suatu use case diagram dapat memilki banyak actor didalamnya
use case diagram simbol
  • Nama Use case 
    • sample name (buasanya berupa kata kerja )
  • patah name
    • nama dibagian depan menyatakan paket(pakage) dimana usecase tersebut berada 
 sistem bundery
  • berupa batas antara sistem dengan actor
  • Bisa dinotasikan dengan bujursangkar
  • semua use case harus beada didalam sistem bundary
Relationship
  1. Generalization
  2. include
  3. extend
  4. defendency
  5. association
Generalization
  • Hubugan antara induk dengan anak
  • anak mewarisi sifat dan method dari induk
  • induk disebut root/base
  • class yang tidak memiliki anak desebut leaf
  • terbagi menjadi 2
    • actor generalitazion
    • uscase generalization
contoh generalisasi
bersambung........................

Thursday, January 12, 2012

membatasi carakter yang masuk pada jTextField

Tags
kadang kala kita ketika membuat program java membutuhkan sebuah JTextField yang dibatasi, maksudnya gini, ketika user memasukan karakter pada jtextfield ketika sudah mencapai jumlah batas yang telah kita tentukan karakter yang di inputkan tidak tercetak lagi

ok langsung saja kita praktek:
1. Buatlah sebuah projek java aplication
2. Buatlah sebuah java class MaxDocument.java

package asep.max.text;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

/**
 *
 * @author asep
 */
public class MaxDocument extends PlainDocument{

    private int max;

    public MaxDocument(int max) {
        this.max = max;
    }

    public MaxDocument() {
        this(-1);
    }
  
    @Override
    public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
        if(this.max==-1){
            super.insertString(offs, str, a);
        }else{
            int panjangYangMasuk=str.length();
            int panjangText=getLength();
            if((panjangText+panjangYangMasuk)>this.max){
                //text tidak dimasukan
              
            }else{
                super.insertString(offs, str, a);
            }
        }     
    }
  
}
3. Buatlah jFrame sbb:
4. Lalu edit kode berikut:

public class Form extends javax.swing.JFrame {

    /** Creates new form Form */
    public Form() {
        initComponents();
        MaxDocument document=new MaxDocument(10);
        txtNama.setDocument(document);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
lalu jalankan program,
maka jumlah carakter akan dibatasi 10 carakter saja

Spring framework

SPRING FRAMEWORK
Spring framework adalah sebuah frame work yang sangat terkenal didunia pemprograman java. Spring merupakan framework ioc(injection of control) atau bisa disebut juga di(dependensi injection) jadi mekanismenya tidak perlu mendeklarasikan objek untuk mendpatkan objek tesebut karena objek tersebut akan otomatis diinstansi oleh spring atau objek akan diinjek oleh spring.Frame work ini memiliki banyak fitur untuk pembuata aplikasi, beberapa fitur yang dimiliki spring diantaranya adlah:
1.    - Mudah dipelajari dan dipahami
2.   -  Tidak terlalu rumit dan infasif
3.    -   Helper class yang banyak
4.    -  Mendukung AOP
5.    Diintegrasikan dengan framework lain mudah
Spring framework sebenrnya mengunakan teknik yang sederhana
selanjutnya kita coba untuk latihan membuatnya:
1. sepeti biasa kita buat java aplication dan beri judul bebas
2. Buat sebuah class baru 


package asep.entity;

/**
 *
 * @author asep
 */
public class DefaultMesage {
    private String mesage=null;

  
    public String getMesage() {
        return mesage;
    }

    public void setMesage(String mesage) {
        this.mesage = mesage;
    } 
}
3. buat spring file dengan cara buka menu FILE  --> open File --->
lalu beri nama file spring dan ok/ finish
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
">
    <bean id="mesage" class="asep.entity.DefaultMesage">
        <property name="mesage" value="asep"/>
    </bean>

</beans>
4. Buat java main class baru dan beri nama main, edit isinya menjadi sbb:

package asep.entity;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 *
 * @author asep
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        ApplicationContext ac=new ClassPathXmlApplicationContext("classpath:asep/entity/spring.xml");
        DefaultMesage cm=  (DefaultMesage) ac.getBean("mesage");
        System.out.println(cm.getMesage());
    }
}

5. Lalu jalankan: dengan cara klik kanan run file

Sunday, January 1, 2012

Auto Number dengan java persistence dan MYsql

Tags
Assalamualkaum Wr. Wb..
Sahabat blogger semua pernah tidak kamu ketika mengunakan sebuah program, code (id) otomatis generate seperti ada paternnya contoh HR001001. Bagaimana caranya jika kita membuat auto number dengan mengunakan java dan persistance.

1. Persiapan yang Dibutuhkan

Pertama kamu harus sudah menginstall Netbeans dan selanjutnya buatlah database terlebih dahulu denga cara :
create database autonumber;

2. Pembuatan Code Program

Selanjutnya buatlah sebuah projek baru java aplication da beri judul bebas:
disini saya memberi nama nya AutoNumber.
kemudian buatlah sebuah entity class dengan cara klik FIle--> new File --> pilih persistence dan pilih entity class masukan database yang tadi kitabuat dan beri nama classnya Mahasiswa:

package asep.autonumber;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

/**
 *
 * @author asep
 */
@Entity
public class Mahasiswa implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name="Nim",length=10,nullable=false,unique=true)
    private String nim;

    @Column(name="nama",length=20,nullable=false)
    private String nama;
  
    @Column(name="alamat",length=50,nullable=false)
    private String alamat;

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getNim() {
        return nim;
    }

    public void setNim(String nim) {
        this.nim = nim;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Mahasiswa other = (Mahasiswa) obj;
        if ((this.nim == null) ? (other.nim != null) : !this.nim.equals(other.nim)) {
            return false;
        }
        if ((this.nama == null) ? (other.nama != null) : !this.nama.equals(other.nama)) {
            return false;
        }
        if ((this.alamat == null) ? (other.alamat != null) : !this.alamat.equals(other.alamat)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 59 * hash + (this.nim != null ? this.nim.hashCode() : 0);
        hash = 59 * hash + (this.nama != null ? this.nama.hashCode() : 0);
        hash = 59 * hash + (this.alamat != null ? this.alamat.hashCode() : 0);
        return hash;
    }    
}
Lalu buat persistenceHelper:
package asep.autonumber;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 *
 * @author asep
 */
public class PersistanceHelper {
    private static final EntityManagerFactory FACTORY;
  
    static{
        FACTORY=Persistence.createEntityManagerFactory("AutoNumberPU");
    }

    public static EntityManagerFactory getFACTORY() {
        return FACTORY;
    }  
}

buat tampilan view sbb:
tambahkan geter untuk txtUserId
 public JTextField getTxtId() {
        return txtId;
    }
kemudin buat controlernya:
package asep.autonumber;

import javax.persistence.EntityManager;
import javax.persistence.Query;

/**
 *
 * @author asep
 */
public class Controler {  
    private View view;

    public Controler(View view) {
        this.view = view;
    }
  
    public void select(){
        EntityManager manager=PersistanceHelper.getFACTORY().createEntityManager();
        manager.getTransaction().begin();
        try{
            @SuppressWarnings("unchecked")
            Query id= manager.createQuery("select max(a.nim) from Mahasiswa a");
            Object coun= id.getSingleResult();
            if(coun==null){
                view.getTxtId().setText("0001");
            }else{
                int nilai=Integer.parseInt(coun.toString());
                nilai=nilai+1;
                view.getTxtId().setText("000"+String.valueOf(nilai));
            }
          
            manager.getTransaction().commit();
          
        }finally{
            manager.close();
        }
    }
  
}
lalu tambahkan pula pada action btnAdd koding ini:
private void btnIdActionPerformed(java.awt.event.ActionEvent evt) {                                    
// TODO add your handling code here:
    controler=new Controler(this);
        controler.select();
}  

3. Testing dan Jalankan Program

sekarang kita coba jalankan programnya, tekan tombol add maka number akan otomatis di create:
downloas sourcecode lengkapnya disini:
autonumber