(JavaFX)Pallate for JavaFX (Scene Builder)

Salam semangat, wah wah gak jauh beda dengan kesemangatan yang di berikan. hari ini ane full di depan laptop karena ane gak ada jadwal di kampus jadi ane sempatkan untuk menambah referensi, karena ilmu itu nyata dan tak ada batasnya, semua yang ada di dunia ini tidak akan pernah merasa ilmu itu cukup, apa lagi kita yang mengambil bidang di dunia yang tidak nyata, mari sempatkan lah untuk bermain dengan dunia yang tidak nyata sepuas puas agan.

Tampilan di java sebenarnya banyak yang mengembangkan, dari beberapa macam itu menurut ane gak ada yang sesempurna, karena tampilan yang baik itu memberikan tampilan yang dapat mengubah usernya, dalam keadaan duka maka mereka akan menjadi ceria, Tampilan Swing,AWT dan JavaFX, nah kali ini kita akan membahas tampilan javaFX, karena menurut ane tampilan yang di berikan oleh javaFX lebih menarik dan simple. banyak yang mengeluh katanya membuat tampilan di javaFX secara code, ternyata tidak. ada Pallate yang di gunakan untuk memudahkan membuat sebuah tampilan. Scene Builder nah langsung aja agan download link di bawah ini.

Screenshot - 06242013 - 03:53:48 PM

http://www.oracle.com/technetwork/java/javafx/overview/index.html

Terus install seperti biasa

(JavaEE)Hibernate Validator _ Membuat Validasi pada sebuah entitas

Salam semangat, sudah lama kita tidak bersue(berjumpa)di blog ini, ane lagi banyak buanget kesibukan dengan kuliah dan tugas, tapi ane selalu menyempatkan kan untuk mencari sesuatu yang baru untuk di pahami dan di pelajari, satu minggu ane di gembleng dengan tugas dan tugas itu ane kerjakan dengan teman teman yang bukan satu kelompok, tapi tidak salah nya kalo kita membagi apa yang kita bisa. saya ingatkan kepada semua agan-agan agar membagi ilmunya kepada yang membutuhkan, karena ilmu kalo tidak di bagi maka ilmu itu akan hilang dengan bagaimananya.

Hibernate Validator 5.x is the reference implementation for JSR 349 – Bean Validation 1.1 of which Red Hat is the specification lead.

JSR 349 – Bean Validation defines a metadata model and API for JavaBean validation as well as method validation. The default metadata source are annotations, with the ability to override and extend the meta-data through the use of XML validation descriptors. The API is not tied to a specific application tier or programming model. It is specifically not tied to either the web tier or the persistence tier, and is available for both server-side application programming, as well as rich client Swing application developer.

Together with the reference implementation, Hibernate provides also the Bean Validation TCK. You can find more information about the TCK here.

For more information regarding the specification itself refer to beanvalidation.org.

All artifacts described here, namely Hibernate Validator 5 as well as Bean Validation API and TCK are provided and distributed by JBoss (Red Hat) under the Apache Software License 2.0.http://www.hibernate.org/subprojects/validator.html

Jadi kalo menurut ane, hibernate validator merupakan framework yang dibuat untuk kemudahan dalam membuat validasi dengan entitas yang di tentukan, banyak sekali bentuk yang di buat oleh team hibernate validator seperti validasi email, pass, ukuran dan sebagainya, agan bisa ke http://docs.oracle.com/javaee/6/tutorial/doc/gircz.html untuk memahami itu semua.

Example hibernate Validator pada entitas

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

import javax.persistence.Version;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;


/**
 *
 * @author aerdy
 */
public class Person {
     private int id;
    private String nama;
    private String penyakit;
    private String alamat;

    public Person() {
    }
    @NotNull
    @Size(min = 1,max = 20)
    public String getAlamat() {
        return alamat;
    }
   
    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }

    public int getId() {
        return id;
    }

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

    public String getNama() {
        return nama;
    }

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

    public String getPenyakit() {
        return penyakit;
    }

    public void setPenyakit(String penyakit) {
        this.penyakit = penyakit;
    }
}

