Astawan’s World

Icon

Just To Remember Something That I Ever Know

Binding Data Pada jTable

Menggunakan VB atau C# dengan DataGrid-nya, seorang pemula tidak akan kesulitan untuk menampilkan data kedalam DataGrid, karena tinggal set property DataSource-nya saja, maka data akan ditampilkan, tetapi akan sangat berbeda jika menggunakan Java yang menyediakan jTable sebagai komponen penyaji data, karena sebelumnya kita harus tahu bagaimana konsep untuk menampilkan data kedalam jTable. Berikut adalah step-step yang bisa dilakukan untuk binding data ke jTable.

void bindTable(){
//step 1, deklarasi variable bertipe Vector
//mengapa Vertor dan bukan Array? karena vector fleksible, Array statis.
//---------------------------------------------------------
Vector cn = new Vector(); // variable untuk nama kolom
Vector row;// variable untuk satu baris data
Vector allRow = new Vector();// variable untuk semua baris data

//step 2, Memasukan nama-nama kolom kedalam objek cn
//---------------------------------------------------------
cn.addElement("NIM");
cn.addElement("Nama");
cn.addElement("IPK");

//step 3, masukan data-data
//---------------------------------------------------------
// masukan data kedua
row = new Vector();
row.addElement("980023");
row.addElement("Ketut Widi Astawan");
row.addElement(3.00);
allRow.addElement(row);

// masukan data kedua
row = new Vector();
row.addElement("980028");
row.addElement("Bayu Yulianto");
row.addElement(3.23);
allRow.addElement(row);

// masuka data ketiga
row = new Vector();
row.addElement("980017");
row.addElement("Sugeng Cahyono");
row.addElement(2.90);
allRow.addElement(row);

//step 4, buat objek tablemodel untuk model tabel
//---------------------------------------------------------
TableModel model =  new DefaultTableModel(allRow , cn);
// set model jtable
jTable1.setModel(model);

//step 5, modifikasi kolom jtable (jika diperlukan)
//---------------------------------------------------------
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
TableColumnModel tm = jTable1.getColumnModel(); // ambil kolom2 ke TableColumnModel

//modifikasi kolom NIM
renderer.setHorizontalAlignment(JLabel.CENTER); // modifikasi aligment
renderer.setBackground(Color.GREEN);
TableColumn tc = tm.getColumn(0); //
tc.setPreferredWidth(5);
tc.setCellRenderer(renderer);

//modifikasi kolom IPK
renderer = new DefaultTableCellRenderer();
renderer.setHorizontalAlignment(JLabel.RIGHT); // modifikasi aligment
renderer.setBackground(Color.GRAY);
tc = tm.getColumn(2); //
tc.setCellRenderer(renderer);
tc.setPreferredWidth(5);
}

Jika data-data adalah hasil dari eksekusi query, maka kita tinggal mengganti step3 dengan looping record pada ResultSet.

Contoh :

.....
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
row = new Vector();
row.addElement(rs.getObject("NIS"));
row.addElement(rs.getObject("nama"));
row.addElement(rs.getObject("IPK"));
allRow.addElement(row);
}

Filed under: Java

Memilih Printer dengan CommonDialog pada VB 6

Cara menggunakan CommonDialog untuk memilih printer yang akan digunakan untuk mencetak :

Sub Cetak()
    On Error GoTo err_han
    ' hidupkan property CancelError untuk menangkap error saat cancel
    ' saat dipilih Cancel akan timbul error nomor 32755
    ' error tersebutlah yang akan kita tangkap untuk pembatalan
    Me.CommonDialog1.CancelError = True
    ' munculkan printer dialog
    Me.CommonDialog1.ShowPrinter
    ' contoh data yang akan dicetak
    Printer.Print "Test"
    Printer.EndDoc
    Exit Sub
err_han:
    If Err.Number = 32755 Then
        MsgBox "Cetak dibatalkan", vbInformation
    End If
End Sub

Filed under: VB 6

Membaca Angka Yang Sudah diformat Dengan Pada Java

angka 65000000, kalau diformat ke format German menjadi, 65.000.000,00. Nah … untuk membaca kembali angka yang telah diformat tersebut kita tidak bisa langsung membaca dan menampung kedalam variable (double, decimal, dll), karena akan terjadi error (kecuali mungkin kalau setting regional di OS adalah German/Indonesia).

Cara untuk membaca angka tersebut kembali adalah:

        NumberFormat nf1 =  NumberFormat.getInstance(Locale.GERMAN);
        Object nilai = null;
        try{
             nilai = nf1.parse("65.000.000,00");
        }catch(Exception ex){
            ex.getMessage();
        }

