<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Tukang Java Wannabe</title>
	<atom:link href="http://tukangjava.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tukangjava.wordpress.com</link>
	<description>Daripada nganggur mendingan ngoding</description>
	<lastBuildDate>Thu, 03 Jul 2008 02:34:10 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='tukangjava.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/bd92986f30fba4962f733e8b061465ab?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Tukang Java Wannabe</title>
		<link>http://tukangjava.wordpress.com</link>
	</image>
			<item>
		<title>This blog is no more&#8230;.</title>
		<link>http://tukangjava.wordpress.com/2008/07/03/this-blog-is-no-more/</link>
		<comments>http://tukangjava.wordpress.com/2008/07/03/this-blog-is-no-more/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 02:34:10 +0000</pubDate>
		<dc:creator>tukangjava</dc:creator>
				<category><![CDATA[Sehari-hari]]></category>

		<guid isPermaLink="false">http://tukangjava.wordpress.com/?p=48</guid>
		<description><![CDATA[Karena sibuk dan mulai malas ngeblog lagi, maka saya nyatakan bahwa&#8230;
This blog is no more&#8230;
Artinya ga bakal diapdet lagi&#8230;&#8230;for good. Gw juga ga bakal singgah lagi so, no need to put ur comments&#8230;
Tapi blognya ga diapus sapa tau ada yg perlu.
So&#8230;&#8230;ya wis&#8230;.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=48&subd=tukangjava&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Karena sibuk dan mulai malas ngeblog lagi, maka saya nyatakan bahwa&#8230;</p>
<p>This blog is no more&#8230;</p>
<p>Artinya ga bakal diapdet lagi&#8230;&#8230;for good. Gw juga ga bakal singgah lagi so, no need to put ur comments&#8230;</p>
<p>Tapi blognya ga diapus sapa tau ada yg perlu.</p>
<p>So&#8230;&#8230;ya wis&#8230;.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tukangjava.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tukangjava.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tukangjava.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tukangjava.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tukangjava.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tukangjava.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tukangjava.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tukangjava.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tukangjava.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tukangjava.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tukangjava.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tukangjava.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=48&subd=tukangjava&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tukangjava.wordpress.com/2008/07/03/this-blog-is-no-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/caf8c6538c3f700379a20ca80e776bbd?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tukangjava</media:title>
		</media:content>
	</item>
		<item>
		<title>Sertifikasi, penting atau tidak sih sebenarnya?</title>
		<link>http://tukangjava.wordpress.com/2008/06/13/sertifikasi-penting-atau-tidak-sih-sebenarnya/</link>
		<comments>http://tukangjava.wordpress.com/2008/06/13/sertifikasi-penting-atau-tidak-sih-sebenarnya/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 12:17:09 +0000</pubDate>
		<dc:creator>tukangjava</dc:creator>
				<category><![CDATA[Sehari-hari]]></category>

		<guid isPermaLink="false">http://tukangjava.wordpress.com/?p=47</guid>
		<description><![CDATA[Sudah beberapa minggu saya bekerja di sebuah perusahaan yang bergerak di bidang pengembangan aplikasi java skala enterprise. Terus terang saya salut dengan rekan kerja saya yang programming javanya sudah layaknya makan kacang rebus alias tidak perlu mikir untuk mengupas kulit kacang, tangannya sudah bergerak-gerak sendiri di atas keyboard.
Melihat keahlian mereka, asumsi saya pasti paling rendah [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=47&subd=tukangjava&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sudah beberapa minggu saya bekerja di sebuah perusahaan yang bergerak di bidang pengembangan aplikasi java skala enterprise. Terus terang saya salut dengan rekan kerja saya yang programming javanya sudah layaknya makan kacang rebus alias tidak perlu mikir untuk mengupas kulit kacang, tangannya sudah bergerak-gerak sendiri di atas keyboard.<br />
Melihat keahlian mereka, asumsi saya pasti paling rendah mereka memegang SCJP (Sun Certified Java Programmer). Ternyata asumsi saya salah. Dari sekitar 30 an orang programmer, ternyata hanya kurang dari 5 orang yang memegang SCJP, bahkan beberapa tidak tahu apa itu SCJP. Terus terang saya terkejut. Saya pikir jumlahnya terbalik (hanya kurang dari 5 yang tidak memegang SCJP).<br />
Hal ini membuat saya bertanya, penting atau tidak sih sebenarnya sertifikasi keahlian profesi itu? Saat berdiskusi dengan rekan-rekan lainnya, saya menyimpulkan bahwa sertifikasi itu penting. Karena sertifikasi itu menaikkan harga jual dan posisi tawar dalam suatu tender. Saat tender untuk memilih kandidat perusahaan yang akan mengembangkan aplikasi penyelenggara tender, maka penyelenggara juga akan melihat kualifikasi dari para programmer dari perusahaan bersangkutan. CV dari para programmer akan dikirimkan ke penyelenggara tender untuk melihat kualifikasi. Jika programmer sudah memiliki sertifikasi apalagi yang bertaraf internasional, maka otomatis kans dan harga jual dari peserta tender akan meningkat.<br />
Tapi, selayaknya sertifikat yang kita punya juga diimbangi dengan pengalaman dan keahlian tidak seperti kabar yang beredar baru-baru ini. Banyak programmer dari negeri bawang dan martabak yang diacuhkan di negeri dekat batam dikarenakan sertifikat yang bertumpuk tapi pengalaman dan keahlian yang minim.<br />
Jadi, anggaplah sertifikat itu sebagai suatu evaluasi dari kemampuan kita selayaknya ujian akhir semester. Jadi belajar dulu secara umum baru evaluasi dengan mengambil sertifikasi, bukannya belajar untuk mengambil sertifikasi (beli soal dari testking, terus belajar dari sana karena 80% soal mirip -loh kok malah ngasih hint??).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tukangjava.wordpress.com/47/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tukangjava.wordpress.com/47/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tukangjava.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tukangjava.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tukangjava.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tukangjava.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tukangjava.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tukangjava.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tukangjava.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tukangjava.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tukangjava.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tukangjava.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=47&subd=tukangjava&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tukangjava.wordpress.com/2008/06/13/sertifikasi-penting-atau-tidak-sih-sebenarnya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/caf8c6538c3f700379a20ca80e776bbd?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tukangjava</media:title>
		</media:content>
	</item>
		<item>
		<title>Interview Java Developer</title>
		<link>http://tukangjava.wordpress.com/2008/05/10/interview-java-developer/</link>
		<comments>http://tukangjava.wordpress.com/2008/05/10/interview-java-developer/#comments</comments>
		<pubDate>Sat, 10 May 2008 04:52:29 +0000</pubDate>
		<dc:creator>tukangjava</dc:creator>
				<category><![CDATA[Sehari-hari]]></category>

		<guid isPermaLink="false">http://tukangjava.wordpress.com/?p=45</guid>
		<description><![CDATA[Kemarin saya menjalani interview untuk posisi Java Developer di salah satu perusahaan IT yang fokus pada aplikasi Banking. Proses penerimaannya bisa dibilang sangat express. Senin setor CV, Rabu dipanggil interview, Jumat interview langsung diterima.
Interview dijadwalkan jam 10 tapi molor sampai jam 11 lewat. Sebelum interview, saya diharuskan mengisi form dan semacam ujian tertulis (basic interview [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=45&subd=tukangjava&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Kemarin saya menjalani interview untuk posisi Java Developer di salah satu perusahaan IT yang fokus pada aplikasi Banking. Proses penerimaannya bisa dibilang sangat express. Senin setor CV, Rabu dipanggil interview, Jumat interview langsung diterima.<br />
Interview dijadwalkan jam 10 tapi molor sampai jam 11 lewat. Sebelum interview, saya diharuskan mengisi form dan semacam ujian tertulis (basic interview question -judul testnya). Formnya standar, menanyakan biodata, prestasi, pengalaman kerja, gaji yang diinginkan, dst. Ujian tertulisnya ada 12 pertanyaan. Simple, contohnya: apa itu java, apa object oriented, apa database, apa n-tier application, dll.<br />
Interviewnya dibagi dua session. Session pertama dengan interviewer yang menanyakan hal-hal teknikal dan menelusuri sejauh mana pengetahuan tentang Java. Polymorphism, multithreading, dll. Tidak ada disuruh membuat program. Hanya konsep. Kemudian ia menanyakan sejauh mana pengetahuan tentang J2EE. Familiar dengan framework apa? struts, spring? Koneksi database dengan Hibernate pernah? dll. Karena saya belum familiar dengan J2EE saya jawab terus terang. Saya belum tahu.<br />
Session kedua dengan HR Manager (sepertinya..). Ia menjelaskan tentang business line perusahaan, bla bla bla. Terus melihat gross salary yang saya tulis 3 juta. Komentarnya: &#8220;Ini terlalu tinggi untuk fresh graduate&#8221;. Kemudian nego gaji akhirnya disepakati 2.8 juta (So much for 5 jt T_T&#8230;Hai kamu orang-orang yang bilang gaji developer java paling rendah 4 juta&#8230;dasar boong). Terus diterima dan akhirnya membicarakan tanggal masuk kerja. Yah, skripsi juga belum kelar&#8230;.akhirnya sepakat kerja mulai bulan depan setelah skripsi.<br />
Fiuh, gak jadi nganggur deh. Tapi kapan mau beli mobil, beli rumah&#8230;..T_T</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tukangjava.wordpress.com/45/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tukangjava.wordpress.com/45/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tukangjava.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tukangjava.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tukangjava.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tukangjava.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tukangjava.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tukangjava.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tukangjava.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tukangjava.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tukangjava.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tukangjava.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=45&subd=tukangjava&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tukangjava.wordpress.com/2008/05/10/interview-java-developer/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/caf8c6538c3f700379a20ca80e776bbd?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tukangjava</media:title>
		</media:content>
	</item>
		<item>
		<title>Populate JList from JTextField</title>
		<link>http://tukangjava.wordpress.com/2008/05/01/populate-jlist-from-jtextfield/</link>
		<comments>http://tukangjava.wordpress.com/2008/05/01/populate-jlist-from-jtextfield/#comments</comments>
		<pubDate>Thu, 01 May 2008 07:58:38 +0000</pubDate>
		<dc:creator>tukangjava</dc:creator>
				<category><![CDATA[Java General]]></category>

		<guid isPermaLink="false">http://tukangjava.wordpress.com/?p=44</guid>
		<description><![CDATA[
How to populate list above from the textfields?
Firstly, create the GUI using your preferred IDE (i used netbeans).
Next, add these method from actionPerformed event called from addButton and removeButton

private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
        addToList();
}
private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) {
        removeFromList();
}

Next, we define [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=44&subd=tukangjava&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://tukangjava.files.wordpress.com/2008/05/list.jpg"><img class="alignnone size-full wp-image-42" src="http://tukangjava.files.wordpress.com/2008/05/list.jpg?w=477&#038;h=310" alt="" width="477" height="310" /></a></p>
<p>How to populate list above from the textfields?</p>
<p>Firstly, create the GUI using your preferred IDE (i used netbeans).</p>
<p>Next, add these method from actionPerformed event called from addButton and removeButton<br />
<code><br />
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {<br />
        addToList();<br />
}<br />
private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) {<br />
        removeFromList();<br />
}<br />
</code></p>
<p>Next, we define the methods.<br />
<code><br />
    void addToList() {<br />
        String name = txtIPAddress.getText();<br />
        Target participants;<br />
        //User didn't type in a unique name<br />
        if (name.equals("") || alreadyInList(name)) {<br />
            Toolkit.getDefaultToolkit().beep();<br />
            txtIPAddress.requestFocusInWindow();<br />
            txtIPAddress.selectAll();<br />
            return;<br />
        }<br />
        String input = txtIPAddress.getText() + " video: " + txtPortVideo.getText()<br />
                + " audio: " + txtPortAudio.getText();<br />
        listModel.addElement(input);<br />
        txtIPAddress.setText("");<br />
        txtPortAudio.setText("");<br />
        txtPortVideo.setText("");<br />
    }<br />
</code><br />
<code><br />
    void removeFromList() {<br />
        int index = listParticipant.getSelectedIndex();<br />
            listModel.remove(index);</p>
<p>            int size = listModel.getSize();</p>
<p>            if (size == 0) { //Nobody's left, disable firing.<br />
                btnRemove.setEnabled(false);</p>
<p>            }<br />
            else { //Select an index.<br />
                if (index == listModel.getSize()) {<br />
                    //removed item in last position<br />
                    index--;<br />
                }</p>
<p>                listParticipant.setSelectedIndex(index);<br />
                listParticipant.ensureIndexIsVisible(index);<br />
            }<br />
    }<br />
</code><br />
<code><br />
    boolean alreadyInList(String name) {<br />
        if (listModel.contains(name)) {<br />
            //add import.javax.swing.JOptionPane first<br />
            JOptionPane.showMessageDialog(this, "The participant is already exists");<br />
            return true;<br />
        }<br />
        return false;<br />
    }<br />
</code><br />
<code><br />
    public void valueChanged(ListSelectionEvent e) {<br />
        if (e.getValueIsAdjusting() == false) {</p>
<p>            if (listParticipant.getSelectedIndex() == -1) {<br />
            //No selection, disable fire button.<br />
                btnRemove.setEnabled(false);</p>
<p>            } else {<br />
            //Selection, enable the fire button.<br />
                btnRemove.setEnabled(true);<br />
            }<br />
        }<br />
    }<br />
</code><br />
In the class declaration, we implements ListSelectionListenerInterface. Moreover, we declare an instance variable called listModel of type DefaultListModel. Our coding actually manipulate this listModel because we cannot manipulate JList directly. So, we add these code:<br />
<code><br />
public class Tx extends javax.swing.JFrame implements ListSelectionListener {<br />
    private DefaultListModel listModel = new DefaultListModel();<br />
    public Tx() {<br />
        initComponents();<br />
        listParticipant.setModel(listModel);<br />
        listParticipant.addListSelectionListener(this);<br />
    }<br />
</code><br />
That is how you populate JList from JTextField.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tukangjava.wordpress.com/44/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tukangjava.wordpress.com/44/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tukangjava.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tukangjava.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tukangjava.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tukangjava.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tukangjava.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tukangjava.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tukangjava.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tukangjava.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tukangjava.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tukangjava.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=44&subd=tukangjava&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tukangjava.wordpress.com/2008/05/01/populate-jlist-from-jtextfield/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/caf8c6538c3f700379a20ca80e776bbd?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tukangjava</media:title>
		</media:content>

		<media:content url="http://tukangjava.files.wordpress.com/2008/05/list.jpg" medium="image" />
	</item>
		<item>
		<title>Jingle All The Way</title>
		<link>http://tukangjava.wordpress.com/2008/04/25/jingle-all-the-way/</link>
		<comments>http://tukangjava.wordpress.com/2008/04/25/jingle-all-the-way/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 13:27:47 +0000</pubDate>
		<dc:creator>tukangjava</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tukangjava.wordpress.com/?p=39</guid>
		<description><![CDATA[Perubahan yang paling mencolok sejak pindah dari asrama ke rumah kontrakan di perumahan adalah adanya tukang jualan lewat-lewat. Setelah sekitar dua bulan menempati rumah kontrakan, keberadaan tukang jualan lewat-lewat ini dapat menjadi berkah tapi juga dapat menjadi kutuk tergantung situasi yang dihadapi.
Berikut adalah daftar delapan tukang jualan lewat-lewat yang cukup signifikan frekwensinya berikut jingle khasnya [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=39&subd=tukangjava&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Perubahan yang paling mencolok sejak pindah dari asrama ke rumah kontrakan di perumahan adalah adanya tukang jualan lewat-lewat. Setelah sekitar dua bulan menempati rumah kontrakan, keberadaan tukang jualan lewat-lewat ini dapat menjadi berkah tapi juga dapat menjadi kutuk tergantung situasi yang dihadapi.</p>
<p>Berikut adalah daftar delapan tukang jualan lewat-lewat yang cukup signifikan frekwensinya berikut jingle khasnya diurut dari yang paling menyebalkan hingga yang paling menyenangkan:</p>
<p>1. Rujak Sabang</p>
<blockquote><p>(high pitched voice) Rujak&#8230;rujak!!! Dari Sabang sampai Merauke. Rujak Sabang memang oke. Sangat terasa khasnya. Enggak percaya? Cobain sendiri. Cuma gopek kok (high pitched voice)</p></blockquote>
<p>2. Tukang sayur</p>
<blockquote><p>yeeeuh&#8230;.eeuuuuh (100x)</p></blockquote>
<p>3. Edam Burger</p>
<blockquote>
<p class="MsoNormal">♫♪ Edam, burger, ini baru burger! Enak rasanya, lezat dan juga bergizi. Edam burger. Enak rek! ♫♪</p>
</blockquote>
<p class="MsoNormal">4. Sari Roti</p>
<blockquote>
<p class="MsoNormal">(dalam satu tarikan nafas) SariRoti! Roti SariRoti!</p>
</blockquote>
<p class="MsoNormal">5. Pempek</p>
<blockquote>
<p class="MsoNormal">(3 ketukan perkusi bernada rendah) (3 ketukan perkusi bernada tinggi) Pempek!</p>
</blockquote>
<p class="MsoNormal">6. Roti Raja</p>
<blockquote>
<p class="MsoNormal">(Fanfare) Rottti Rajaa (Fanfare)</p>
</blockquote>
<p class="MsoNormal">7. Susu Nasional</p>
<blockquote>
<p class="MsoNormal">Susu murni&#8230; nasi..o..nal</p>
</blockquote>
<p class="MsoNormal">8. Roti Boti</p>
<blockquote>
<p class="MsoNormal">(Music playing Fade In) Boti Boti!!!(Fade Out)</p>
</blockquote>
<p class="MsoNormal">
<p class="MsoNormal">Dari daftar tersebut, dapat disimpulkan bahwa jingle yang baik adalah yang singkat, padat, dan jelas. Juga dikemas dalam musik yang menarik.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tukangjava.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tukangjava.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tukangjava.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tukangjava.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tukangjava.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tukangjava.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tukangjava.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tukangjava.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tukangjava.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tukangjava.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tukangjava.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tukangjava.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=39&subd=tukangjava&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tukangjava.wordpress.com/2008/04/25/jingle-all-the-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/caf8c6538c3f700379a20ca80e776bbd?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tukangjava</media:title>
		</media:content>
	</item>
		<item>
		<title>Status YM</title>
		<link>http://tukangjava.wordpress.com/2008/04/23/status-ym/</link>
		<comments>http://tukangjava.wordpress.com/2008/04/23/status-ym/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 15:25:51 +0000</pubDate>
		<dc:creator>tukangjava</dc:creator>
				<category><![CDATA[Sehari-hari]]></category>

		<guid isPermaLink="false">http://tukangjava.wordpress.com/?p=37</guid>
		<description><![CDATA[Macam-macam memang status ym tulisan orang-orang di contacts ym saya. Ada yang promosi blog, ada yang jualan laptop, ada yang rajin sekali update statusnya, dan lain-lain. Tapi satu status yang sangat mengganggu adalah saat seseorang menulis status sebagai berikut:
&#8220;Don&#8217;t disturb! I am extremely very busy!!&#8221;
atau
&#8220;Please don&#8217;t disturb me unless you want to get your ass [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=37&subd=tukangjava&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Macam-macam memang status ym tulisan orang-orang di contacts ym saya. Ada yang promosi blog, ada yang jualan laptop, ada yang rajin sekali update statusnya, dan lain-lain. Tapi satu status yang sangat mengganggu adalah saat seseorang menulis status sebagai berikut:</p>
<p>&#8220;Don&#8217;t disturb! I am extremely very busy!!&#8221;</p>
<p>atau</p>
<p>&#8220;Please don&#8217;t disturb me unless you want to get your ass kicked&#8221;</p>
<p>&#8230;&#8230;.</p>
<p>Ya ampun, guys. Kalau lu gak pengen diganggu ya offline aja atau appear invisible. Seriously&#8230;</p>
<p>Terus setiap ada yang menulis status seperti itu saya biasanya menulis status ini di ym saya.</p>
<p>&#8220;Don&#8217;t disturb, i am very busy. so busy that i&#8217;m online on my ym and have time to write this stupid status instead of just offline or invisible&#8230;..&#8221;</p>
<p>Yah, memang terserah sih orang mau tulis apa di status mereka. Tapi cukup mengganggu kadang-kadang, apalagi saya termasuk orang yang suka membaca status-status ym orang. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Saya sendiri beberapa kali suka menulis status ym yang aneh-aneh.</p>
<p>Personal record, salah satu status ym saya membuat 8 orang di contact saya me-reply dengan jawaban yang hampir sama dalam kurun waktu kurang lebih tujuh menit. Hohoho. Serasa artis.</p>
<p>&#8220;Apa yang kita lakukan malam ini, brain?&#8221;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tukangjava.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tukangjava.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tukangjava.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tukangjava.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tukangjava.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tukangjava.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tukangjava.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tukangjava.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tukangjava.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tukangjava.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tukangjava.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tukangjava.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=37&subd=tukangjava&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tukangjava.wordpress.com/2008/04/23/status-ym/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/caf8c6538c3f700379a20ca80e776bbd?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tukangjava</media:title>
		</media:content>
	</item>
		<item>
		<title>Spam = Unsolicited message to many</title>
		<link>http://tukangjava.wordpress.com/2008/04/11/spam-unsolicited-message-to-many/</link>
		<comments>http://tukangjava.wordpress.com/2008/04/11/spam-unsolicited-message-to-many/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 09:25:28 +0000</pubDate>
		<dc:creator>tukangjava</dc:creator>
				<category><![CDATA[Sehari-hari]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://tukangjava.wordpress.com/?p=34</guid>
		<description><![CDATA[Kesal juga lama kelamaan menerima spam-spam dari orang-orang melalui ym.
FYI ya&#8230; kalau kamu sering mengirim pesan berantai melalui ym, kamu sedang mengirim spam pada orang lain. Tolong dihentikan karena praktek itu mengesalkan orang lain.
Mungkin isi pesan berantai itu baik, berbicara tentang suatu praktek kejahatan baru dan orang lain harus hati-hati. Bisa juga meminta bantuan dana. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=34&subd=tukangjava&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Kesal juga lama kelamaan menerima spam-spam dari orang-orang melalui ym.</p>
<p>FYI ya&#8230; kalau kamu sering mengirim pesan berantai melalui ym, kamu sedang mengirim spam pada orang lain. Tolong dihentikan karena praktek itu mengesalkan orang lain.</p>
<p>Mungkin isi pesan berantai itu baik, berbicara tentang suatu praktek kejahatan baru dan orang lain harus hati-hati. Bisa juga meminta bantuan dana. Tapi apakah kamu sudah cek validitas dari berita tersebut? Jangan-jangan hanya isapan jempol atau pekerjaan orang iseng. Bisa saja saya mengirim pesan berantai dengan isi yang menghebohkan dan pesan itu tersebar padahal isi pesan tersebut hoax atau tidak benar.</p>
<p>Jadi kesimpulannya:</p>
<p>1. Cek validitas pesan tersebut. Jangan langsung di-<em>forward</em></p>
<p>2. Pilih dari list messenger kamu siapa-siapa yang kelihatannya tertarik dengan isi pesan itu (jangan langsung send to all contacts)</p>
<p>3. Jangan ikutkan saya dalam list orang yang akan kamu kirimi pesan itu karena percayalah saya tidak tertarik sama sekali dan saya akan marah-marah kepada anda!</p>
<p>Jadi, tolong jangan spam saya. Terima kasih atas pengertiannya.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tukangjava.wordpress.com/34/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tukangjava.wordpress.com/34/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tukangjava.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tukangjava.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tukangjava.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tukangjava.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tukangjava.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tukangjava.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tukangjava.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tukangjava.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tukangjava.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tukangjava.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=34&subd=tukangjava&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tukangjava.wordpress.com/2008/04/11/spam-unsolicited-message-to-many/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/caf8c6538c3f700379a20ca80e776bbd?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tukangjava</media:title>
		</media:content>
	</item>
		<item>
		<title>Membuat Aplikasi Video Conference dengan JMF bagian 3: Capture</title>
		<link>http://tukangjava.wordpress.com/2008/03/31/membuat-aplikasi-video-conference-dengan-jmf-bagian-3-capture/</link>
		<comments>http://tukangjava.wordpress.com/2008/03/31/membuat-aplikasi-video-conference-dengan-jmf-bagian-3-capture/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 04:52:51 +0000</pubDate>
		<dc:creator>tukangjava</dc:creator>
				<category><![CDATA[JConference]]></category>

		<guid isPermaLink="false">http://tukangjava.wordpress.com/?p=32</guid>
		<description><![CDATA[Di post sebelum ini kita sudah membahas bagaimana memainkan multimedia dari local disk. Sekarang kita akan membahas bagaimana caranya untuk capture video dan audio dari web cam dan microphone dan menampilkannya di aplikasi kita.
Pertama, kita buat class untuk menangani format dari video dan audio kita.
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import javax.media.*;
import javax.media.format.*;
import javax.media.protocol.DataSource;
import javax.swing.*;
public class CaptureDeviceDialog extends [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=32&subd=tukangjava&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Di post sebelum ini kita sudah membahas bagaimana memainkan multimedia dari local disk. Sekarang kita akan membahas bagaimana caranya untuk capture video dan audio dari web cam dan microphone dan menampilkannya di aplikasi kita.</p>
<p>Pertama, kita buat class untuk menangani format dari video dan audio kita.</p>
<p>import java.awt.*;<br />
import java.awt.event.*;<br />
import java.util.Vector;<br />
import javax.media.*;<br />
import javax.media.format.*;<br />
import javax.media.protocol.DataSource;<br />
import javax.swing.*;</p>
<p>public class CaptureDeviceDialog extends Dialog implements ActionListener, ItemListener {</p>
<p>boolean configurationChanged = false;<br />
Vector devices;<br />
Vector audioDevices;<br />
Vector videoDevices;<br />
Vector audioFormats;<br />
Vector videoFormats;<br />
Choice audioDeviceCombo;<br />
Choice videoDeviceCombo;<br />
Choice audioFormatCombo;<br />
Choice videoFormatCombo;</p>
<p>public CaptureDeviceDialog(Frame parent, String title, boolean mode) {<br />
super(parent, title, mode);<br />
init();<br />
}</p>
<p>private void init() {<br />
setSize(450, 180);<br />
Panel p = new Panel();<br />
p.setLayout(null);</p>
<p>Label l1 = new Label(&#8220;Audio Device(s)&#8221;);<br />
Label l2 = new Label(&#8220;Video Device(s)&#8221;);<br />
Label l3 = new Label(&#8220;Audio Format(s)&#8221;);<br />
Label l4 = new Label(&#8220;Video Format(s)&#8221;);<br />
audioDeviceCombo = new Choice();<br />
videoDeviceCombo = new Choice();<br />
audioFormatCombo = new Choice();<br />
videoFormatCombo = new Choice();</p>
<p>Button OKbutton = new Button(&#8220;OK&#8221;);<br />
Button cancelButton = new Button(&#8220;Cancel&#8221;);</p>
<p>p.add(l1);<br />
l1.setBounds(5, 5, 100, 20);<br />
p.add(audioDeviceCombo);<br />
audioDeviceCombo.setBounds(115, 5, 300, 20);<br />
p.add(l3);<br />
l3.setBounds(5, 30, 100,20);<br />
p.add(audioFormatCombo);<br />
audioFormatCombo.setBounds(115, 30, 300,20);<br />
p.add(l2);<br />
l2.setBounds(5, 55, 100, 20);<br />
p.add(videoDeviceCombo);<br />
videoDeviceCombo.setBounds(115, 55, 300, 20);<br />
p.add(l4);<br />
l4.setBounds(5, 80, 100, 20);<br />
p.add(videoFormatCombo);<br />
videoFormatCombo.setBounds(115, 80, 300, 20);<br />
p.add(OKbutton);<br />
OKbutton.setBounds(280, 115, 60, 25);<br />
p.add(cancelButton);<br />
cancelButton.setBounds(355, 115, 60, 25);</p>
<p>add(p, &#8220;Center&#8221;);<br />
audioDeviceCombo.addItemListener(this);<br />
videoDeviceCombo.addItemListener(this);<br />
OKbutton.addActionListener(this);<br />
cancelButton.addActionListener(this);</p>
<p>//get all the capture devices<br />
devices = CaptureDeviceManager.getDeviceList ( null );<br />
CaptureDeviceInfo cdi;<br />
if (devices!=null &amp;&amp; devices.size()&gt;0) {<br />
int deviceCount = devices.size();<br />
audioDevices = new Vector();<br />
videoDevices = new Vector();</p>
<p>Format[] formats;<br />
for ( int i = 0;  i &lt; deviceCount;  i++ ) {<br />
cdi = (CaptureDeviceInfo) devices.elementAt ( i );<br />
formats = cdi.getFormats();<br />
for ( int j=0;  j&lt;formats.length; j++ ) {<br />
if ( formats[j] instanceof AudioFormat ) {<br />
audioDevices.addElement(cdi);<br />
break;<br />
}<br />
else if (formats[j] instanceof VideoFormat ) {<br />
videoDevices.addElement(cdi);<br />
break;<br />
}<br />
}<br />
}</p>
<p>//populate the choices for audio<br />
for (int i=0; i&lt;audioDevices.size(); i++) {<br />
cdi  = (CaptureDeviceInfo) audioDevices.elementAt(i);<br />
audioDeviceCombo.addItem(cdi.getName());<br />
}</p>
<p>//populate the choices for video<br />
for (int i=0; i&lt;videoDevices.size(); i++) {<br />
cdi  = (CaptureDeviceInfo) videoDevices.elementAt(i);<br />
videoDeviceCombo.addItem(cdi.getName());<br />
}</p>
<p>displayAudioFormats();<br />
displayVideoFormats();</p>
<p>} // end if devices!=null &amp;&amp; devices.size&gt;0<br />
else {<br />
//no devices found or something bad happened.<br />
}<br />
}</p>
<p>void displayAudioFormats() {<br />
//get audio formats of the selected audio device and repopulate the audio format combo<br />
CaptureDeviceInfo cdi;<br />
audioFormatCombo.removeAll();</p>
<p>int i = audioDeviceCombo.getSelectedIndex();<br />
//i = -1 &#8211;&gt; no selected index</p>
<p>if (i!=-1) {<br />
cdi = (CaptureDeviceInfo) audioDevices.elementAt(i);<br />
if (cdi!=null) {<br />
Format[] formats = cdi.getFormats();<br />
audioFormats = new Vector();<br />
for (int j=0; j&lt;formats.length; j++) {<br />
audioFormatCombo.add(formats[j].toString());<br />
audioFormats.addElement(formats[j]);<br />
}<br />
}<br />
}<br />
}</p>
<p>void displayVideoFormats() {<br />
//get audio formats of the selected audio device and repopulate the audio format combo<br />
CaptureDeviceInfo cdi;<br />
videoFormatCombo.removeAll();</p>
<p>int i = videoDeviceCombo.getSelectedIndex();<br />
//i = -1 &#8211;&gt; no selected index</p>
<p>if (i!=-1) {<br />
cdi = (CaptureDeviceInfo) videoDevices.elementAt(i);<br />
if (cdi!=null) {<br />
Format[] formats = cdi.getFormats();<br />
videoFormats = new Vector();<br />
for (int j=0; j&lt;formats.length; j++) {<br />
videoFormatCombo.add(formats[j].toString());<br />
videoFormats.addElement(formats[j]);<br />
}<br />
}<br />
}<br />
}</p>
<p>public CaptureDeviceInfo getAudioDevice() {<br />
CaptureDeviceInfo cdi = null;<br />
if (audioDeviceCombo!=null) {<br />
int i = audioDeviceCombo.getSelectedIndex();<br />
cdi = (CaptureDeviceInfo) audioDevices.elementAt(i);<br />
}<br />
return cdi;<br />
}</p>
<p>public CaptureDeviceInfo getVideoDevice() {<br />
CaptureDeviceInfo cdi = null;<br />
if (videoDeviceCombo!=null) {<br />
int i = videoDeviceCombo.getSelectedIndex();<br />
cdi = (CaptureDeviceInfo) videoDevices.elementAt(i);<br />
}<br />
return cdi;<br />
}</p>
<p>public Format getAudioFormat() {<br />
Format format = null;<br />
if (audioFormatCombo!=null) {<br />
int i = audioFormatCombo.getSelectedIndex();<br />
format = (Format) audioFormats.elementAt(i);<br />
}<br />
return format;<br />
}</p>
<p>public Format getVideoFormat() {<br />
Format format = null;<br />
if (videoFormatCombo!=null) {<br />
int i = videoFormatCombo.getSelectedIndex();<br />
format = (Format) videoFormats.elementAt(i);<br />
}<br />
return format;<br />
}</p>
<p>public boolean hasConfigurationChanged() {<br />
return configurationChanged;<br />
}</p>
<p>public void actionPerformed(ActionEvent ae) {<br />
String command = ae.getActionCommand().toString();<br />
if (command.equals(&#8220;OK&#8221;)) {<br />
configurationChanged = true;<br />
}<br />
dispose();<br />
}</p>
<p>public void itemStateChanged(ItemEvent ie) {<br />
System.out.println(ie.getSource().toString());<br />
if (ie.getSource().equals(audioDeviceCombo))<br />
displayAudioFormats();<br />
else<br />
displayVideoFormats();</p>
<p>}<br />
}<br />
Itu adalah class untuk menangani user yang akan memilih format dari video dan audio yang akan di capture. Selanjutnya, kita tambahkan method capture pada JConference kita.</p>
<p>Pada action File&#8211;&gt;Capture, kita ubah</p>
<p>System.out.println(&#8220;Sementara&#8221;);</p>
<p>menjadi</p>
<p>capture();</p>
<p>Selanjutnya kita tambahkan method capture() dan method-method yang mendukungnya</p>
<p>void registerDevices() {<br />
CaptureDeviceDialog cdDialog = new<br />
CaptureDeviceDialog(this, &#8220;Capture Device&#8221;, true);<br />
cdDialog.setVisible(true);<br />
if (!cdDialog.hasConfigurationChanged())<br />
return;<br />
//configuration has changed, update variables.<br />
audioCDI = cdDialog.getAudioDevice();<br />
if (audioCDI!=null) {<br />
audioDeviceName = audioCDI.getName();<br />
System.out.println(&#8220;Audio Device Name: &#8221; + audioDeviceName);<br />
}<br />
videoCDI = cdDialog.getVideoDevice();<br />
if (videoCDI!=null) {<br />
videoDeviceName = videoCDI.getName();<br />
System.out.println(&#8220;Video Device Name: &#8221; + videoDeviceName);<br />
}<br />
//Get formats selected, to be used for creating DataSource<br />
videoFormat = cdDialog.getVideoFormat();<br />
audioFormat = cdDialog.getAudioFormat();<br />
}<br />
public synchronized void controllerUpdate(ControllerEvent event) {<br />
System.out.println(event.toString());<br />
if (event instanceof RealizeCompleteEvent) {<br />
Component comp;<br />
System.out.println(&#8220;Adding visual component&#8221;);<br />
if ((comp = dualPlayer.getVisualComponent()) != null)<br />
add (&#8220;Center&#8221;, comp);<br />
System.out.println(&#8220;Adding control panel&#8221;);<br />
if ((comp = dualPlayer.getControlPanelComponent()) != null)<br />
add(&#8220;South&#8221;, comp);<br />
validate();<br />
}<br />
}<br />
void capture() {<br />
if (audioCDI==null &amp;&amp; videoCDI==null)<br />
registerDevices();</p>
<p>try {<br />
if (!(audioCDI==null &amp;&amp; videoCDI==null)) {<br />
DataSource[] dataSources = new DataSource[2];<br />
System.out.println(&#8220;Creating data sources.&#8221;);<br />
dataSources[0] = Manager.createDataSource(audioCDI.getLocator());<br />
dataSources[1] = Manager.createDataSource(videoCDI.getLocator());<br />
DataSource ds = Manager.createMergingDataSource(dataSources);<br />
dualPlayer = Manager.createPlayer(ds);<br />
dualPlayer.addControllerListener(this);<br />
dualPlayer.start();<br />
}<br />
else<br />
System.out.println(&#8220;CDI not found.&#8221;);<br />
}<br />
catch (Exception e) {<br />
System.out.println(e.toString());<br />
}<br />
}</p>
<p>Post selanjutnya kita akan membahas tentang transmit receive paket-paket RTP (Real Time Protocol), protokol yang kita pakai untuk aplikasi kita.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tukangjava.wordpress.com/32/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tukangjava.wordpress.com/32/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tukangjava.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tukangjava.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tukangjava.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tukangjava.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tukangjava.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tukangjava.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tukangjava.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tukangjava.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tukangjava.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tukangjava.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=32&subd=tukangjava&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tukangjava.wordpress.com/2008/03/31/membuat-aplikasi-video-conference-dengan-jmf-bagian-3-capture/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/caf8c6538c3f700379a20ca80e776bbd?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tukangjava</media:title>
		</media:content>
	</item>
		<item>
		<title>Membuat Aplikasi Video Conference dengan JMF bagian 2: Player</title>
		<link>http://tukangjava.wordpress.com/2008/03/30/membuat-aplikasi-video-conference-dengan-jmf-bagian-2-player/</link>
		<comments>http://tukangjava.wordpress.com/2008/03/30/membuat-aplikasi-video-conference-dengan-jmf-bagian-2-player/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 17:29:33 +0000</pubDate>
		<dc:creator>tukangjava</dc:creator>
				<category><![CDATA[JConference]]></category>

		<guid isPermaLink="false">http://tukangjava.wordpress.com/?p=31</guid>
		<description><![CDATA[Di bagian 1 kita sudah membuat menu, sekarang kita akan membuat Player untuk memainkan media yang dipilih dari Menu File &#8211;&#62; Open
Kita membuat satu class yang bertugas untuk memainkan file. Class ini adalah class MediaPlayer. Berikut adalah source code nya:
import javax.media.*;
import javax.media.Manager;
import javax.media.Player;
import java.net.URL;
import javax.swing.JPanel;
import java.awt.*;
import java.io.IOException;
public class MediaPlayer extends JPanel {
public MediaPlayer(URL mediaURL) {
setLayout( [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=31&subd=tukangjava&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Di bagian 1 kita sudah membuat menu, sekarang kita akan membuat Player untuk memainkan media yang dipilih dari Menu File &#8211;&gt; Open</p>
<p>Kita membuat satu class yang bertugas untuk memainkan file. Class ini adalah class MediaPlayer. Berikut adalah source code nya:</p>
<p>import javax.media.*;<br />
import javax.media.Manager;<br />
import javax.media.Player;<br />
import java.net.URL;<br />
import javax.swing.JPanel;<br />
import java.awt.*;<br />
import java.io.IOException;</p>
<p>public class MediaPlayer extends JPanel {</p>
<p>public MediaPlayer(URL mediaURL) {<br />
setLayout( new BorderLayout() );<br />
try {<br />
//Create a player to play the media specified in the URL<br />
Player thePlayer = Manager.createRealizedPlayer(mediaURL);<br />
Component video = thePlayer.getVisualComponent();      //Add visual component<br />
Component controls = thePlayer.getControlPanelComponent();  //Add audio component<br />
this.add(video, BorderLayout.CENTER);<br />
this.add(controls, BorderLayout.SOUTH);<br />
thePlayer.start();<br />
}<br />
catch (NoPlayerException noPlayerException){<br />
System.err.println( &#8220;No media player found&#8221; + noPlayerException );<br />
}<br />
catch (CannotRealizeException cannotRealizeException){<br />
System.err.println( &#8220;Could not realize media player&#8221; + cannotRealizeException);<br />
}<br />
catch (IOException iOException){<br />
System.err.println( &#8220;Error reading from the source&#8221; +iOException);<br />
}<br />
}<br />
}</p>
<p>Kemudian, kita edit JConference kita.</p>
<p>Masukkan method openPlayFile() pada action menu File&#8211;&gt;Open</p>
<p>Ganti</p>
<p>System.out.println(&#8220;Sementara&#8221;);</p>
<p>Dengan</p>
<p>openPlayFile();</p>
<p>Kemudian tambahkan method openPlayFile();</p>
<p>void openPlayFile() {<br />
URL theURL = null;<br />
JFileChooser fileChooser = new JFileChooser();<br />
int result = fileChooser.showOpenDialog(null);<br />
if (result == JFileChooser.APPROVE_OPTION) {<br />
try<br />
{<br />
theURL = fileChooser.getSelectedFile().toURL();<br />
}<br />
catch ( MalformedURLException malformedURLException )<br />
{<br />
System.err.println( &#8220;Could not create URL for the file&#8221; + malformedURLException);<br />
}<br />
}<br />
if (theURL != null)<br />
{<br />
MediaPlayer thePlayer = new MediaPlayer(theURL);<br />
this.add(thePlayer, BorderLayout.CENTER);<br />
this.setVisible(true);<br />
}<br />
}</p>
<p>Sekarang kita sudah membuat player untuk aplikasi kita. Post berikutnya akan menambahkan fasilitas capture untuk menampilkan dan menyimpan video dari web cam.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tukangjava.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tukangjava.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tukangjava.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tukangjava.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tukangjava.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tukangjava.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tukangjava.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tukangjava.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tukangjava.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tukangjava.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tukangjava.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tukangjava.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=31&subd=tukangjava&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tukangjava.wordpress.com/2008/03/30/membuat-aplikasi-video-conference-dengan-jmf-bagian-2-player/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/caf8c6538c3f700379a20ca80e776bbd?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tukangjava</media:title>
		</media:content>
	</item>
		<item>
		<title>Membuat Aplikasi Video Conference dengan JMF bagian 1: Menu</title>
		<link>http://tukangjava.wordpress.com/2008/03/30/membuat-aplikasi-video-conference-dengan-jmf-bagian-1-menu/</link>
		<comments>http://tukangjava.wordpress.com/2008/03/30/membuat-aplikasi-video-conference-dengan-jmf-bagian-1-menu/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 16:09:56 +0000</pubDate>
		<dc:creator>tukangjava</dc:creator>
				<category><![CDATA[JConference]]></category>

		<guid isPermaLink="false">http://tukangjava.wordpress.com/?p=30</guid>
		<description><![CDATA[Sekarang kita mencoba membuat aplikasi Video Conference menggunakan JMF.
Langkah awal, kita harus mengatur sistem kita agar dapat menjalankan JMF API.
Caranya install jdk kemudian JMF API dari Sun Microsystem. Lebih jelasnya lihat di post mengenai membuat pemutar mp3 dengan JMF di blog ini.
Langkah pertama, kita buat dulu GUI (Graphical User Interface) dari aplikasi tersebut.
Post ini akan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=30&subd=tukangjava&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sekarang kita mencoba membuat aplikasi Video Conference menggunakan JMF.</p>
<p>Langkah awal, kita harus mengatur sistem kita agar dapat menjalankan JMF API.</p>
<p>Caranya install jdk kemudian JMF API dari Sun Microsystem. Lebih jelasnya lihat di post mengenai membuat pemutar mp3 dengan JMF di blog ini.</p>
<p>Langkah pertama, kita buat dulu GUI (Graphical User Interface) dari aplikasi tersebut.</p>
<p>Post ini akan mengulas pembuatan menu dulu. Selanjutnya akan dibuat secara bertahap.  Karena sambil dibuat sambil dipost, maka mungkin akan banyak perubahan dari awal. Jadi silahkan disimak bertahap.</p>
<p>Berikut adalah source code untuk menu nya:</p>
<p>import java.awt.*;<br />
import java.awt.event.ActionListener;<br />
import java.awt.event.ActionEvent;<br />
import javax.swing.*;<br />
import javax.swing.JMenu;<br />
import javax.swing.JMenuBar;<br />
import javax.swing.JFrame;</p>
<p>public class JConference extends JFrame {</p>
<p>public JConference() {<br />
super(&#8220;JConference v1.0&#8243;);<br />
//Beginning of File Menu<br />
JMenu fileMenu = new JMenu(&#8220;File&#8221;);<br />
fileMenu.setMnemonic(&#8216;F&#8217;);<br />
//File&#8211;&gt;Open<br />
JMenuItem openItem = new JMenuItem(&#8220;Open File&#8221;);<br />
openItem.setMnemonic(&#8216;O&#8217;);<br />
fileMenu.add(openItem);<br />
//Action for File&#8211;&gt;Open<br />
openItem.addActionListener(<br />
new ActionListener() {<br />
public void actionPerformed(ActionEvent event) {<br />
System.out.println(&#8220;Sementara&#8221;);<br />
}<br />
});<br />
//File&#8211;&gt;Capture<br />
JMenuItem captureItem = new JMenuItem(&#8220;Capture&#8221;);<br />
captureItem.setMnemonic(&#8216;P&#8217;);<br />
fileMenu.add(captureItem);<br />
//Action for File&#8211;&gt;Capture<br />
captureItem.addActionListener(<br />
new ActionListener() {<br />
public void actionPerformed(ActionEvent event) {<br />
System.out.println(&#8220;Sementara&#8221;);<br />
}<br />
});<br />
//File&#8211;&gt;Exit<br />
JMenuItem exitItem = new JMenuItem(&#8220;Exit&#8221;);<br />
exitItem.setMnemonic(&#8216;X&#8217;);<br />
fileMenu.add(exitItem);<br />
//Action for File&#8211;&gt;Exit<br />
exitItem.addActionListener(<br />
new ActionListener() {<br />
public void actionPerformed(ActionEvent event) {<br />
System.exit(0);<br />
}<br />
});<br />
//End of File Menu<br />
//Beginning of Player Menu<br />
JMenu playerMenu = new JMenu(&#8220;Player&#8221;);<br />
playerMenu.setMnemonic(&#8216;P&#8217;);<br />
//Player&#8211;&gt;SnapShot<br />
JMenuItem snapItem = new JMenuItem(&#8220;SnapShot&#8221;);<br />
snapItem.setMnemonic(&#8216;S&#8217;);<br />
playerMenu.add(snapItem);<br />
//Action for Player&#8211;&gt;SnapShot<br />
snapItem.addActionListener(<br />
new ActionListener() {<br />
public void actionPerformed(ActionEvent event) {<br />
System.out.println(&#8220;Sementara&#8221;);<br />
}<br />
});<br />
//End of Player Menu<br />
//Beginning of Conference Menu<br />
JMenu conferenceMenu = new JMenu(&#8220;Conference&#8221;);<br />
conferenceMenu.setMnemonic(&#8216;C&#8217;);<br />
//Conference&#8211;&gt;Join Session<br />
JMenuItem joinItem = new JMenuItem(&#8220;Join Session&#8221;);<br />
joinItem.setMnemonic(&#8216;J&#8217;);<br />
conferenceMenu.add(joinItem);<br />
//Action for Player&#8211;&gt;Join Session<br />
joinItem.addActionListener(<br />
new ActionListener() {<br />
public void actionPerformed(ActionEvent event) {<br />
System.out.println(&#8220;Sementara&#8221;);<br />
}<br />
});<br />
//Conference&#8211;&gt;Terminate Session<br />
JMenuItem terminateItem = new JMenuItem(&#8220;Terminate Session&#8221;);<br />
terminateItem.setMnemonic(&#8216;T&#8217;);<br />
conferenceMenu.add(terminateItem);<br />
//Action for Player&#8211;&gt;Terminate Session<br />
terminateItem.addActionListener(<br />
new ActionListener() {<br />
public void actionPerformed(ActionEvent event) {<br />
System.out.println(&#8220;Sementara&#8221;);<br />
}<br />
});<br />
//End of Conference Menu<br />
//Adding Menus to Menu Bar<br />
JMenuBar bar = new JMenuBar();<br />
setJMenuBar(bar);<br />
bar.add(fileMenu);<br />
bar.add(playerMenu);<br />
bar.add(conferenceMenu);<br />
//Display Properties of Menu<br />
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br />
setSize(500, 500);<br />
}<br />
public static void main(String[] args) {<br />
JConference JConf = new JConference();<br />
JConf.setVisible(true);<br />
}</p>
<p>}</p>
<p>Di post selanjutnya kita akan membuat method-method untuk memainkan file.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/tukangjava.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/tukangjava.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tukangjava.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tukangjava.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tukangjava.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tukangjava.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tukangjava.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tukangjava.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tukangjava.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tukangjava.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tukangjava.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tukangjava.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tukangjava.wordpress.com&blog=2428649&post=30&subd=tukangjava&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tukangjava.wordpress.com/2008/03/30/membuat-aplikasi-video-conference-dengan-jmf-bagian-1-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/caf8c6538c3f700379a20ca80e776bbd?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tukangjava</media:title>
		</media:content>
	</item>
	</channel>
</rss>