Menginstall Java 7 di Ubuntu


Langkah-langkah yang perlu dilakukan:

  • Download file installer java di http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u1-download-513651.html. Pilih yang untuk Linux, yang berakhiran *.tar.gz. Misalkan nama file adalah $FILENAME
  • Buat folder untuk menginstall java di /usr/local/java, dengan command terminal sudo mkdir -p /usr/local/java
  • Pindahkan $FILENAME ke folder /usr/local/java. (mv /lokasidownload/$FILENAME /usr/local/java)
  • extract. (sudo tar -xzfv $FILENAME). Lihat folder yang baru muncul di /usr/local/java, misalkan nama folder ini $FILEPATH (dihitung mulai dari root folder).
  • Edit file /etc/profile (sudo gedit /etc/profile), tambahkan di akhir file (jangan lupa di save):
    • JAVA_HOME=$FILEPATH
    • PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
    • export JAVA_HOME
    • export JAVA_BIN
    • export PATH
  • jalankan sudo update-alternatives –install “/usr/bin/java” “java” “$FILEPATH/bin/java” 1
  • restart.
Good Luck! Feel free for asking. 🙂

Sumber: http://www.wikihow.com/Install-Oracle-Java-on-Ubuntu-Linux

Cara Melihat JavaDoc Android offline dari Eclipse


Saya tidak begitu tahu apakah defaultnya ini tidak tersetting. Tapi untuk kasus saya, agar bisa melihat JavaDoc android (yang muncul sebagai salah satu view dari Java perspective, atau saat menekan Ctrl+Space) tidak bisa jika tidak online sebelum melakukan setting ini.

Saya asumsikan anda telah memiliki dokumentasi Android, biasanya jika di windows terinstall di path C:/android-sdk-windows/docs/. Setelah itu, buat sebuah project android yang baru, atau anda dapat menggunakan project yang anda miliki. Lalu klik kanan di android jar file yang ada di project anda, seperti gambar dibawah ini.

File Jar android

Klik kanan, dan pilih properties. Pilih tab Javadoc Location, dan masukkan path <%android-sdk-installation%>/docs/reference. Karena saya menginstall di C:/android-sdk-windows/, maka yang dimasukkan adalah C:/android-sdk-windows/docs/reference.  Lihat gambar.

Path Javadoc

Dengan langkah di atas, seharusnya sudah bisa menggunakan dokumentasi android secara offline. seperti contoh gambar di bawah:

Contoh menggunakan Javadoc android di Eclipse

Project: Harvest Moon++


Disuruh untuk mengembangkan game harvest moon sebagai tubes 2 OOP. Sama seperti game sebelumnya, namun ditambah fitur-fitur yang diinginkan, dan diimplementasi dengan bahasa Java, dan tentunya sudah memakai GUI, tidak command prompt lagi:p

Kelompok kami memutuskan untuk menambah battle dan storyline dari game ini. Setiap tanaman memiliki dewanya masing-masing. Jadi ada dewa kentang, dewa ubi, dewa lobak, dan lain-lain. Tanaman yang bisa ditanam hanyalah tanaman yang dewanya sudah berteman dengan pemain. Pada awal permainan, kentang dan timun telah menjadi teman sehingga bisa ditanam.

Cara berteman dengan dewa ada bermacam-macam, sesuai dengan quest. Ada side quest dan ada main quest. Rencananya memang benar-benar ingin seperti game RPG. Dan ada battlenya. Battlenya ini seperti final fantasy tactics. Tapi instead of only one character can move at one time, all of character can move synchronously.

Masih banyak sih kekurangan di game ini. Terutama bugnya. Hahaha. Oia, kelompok tugas kali ini masih sama dengan sebelumnya, yaitu sama Septu Jamasoka, Novan Parmonangan S, Gurun Nevada, Prama Pradnyana, dan Nugraha.

A Question about Java. Anyone can help?


I have a question about threading in Java. Maybe I have a wrong concept, but please help me. 😦

The question can be seen here:

http://stackoverflow.com/questions/5581548/java-multi-threading-make-a-thread-wait-for-another-thread-or-joining-different

Edited:
People at StackOverflow is really nice! They give a good answer so quickly 😀 Hope all of my question will be answered 🙂

Edited:

My own answer, see the question at link above.

Okay, somehow I kind of found the answer, not for all though.

Question 1: Thx @noob comment, “Whenever you wait and notify on an object (in this case, lock), you need to execute these actions in a synchronized block”. So I just make the lock in a synchronize block. Like this:

       int gx = (int)Point2D.this.X();
       int gy = (int)Point2D.this.Y();
       Object lock = new Object();
       player.move(gx,gy,lock);
       synchronized(lock){
           try {
               lock.wait();
           } catch (InterruptedException ex){}
       }

Of course, when the lock giving notify also give it a synchronized block. But it’s made a warning: “Synchronization on non-final field”. It is because there is a chance the lock can be modified by other process, and will make a deadlock, because the lock is lose the reference.

Question 2: No. The land is still active. So it’s using the resource. The thread still active while waiting the player thread died. You can use number 1 technique by making the thread wait. Thread that found wait() will give the monitor to other thread. it’s kind of sleep, and wake up when object that invoke wait() invoke notify().

Question 3: Kind of found the answer, but still haven’t trying it, so I won’t answer.

Question 4: Yeah. It is possible. Make the player have a queue of lock instead of a lock. So in move(), instead of setting lock, it’s adding lock to the queue. And the notify also do the same, it’s only notify the front lock. After front lock, give a notify.

Question 5: Thx to @Gandalf answer, but still don’t know whether I’m doing right or not. Don’t know how to test it.