Tebak-tebak Bahasa Pemrograman


Baru nemu situs yang menarik, sesuai dengan judul post saya, yaitu menebak bahasa pemrograman dengan diberikan potongan kode program.

Ini link situsnya: http://wtpl.heroku.com/

Kalau anda bisa menebak bahasa dengan benar, maka situs akan langsung meberikan soal selanjutnya. Anda bisa melihat skor anda di bagian kiri atas, dan jika anda ingin tidak tahu bahasa pemrograman yang dimaksud, anda bisa menekan tombol forfeit atau menekan escape di keyboard untuk mengetahui jawabannya.

Pada awal mencoba, saya, timmy, dan ecky mendapatkan nilai 33%, dan kali kedua tentu saja mendapatkan score 100%. Bukan karena jago, tapi karena make script berikut:

langs = ['ACL2', 'ActionScript', 'Ada', 'ALGOL 68', 'APL', 'Assembly', 'AutoHotKey', 'AWK', 'Bash', 'BASIC', 'Batch file', 'Befunge', 'Brainfuck', 'C', 'C#', 'C++', 'Chef', 'Clojure', 'COBOL', 'CoffeeScript', 'Common Lisp', 'D', 'Dart', 'Delphi', 'Erlang', 'F#', 'Factor', 'Falcon', 'FALSE', 'Forth', 'Fortran', 'Go', 'Golfscript', 'Groovy', 'Haskell', 'haXe', 'Icon', 'Inform 7', 'Intercal', 'Io', 'J', 'Java', 'JavaScript', 'K', 'LaTeX', 'Logo', 'Lua', 'make', 'Mathematica', 'MATLAB', 'Modula-2', 'Nemerle', 'Objective-C', 'OCaml', 'Pascal', 'Perl', 'PHP', 'Piet', 'Pike', 'PowerShell', 'Prolog', 'Python', 'Racket', 'Ruby', 'Scala', 'Scheme', 'Seed7', 'Smalltalk', 'SNUSP', 'Standard ML', 'Tcl', 'TI-BASIC', 'Visual Basic', 'Whenever', 'XPath 2.0'];
for (i=0; i<langs.length; i++) {
  $("#guess").val(langs[i]);
  $("#guess").keyup();
}

Freak? Hanya ingin memuaskan rasa ingin tahu. Haha.

Project: Harvest Moon–


Ini adalah tugas OOP pertama saya. Dan tugas ini kemudian akan dilanjutkan di tugas kedua. Seperti judulnya, tugas ini memang membuat game Harvest Moon. Bahasa yang digunakan adalah C++, dan diimplementasikan ke command prompt. Lucu ya, game dibuat di command prompt? Haha. Tapi begitulah adanya.

Tugas ini sudah lama sih diberikan, tapi baru ditulis di blog setelah kesibukan yang terjadi selama beberapa waktu. Haha. Tugas ini saya kerjakan bersama anggota kelompok saya. Septu Jamasoka, Novan Parmonangan S, Gurun Nevada Daran, Prama Pradnyana, dan Nugraha.

Apa aja yang bisa dilakukan game ini? Pada game ini  terdapat 3 area, rumah, toko, dan lahan. Di lahan ini tentunya ada lahan yang bisa ditanami tanaman, dan tanaman tersebut bisa disiram, dan kemudian jika sudah saatnya panen, bisa dipanen, dan kemudian ditebas. Persis seperti game Harvest Moon biasa.

Tanaman yang sudah dipanen akan tersimpan di inventory sebagai buah, dan kemudian bisa dijual. Selain itu buah juga bisa dimakan dan memberi efek-efek yang bermacam-macam. Tanaman juga hanya bisa ditanam pada musim tertentu, dan terkadang cuaca bisa hujan, badai atau normal (cerah). Di lahan juga terdapat 3 kurcaci yang tiap kurcacinya memiliki job yang berbeda, menyiram, menebas, dan memanen.

Game ini tentunya juga bisa disave dan diload untuk dimainkan lagi. Setiap perintah diberikan melalui ketikan, dan kemudian perintah tersebut diakhiri dengan karakter pagar.

Lucu ya gamenya? Berikut screenshotnya:

startscreen

Gambar Mula

home

Di rumah, saat ingin teleport ke lahan

Kurcaci lagi akan menyiram. Warna kuning dilahan adalah bibit yang udah disiram.

Tanaman lobak siap panen dan kentang remaja

Segini aja deh screenshotnya. Sebenarnya ada 12 tanaman yang bisa ditanam. Tapi karena capek nanemnya, dan nungguin musimnya, dan nge-printscreen dan nge-crop gambarnya ~_~ haha.

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.

CI: Online Library Project #3 – Model


Selanjutnya mengenai model. Apakah model? Model itu kira-kira yang melakukan interaksi dengan database di level aplikasi. Jadi semua yang berhubungan database merupakan fungsi model. Karena ada 3 database maka terdapat 3 model juga. (Mungkin begitu, tapi entahlah, baru menyadari saat menulis ini)

Model-model tersebut adalah:

Baca lebih lanjut

CI: Online Library Project #2 – Database


2 days not blogging and I’ve finished it! But it lacks of almost everything. -.-

Jadi totalnya ada 4 controller, 3 model dan banyak view -.- Sebenarnya saya bingung bagaimana cara untuk menjelaskannya, jadi saya akan coba untuk menjelaskan fungsi permodel dan fungsi percontroller. Untuk #2 ini akan dikhususkan ke database, #3 model, dan #4 controllernya.

Baca lebih lanjut