(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

(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)Framework Spring and Example Parsing Spring

Spring(Season) dalam perngartian bahasa, Spring di ambil dari bahasa inggris yang berarti, “Musim Semi”, tapi kali ini kita tidak membahas tentang cuaca atau musim, Tetapi yang akan kita bahas Spring dalam pemograman java, Awal mula nama spring tidak ada penjelasan, dikarenakan yang membuat teknologi ini hanya memberi nama spring dan tidak ada komentar apa pun dari itu, kalau menurut saya spring pada java sama dengan spring dalam kehidupan sehari hari, karena kita pada saat musing semi datang hanya pada waktu tertentu dan tanggal tertentu, sehingga pada java juga spring digunakan pada waktu waktu tertentu saja.

Parsing sebuah file dalam bentuk web file banyak macam yang d terapkan, tetapi yang paling sering digunakan seperti DOM,SAX dan sebagainya, oleh karena itu Spring di buat oleh pemuda pemuda gagah berani yang menginginkan kemudah dalam memparsing sebuah data, itu lah pemuda yang baik hati dan tudak sombong, Spring sama dengan konsep yang lain, dimana Configurasi Spring dalam bentuk xml, kalau di dunia jaringan Spring itu semacam router yang dikendalikan, jalur-jalur yang akan terhubung dengan nya.

Spring sangat sering digunakan pada pembuatan aplikasi berbasis web, karena spring berexstensi xml sehingga sangat mudah untuk di terapkan di web aplikasi, kalau saya Spring saya gunakan untuk membuat aplikasi cuaca dan geolocation, dimana dua file tersebut dapat kita gunakan dalam bersamaan.

Mari kita membuat spring sederhana dengan mengandalkan data yang kita buat, tema untuk kali ini hanya data mahasiswa seperti nama dan nim.

Create Project dengan nama SpringMahasiswa

Create Class dengan nama Mahasiswa

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

/**
 *
 * @author root
 */
public class Mahasiswa {
    private String nama;
    private String nim;
    
    public void setNama(String nama){
        this.nama = nama;
    }
    public void setNim(String nim){
        this.nim = nim;
    }
    public void cetakNama(){
        System.out.println("Nama :"+this.nama);
    }
    public void cetakNim(){
        System.out.println("NIM :"+this.nim);
    }
}


Create File Spring dan configurasi File – New – Other dan pilih Spring XML Configuration File

4-27-2013 11-13-45 PM
dan name file Spring-Mahasiswa dan tambahkan data nama dan nim seperti dibawah ini.

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:c="http://www.springframework.org/schema/c"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:flow="http://www.springframework.org/schema/webflow-config"
       xmlns:jee="http://www.springframework.org/schema/jee"
       xmlns:jms="http://www.springframework.org/schema/jms"
       xmlns:lang="http://www.springframework.org/schema/lang"
       xmlns:osgi="http://www.springframework.org/schema/osgi"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:util="http://www.springframework.org/schema/util"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
          http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
          http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.0.xsd
          http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
          http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-2.5.xsd
          http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd
          http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi-1.2.xsd
          http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
          http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
">
<bean id="dataMahasiswa" class="Data.Mahasiswa">
    <property name="nama" value="Anna arthdi putra"/>
    <property name="nim" value="10030035" />
</bean>
</beans>

Buka file Main

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

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

/**
 *
 * @author root
 */
public class SpringExamleAnnabe1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
   ApplicationContext appContext = new ClassPathXmlApplicationContext(
				new String[] { "Spring-Mahasiswa.xml" });
 
		      Mahasiswa mahasiswa = (Mahasiswa) appContext.getBean("dataMahasiswa");
 
		System.out.println("*************************");
		mahasiswa.cetakNama();
		System.out.println("*************************");
		mahasiswa.cetakNim();
		System.out.println("*************************");
		try {
			
		} catch (Exception e) {
 
		}
    }
}

Run File dan hasilnya seperti dibawah ini

Springprint

