Friday, January 13, 2012

Uml (use case diagram)

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

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

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

Thursday, December 29, 2011

JTable Dinamis Menyesuikan Dengan Panjang Record


Dynamic JTable

Assalamualakum wr. wb...
Sahabat sekalian pada kesempatan ini saya mau share cara membuat lebar JTabel (tabel pada java) otomatis menyesuaikan lebarnya sesuai dengan isi text yang ada.

1. Persiapan Kebutuhan

 Untuk tutorial kali ini kita harus menyiapkan Netbeans IDE, tetapi sebenarnya mengunakan IDE lainnya seperti Eclipe juga tidak masalah.Sebagai ilustrasi seperti ditunjukan pada gambar dibawah, kita ingin merubah tampilan Jtabel bagian yang di kasih tanda merah terdapat space yang cukup lebar.

2. Pembuatan Code

untuk memulai membuat program ini pertama buat projek baru dan beri nama TabelDinamis, stukturnya seperti ditunjukan pada gambar dibawah.
Baca Juga :
selanjutnya buatlah sebuat class baru dan berinama Mahasiswa:
package asep.tabeldinamis;

/**
 *
 * @author asep
 */
public class Mahasiswa {
   
    private String nim;
    private String nama;
    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;
    }   
}
selanjutnya buat tabelModelMahasiswa:
package asep.tabeldinamis;

import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author asep
 */
public class TableModelMahasiswa extends AbstractTableModel{
  
    private List<Mahasiswa>list=new ArrayList<Mahasiswa>();

    public TableModelMahasiswa(List<Mahasiswa> list) {
        this.list=list;
    }

    public TableModelMahasiswa() {
    }
  
 
    @Override
    public int getRowCount() {
        return list.size();
    }

    @Override
    public int getColumnCount() {
        return 3;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch(columnIndex){
            case 0: return list.get(rowIndex).getNim();
            case 1: return list.get(rowIndex).getNama();
            case 2: return list.get(rowIndex).getAlamat();
                default:return null;
        }
    }

    @Override
    public String getColumnName(int column) {
        switch(column){
            case 0: return "Nim";
            case 1: return "Nama";
            case 2: return "Alamat";
                default:return null;
        }
    } 
}
Selanjutnya buat class sesuaikan kolom:
package asep.tabeldinamis;

import java.awt.Component;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;

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

    public SesuaikanKolom(JTable table) {
        buatKolomSesuai(table);
    }
    public void buatKolomSesuai(JTable t){
        TableColumnModel columnModel=t.getColumnModel();
        for(int kol = 0;kol<columnModel.getColumnCount();kol++){
            int lebarKolomMax=0;
            for(int baris=0;baris<t.getRowCount();baris++){
                TableCellRenderer rend=t.getCellRenderer(baris, kol);
                Object nilaiTabel=t.getValueAt(baris, kol);
                Component comp=rend.getTableCellRendererComponent(t, nilaiTabel, false, false, baris, kol);
                lebarKolomMax=Math.max(comp.getPreferredSize().width, lebarKolomMax);
            }
            TableColumn kolom=columnModel.getColumn(kol);
            kolom.setPreferredWidth(lebarKolomMax);
        }
    }   
}
Slanjutnya buatlah sebuah JFrame dan masukan sebuah tabel seperti gambar berikut:
Buatlah sebuah metode tepat dibawah kode berikut:
public View() {
       initComponents();
     }
public List isiMahasiswa(){
        List list=new ArrayList();
        for(int i=0;i<20;i++){
            Mahasiswa m=new Mahasiswa();
            m.setNim("001");
            m.setNama("asep hfhfefejfoe");
            m.setAlamat("kebon jeruk gagaeierierererihfjef");
            list.add(m);
        }
        return list;
    }
Kemudian Masukan kode didalam kode ini:
public View() {
initComponents();
//letakan disini
}
public View() {
       initComponents();
       this.setLocationRelativeTo(null);
       TableModelMahasiswa modelMahasiswa=new TableModelMahasiswa(isiMahasiswa());
       TabelMahasiswa.setModel(modelMahasiswa);
       SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new SesuaikanKolom(TabelMahasiswa);
                TabelMahasiswa.revalidate();
            }
        });
    }

