Skip to main content

Start from the basic: Java input & Graphic2D

Cuma sedikit protes dengan beberapa buku java dari Indonesia yang agak sedikit ngawur, dari segi pemrograman. Tentu karena bahasanya yang lebih sesuai dibandingkan dengan buku buku terjemahan buatan orang asing, yang dengan isi yang sangat berbobot, harga lebih mahal, tapi karena terjemahan, ada beberapa hal yang agak sulit dimengerti. Dimulai dengan buku java 2 - AK yang sangat banyak digunakan untuk panduan belajar di kampus.

Start from the basic!
Membaca input dari keyboard
Pada C ada scanf, pada C++ ada cin, pada pascal ada readln, pada basic ada input, tapi di java tidak ada perintah khusus untuk melakukan input data dari keyboard. Padahal, perintah ini sangat berguna untuk melakukan trial and error terutama pada saat proses awal belajar java. Sun sendiri tidak pernah memberikan caranya secara official, paling tidak saya belum pernah menemuainya di dokumentasi resmi java. Bahkan di ebook yang lain. Mungkin cuma karena saya belum pernah punya buku java, dan jarang lihat ebook java dasar.
Tapi, yang ada di buku ini sudah jelas ngawur, bagaimana bisa mengajarkan java dasar tapi sudah harus membuat object bacaKeyboard dari class di file yang berbeda untuk mendapatkan input data, padahal konsep OOP sangat menyulitkan untuk proses awal belajar. Menurut versi bukunya dengan membuat kelas baru khusus untuk input,

public class BacaKeyboard{ public static String bacaString(){ perintah...; } }

sehingga cara pemanggilannya karena berjenis static function:

String nama = BacaKeyboard.bacaString;

Dan selalu diperlukan file class aslinya untuk bisa dicoba di program lain, yang sebetulnya sangat sederhana misalkan tentang kondisi if dan perulangan for, tapi sudah disulitkan dengan hal dasar seperti ini.
Supaya tidak membutuhkan file lain, dan cuma membutuhkan satu file tanpa perlu konsep OOP, tinggal gunakan saja class BufferedReader:

String nama="";
try{
java.io.BufferedReader br=new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
nama=br.readLn();
System.out.println("Hasil input:\""+nama+"\"");
}catch(java.io.IOException e){}

Perintah ini bisa diterapkan dimana saja dalam program, sehingga memudahkan proses input data tanpa perlu kelas tambahan. atau kalau dalam fungsi main yang bisa langsung jalan:

import java.io.*;
public class contoh{
public static void main(String[]a)throws IOException{
BufferedReader br=new BufferedReader(InputStreamReader(System.in));
String nama=br.readLn();
System.out.println("Hasil input:\""+nama+"\"");
}
}

Graphic2D untuk menggambar
Graphic2D digunakan untuk menggambar obyek garis atau gambar kotak dan semacamnya dalam bentuk dua dimensi dengan cepat.
Entah kenapa di buku ini prosesnya begitu rumit. Buat object Canvas atau Applet, setelah itu di-add-kan ke Container, baru bisa digambar. Padahal sederhananya, inheritance dari Frame, sebuah container, juga menurunkan fungsi paint() yang bisa langsung digunakan. Perintah yang ada di class java.awt.Graphics bisa langsung dipanggil disini. Contoh penggunaannya ada di program jam analog, yang menggunakan package Graphic2D untuk menggambar jarum jam dan lingkarannya.

public class Ana extends Frame {
public void paint(Graphics G){
G.drawOval(100,100,300,300);
}
public Ana(){
super("om_agus Klok_klok");
setSize(800,600);
}
public static void main(String[]a){
new Ana().setVisible(true);
}
}

Karena tidak pernah menggunakan bukunya sebagai panduan, mungkin cuma ini saja yang sering ditemui oleh penggunanya. Ini berdasarkan pertanyaan yang paling sering keluar saja. Mungkin masih banyak yang lainnya, selain juga ingin membahas habis bukunya janet--, tapi sepertinya tidak terlalu penting juga.