Filed under: Java

Memformat Angka di Java

Contoh penggalan program untuk memformat tampilan angka, selain dibawah masih banyak jenis cara yang dapat dilakukan untuk memformat angka.

Class yang perlu diimport :

import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.util.Locale;
    void formatNumber(){
        double harga =6500000;
        // jenis pertama
        String strFormat0 ="####";
        DecimalFormat df = new DecimalFormat(strFormat0);
        System.out.println(df.format(harga));
        //output 6500000

        // jenis pertama
        String strFormat1 ="####.00";
        DecimalFormat df2 = new DecimalFormat(strFormat1);
        System.out.println(df2.format(harga));
        //output 6500000.00

        // jenis pertama
        String strFormat2 ="#,###.00";
        DecimalFormat df3 = new DecimalFormat(strFormat2);
        System.out.println(df3.format(harga));
        //output 6,500,000.00

        // jenis pertama
        String strFormat3 ="#,###.00";
        DecimalFormat df4 = new DecimalFormat(strFormat3,
                            new DecimalFormatSymbols(Locale.GERMAN));
        System.out.println(df4.format(harga));
        //output 6.500.000,00
    }

Filed under: Java

Develop Program vs Cerita Loro Jonggrang

Apaan hayo……?

Bandung Bondowoso menyanggupi permintaan Loro Jonggrang yang meminta dibuatkan 1000 candi dalam satu malam…, walaupun mas Bandung tidak bisa memenuhi… (baru kelar 999, karena kecurang mbak Jonggrang).

Hubungannya dengan develop program…?, 1000 candi bisa diibaratkan aplikasi yang komplek dalam dunia software, untuk membangun aplikasi tersebut dibutuhkan perencanaan yang baik, dan terkadang (mungkin sering kali) setelah tahap finishing coding kita perlu lagi balik ke perencanaan atau desain untuk perbaikan. Sebagai gambaran untuk membuat satu form saja, kita butuh menghandle segala event pada komponen, kita harus validasi input, mengatur layout, memformat tampilan data dan masih banyak lagi kerjaan lain untuk form tersebut.
Jadi untuk membuat aplikasi yang mendekati sempurna dibutuhkan waktu, tidak bisa selesai coding berarti aplikasi selesai, harus dilalui tahapan testing dan operasional baik oleh team develop ataupun oleh user.

Filed under: Journey

Java Yang Belum Bisa Kubawa Berlari Cepat

hmmm… tadi malem ada temen yang minta bantuan untuk menyelesaikan program untuk Beasiswa, menggunakan Netbeans, dan akan dikumpulkan atau didemokan keesokan harinya.

Kalau menggunakan VB, baik VB 6 ataupun VB 2005, satu form input data utama yang harus diselesaikan kayaknya akan selesai dikerjakan, plus laporan.

Menggunakan Netbeans banyak sekali kendala yang ditemukan, mulai dari desain form yang mengatur otomatis (mending bagus…, berantakan iya…), pengaturan secara otomatis akan menguntungkan kita jika jumlah komponen yang ada diform sedikit, tetapi kalau banyak malah akan menyulitkan. Kendala berikutnya adalah pada Java-nya, mungkin karena aturan-aturan yang super ketat maka banyak sekali kendala yang saya temukan, contohnya saat memasukan beberapa variable Numeric kedalam suatu rumus, ada beberapa yang tidak mau, ex: double digabung dengan Integer atau Double…, akhirnya satu form input data utama saya kerjakan dari jam 11 malam sampai 10 pagi, dipotong-potong pekerjaan rumah.

Kendala diatas mungkin tidak akan saya temukan jika saya tau aturan-aturan dalam java, yang sebenarnya bertujuan untuk memudahkan pekerjaan compiler. Untuk desain form…? saya sudah menggunakan Free Desagn, kalau dari katanya seharusnya peletakan komponent terserah kita, tapi tetep aja diatur otomatis oleh Netbeans. Untuk kasus ini mungkin team pengembang Netbeans, sedikit harus melihat cara kerja Visual Studio.

Filed under: Journey

Mengakali Cartridge Printer Yang Ngadat…..

Tintanya sudah full kok nggak mau keluar tulisan…!!!, kejadian ini sering terjadi pada orang yang sedang menjahit pakaian, ??? ngawur…!!!, ups… pada orang yang sedang mencetak laporan ke printer he he he…

Sumber Permasalahan