3. Testing dan Output

ketika code program dijalankan maka akan tampil sepetri gambar dibawah ini, kita bisa lihat pebedaannya dengan gambar diatas, space kosong yang tadi cukup lebar dan tidak merata sekarang sudah bergeser dan menyesuaikan secara otomatis.
 download kode lengkapnya disini:
tabeldinamis

Wednesday, December 28, 2011

Load Data Dari Database Ke JCombobox (Javax Swing)

 javax swing

Assalamualaikum Wr. Wb....
Sahabat blogger semua, kali ini saya akan share bagaimana caranya load data dari database ke combobox dengan mengunakan java. Cara ini sering sekali digunakan, dan wajib hukumnya bagi seorang programmer java menguasainya. Contoh ini dibuat sederhana saja hanya mengunakan satu tabel dan dua field yaitu id dan nama.
Ok kita langsung aja praktek, kalau kebanyakan teori malah makin pusing.
Buatlah database baru dengan nama combobox, tentunya sebelumnya kamu sudah menginstal database MySql.  Gambaran strukturnya seperti pada gambar dibawah ini, saya tidak akan bahas bagaimana cara create barunya, saya anggap kamu sudah pada bisa create database baru dan tabel baru. Jika belum bisa silahkan pelajari dulu cara-caranya:
Baca Juga :
Seetelah database baru dan tabel baru terbentuk sekarang kita isi tabel dengan data seperti dibawah, tidak usah terlalu banyak ini hanya untuk contoh saja. Jika nanti sudah berjalan dengan normal silahkan di modifikasi sendiri datanya:

Database baru, tabel baru dan datanya sudah kita isi, Selanjutnya buat sebuah projek baru dan berinama sesuka anda, gambarannya seperti image dibawah:

Selanjutnya buat paketbaru dan berinama bebas:
buat sebuat class baru dan berinama DatabaseHelper

package asep.comboboxwithdatabase.koneksi;

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

/**
 *
 * @author asep
 */
public class DatabaseHelper {
    private static Connection connection;

    public static Connection getConnection() {
        if(connection==null){
            try{
                Class.forName("com.mysql.jdbc.Driver");
                connection=DriverManager.getConnection("jdbc:mysql:"
                        + "//localhost:3306/combobox", "root", "root");
               
            }catch(Throwable t){
               
            }
        }
        return connection;
    }
   
   
}

selanjutnya buatlah GUI form (tampilan) seperti berikut:
da isi kode seperti berikut:
package asep.comboboxwithdatabase.koneksi;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author asep
 */
public class view extends javax.swing.JFrame {

    /** Creates new form view */
    public view() {
        initComponents();
    }