(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

BroadcastReceiver

Sedikit memberi pengalaman dalam beberapa pembaca, saya sering sekali yang namanya membaca ebook luar seperti ebook Android Beggginer dan sebagainya yang pastinya berbahasa inggris, ini sering sekali saya alami pada pengelolahan kata dan pengartian defenisi dalam sebuah kalimat, sehingga point tertentu sering kita dapatkan, BroadcastReceiver merupakan suatu deklarasi global dimana ada dua suku kata, yang pertama Broadcast yang mengartikan seluruh data di sebarkan dan dapat di gunakan di fungsi lain atau class lain, sedangkan Receiver merupakan penerima. jadi dengan itu kita paham apa itu BroadcasReceiver…. ini merupakan pengalam saya, karena mungkin dari beberapa teman – teman yang sering membaca buku bahasa inggris pasti sering mengalami apa yang saya alami, di bawah ini merupakan contoh dimana deklarasi itu dikatakan BroadcastReveicer…
2

Catatan : Dalam memberikan point – point tertentu dalam sebuah kasus sangatlah harus mengerti beberapa arti suku kata tersebut

Referensi : Buku Manning Android in Action 3rd

ContenProvider

Jika aplikasi mengelola data dan kebutuhan untuk mengekspos bahwa data ke aplikasi lain berjalan di lingkungan Android, Anda harus mempertimbangkan ContentProvider. Jika komponen aplikasi (Activity, Service, atau BroadcastReceiver) kebutuhan untuk mengakses data dari aplikasi lain, komponen mengakses aplikasi lainnya ContentProvider. The ContentProvider menerapkan satu set standar metode untuk memungkinkan aplikasi untuk mengakses menyimpan data. Akses mungkin untuk membaca atau menulis operasi, atau untuk keduanya. Sebuah ContentProvider dapat menyediakan data untuk Kegiatan atau Layanan dalam aplikasi yang mengandung sama, serta ke Activity atau Layanan terkandung
dalam aplikasi lain. Sebuah ContentProvider dapat menggunakan bentuk data-mekanisme penyimpanan yang tersedia pada Platform Android, termasuk file, database SQLite, atau bahkan hash memori berbasis peta jika data ketekunan tidak diperlukan. The ContentProvider adalah lapisan data yang menyediakan
Data abstraksi untuk klien dan penyimpanan sentralisasi dan rutinitas pengambilan dalam tunggal tempat. Berbagi file atau database secara langsung tidak disarankan pada platform Android, dan ditegakkan oleh sistem keamanan Linux yang mendasari, yang mencegah ad hoc akses file dari satu ruang aplikasi yang lain tanpa izin eksplisit diberikan. Data yang tersimpan dalam ContentProvider dapat data tradisional jenis, seperti bilangan bulat dan
string. Penyedia konten juga dapat mengelola data biner, seperti data citra. ketika Data biner diambil, praktek terbaik yang disarankan adalah untuk mengembalikan string yang mewakili nama file yang berisi data biner. Jika nama file dikembalikan sebagai bagian dari ContentProvider permintaan, aplikasi tidak harus mengakses file secara langsung, Anda harus
Capture

menggunakan kelas pembantu, metode openInputStream ContentResolver, untuk mengakses Data biner. Pendekatan ini menavigasi proses Linux dan rintangan keamanan, serta membuat semua akses data normal melalui ContentProvider. Gambar 1,5 garis hubungan antara ContentProviders, menyimpan data, dan klien mereka. Data Sebuah ContentProvider yang diakses oleh sebuah aplikasi Android melalui suatu Konten URI. Sebuah ContentProvider mendefinisikan URI ini sebagai final String public static. untuk Sebagai contoh, aplikasi mungkin memiliki menyimpan data mengelola lembar data keamanan bahan. URI Konten untuk ContentProvider ini mungkin terlihat seperti ini: Uri public static final CONTENT_URI = Uri.parse (“konten :/ / com.msi.manning.provider.unlockingandroid / lembar data”); Dari titik ini, mengakses ContentProvider mirip dengan menggunakan Structured Query Language (SQL) di platform lain, meskipun pernyataan SQL lengkap tidak dipekerjakan. Sebuah permintaan yang disampaikan kepada ContentProvider, termasuk kolom
diinginkan dan opsional mana dan Order By klausa. Mirip dengan query parameter dalam SQL tradisional, substitusi parameter juga didukung ketika bekerja dengan ContentProvider kelas. Di mana hasil dari query pergi? Dalam kelas kursor, alami. Kami akan memberikan contoh ContentProvider rinci dalam bab 5.

CATATAN Dalam banyak hal, ContentProvider bertindak seperti server database.
Meskipun aplikasi bisa berisi hanya ContentProvider dan esensi menjadi server database, ContentProvider biasanya komponen dari Android aplikasi yang lebih besar yang host setidaknya satu Kegiatan, Layanan, atau BroadcastReceiver.

Referensi : Buku Manning . Android ic Action 3rd