(Java)ASCII Seni Desain Annabe dengan java AWT

Kode Standar Amerika untuk Pertukaran Informasi atau ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter “|”. Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 7 bit. Namun, ASCII disimpan sebagai sandi 8 bit dengan menambakan satu angka 0 sebagai bit significant paling tinggi. Bit tambahan ini sering digunakan untuk uji prioritas. Karakter control pada ASCII dibedakan menjadi 5 kelompok sesuai dengan penggunaan yaitu berturut-turut meliputi logical communication, Device control, Information separator, Code extention, dan physical communication. Code ASCII ini banyak dijumpai pada papan ketik (keyboard) computer atau instrument-instrument digital.
Jumlah kode ASCII adalah 255 kode. Kode ASCII 0..127 merupakan kode ASCII untuk manipulasi teks; sedangkan kode ASCII 128..255 merupakan kode ASCII untuk manipulasi grafik. Kode ASCII sendiri dapat dikelompokkan lagi kedalam beberapa bagian:
Kode yang tidak terlihat simbolnya seperti Kode 10(Line Feed), 13(Carriage Return), 8(Tab), 32(Space)
Kode yang terlihat simbolnya seperti abjad (A..Z), numerik (0..9), karakter khusus (~!@#$%^&*()_+?:”{})
Kode yang tidak ada di keyboard namun dapat ditampilkan. Kode ini umumnya untuk kode-kode grafik.
Dalam pengkodean kode ASCII memanfaatkan 8 bit. Pada saat ini kode ASCII telah tergantikan oleh kode UNICODE (Universal Code). UNICODE dalam pengkodeannya memanfaatkan 16 bit sehingga memungkinkan untuk menyimpan kode-kode lainnya seperti kode bahasa Jepang, Cina, Thailand dan sebagainya.
Pada papan keyboard, aktifkan numlock (tidak terdapat pada laptop), tekan tombol ALT secara bersamaan dengan kode karakter maka akan dihasilkan karakter tertentu. Misalnya: ALT + 44 maka akan muncul karakter koma (,). Mengetahui kode-kode ASCII sangat bermanfaat misalnya untuk membuat karakter-karakter tertentu yang tidak ada di keyboard.(http://id.wikipedia.org/wiki/ASCII)

Kalo menurut ane ASCII merupakan grafik yang beberbentuk text dengan semacam terminal yang dibuat menggunakan text dengan tampilan yang menarik, disini ane cuma membuat tampilan ASCII dengan nama yang kita inginkan. banyak teknik yang dapat digunakan yaitu hanya menggunakan teknik 2D dan library yang sudah ada, disini ane mengguakan AWT sebagai bentuk untuk membuat tampilan nama.

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

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

/**
 *
 * @author victor
 */
public class ASCIIExample {

   public static void main(String[] args) throws IOException {
 
	int width = 200;//lebar yang  di inginkan
	int height = 30;//tinggi yang di inginkan
 
        //BufferedImage image = ImageIO.read(new File("/home/victor/Desktop/logo.jpg"));
	BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
	Graphics g = image.getGraphics();
	g.setFont(new Font("SansSerif", Font.BOLD, 24));
 
	Graphics2D graphics = (Graphics2D) g;
	graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
				RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
	graphics.drawString("ANNABE", 10, 20);//nama yang diinginkan
 
	//save this image
	ImageIO.write(image, "png", new File("/home/victor/ascii-art.png"));
 
	for (int y = 0; y < height; y++) {
		StringBuilder sb = new StringBuilder();
		for (int x = 0; x < width; x++) {
 
			sb.append(image.getRGB(x, y) == -16777216 ? " " : "A");
 
		}
 
		if (sb.toString().trim().isEmpty()) {
			continue;
		}
 
		System.out.println(sb);
	}
 
  }
 
}

Screenshot - 06232013 - 10:38:23 AM

(Java) AOP – Aspect Oriented Programming

Aspect Oriented Programming (AOP) adalah pola pikir dalam pemrograman. AOP berada di posisi yang sama dengan Object Oriented Programming (OOP) yaitu suatu konsep dan AOP ada untuk melengkapi OOP. AOP menambahkan konsep baru dan sederhana ke dalam OOP untuk lebih mempertajam (sifat) modularity yang ada dalam OOP.

Pemahaman saya tentang modularity dalam pemrograman adalah memisahkan suatu aplikasi menjadi bagian-bagian yang lebih kecil, yang disebut modul. Modul-modul itu dapat terdiri dari dari satu atau banyak kelas (class).
1

Akan terdapat banyak kelas dalam satu aplikasi. Dan bagaimana kelas-kelas itu saling berhubungan adalah dengan pemanggilan fungsi (method). Di sinilah AOP berperan. Awalnya hubungan antar kelas berlangsung seperti ini.

2

Kemudian diterapkan konsep AOP di sana, sehingga menjadi seperti ini.

3

Dengan begini ActionSave bahkan tidak tahu kalau fungsi auth() akan selalu di eksekusi terlebih dahulu tepat sebelum fungsi save() dieksekusi. Sangat mempertajam sifat modularity. Apa bagusnya hal itu?

ActionSave tidak akan pernah bergantung pada Auth. ActionSave adalah kelas independen.

Apakah ActionSave tidak bergantung pada Dao? Tidak, karena ActionSave dan Dao memiliki satu tugas yaitu meyimpan data (save) dan ActionSave tidak akan pernah lengkap dan tidak akan berjalan dengan benar jika mereka dipisahkan. Sedangkan dengan Auth, ActionSave dapat saja berjalan dengan benar dengan hasil yang diinginkan walaupun tanpa autentikasi.

Auth memiliki fungsi-fungsi untuk autentikasi.

Hal baik lainnya

1. Reusable
2. ActionSave tidak perlu bertanggung jawab untuk pemanggilan fungsi autentikasi user. Sebaliknya Auth yang akan bertanggung jawab agar ActionSave selalu di akses oleh user-user yang berhak (isu crosscutting-functionalities).
3. Tidak ada duplikasi kode program untuk fungsi autentikasi, hanya berada dalam Auth (isu code-scattering).
4. Tidak ada duplikasi pemanggilan fungsi autentikasi (isu code-scattering).
5. Jika terjadi perubahan di kelas Auth tidak akan pernah mengganggu ActionSave (isu code-scattering).
6. Kode program akan menjadi lebih rapi.

Example

 aspect Logger {
 
        void Bank.transfer(Account fromAcc, Account toAcc, int amount, User user, Logger logger)  {
                logger.info("Transferring money...");
        }
 
        void Bank.getMoneyBack(User user, int transactionId, Logger logger)  {
                logger.info("User requested money back.");
        }
 
        // other crosscutting code...
}

Kesimpulan :

Bahwa AOP digunakan untuk menyempurnakan oop, dimana AOP merupakan System yang digunakan untuk memanagement Modeling yang di buat, biasanya AOP digunakan pada saat kita menggunakan Framework Spring untuk memparsing XML agar di olah dengan baik.

Referensi :
http://www.mkyong.com/spring/spring-aop-examples-advice/
http://blog.uin-malang.ac.id/ainul/2010/11/01/aspect-oriented-programming-aop-%E2%80%93-konsep-dasar/#respond

(Parsing) DOM VS SAX

Simple API for XML Parsing (SAX) dan Document Object Model (DOM)

Both SAX and DOM are used to parse the XML document. Both has advantages and disadvantages and can be used in our programming depending on the situation.

SAX:

  • Parses node by node
    Doesn’t store the XML in memory
    We cant insert or delete a node
    SAX is an event based parser
    SAX is a Simple API for XML
    doesn’t preserve comments
    SAX generally runs a little faster than DOM
  • Figure2

DOM:

  • Stores the entire XML document into memory before processing
    Occupies more memory
    We can insert or delete nodes
    Traverse in any direction.
    DOM is a tree model parser
    Document Object Model (DOM) API
    Preserves comments
    SAX generally runs a little faster than DOM
  • dom

(http://stackoverflow.com/questions/6828703/difference-about-sax-and-dom)

Dari beberapa kelebihan dan kekurangan yang saya dapatkan di alamat tersebut, bahwa keduanya sama sama merupakan XML parsing, dengan itu kita dapat menyimpulkan bahwa, saat DOM melakukan parsing XML, parsinganan itu di simpan pada memory, sedangkan untuk SAX tidak, sehingga SAX lebih cepat dari pada DOM, tapi dalam ruang lingkup sequrity DOM sangat di anjurkan, karena parsing XML nya di bungkus dan di letakan pada memory, sehingga pada saat pihak yang ingin mencuri data tersebut harus membongkar bungkusan itu.

Sehingga semua itu tergantung dengan kasus yang di ambil, ketika data itu tidak terlalu berpengaruh sebaiknya menggunakan SAX, dan ketika data parsing XML itu sangat di unggulkan sebaiknya menggunakan DOM.

Referensi :
http://stackoverflow.com/questions/6828703/difference-about-sax-and-dom
http://javarevisited.blogspot.com/2011/12/difference-between-dom-and-sax-parsers.html
http://www.coderanch.com/t/122873/XML/SAX-DOM

(Java)Mencari Akar persamaan dengan metode Bisection – KOMPUTASI NUMERIK

Penyelesaian persamaan non linier adalah penentuan akar-akar persamaan non linier. Akar sebuah persamaan adalah nilai-nilai x yang menyebabkan nilai sama dengan nol. Dengan kata lain akar persamaan adalah titik potong antara kurva dan sumbu X.
Beberapa persamaan polynomial yang sederhana dapat diselesaikan dengan theorema sisa, sehingga tidak memerlukan metode numerik dalam menyelesaikannya, karena metode analitik dapat dilakukan.Tetapi bagaimana menyelesaikan persamaan . Tampaknya sederhana, tetapi untuk menyelesaikan persamaan non linier merupakan metode pencarian akar secara berulang-ulang. Beberapa metode akan dibahas dalam bab ini, diantaranya adalah metode bisection dan regula falsi.
1.1. Metode Bisection
Sebelum lebih jauh membahas metode bisection, ada sebuah teorema yang senantiasa digunakan dalam proses iterasi sebagai berikut.

Theorema 1.
Suatu fungsi f(x) terdefinisi dan diketahui sebuah range . Fungsi f(x) akan mempunyai akar bila dan berlawanan tanda atau memenuhi
Ide awal metode ini adalah metode table, dimana area dibagi menjadi N bagian. Hanya saja metode bisection ini membagi range menjadi 2 bagian, dari dua bagian ini dipilih bagian mana yang mengandung dan bagian yang tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga diperoleh akar persamaan.

a
Gambar 1. Pencarian akar menggunakan metode bisection
Untuk menggunakan metode bisection, terlebih dahulu ditentukan batas bawah (a) dan batas atas (b). Kemudian dihitung nilai tengah :
Dari nilai x ini perlu dilakukan pengecekan keberadaan akar. Secara matematik, suatu range terdapat akar persamaan bila f(a) dan f(b) berlawanan tanda atau dituliskan . Setelah diketahui dibagian mana terdapat akar, maka batas bawah dan batas atas di perbaharui sesuai dengan range dari bagian yang mempunyai akar.

 import javax.swing.JOptionPane;

/**
 *
 * @author aerdy4
 */
public class Bisection {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    float a,b,c,fa,fb,fc,konfergensi;
    int iterasi;
    
    a = Float.parseFloat(JOptionPane.showInputDialog("Masukkkan A"));
    b = Float.parseFloat(JOptionPane.showInputDialog("Masukkkan B"));
    konfergensi = 1;
    iterasi = 0;
    while(konfergensi>0.0000005){
        c=(a+b)/2;
        fa=(2*a)+3;
        fb=(2*b)+3;
        fc=(2*c)+3;
        
        if((fc*fb)>2){
            b=c;
            
        }else{
            a=c;
        }
        konfergensi=a-b;
        if(konfergensi<0){
            konfergensi = konfergensi *-1;
            iterasi++;
        }
        System.out.println("Jumlah Iterasi :"+iterasi);
        System.out.println("Akar Persamaan :"+a);
    }
    }
}
Capture

(Java)Time And Date API

Selamat pagi mas bro, gimana games yang kita buat menggunakan corona SDK kemarin, cukup mudahkan, bangun tidur langsung menatap layar laptop dan coding deh, itu emang yang sehat di lakukan, karena pada saat bangun tidur semua sel sel syaraf itu berfunngsi dari nol, jadi pada saat kita belajar pada bangun tidur insya allah itu akan menjadi berkah untuk teman teman, yang baik untuk waktu belajar adalah waktu bangun tidur dan pada saat kita ingin tidur, lakukan dengan baik ya teman – teman, karena itu semua untuk teman – teman semua, ambo senang dan semua teman – teman senang temasuk pacar dan orang tua, gimana gak kalau kita semangat dan mencapai mimpi kita gak kita saja yang sangat bersykur, itu semua yang ada di samping teman – teman akan mengalami kesenangan yang teman – teman alami, jadi selalu semangat dan lakukan lah semua itu dengan ke ikhlasan, detik tak bergerak itu tidak mungkin..

tema kali ini kita akan membahas sebuah API pada java, kali ini kita membahas API TIME an Date, karena untuk membuat date and time pada aplikasi java dalam bentuk GUI yang praktis itu sudah di sediakan untuk plugin nya, nah kita akan membuka itu semua, kenapa itu ada dan dapat digunakan dengan praktis, karena itu semua berjalan pada mesin java.

Contoh sederhana Date And Time API

 package date.time.api;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

/**
 *
 * @author aerdy4
 */
public class DateTimeAPI {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Calendar call = new GregorianCalendar(2013,01,01); // konstuktor Calender
        call.set(Calendar.MONTH,Calendar.MAY);// memasukkan aktifitas Calender
        System.out.println("Year :"+call.get(Calendar.YEAR));// menampilakan caldender untuk tahun
        System.out.println("Month :"+call.get(Calendar.MONTH)+1);
        System.out.println("Days :"+call.get(Calendar.DAY_OF_MONTH));
    
    SimpleDateFormat date_format = new SimpleDateFormat("yyyyMMdd");
    System.out.println(date_format.format(call.getTime()));
}
}

pada code diatas itu kita dapat mengatur bentuk date yang kita inginkan, karena kita penciptanya jadi terserah kita untuk membuat bentuk seperti apa, yang penting basic nya yaitu yyyyMMdd, nah kalo udah mengeri kita akan mencoba membuat sebuah konversi date.

Konversi Date

 package date.time.api;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 *
 * @author aerdy4
 */
public class KonversiDate {
    private void stringDate(){
        try {
            Date date1;
            date1 =new SimpleDateFormat("MM/dd/yy").parse("05/18/02");
            System.out.println(date1);
            Date date2 = new SimpleDateFormat("MM/dd/yyyy").parse("05/18/2013");
            System.out.println(date2);
        } catch (Exception e) {
           e.printStackTrace();
        }
    }
    
    private void calDate(long millisecs){
        SimpleDateFormat date_format = new SimpleDateFormat("MMM dd,yyyy HH:mm");
        Date resultdate = new Date(millisecs);
        System.out.println(date_format.format(resultdate));
    }
    
    private void writeActualDate(){
        Calendar cal = new GregorianCalendar();
        Date kreasiDate = cal.getTime();
        SimpleDateFormat date_format = new SimpleDateFormat("MMM dd.yyyy HH:mm");
        System.out.println(date_format.format(kreasiDate));
    }
    public static void main(String[] args) {
        KonversiDate conversi = new KonversiDate();
        conversi.stringDate();
        conversi.calDate(System.currentTimeMillis());
        conversi.writeActualDate();
    }
}

selamat mencoba teman, semoga dapat memberikan yang terbaik di sisi nya… amin…