    /** 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")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        comboKategory = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        comboKategory.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "plihan" }));
        comboKategory.addPopupMenuListener(new javax.swing.event.PopupMenuListener() {
            public void popupMenuCanceled(javax.swing.event.PopupMenuEvent evt) {
            }
            public void popupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) {
            }
            public void popupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent evt) {
                comboKategoryPopupMenuWillBecomeVisible(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(comboKategory, javax.swing.GroupLayout.PREFERRED_SIZE, 301, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(24, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(34, 34, 34)
                .addComponent(comboKategory, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(36, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

private void comboKategoryPopupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent evt) {                                                       
// hapus semua data combobox
    comboKategory.removeAllItems();
    //load data dari database ke combo box
    Statement statement=null;
    ResultSet resultSet=null;
    try{
        statement=DatabaseHelper.getConnection().createStatement();
        resultSet=statement.executeQuery("select nama from kategori_barang");
        while(resultSet.next()){
            String kategory=resultSet.getString("nama");
            comboKategory.addItem(kategory);
        }
    }catch(SQLException e){
      
    }finally{
        try{
            if(resultSet != null){
                resultSet.close();
            }
        }catch(SQLException e){
           
        }
    }
    try{
        if(statement !=null){
            statement.close();
        }
    }catch(SQLException e){
       
    }
}                                                       

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(view.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(view.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(view.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(view.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new view().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JComboBox comboKategory;
    // End of variables declaration
}
untuk lebih jelasnya silahkan download sourcodnya:
comboboxwithdatabase


mudah mudahan bisa membantu kamu, terutama kamu yang baru belajar Java.
Sampai ketemu di postingan selanjutnya

Salam

Monday, September 26, 2011

Efek cermin dengan java 2d

Assalamualakum wr. wb...
Sahabat blogger semua seperti kita ketahui java perupakan salah satu bahasa pemprograman yang cukup populer saat ini. Jika anda orang yang ingin menekuni bidang programming, bahasa ini cukup menjanjika jika dipelajari. Banyak aplikasi perbankan yang dibuat menggunakan bahasa ini, jadi ga rugi dong kalau kita pelajari.. dan hampir di setiap kampus mau Negri maupun swasta ada mata kulian ini walalupun istilahnya macaem-macem.
Salahsatu bagian dari pemprograman java adalah grafik 2d, bagian ini banyak mengolah tampilan bia render, cermin duplikasi dan lain sebagainya.
Kali ini kita akan buat tutorial membuat efek cermin tampilannya seperti diatas.

Baca Juga :
Untuk memulainya kita harus menuiapkan beberapa kebutuhan.
  1. Netbeans IDE, bisa kamu download dari link berikut  Netbeans
  2. Siapkan Image untuk kita jadikan efek cermin.
 Selanjutnya jika Netbeans sudah siap, buatlah projek java baru dengan struktur seperti image dibawah, untuk proses pembuatnnya seperti biasa, buatlah pecage sbb:
untuk isi kode pada class IconBayang sbb:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package asep.swiing008.Bayangan;

import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;

/**
 *
 * @author user
 */
public final class IconBayang {

    public IconBayang() {
    }
    public static BufferedImage ConfertToBufferedImage(Image image){
        //mengambil ukuran image
        int with=image.getWidth(null);
        int heigh=image.getHeight(null);
        //membuat buffered image baru
        BufferedImage result=new BufferedImage(with, heigh, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g=result.createGraphics();
        g.drawImage(image, 0,0, null);
        g.dispose();
        //kembalikan hasil
        return result;
    }
    public static BufferedImage createreplectionbufferedImage(BufferedImage image){
        //membuat result image
        BufferedImage result=new BufferedImage(image.getWidth(), image.getHeight()*6/4, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g=result.createGraphics();
        //gambarkan image
        g.drawImage(image, 0,0, null);
        //gambar cermin gambar
        g.scale(1.0, -1.0);
        g.drawImage(image, 0,-image.getHeight()*2, null);
        g.scale(1.0, -1.0);
        //pindahkan ke cermin
        g.translate(0, image.getHeight());
        //buat gradien mask
        GradientPaint mask=new GradientPaint(0, 0, new Color(1f, 1f, 1f,0.5f), 0, image.getHeight()/2, new Color(1f, 1f, 1f, 0f));
        g.setPaint(mask);
        //set alpha composite
        g.setComposite(AlphaComposite.DstIn);
        //menggamnbar mask
        g.fillRect(0, 0, image.getWidth(), image.getHeight());
        g.dispose();
        return result;
    }
    public static BufferedImage createreplectionbufferedImage(Image image){
        return createreplectionbufferedImage(ConfertToBufferedImage(image));
    }
}

untuk isi kode pada class iconlabel sbb:

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

package asep.swiing008.Bayangan;

import java.awt.image.BufferedImage;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

/**
 *
 * @author user
 */
public class IconLabel extends JLabel{

    private Icon iconReflect;

    public IconLabel() {
        super();
        setHorizontalTextPosition(SwingConstants.CENTER);
        setVerticalTextPosition(SwingConstants.BOTTOM);
    }

    public Icon getIconReflect() {
        return iconReflect;
    }

    public void setIconReflect(Icon iconReflect) {
        this.iconReflect = iconReflect;
        if(iconReflect==null){
            firePropertyChange("icon", getIconReflect(), iconReflect);
            this.iconReflect=iconReflect;
            setIcon(iconReflect);
        }else{
            if(!(iconReflect instanceof ImageIcon)){
                throw new IllegalArgumentException();
            }
            firePropertyChange("icon", getIconReflect(), iconReflect);
            this.iconReflect=iconReflect;
            BufferedImage img=IconBayang.createreplectionbufferedImage(
                    ((ImageIcon)iconReflect).getImage());
            setIcon(new ImageIcon(img));
        }
    }


}







kemudian copi dan paste sebuah image kedalam pecage tadi.
isi kode untuk class Run sbb:
package asep.swiing008.Bayangan;

import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import sun.applet.Main;

/**
 *
 * @author user
 */
public class run extends JFrame{

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new run().setVisible(true);
            }
        });
    }

    public run() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("percobaan asep");
        setLayout(new BorderLayout());
        IconLabel icon=new IconLabel();
        icon.setIconReflect(new ImageIcon(this.getClass().getResource("icon.jpg")));
        add(icon);
        pack();
        setLocationRelativeTo(null);
    }
}