Comments

  1. Suka ngoprek ya bang?

    tulisannya bagus2 dan "berisi"
    banyak yg sangat membantu saya untuk belajar java.
    terutama pembuatan jar dan exe-nya Java ^^
    Salute

    Nyot

    ReplyDelete

Post a Comment

Popular posts from this blog

Pembuatan PDF di PHP dengan FPDF dan HTML2FPDF

Untuk membuat pdf dengan menggunakan php, kita bisa menggunakan fpdf yang berbasis class. Sedangkan html2fpdf digunakan untuk mengubah html menjadi pdf. Dengan hanya menggunakan fpdf, kita harus menentukan semua hal yang mengatur tampilannya berbasis code sesuai dengan aturan dan fungsi yang disediakan class tersebut. Dengan menggunakan html2fpdf, kita cuma perlu membuat sebuah file html dan tampilannya langsung diubah menjadi sebuah file pdf, tentu dengan beberapa keterbatasan dan perubahan tampilan. Saat ini, fpdf terbaru pada versi 1.6 sedangkan html2fpdf versi 3. Instalasi: + Ekstrak file fpdf dan html2fpdf. Sebenarnya html2fpdf merupakan inheritance dari class fpdf, tapi class di fpdf yang disdertakan di paket html2fpdf telah dimodifikasi dari aslinya sesuai dengan kebutuhan konversi tersebut. Class original dari fpdf akan kita pakai untuk pembuatan pdf secara manual, bukan dari html. + Ganti nama file fpdf.php misalkan menjadi fpdf16.php. Karena untuk bebrapa versi instalasi php

Java-MySql: Aplikasi Database dengan Data Gambar (Updated)

Untuk update metode simpan gambar lihat di appGambar 2.0 Bagaimana caranya menyimpan data yang membutuhkan penyimpanan data gambar? Misalkan data pegawai yang membutuhkan penyimpanan gambar dari setiap pegawai. Alternatifnya ada dua, dengan kelebihan dan kekurangan masing-masing. Cara yang pertama adalah dengan membuat field dengan tipe data binary, kemudian menyimpan gambar yang dibutuhkan dalam field di database tersebut. Cara ini membutuhkan manajemen program yang lebih rumit, tapi data gambar akan terjamin, karena tersimpan didalam database yang terintegrasi dengan data lainnya. Kekurangan lainnya adalah ukuran database yang akan membesar dan lambat. Bayangkan saja, sebuah field membutuhkan gambar dengan format jpeg, 200kB. Apabila ada 200 juta record, maka ukuran field yang diperuntukan khusus untuk gambar dengan perhitungan kasar adalah 0.2 MB x 200M = 40 x 10^12 = 40 TB. Belum ditambah dengan ukuran data dari field lainnya, kalau misalkan untuk menyimpan data penduduk Indonesia.

Java: Pengiriman Parameter antar Frame

Sebenarnya konsep ini berlaku bukan hanya pada frame, tapi bisa dilakukan antar object dari class yang sifatnya umum, karena Java yang sifatnya sudah full OOP. Tapi, karena lebih sering diterapkan dalam pemrograman GUI desktop, khususnya dengan Netbeans, maka dicontohkan dengan class javax.swing.JFrame. Setiap bentuk code java harus dibentuk dalam bentuk class, biar sebagaimanapun sederhananya. Tidak seperti pemrograman lainnya yang menggunakan konsep OOP sebagai tambahan dan pengembangan dari yang sudah ada sebelumnya. Itulah sebabnya kita mengenal class di C++, Pascal, PHP, tapi masih diperbolehkan untuk tetap menggunakan konsep primitif. Sedangkan pada kasus java dan .NET, OOP merupakan inti utamanya yang harus selalu diikuti dan diterapkan. Awalnya akan sangat membingungkan, tapi sangat mudah untuk langkah pengembangan selanjutnya. Sudah lihat JavaDoc? itu adalah dokumen pemrograman yang paling aneh didunia, pada pandangan pertama. Coba bandingkan dengan MSDN-nya .NET, PHP Manual,