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

KISS: Complete Ubuntu Server Configuration

The Simplest way to install and configure our Ubuntu Server Edition. With this step-by-step manual instalation, we can configure Network, Internet, APT instalation source, XAMPP for Linux, Apache Web server, ProFtpd Ftp Server, PHP, MySql Database Server, Samba file sharing, Squid proxy server. A. Network And Internet Configuration 1. Intall Ubuntu Server Edition, I prefer using 8.04 LTS, a stable build with long time support, even better than the newer ones, in my opinion. Login as root or use this command to become root for user in sudoers list. # sudo su 2. Now, Change the hostname # pico /etc/hosts 127.0.0.1 localhost //Don't change this 192.168.1.12 hercules //Change with your ip address and hostname ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts 3. Make configuration for network interfaces # pico /etc/network/interfaces # This file describes the network interfaces available on your s...

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, ...

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 ...