kurang lebih seperti itu bagi yang kurang paham bisa bertanya di komentar.
selamat mencoba.........

Tuesday, April 26, 2011

Export import database melalui dos(comand)


Assalamualakum Wr. Wb...
MySql adalah database yang cukup populer dan banyak penggunanya bahkan facebook pernah mengunakannya. MySql saat ini sudah tidak open source lagi karena sudah diakuisisi oleh Oracle. Untuk lebih jelasnya mengenai license MySql silahkan kunjungi situs resminya
www.mysql.com
Bagi kamu yang sudah terbiasa mengunakan  MySql tidak usah hawatir karena komunitas yang dulu mengembangkan MySql sudah membuat pengembangan yang semisal MySql uaitu MariaDB, untuk lebih jelasnya silahkan kunjungi web resminya.
Maria DB
Baca Juga :
Kemarin saat saya mengumpulkan tugas database, banyak dari teman – teman aku yang mengalami masalah, memindahkan databasenya ke komputer dosen. Teman ku melakukan backup database dengan cara mengcopy folder databasenya di path /mysql/data saat mereka memindahkan ke komputer yang lain dan membuka database tersebut terdapat indikasi error pada table – tablenya.
Dan disini saya akan menyelesaikan masalah tersebut dengan melakukan Export dan Import Database kesebuah file .sql melalui Command Prompt (DOS) menggunakan mysqldump.

Sebenarnya cara memindahkan database dari satu komputer ke komputer lainnya tidak hanya dengan cara ini. Kamu juga bisa mengunakan HeidiSQL atau PHPMyAdmin kedua GUI (graphical user interface) tools ini didalamnya sudah ada menu untuk export dan inport database. Tapi bagi kamu yang baru belajar saya sarankan mengunakan CMD, alasannya apa supaya terbiasa dengan script script. Jika kamu nanti bekerja dilingkungan server apalagi server yang digunakan Linux maka script-scrit CMD ini yang digunakan.

Gausah panjang lebar ikuti tutorialnya berikut ini:
  1. Membeckup
    mysqldump [Nama Database] -u [Username] -h [Host] -p [Password] > [Nama File Database].sql
    Contohnya :
    mysqldump perpustakaan -u root -h localhost -p > perpustakaan.sql  
  2. Memanggil kembali pada komputer lainnya
    Dan untuk mengambil atau import database dari sebuah file dengan masuk pada mysql prompt dan buat database yang ingin dibuat:

    1. Buat database baru
      create database [Nama Database];
      Contohnya :
      create database perpustakaan
    2. Mengambil atau import database yang ada ke sebuah file:
    mysql [Nama Database] -u [Username] -h [Host] -p [Password] < [Nama File Database].sql
      Contohnya :
    mysql perpustakaan -u root -h localhost -p < perpustakaan.sql

      