OK.. permasalahan diatas sering saya temukan, dan beberapa kali juga pernah dimintai tolong untuk memperbaikinya…(padahal saya bukan orang hardware, tapi software. tapi kalau orang awam nggak perduli kamu ahli HW atau SW, taunya mereka kamu bisa komputer.) . Ok.. lanjut.., tinta ngadat biasanya disebabkan oleh media didalam cartridge yaitu berupa busa yang berfungsi sebagai media penampung tinta, mungkin karena kering atau lain hal sehingga tinta tidak bisa mengalir lancar dari atas kebawah pada saat diperlukan. (mudah-mudahan nggak salah).
Selain pada busa bisa juga permasalah terjadi pada head, mungkin kering atau ada kotoran yang menyumbat sehingga tinta tidan bisa keluar.

Solusi

Untuk permasalahan diatas ada beberapa cara yang dapat kita lakukan, cara cepat dan aman adalah membuang cartrigde itu dan membeli yang baru atau membuang cartrigde bersama printernya dan membeli printer baru… ha ha ha…(kalau anaknya Bill Gate ya ndak masalah). Cara kedua adalah meniup cartrigde, caranya cari lubang tempat kita memasukan tinta isi ulang, letakkan mulut disana lalu tiup kuat-kuat sehingga tinta akan keluar secara paksa dari head cartrigde. Dengan cara meniup kita akan memaksa tinta diabagian atas untuk mengalir kebawah, dengan harapan yang tadinya kering menjadi basah sehingga jalan tinta akan lancar…

Cara diatas beberapa kali pernah saya lakukan dan sering berhasil, khususnya pada printer HP (21 & 22). Tapi pernah juga gagal (mungkin memang cartridge nya rusak). tapi dari pada cartridgenya dibuang, lebih baik dicoba-coba dulu, siapa tau bisa kan bisa berhemat.

Warning!!!

  • Meniup kuat-kuat bisa menyebabkan rahang anda sakit…, pegel-pegel tapi tidak encok.
  • Meletakkan mulut anda pada cartrigde akan membuat anda merasakan bagaimana manisnya tinta…

Filed under: Journey

Mengetahui Tanggal Awal Dalam Minggu

Kalau sekarang adalah hari Kamis, 22 Januari 2009 maka tanggal berapakah hari minggu kemaren?. Gampang!!! secara manual tinggal hitung aja selisihnya harinya lalu dikurangkan, 22 – 5 hari = 18 Januari 2009. nah bagaimana kalau dalam program???, tentunya program tidak bisa hitung-hitung begituan kecuali dibuat rumus-rumusnya. Kalau rumus dari cara diatas dituangkan kedalam program mungkin akan kepanjangan alias kelamaan….

Untuk VB 6 ada cara gampang untuk solusi diatas

Dim tanggalAwal As Date
tanggalAwal = DateAdd(WeekDay("d", Date, VBSunday) * (-1) + 1, Date)

Ada tanggal awal pastinya ada tanggal akhir, untuk cari tanggal akhir ane belon tau cara praktisnya, tapi kalau tanggal awal dah dapat tinggal tambahin aja tuh tanggal awal dengan jumlah hari dalam seminggu (7).
jadi kode diatas bisa ditambahin dengan…

Dim tanggalAkhir As Date
tanggalAkhir = DateAdd("d", 7, tanggalAwal)
' or
Dim tanggalAkhir1 As Date
tanggalAkhir1 = DateAdd("d", 7, DateAdd(WeekDay("d", Date, VBSunday) * (-1) + 1, Date))

Jika menggunakan VB.Net, caranya sama tapi butuh sedikit modifikasi.

Filed under: VB 6

Resize Image dengan Image Resizer Powertoy

Apakah anda pernah mengalami masalah saat foto dari Camera Digital anda akan anda kirim ke teman atau kerabat via email? mungkin anda akan menjawab tidak jika anda mempunyai bandwidth yang besar, tetapi akan ya, jika anda tinggal dikota kecil/pedesaan, yang biasanya bandwidth masih kecil.
Sebagai informasi, file hasil jepretan kamera biasanya beresolusi besar, karena beresolusi besar, pastinya juga akan memiliki ukuran file yang besar pula (biasanya diatas 2 MB). Sehingga jika anda ingin mengirim file tersebut dengan cepat anda harus memperkecil ukurannya. Untuk memperkecil ukuran, anda dapat menggunakan beberapa software grafis seperti, Ms. Paint, Adobe Photoshop, ACDSee, dll. Jika anda tidak familiar dengan software-software tersebut anda dapat menggunakan satu tool yang dikenal dengan Image Resizer Powertoy, tool ini sangat mudah digunakan, tinggal pilih gambar yang akan direzise, klik kanan, pilih rezise. Kelebihan tool ini dibandingkan dengan software grafis lainnya adalah dapat merezise beberapa gambar sekaligus.

Filed under: Application