tag:blogger.com,1999:blog-90124798475461533292024-03-13T14:49:01.795-07:00Pemrograman Bahasa JavaOng Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-9012479847546153329.post-51251354232860505932011-01-31T00:16:00.000-08:002011-01-31T00:39:48.861-08:00Menambahkan Fungsi Edit dalam SageSatu fungsi yang belum ditambahkan adalah fungsi edit terhadap quote-quote yang sudah kita masukkan.<br /><br />Bagaimana caranya/<br /><br />Mari kita buat bersama:<br /><br />1. Fungsi Edit di-panggil dari Search Quote dengan melakukan double-click pada hasil pencarian.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_wvfc9I7-26U/TUZyZnddJSI/AAAAAAAAANM/fQeqADdOWaw/s1600/Edit-01.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 231px; height: 400px;" src="http://4.bp.blogspot.com/_wvfc9I7-26U/TUZyZnddJSI/AAAAAAAAANM/fQeqADdOWaw/s400/Edit-01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5568263773705020706" /></a><br /><br />Dari gambar di atas, jika kita lakukan double-click, maka akan dibuka menu AddQuoteTopComponent yang kita nantinya gunakan untuk editing quote.<br /><br />2. Untuk mengaktifkan double-click dilakukan dengan right-click pada salah satu window hasil, kemudian dipilih Events -> Mouse -> MouseClicked<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_wvfc9I7-26U/TUZzccwtvxI/AAAAAAAAANU/af5IxlphGUQ/s1600/Edit-02.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://3.bp.blogspot.com/_wvfc9I7-26U/TUZzccwtvxI/AAAAAAAAANU/af5IxlphGUQ/s400/Edit-02.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5568264921884245778" /></a><br /><br />3. Tambahkan code ini pada event tersebut:<br /><br /> if (evt.getClickCount() == 2) {<br /> if (((posisiList * 8) + 0) < besarList) {<br /> Quote qth = (Quote) listHasil.get((posisiList * 8) + 0);<br /> TopComponent win = WindowManager.getDefault().findTopComponent("AddQuoteTopComponent");<br /> if (win == null) {<br /> instance1 = AddQuoteTopComponent.findInstance();<br /> }<br /> if (win instanceof AddQuoteTopComponent) {<br /> instance1 = (AddQuoteTopComponent) win;<br /> }<br /> <span style="font-weight:bold;">instance1.loadQuote(qth);</span><br /> instance1.open();<br /> instance1.requestActive();<br /> }<br /> }<br /><br />Ini akan memanggil fungsi AddQuoteTopComponent untuk melakukan fungsi Editing.<br /><br />4. Perhatikan bahwa kita memanggil fungsi loadQuote dari AddQuoteTopComponent,<br />untuk itu perlu ditambahkan fungsi tersebut di sana:<br /><br /> public void <span style="font-weight:bold;">loadQuote(Quote qt)</span> {<br /> Quote qtl = qt;<br /> //Simpan Old Quote<br /> oldQuote = qtl.getQuote();<br /><br /> // Kosongkan Isian<br /> Quote.setText("");<br /> Author.setText("");<br /><br /> //Isi Quote<br /> Quote.setText(qtl.getQuote());<br /> Author.setText(qtl.getAuthor());<br /> }<br /><br />5. Selanjutnya kita akan merubah fungsi Save, sehingga editing pertama kali harus menghapus terlebih dahulu yang lama, supaya tidak terjadi duplikasi. <br /><br /> private void SaveActionPerformed(java.awt.event.ActionEvent evt) { <br /> //Delete Old<br /> if ((Quote.getText().isEmpty())) {<br /> return;<br /> }<br /><br /> Db4o.configure().reflectWith(new JdkReflector(Thread.currentThread().getContextClassLoader()));<br /> ObjectContainer db = Db4o.openFile("Sage.ODB");<br /> //delete dulu<br /> final String cariQuote = (String) Quote.getText();<br /> ObjectSet<Quote> hasil = db.query(new Predicate<Quote>() {<br /><br /> public boolean match(Quote qt) {<br /> if (qt.getQuote().equals(cariQuote)) {<br /> return true;<br /> } else {<br /> return false;<br /> }<br /> }<br /> });<br /> if (hasil.hasNext()) {<br /> Quote qtd = (Quote) hasil.next();<br /> db.delete(qtd);<br /> }<br /> db.close();<br /><br /> // Save<br /> Db4o.configure().reflectWith(new JdkReflector(Thread.currentThread().getContextClassLoader()));<br /> db = Db4o.openFile("Sage.ODB");<br /> try {<br /> Quote quote = new Quote(Quote.getText(), Author.getText());<br /> db.set(quote);<br /> } finally {<br /> db.close();<br /> }<br /> Quote.setText("");<br /> Author.setText("");<br /> JOptionPane.showMessageDialog(null, "Quote has been saved.",<br /> "Quote Saved", JOptionPane.WARNING_MESSAGE);<br />}<br /><br />Welldone, sekarang kita sudah memiliki fungsi editing di Program Sage yang kita bangun.<br /><br />Salam Java,<br />Ong Budi SetiawanOng Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.com0tag:blogger.com,1999:blog-9012479847546153329.post-47139317594620579582010-11-27T01:27:00.000-08:002010-11-27T02:01:46.235-08:00Menambahkan Timer Dalam SageMari kita lanjutkan menambahkan fungsi Timer dalam aplikasi Sage yang telah kita bangun.<br /><br />Sekarang saatnya yang paling menyenangkan karena kita akan menambahkan fungsi perubahan secara otomatis setiap beberapa detik.<br /><br /><span style="font-weight:bold;">Langkah 1. Menggunakan Options Untuk Menyimpan Setting Timer</span><br /><br />Setting untuk perubahan quote disimpan ke dalam NetBeans Platform dalam Options Panel yang sudah built-in di platform ini.<br /><br />Caranya: <br />Right-click dalam package: com.ongbudi.sage.quote<br />Pilih New -> Options Panel<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_wvfc9I7-26U/TPDQrsUn6aI/AAAAAAAAAG8/bsBbuATTfxc/s1600/T-101.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 352px;" src="http://4.bp.blogspot.com/_wvfc9I7-26U/TPDQrsUn6aI/AAAAAAAAAG8/bsBbuATTfxc/s400/T-101.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5544160590343694754" /></a><br /><br />Setelah diclick maka diisi dengan:<br />Title: Sage Options<br />Tool Tip: Configuration Setting for Sage Application<br />Key Words: Sage Options<br />Click Next.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_wvfc9I7-26U/TPDRQdLbDMI/AAAAAAAAAHE/D9C87OIpfso/s1600/T-102.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 281px;" src="http://3.bp.blogspot.com/_wvfc9I7-26U/TPDRQdLbDMI/AAAAAAAAAHE/D9C87OIpfso/s400/T-102.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5544161221933731010" /></a><br /><br />Setelah itu click Finish<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_wvfc9I7-26U/TPDS83jqQII/AAAAAAAAAHU/evT5wf5cPhA/s1600/T-103.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 282px;" src="http://4.bp.blogspot.com/_wvfc9I7-26U/TPDS83jqQII/AAAAAAAAAHU/evT5wf5cPhA/s400/T-103.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5544163084440584322" /></a><br /><br />Untuk melihat tampilan Sage Options, ada di dalam menu Tools -> Options dalam aplikasi Sage.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TPDTQS1pOcI/AAAAAAAAAHc/Lh6KJgrSFlo/s1600/T-104.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 286px; height: 296px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TPDTQS1pOcI/AAAAAAAAAHc/Lh6KJgrSFlo/s400/T-104.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5544163418181286338" /></a><br /><br />Setelah kita dapat menemukan option tersebut, mari kita rancang apa yang perlu diubah.<br /><br />Kita buka SageOptionsPanel.java<br />Click Design, tambahkan Label dan TextField seperti contoh di bawah ini.<br />Nama variable TextField diubah menjadi jInterval<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_wvfc9I7-26U/TPDVGb77YGI/AAAAAAAAAHw/I_l0ahuO-Mw/s1600/T-105.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 378px; height: 300px;" src="http://3.bp.blogspot.com/_wvfc9I7-26U/TPDVGb77YGI/AAAAAAAAAHw/I_l0ahuO-Mw/s400/T-105.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5544165447848124514" /></a><br /><br />Nah, untuk menyimpan perubahan dilakukan melalui pengubahan method load() dan store()<br /><br />Method load() menjadi:<br /><br /> void load() {<br /><br /> jInterval.setText(NbPreferences.forModule(SageOptionsPanel.class).get("jInterval","15"));<br /><br /> }<br /><br /><br />Method store() menjadi:<br /> void store() {<br /><br /> NbPreferences.forModule(SageOptionsPanel.class).put("jInterval", jInterval.getText());<br /> }<br /><br />Tambahkan import:<br />import org.openide.util.NbPreferences;<br /><br />Sekarang sudah dapat menyimpan berapa detik interval untuk setiap perubahan quote.<br /><br /><span style="font-weight:bold;">Langkah 2. Mengambil Nilai Interval Dalam Options Panel</span><br /><br />Untuk mengambil nilai Interval yang tersimpan dalam options panel dilakukan sebagai berikut:<br /><br />Tambahkan baris ini ke dalam method componentOpened() dalam ShowQuoteTopComponent.java<br /><br /> //Setting Timer<br /> Preferences pref;<br /> pref = NbPreferences.forModule(SageOptionsPanel.class);<br /> int Interval = 0;<br /> Interval = toInt(pref.get("jInterval", ""));<br /> Interval = Interval * 1000; <br /><br />Tambahkan juga fungsi toInt() seperti di bawah ini:<br /><br /> private int toInt(String number) {<br /> Integer temp;<br /> temp = new Integer(number);<br /> return temp.intValue();<br /> }<br /><br />Tambahkan import:<br />import java.util.prefs.Preferences;<br />import org.openide.util.NbPreferences;<br /><br /><br /><span style="font-weight:bold;">Langkah 3. Menambah Fungsi Timer dalam Show Quote</span><br /><br />Bagaimana caranya menambahkan fungsi timer untuk menampilkan Quote? Mari kita sama-sama membuatnya.<br /><br />Karena kita sudah memiliki nilai dari Interval dari langkah ke 2, maka kita langsung dapat menggunakannya dalam menentukan Interval.<br /><br />Selanjutnya dibuat inner class untuk mengerjakan tugas rutin setiap Interval waktu.<br /><br /> class Ticker extends TimerTask {<br /> public void run() {<br /> java.awt.event.MouseEvent evt = null;<br /> QuoteTextMouseClicked(evt);<br /> }<br /> }<br />Kalau diperhatikan fungsi di atas, kita hanya memanggil mouse click event yang pernah dibuat sebelumnya.<br /><br />Kemudian ditambahkan fungsi untuk menjalankan Ticker ini setiap Interval waktu, caranya dengan menambahkan baris ini dibaris terakhir dari method componentOpened()<br /><br /> if (daemon == null) {<br /> daemon = new Timer(true);<br /> }<br /> TimerTask runnable = new Ticker();<br /> daemon.scheduleAtFixedRate(runnable, 0, Interval);<br /> } <br />Selesai sudah aplikasi kita. Quote akan berganti-ganti setiap Interval waktu yang ditetapkan.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_wvfc9I7-26U/TPDVjrx7fgI/AAAAAAAAAH4/iZCzQKzS9B0/s1600/T-301.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 259px;" src="http://4.bp.blogspot.com/_wvfc9I7-26U/TPDVjrx7fgI/AAAAAAAAAH4/iZCzQKzS9B0/s400/T-301.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5544165950317362690" /></a><br /><br />Oke, sampai di sini dulu.<br />Sampai jumpa dalam aplikasi berikutnya yang akan sama-sama kita buat.<br /><br />Salam Java,<br />Ong Budi SetiawanOng Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.com0tag:blogger.com,1999:blog-9012479847546153329.post-76188793772034233932010-11-24T00:07:00.001-08:002010-11-24T00:43:53.979-08:00Menambahkan Fungsi Aplikasi "Sage"Mari kita lanjutkan menambahkan fungsi-fungsi dalam aplikasi Sage yang telah kita bangun kerangka-nya.<br /><br /><span style="font-weight:bold;">Langkah 1. Menambahkan Library Db4o 5.2</span><br /><br />Right-Click Libraries dari Module Qoute.<br />Pilih Add New Library.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzLI0JDftI/AAAAAAAAAFs/XeQSH6Ub5lI/s1600/F-101.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 235px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzLI0JDftI/AAAAAAAAAFs/XeQSH6Ub5lI/s400/F-101.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5543028593682251474" /></a><br /><br />Click Browse, dan pilih: db4o-5.2-java5.jar.<br />Click Next.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzLaaitIhI/AAAAAAAAAF0/70M4F4x0pUE/s1600/F-102.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzLaaitIhI/AAAAAAAAAF0/70M4F4x0pUE/s400/F-102.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5543028896048161298" /></a><br /><br />Project Name diisi dengan: Object Database<br />Click Next.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzLjxFfEzI/AAAAAAAAAF8/DIva8bpWcwI/s1600/F-103.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzLjxFfEzI/AAAAAAAAAF8/DIva8bpWcwI/s400/F-103.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5543029056718443314" /></a><br /><br />Code Name Base diisi dengan: com.ongbudi.sage.odb.<br />Click Finish.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_wvfc9I7-26U/TOzKEuOjLxI/AAAAAAAAAFk/126HGiMWceg/s1600/L-204.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 292px;" src="http://4.bp.blogspot.com/_wvfc9I7-26U/TOzKEuOjLxI/AAAAAAAAAFk/126HGiMWceg/s400/L-204.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5543027423863582482" /></a><br /><br /><br /><span style="font-weight:bold;">Langkah 2. Menambah Fungsi Add Quote</span><br /><br />Click Quote Module.<br />Cilck Source Packages<br />Click com.ongbudi.sage.quote<br />Double-Click AddQuoteTopComponent.java<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzL_XQxu2I/AAAAAAAAAGE/WneBXQ-asvE/s1600/F-201.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzL_XQxu2I/AAAAAAAAAGE/WneBXQ-asvE/s400/F-201.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5543029530822818658" /></a><br /><br />Tambahkan Label dan Text Field ke dalam tampilan:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_wvfc9I7-26U/TOzMSUZ-ZHI/AAAAAAAAAGM/2KJzYJ6kEf0/s1600/F-202.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 344px;" src="http://2.bp.blogspot.com/_wvfc9I7-26U/TOzMSUZ-ZHI/AAAAAAAAAGM/2KJzYJ6kEf0/s400/F-202.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5543029856473605234" /></a><br /><br />Untuk menampung data dibuat class: Quote.java<br />Dalam Source Packages: com.ongbudi.sage.PDM<br /><br />package com.ongbudi.sage.PDM;<br /><br />public class Quote {<br /><br /> private String Quote;<br /> private String Author;<br /><br /> public Quote(String q, String a) {<br /> this.Quote = q;<br /> this.Author = a;<br /> }<br /><br /> public String getQuote() {<br /> return this.Quote;<br /> }<br /><br /> public String getAuthor() {<br /> return this.Author;<br /> }<br /><br /> public void setQuote(String q) {<br /> this.Quote = q;<br /> }<br /><br /> public void setAuthor(String a) {<br /> this.Author = a;<br /> } <br /><br /><br />Tambahkan beberapa import di Source Code AddQuoteTopComponent.java :<br />import com.db4o.Db4o;<br />import com.db4o.ObjectContainer;<br />import com.db4o.reflect.jdk.JdkReflector;<br />import com.ongbudi.sage.PDM.Quote;<br /><br /><br /><br />Fungsi yang dijalankan oleh tombol New yaitu:<br /><br /> Quote.setText(null);<br /> Author.setText(null);<br /><br />Fungsi yang dijalankan oleh Tombol Save yaitu:<br /><br /> Db4o.configure().reflectWith(new JdkReflector(Thread.currentThread().getContextClassLoader()));<br /> ObjectContainer db = Db4o.openFile("Sage.ODB");<br /> try {<br /> Quote quote = new Quote(Quote.getText(), Author.getText());<br /> db.set(quote);<br /><br /> } finally {<br /> db.close();<br /> }<br /> Quote.setText("");<br /> Author.setText("");<br /><br />Oke, sekarang database sudah bisa menyimpan quote yang dibuat.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzOCiEQ53I/AAAAAAAAAGU/wOfZtJaX6jY/s1600/F-203.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 262px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzOCiEQ53I/AAAAAAAAAGU/wOfZtJaX6jY/s400/F-203.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5543031784285988722" /></a><br /><br /><br /><span style="font-weight:bold;">Langkah 3. Menambah Fungsi Show Quote</span><br /><br />Sekarang saatnya kita akan menampilkan Qoute yang sudah tersimpan.<br />Untuk itu kita buat terlebih dahulu tampilannya:<br /><br />Double-Click: ShowQuoteTopComponent.java<br /><br />Ubah tampilan menjadi seperti ini:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_wvfc9I7-26U/TOzOg8Ka5sI/AAAAAAAAAGc/Loo2llSxI2Y/s1600/F-301.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_wvfc9I7-26U/TOzOg8Ka5sI/AAAAAAAAAGc/Loo2llSxI2Y/s400/F-301.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5543032306687207106" /></a><br /><br /><br />Dalam Source, tambahkan variable di bawah ini:<br /> private int counter = 0;<br /> public LinkedList<Quote> listQuote = new LinkedList();<br /> public ObjectContainer db;<br /><br />Resolve semua import dengan mengikuti saran dari NetBeans IDE.<br /><br />Untuk pertama kali kita buat fungsi untuk mengganti quote setiap dilakukan click di tampilan quote:<br /><br />Right-Click dalam jScrollPane untuk QuoteText, pilih Event -> Mouse –> Mouse Clicked<br /><br />Tambahkan kode ini:<br /><br /><br /> // Ganti Quote Setiap Click<br /> int i;<br /> i = listQuote.size() - 1;<br /> System.out.println(listQuote.size());<br /><br /> if (counter >= i) {<br /> counter = 0;<br /> } else {<br /> counter++;<br /> }<br /> // tampilkan quote<br /> Quote qt = (Quote) listQuote.get(counter);<br /> System.out.println(listQuote.get(counter));<br /> QuoteText.setText(qt.getQuote());<br /> AuthorText.setText(qt.getAuthor());<br /><br /><br />Untuk mengisi Quote yang akan ditampilkan, dilakukan pengambilan data dari database melalui method componentOpened().<br /><br />public void componentOpened() {<br /> if (db == null) {<br /> Db4o.configure().reflectWith(new JdkReflector(Thread.currentThread().getContextClassLoader()));<br /> db = Db4o.openFile("Sage.ODB");<br /> }<br /><br /> counter = 0;<br /> try {<br /> Quote quote = new Quote(null, null);<br /> ObjectSet hasil = db.get(quote);<br /> System.out.println("Isi Database: " + hasil.size());<br /> while (hasil.hasNext()) {<br /> Quote qt = (Quote) hasil.next();<br /> listQuote.add(qt);<br /> QuoteText.setText(qt.getQuote());<br /> AuthorText.setText(qt.getAuthor());<br /> counter++;<br /> }<br /> } catch (Exception e) {<br /> } finally {<br /> if (db != null) {<br /> db.close();<br /> }<br /> }<br /><br /> //counter dikembalikan ke awal list<br /> counter = 0;<br /><br />Oke, sekarang sudah dapat dijalankan dengan melakukan click, maka quote akan berganti-ganti.<br /><br />Tampilannya akan menjadi seperti ini:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzPh_wDUPI/AAAAAAAAAGk/oiUIVvz-yiY/s1600/F-302.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 259px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TOzPh_wDUPI/AAAAAAAAAGk/oiUIVvz-yiY/s400/F-302.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5543033424341848306" /></a><br /><br />Oke, sampai di sini dulu, nanti kita lanjutkan dengan tambahan fungsi yang lain.<br /><br />Salam Java,<br />Ong Budi SetiawanOng Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.com0tag:blogger.com,1999:blog-9012479847546153329.post-16313902745355006472010-11-20T05:12:00.000-08:002010-11-20T05:51:28.796-08:00Membangun Aplikasi “Sage” Dengan NetBeans Platform Dan Database Object Db4oPernah dengar aplikasi “Sage”, program ini menampilkan quote atau kata-kata bijak dari orang-orang terkenal. Aplikasi ini akan menampilkan quote yang disimpan di dalam database object Db4o dan kemudian ditampilkan ke layer. Dalam periode tertentu, kata-kata bijak ini akan diganti secara otomats.<br /><br />NetBeans platform yang digunakan terdapat dalam Netbeans 6.5 dan Db4o yang digunakan adalah Db4o versi 5.2.<br /><br />Mari kita bangun bersama-sama.<br /><br /><span style="font-weight:bold;">Langkah 1. Membuat kerangka menu utama Sage</span><br /><br />Dari menu NetBeans:<br />File -> New Project.<br /> Pilih: NetBeans Project<br /> Pilih: NetBeans Platform Application<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TOfL3l_FMzI/AAAAAAAAADU/7YADbGRf2ec/s1600/L-101.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TOfL3l_FMzI/AAAAAAAAADU/7YADbGRf2ec/s400/L-101.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541622022452622130" /></a><br /> <br />Click Next.<br />Ketik: Sage<br />Untuk nama project.<br /> <br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_wvfc9I7-26U/TOfMp8K61KI/AAAAAAAAADk/Ht7_yYc34hs/s1600/L-102.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 277px;" src="http://3.bp.blogspot.com/_wvfc9I7-26U/TOfMp8K61KI/AAAAAAAAADk/Ht7_yYc34hs/s400/L-102.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541622887401313442" /></a><br /><br />Click: Finish.<br />Hasilnya sudah dapat dijalankan dan tampilannya seperti ini:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_wvfc9I7-26U/TOfM6AmSa-I/AAAAAAAAADs/unSDXGh1Z3Q/s1600/L-103.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_wvfc9I7-26U/TOfM6AmSa-I/AAAAAAAAADs/unSDXGh1Z3Q/s400/L-103.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541623163467754466" /></a><br /> <br />Jika mau lihat hasilnya, saya sertakan zip file dari langkah satu ini:<br /><Jika berminat silahkan isi permintaan di comment, nanti saya kirim by email, karena tidak bisa attach zip di sini><br /><br /><span style="font-weight:bold;">Langkah 2. Membuat Module Quote.</span><br /><br />Module Quote ini nanti akan berisi dua buah fungsi yaitu Add Quote untuk menampilkan quote dan Show Quote untuk menampilkan Quote.<br /><br />Untuk menambah module:<br /><br />Right Click: Module, pilih Add New…<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_wvfc9I7-26U/TOfOacrgPHI/AAAAAAAAAD0/ylREDP8ylUA/s1600/L-201.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 255px; height: 191px;" src="http://3.bp.blogspot.com/_wvfc9I7-26U/TOfOacrgPHI/AAAAAAAAAD0/ylREDP8ylUA/s400/L-201.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541624820273265778" /></a><br /><br />Ketik Quote, sebagai nama module. Click Next<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_wvfc9I7-26U/TOfOatabQII/AAAAAAAAAD8/lWuDVApxS3Q/s1600/L-202.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 293px;" src="http://3.bp.blogspot.com/_wvfc9I7-26U/TOfOatabQII/AAAAAAAAAD8/lWuDVApxS3Q/s400/L-202.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541624824765038722" /></a><br /><br />Untuk Code Name Base: com.ongbudi.sage.quote<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_wvfc9I7-26U/TOfOa_dappI/AAAAAAAAAEE/d9bPW7bCmJs/s1600/L-203.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_wvfc9I7-26U/TOfOa_dappI/AAAAAAAAAEE/d9bPW7bCmJs/s400/L-203.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541624829609420434" /></a> <br /><br />Jika mau lihat hasilnya, saya sertakan zip file dari langkah ke-dua ini:<br /><br /><Jika berminat silahkan isi permintaan di comment, nanti saya kirim by email, karena tidak bisa attach zip di sini> <br /><br /><br /><span style="font-weight:bold;">Langkah 3. Menambah Window Component Add Quote</span><br /><br />Kita akan menambahkan menu untuk menambah Quote yaitu dengan Window Component: Add Quote.<br /><br />Caranya:<br />Click: Source Package dalam Module Quote.<br /><br />Right-Click, Source Package kemudian pilih New -> Window Component<br /> <br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_wvfc9I7-26U/TOfPo6bijaI/AAAAAAAAAEc/SxrpT8ygstg/s1600/L-301.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 360px; height: 341px;" src="http://3.bp.blogspot.com/_wvfc9I7-26U/TOfPo6bijaI/AAAAAAAAAEc/SxrpT8ygstg/s400/L-301.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541626168289168802" /></a><br /><br />Pilih Windows Position: leftSlidingSide,,<br />Click Next.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_wvfc9I7-26U/TOfPoheIqYI/AAAAAAAAAEU/Qqvh1j4UFWQ/s1600/L-302.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_wvfc9I7-26U/TOfPoheIqYI/AAAAAAAAAEU/Qqvh1j4UFWQ/s400/L-302.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541626161589168514" /></a><br /><br />Untuk Class Name Prefik diisi: AddQuote. Click Next.<br /> <br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TOfPocV2KRI/AAAAAAAAAEM/tVhtlOvm5p0/s1600/L-303.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TOfPocV2KRI/AAAAAAAAAEM/tVhtlOvm5p0/s400/L-303.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541626160212224274" /></a><br /><br />Jika mau lihat hasilnya, saya sertakan zip file dari langkah ke-tiga ini:<br /><br /><br /><span style="font-weight:bold;">Langkah 4. Menambah Window Component Show Quote</span><br /><br />Caranya:<br />Click Source Package dalam Module Quote.<br /><br />Right-Click, Source Package kemudian pilih New -> Window Component.<br /><br />Window Position diganti menjadi Editor.<br />Dan pilih Open on Application Start.<br /> <br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_wvfc9I7-26U/TOfQ1LTEh7I/AAAAAAAAAE0/vKGc02pAAHY/s1600/L-401.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 298px;" src="http://2.bp.blogspot.com/_wvfc9I7-26U/TOfQ1LTEh7I/AAAAAAAAAE0/vKGc02pAAHY/s400/L-401.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541627478487107506" /></a><br /><br />Class Name Prefik diisi: ShowQuote.<br />Click Finish.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TOfQ01uEUGI/AAAAAAAAAEs/4qsaqXN1YYU/s1600/L-402.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TOfQ01uEUGI/AAAAAAAAAEs/4qsaqXN1YYU/s400/L-402.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541627472694759522" /></a><br /> <br />Dari ke-empat langkah ini. Maka secara tampilan, aplikasi ini sudah selesai dikerjakan.<br /><br />Kita akan lanjutkan untuk mengisi fungsi-fungsi yang dijalankan di tutorial selanjutnya.<br />Jika dijalankan, tampilan aplikasi seperti di bawah ini:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wvfc9I7-26U/TOfRki79uQI/AAAAAAAAAE8/t9fxdjjWOPo/s1600/L-403.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TOfRki79uQI/AAAAAAAAAE8/t9fxdjjWOPo/s400/L-403.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5541628292286494978" /></a> <br /><br />Hasil dari langkah ke-empat dapat diambil di zip file ini.<br /> <br /><Jika berminat silahkan isi permintaan di comment, nanti saya kirim by email, karena tidak bisa attach zip di sini> <br /><br />Sampai di sini dulu.<br /><br />Salam Java,<br /><br />Ong Budi SetiawanOng Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.com0tag:blogger.com,1999:blog-9012479847546153329.post-72968474287884159512010-07-19T21:11:00.000-07:002010-07-19T21:12:08.558-07:00Membuat Kue Java (Object dan Class)Di food court Puri Indah, seorang rekan saya bertanya, bagaimana bisa mengerti bahasa pemrograman Java. Saya jelaskan bahwa pemrograman di Java seperti membuat kue dengan cetakan kue. Cetakan kue dikenal sebagai Class dan kue yang dibentuk dari cetakan kue adalah Object. Untuk membangun diperlukan cetakan-cetakan kue (Class) yang digunakan untuk membangun kue-kue (Object) yang akan digunakan oleh program tersebut dalam menyelesaikan tugasnya. Dengan kata lain kita harus menentukan tipe-tipe objek dunia nyata apa saja yang akan disimulasikan oleh kode-kode program.<br /> Sebuah Class pada prinsipnya adalah deskripsi dari bagaimana sebuah objek dibuat (dengan kata lain semacam cetakan atau pola). Untuk setiap objek, terdapat sebuah Class yang menentukan bagaimana objek tersebut dibuat, variabel apa yang akan dimuat, dan pesan apa yang yang akan ditanggapi. Sedangkan Object adalah kombinasi dari fungsi dan data (variabel) yang digabungkan dalam satu entitas. Fungsi di dalam Object dinamakan Method dan memiliki data yang dinamakan Entity. Pemanggilan terhadap suatu Method dalam Object dapat diartikan pengiriman pesan ke Object.<br /> Sebuah Object diinstansiasi (dicetak/dioven kalau istilah kue) dari sebuah Class. Untuk membantu pemahaman mengenai Object dan Class, saya sertakan kode program yang akan menampilkan "Halo Saya Dijalankan 3 Detik Sekali".<br />package saytimer;<br />import java.awt.event.*;<br />import javax.swing.*;<br /><br />public class SayTimer {<br /> private String haloMessage = "Halo Saya Dijalankan 3 Detik Sekali"; <br /> public static void main(String[] args) {<br /> //Di sini dibuat kue Object t dari cetakan kue SayTimer Class<br /> SayTimer t = new SayTimer(); <br /> t.go(); <br /> }<br /> private void go() <br /> {<br /> Timer t = new Timer(3000, new Ticker());<br /> System.out.println(haloMessage); <br /> t.start();<br /> JOptionPane.showMessageDialog(null, "Click OK to exit program");<br /> System.exit(0); <br /> }<br /> class Ticker implements ActionListener {<br /> public void actionPerformed(ActionEvent event) {<br /> System.out.println(haloMessage); <br /> }<br /> }<br /> }<br />Sampai di sini dulu,<br />Ong Budi SetiawanOng Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.com0tag:blogger.com,1999:blog-9012479847546153329.post-33885291985729761572010-07-15T20:45:00.001-07:002010-07-15T20:54:24.564-07:00Hasil Pertama Belajar Bahasa Java.... Palm Pre Plus Phone GRATIS!<a href="http://1.bp.blogspot.com/_wvfc9I7-26U/TD_X0sUFcZI/AAAAAAAAAC8/RES7y_8VBg0/s1600/Palm+Pre+Plus.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 115px; height: 200px;" src="http://1.bp.blogspot.com/_wvfc9I7-26U/TD_X0sUFcZI/AAAAAAAAAC8/RES7y_8VBg0/s200/Palm+Pre+Plus.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5494347370663866770" /></a><br /><strong>WebOS App Contest Award Notification</strong><br /><br /><br /><br />Hello, <br /><br />Congratulations! Your app was accepted into the WebOS App Contest and you will be receiving a Palm phone award!<br /><br />We want to personally thank you for contributing to the Palm WebOS app community. We had nearly 600 apps submitted in just a little over two weeks. The apps ranged from simple to complex and everything in-between. Many of you collaborated and developed your apps as a team, contributed comments and votes on other apps and blogged about your issues and experiences. We loved the teamwork and “garage-like” approach to your efforts! <br /><br />We hope you are excited to receive your new Palm phone and hope it inspires you to create more apps in the future!<br /><br />Thanks again for your participation in this contest! We consider it a huge success. Enjoy your new Palm phone!<br /><br />The WebOS App Contest TeamOng Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.com0tag:blogger.com,1999:blog-9012479847546153329.post-26872520928230493412010-04-12T03:26:00.000-07:002010-04-12T03:27:21.962-07:00Penggunaan Operator AritmetikaOperator matematika yang digunakan dalam operasi biner (menggunakan dua variable) adalah:<br /> + = Penambahan<br /> - = Pengurangan<br /> * = Perkalian<br /> / = Pembagian<br /> % = Modulus atau Sisa<br />Mengenai modulus dengan operator '%' digunakan untuk mendapatkan sisa pembagian dari suatu bilangan.<br />Contoh:<br /> mod = bil1 % bil2; Jika bil1 = 11 dan bil2 = 5, maka mod = 1.<br /><br />Operator Increment dan Decrement<br /> Operator ini digunakan dengan satu variable (unary), yaitu:<br /> ++ = Penambahan<br /> -- = Pengurangan<br /><br />Penggunaan operator increment dan decrement dapati dilakukan sebelum (pre) maupun sesudah (post) operator.<br /><br />Urutan Pengerjaan Operator<br /><br />Dalam melakukan penghitungan, urutan proses yang dilakukan adalah sebagai berikut:<br />1. Operator dalam tanda kurung<br />2. Operator increment dan decrement<br />3. Operator perkalian dan pembagian<br />4. Operator penambahan dan pengurangan<br /><br />Type Casting dan Promotion<br />Promotion adalah tindakan yang dilakukan compiler dalam mengubah <br /> tipe variable untuk dapat menampung nilai yang lebih besar. Contoh dari int ke float.<br /><br />Casting adalah memperkecil ukuran dari variable dengan mengubah tipe ke yang lebih kecil.<br /><br />Syntaxnya:<br /><br /> identifier = (target_type) valueOng Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.com0tag:blogger.com,1999:blog-9012479847546153329.post-68079221534807180192010-04-05T20:53:00.000-07:002010-04-05T20:54:32.033-07:00Primitive Data Types di JavaAda delapan primitive data types di Java, dan bisa dibagi ke dalam empat kategori:<br />1. Tipe Integral: byte, short, int dan long<br />2. Tipe Floating point: float dan double<br />3. Tipe Textual: char<br />4. Tipe Logical: boolean<br /><br />Penggunaan Huruf L dan F untuk membuat spesifik Long dari tipe int secara default,<br />dan Float dari tipe double secara default.<br />Literal L: long<br />Literal F: float, contoh: float pi = 3.14F;<br /><br />Tipe char, menggunakan tanda kutip tunggal (') untuk memberikan nilainya, contohnya: <br />public char ukuranBajuJJ = 'L';<br /><br />Tipe boolean, hanya bisa diisi dengan nilai true atau false.<br /><br /><br /><span style="font-weight:bold;">Aturan Penamaan Variable</span><br /><br />Paket: 2 atau 3 huruf kecil (seperti domain internet)<br /> contoh: com.org.net.edu / au.id.sg<br /><br />Kelas dan Interface: kata benda/ungkapan kata benda. Syntax: Tiap Huruf Pertama Kata Gunakan Huruf Besar.<br /> contoh: InternetRadio, MultimediaDatabase<br /><br />Method: kata kerja/ungkapan kata kerja. Syntax: huruf Kecil Untuk Kata Pertama, dan Seterusnya Besar.<br /> contoh: setNilai, getUmur, isValidData<br /><br />Variable (fields): singkatan yang mudah diingat.<br /> contoh: sr (stream reader), buf (buffer), d (double), s (string).<br /><br />Konstanta: HURUF BESAR<br /> contoh: MAX_HIGH, MAX_VOLUMEOng Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.com0tag:blogger.com,1999:blog-9012479847546153329.post-37072925247163775972010-04-05T20:24:00.000-07:002010-04-05T20:28:07.525-07:00Deklarasi, Inisiasi, dan Penggunaan VariableAttribute Variable:<br />* Dideklarasi di luar method.<br />* Dideklarasi tanpa keyword static.<br />* Berisi data spesifik dari suatu object instance dari class dan disebut instance variable.<br /><br /><br />Local Variable:<br />* Didefinisikan dalam sebuah method.<br />* Hanya bisa digunakan secara lokal di dalam method.<br /><br /><br />Kegunaan Variable:<br />* Menyimpan attribute data dari suatu object instance.<br />* Memberikan nilai dari satu variable ke yang lainnya.<br />* Mewakili nilai dalam sebuah ekspresi matematika<br />* Menyimpan reference ke object yang lain.<br /><br /><br />Deklarasi dan Inisialisasi Variable<br />Syntax:<br />Deklarasi dan inisialisasi Attribute Variable<br />[modifier] type identifier [=value];<br /><br />Deklarasi Variable dalam Method<br />type identifier;<br /><br />Inisiasi Variable dalam Method<br />identifier = value;<br /><br />Deklarasi dan inisialisasi Variable dalam Method<br />type identifier [=value];Ong Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.com0tag:blogger.com,1999:blog-9012479847546153329.post-48549303316054926762010-03-10T18:36:00.000-08:002010-03-10T18:41:12.342-08:00Difficult....? Is Nothing!Selamat bergabung dalam pemrograman dalam bahasa Java.<br />Seperti kata pepatah,"difficult...? Is nothing!".<br /><br />Tidak ada yang sukar di dunia ini, yang ada adalah yang tidak terbiasa.<br />Kalau sudah terbiasa, tidak ada lagi yang sukar.<br /><br />Anakku JJ, sewaktu belajar jalan terjatuh beberapa kali dan saya ingat ia pertama kali bisa berjalan sewaktu dia diturunkan di kamar hotel Jepara Indah di Jepara.<br /><br />Apakah sekarang dia masih ingat betapa susahnya untuk berjalan? Tidak lagi.<br />Mari kita sama-sama membiasakan diri dengan bahasa Java untuk membangun aplikasi komputer.<br /><br />Salam,<br />Ong Budi SetiawanOng Budihttp://www.blogger.com/profile/16202378186457931477noreply@blogger.com0