Saya rasa script ini tidak terlalu rumit tinggal dicoba saja, sesuatu yang tidak pernah dicoba tidak akan tau seberapa mudah dan seberapa sulitnya hal itu. Jika masih mentok juga atau error-error terus ya sudah coba saja dengan GUI tools yang saya sebutkan diatas.

Selamat mencoba, semoga berhasil. Jika ada pertanyaan dan saran silahkan cantumkan pada kolom komentar.

Salam

Saturday, April 16, 2011

Trik mengatasi error windows tanpa instal ulang


Ide Tulisan ini saya buat karena tadi siang habis mengatasi masalah ini dikantor, ya biasa windows corrupt.
sampai saat ini saya masih belum tahu apakah trik ini berlaku disemua versi windows karena sampai sekarang untuk client saya hanya memakai windows XP, bukan windows lainnya.
Ya seperti artikel terdahulu saya tentang NTLDR is Missing, kali ini saya akan menoba memberikan trik lainnya untuk mengatasi masalah windows anda tanpa harus instal ulang.

1. NTOSKRNL Rusak atau Hilang (Missing or Corrupt)
Jika Anda mendapati pesan error bahwa "NTOSKRNL not found"

- Boot PC anda dengan CD windows (cd Harus sesuai dengan yang terinstal)
- Pada saat muncul opsi R=Repair yang pertama, tekan tombol R
- Tekan angka sesuai dengan lokasi instalasi Windows yang ingin diperbaiki yang sesuai (biasanya 1 c:\windows)
- Setelah muncul c:\windows pindahkan ke drive cd anda (misal e: enter dengan asumsi e : adalah Cd rom yang berisi installer windows)
- lalu ketik : cd i386
- kemudian ketik : expand ntkrnlmp.ex_ C:\Windows\System32\ntoskrnl.exe setelah sukses ketik exit dan restart PC anda

2. HAL.DLL Rusak atau Hilang (Missing or Corrupt)
Jika Anda mendapatkan error hal.dll error or missing kemungkinan boot.ini salah konfigurasi atau misconfigured

- Boot PC anda dengan CD windows (cd Harus sesuai dengan yang terinstal)
- Pada saat muncul opsi R=Repair yang pertama, tekan tombol R
- Tekan angka sesuai dengan lokasi instalasi Windows yang ingin diperbaiki yang sesuai (biasanya 1 c:\windows)
- Setelah muncul c:\windows pindahkan ke drive cd anda (misal e: enter dengan asumsi e : adalah Cd rom yang berisi installer windows)
- lalu ketik : cd i386
- kemudian ketik : bootcfg /list untuk mengecek tampilan boot.ini anda
- lalu ketik : bootcfg /rebuild untuk memperbaiki konfigurasi boot.ini setelah selesai ketik exit dan restart PC

3. Direktori \WINDOWS\SYSTEM32\CONFIG rusak atau hilang)
Jika Anda mendapati pesan error pada PC anda sebagai berikut "Windows could not start because the following files is missing or corrupt
\WINDOWS\SYSTEM32\CONFIG\SYSTEM or \WINDOWS\SYSTEM32\CONFIG\SOFTWARE"


- Boot PC anda dengan CD windows (cd Harus sesuai dengan yang terinstal)
- Pada saat muncul opsi R=Repair yang pertama, tekan tombol R
- Tekan angka sesuai dengan lokasi instalasi Windows yang ingin diperbaiki yang sesuai (biasanya 1 c:\windows)
- Lalu ketik cd \windows\system32\config
- Selanjutnya tergantung letak kerusakannya misal software
- jika software ketik : ren software software.old
- jika system ketik : ren system system.old
- lalu ketik : copy \windows\repair\software jika software atau
- ketik : copy \windows\repair\system jika system setelah selesai ketik exit dan restart PC anda.
Semoga sedikit Trik ini berguna untuk para pemula.
wis ya, ki wis meh jam 3 subuh ngantuk sesuk sik katene kerjo rek, bye

cara instal ulang notebook acer aspire one gratis



sebener-nya aku nulis artikel ini sekaligu curhat(hahaha.. gelakguling ), soal-nya dulu nasibku sial bgt.. beli netbook acer aspire one, baru sekitar 3 bulan eh.. jadi lambat bgt... xpasti. nyalain-nya aja lama bgt (mungkin klo ditinggal lari keliling lapangan 2 kali, masih tetep loading)
mungkin gara2 sering download, tapi ga pernah scan virus..(maklum, males update-nya sengihnampakgigi)
waktu mau cari tugas, netbook aku nyalain.. eh layar-nya ga nyala.. (tapi tombol power-nya nyala)

keesokan harinya.. aku service, kata si tukang service acer, ga bisa nyala karna sering dimatiin ga pake shutdown malu (hang terus sih..). untung masih garansi, klo gak.. pasti aneh.
skitar 2 minggu, netbook-ku sembuh, tapi masih tetep lambat. kata si tukang servis, mending di install ulang aja.. dg. keras kepala aku bilang, install ulang sendiri aja(seingetku ada software bawaan acer di netbookku namanya Acer eRocevery Management, buat install ulang). sampe rumah, eh.. eRecovery tadi ngadat.. hah. waktu itu jelas bingung.. akhirnya (abis 3 menit meditasi di kamar mandi), aku dapet cara.. install ulang lewat flashdisk.

bagi yg blom tau netbook pasti di bilang "kenapa ga pake CD aja? udah murah, ga ribet lagi.."
perlu kamu tau.. netbook itu biasa-nya ga punya CD-Room. klo notebook sih biasa-nya punya jadi gampang diatasi. besok-nya, aku install ulang lewat flashdisk, ga bisa malah error (denger2, caraini bisa dipake di ASUS EEE PC). karna gagal aku pake Live USB, bisa jalan..! tapi repot 100% (program-nya ga lengkap lagi). jadi aku cuma backup data-nya, terus install ulang di pusat acer. aku cuma backup data ke drive D.

waktu minta install ulang, suruh bayar 50rb!! marah (50rb bisa buat makan siang 17 hari lho.. dah pake minum lagi). walaupun masih garansi, tapi klo install ulang harus bayar. (kata-nya sih asli..around) ya gpp lah.. yg penting bisa bener. kata si pen-servise, di install pake USB ga bisa, soal-nya ga asli acer..(dasar, netbook matre merajuk)

beberapa minggu kmudian.. netbook aku ambil, udah normal lagi. tapi.. blur data2 ilang smua.
padahal penting2 tuh data(padahal bnyak game yg susah2 aku kumpulintension)
partisi-nya juga keubah.. dulu ada 4 drive, sekarang jadi 2.. parah bgt kan. dulu aku kira cuma drive C yg di install ulang... eh malah semua.

1 bulan kemudian.. netbookku jadi lambat lagi..
padahal dah pake antivirus (tapi jarang updatejelir ). mau install ulang lagi tapi sayang.. bayar 5orb lagi.. mending buat beli sate maduragelakguling . sodaraku bilang: "pake CD-Room external aja"
beuh.. CD-Room external itu kan mahal bgt..
mending aku cari cara install ulang lain yg rumit tapi hemat..
nah di google ketemu! ada yg mbahas itu di suatu forum yg kurang terkenal sengihnampakgigi


CARA 1
Start > (All) Programs > Empowering Technology > Acer eRecovery Management
CARA 2

1. restart netbook mu
sebener-nya ga di restart gpp. yg penting kamu ada di posisi sebelum masuk ke operating system (windows xp, vista, mac os, dll.) atau waktu proses boot-up

2. pencet Alt + F10
pas netbookmu nyala.. ada layar item, trus ada tulisan acer warna putih.. pencet pas itu.
disitu proses boot-up, pencet-nya harus bareng.. jari satu dengan yg lain diusahakan kompakgelakguling

3. ikuti instruksi



cara yg aku pake cara 2.. soal-nya, kaya tadi yg aku bilang.. Acer eRecovery Management ku kena virus, jadi cara 1 ga bisa dipake. klo cara 2, walaupun kena virus.. selagi masih bisa ke proses boot-up.. itu ga masalah