Jumat, 20 Juli 2007

IT entrepreneur?? great idea...

Pada suatu pagi di musim dingin tahun 1974, dalam perjalanan mengunjungi sahabatnya Bill Gates, Paul Allen membaca artikel majalah Popular Electronics dengan judul World’s First Microcomputer Kit to Rival Commercial Models. Artikel ini memuat tentang komputer mikro pertama Altair 9090. Allen kemudian berdiskusi dengan Bill Gates, dan mereka menyadari bahwa era “komputer rumah” akan segera hadir dan meledak, membuat keberadaan software untuk komputer-komputer tersebut sangat dibutuhkan. Bill Gates kemudian menghubungi perusahaan pembuat Altair, yaitu MITS (Micro Instrumentation and Telemetry Systems). image024.jpgDia mengatakan bahwa dia dan Allen, telah membuat BASIC yang dapat digunakan pada Altair. Tentu saja ini adalah bohong. Bahkan mereka sama sekali belum menulis satu baris kode pun. MITS, yang tidak mengetahui hal ini, sangat tertarik pada BASIC. Dan hebatnya dalam waktu 8 minggu BASIC telah siap diimplementasikan dan bekerja sempurna di Altair. Setahun kemudian Bill Gates meninggalkan Harvard, dan bersama dengan Paul Allen mendirikan Microsoft.

image012.jpgKisah berbeda datang dari Jerry Yang, yang pada tahun 1990 menjalani program doktor di Stanford University. Bersama dengan sahabatnya David Filo, mereka lebih menyukai kegiatan surfing di Internet, daripada aktifitas dan penelitian program doktor yang mereka ikuti. Mereka mulai mengumpulkan link situs-situs yang menarik, sampai akhirnya list yang mereka buat telah menjadi terlalu panjang dan terlalu banyak. Mereka kemudian membaginya menjadi banyak kategori dan subkategori. Inilah peristiwa bersejarah yang mengawali lahirlah perusahaan besar bernama Yahoo!. Yahoo merupakan singkatan dari ”Yet another Hierarchical Officious Oracle”. Awalnya, yang mengakses ke direktori Yahoo! hanya Yang, Filo, dan beberapa teman dekat mereka di Stanford University. Namun, dari obrolan mulut ke mulut, orang mengakses ke Yahoo! menjadi semakin banyak. Mengetahui bahwa orang yang mengakses ke Yahoo! menjadi sangat banyak, mereka akhirnya menjadikan Yahoo! sebagai bisnis.Â

Dua kisah diatas tercatat dalam sejarah bagaimana sebuah bisnis Information Technology (IT) dapat terlahir. Dan masih banyak kisah-kisah lain tentang kesuksesan bisnis IT, yang kadang dimulai dari sesuatu yang sederhana, dari sebuah hobi atau kemampuan kita membaca kebutuhan masyarakat terhadap suatu solusi. Bidang IT termasuk bidang yang unik, karena banyak sekali pebisnis dan tokoh-tokoh IT lahir justru karena kekuatan karakter dan kreatifitas.

Nah, keunggulan yang diperoleh seseorang karena pengakuan dan penghargaan publik terhadap hasil karya, produk, ide dan perjoeangan yang dilakukan adalah merupakan keunggulan defacto. Sebaliknya keunggulan yang diperoleh seseorang karena gelar (degree), sertifikasi (certification) dan pengakuan formal, sering saya sebut sebagai keunggulan dejure. Bisnis dan peluangnya bisa lahir dari keunggulan defacto maupun dejure, dan keduanya bisa saling melengkapi.

image014.jpgBill Gates, Kevin Mitnik, Steve Jobs, dan William Joy, adalah nama-nama yang besar di dunia IT karena keunggulan defacto mereka. Orang mungkin juga lupa bahwa Jerry Yang adalah seorang akademisi yang menguasai dengan baik teori-teori dasar komputasi. Meskipun dia lebih terkenal karena sebagai founder dari Yahoo.Com. William Joy yang lulusan the University of California Barkeley, justru lebih terkenal karena sebagai pendiri dari Sun Microsystems. Bill Gates dan Kevin Mitnik juga memberikan nyata bagaimana keunggulan defacto menjadi sesuatu hal yang dominan dalam terlahirnya sebuah bisnis.

image027.jpgMenariknya fenomena ini juga dikaji secara mendalam laporan khusus Gartner 2006 (Gartner Predictcs 2006 Special Report), meskipun dengan terminologi yang berbeda. Diramalkan bahwa pada tahun 2010 pasar kerja para spesialis IT akan berkurang hingga 40%. Para spesialis (specialist) ini akan digantikan oleh versatilis (versatilist), yang mampu mengkombinasikan kompetensi dan keahlian teknis, dengan pengalaman bisnis dan kemampuan memberikan solusi komprehensif. Dengan degree dan sertifikasi, kita mungkin akan bisa menjadi seorang spesialis dalam suatu bidang (keunggulan defacto). Tapi ternyata ini saja tidak cukup, diperlukan kemampuan verbal, komunikasi memberi solusi dan berhubungan dengan orang lain (keunggulan defacto). Ini yang disebut dengan seorang versatilis, dan versatilis bukanlah generalis yang tahu banyak hal tapi dangkal atau hanya kulit-kulitnya saja.

Inilah jalan untuk survive dan menjadi seorang entrepreneur di dunia IT. Dan Sumber Daya Manusia (SDM) IT Indonesia, sejak dini sebaiknya diarahkan untuk memiliki kombinasi kedua keunggulan tersebut. Di satu sisi kita selalu encourage mahasiswa-mahasiswa kita untuk melanjutkan sekolah ke jenjang yang lebih tinggi. Di sisi lain kita ajak untuk aktif dan kreatif lewat kerja-kerja unik yang dibutuhkan oleh masyarakat secara luas. Memberi kesempatan mereka untuk mengerjakan berbagai project atau mengembangkan produk yang bisa mereka jual. Dan pengalaman itu mematangkan teori dan konsep yang mereka dapatkan di bangku kuliah. Saya sendiri sejak duduk di tingkat 2 program studi S1 di Saitama University, sudah mulai mencoba kerja part time, bergabung ke berbagai perusahaan IT di Jepang, menjadi programmer, engineer, atau lecturer. Bekerja bersama dan berkomunikasi dengan rekan-rekan di Industri, ternyata mematangkan dan memberikan ruh ke ilmu pengetahuan konseptual yang saya dapatkan di bangku kuliah.

Yang menarik, dari ratusan tawaran mengajar, seminar, maupun kesempatan bisnis yang mampir ke saya, sebagian besar datang karena aktifitas saya di dunia maya, karena IlmuKomputer.Com yang saya buat, karena tulisan-tulisan saya di media cetak, elektronik, dan di situs blog RomiSatriaWahono.Net, ataupun karena pendapat saya di milis-milis. Ini semua (defacto). Sebagian lagi datang karena saya peneliti di LIPI atau karena degree saya (dejure).

Pesan terakhir untuk rekan-rekan generasi muda yang ingin mendaki jalan hidup sebagai seorang entrepreneur di bidang IT:

  • Sistem operasi, bahasa pemrograman, software dan teknologi hanyalah sebuah tool (alat) yang harus kita kuasai dan gunakan untuk memecahkan masalah. Tool tersebut bersifat tidak kekal, dan bukanlah agama yang harus dianut atau difanatikkan seumur hidup. Ketergantungan terhadap sebuah tool adalah kebodohan. Debat kusir tentang tool dan saling mengumpat atau membela mati-matian sebuah tool adalah tindakan sia-sia, karena mereka masing-masing memiliki kelebihan dan kekurangan.
  • Setiap peluang memiliki nilai untung dan rugi, setiap keputusan yang diambil dalam hidup harus memperhitungkan opportunity cost yang harus dibayar. Ketika kita harus mengambil cuti kuliah untuk mengerjakan sebuah project IT, harus diperhitungkan benar seberapa jauh cost yang kita keluarkan untuk mendapatkan pengalaman tesebut.
  • Pembelian buku dan komputer harus kita anggap sebagai sebuah investasi. Kita harus produktif menggunakan buku dan komputer untuk menghasilkan keuntungan baik material maupun pengalaman.
  • Cerdas dalam mengambil berbagai peluang yang ada dan usahakan mengemasnya dalam sebuah karya dan produk yang menjadi solusi bagi orang lain.
  • Mengambil kesempatan kerja part time atau full time sebagai proses pembelajaran dan melatih diri secara riil di dunia industri.
  • Latihlah kemampuan verbal. Diantara kesibukan berkomunikasi dengan mesin (komputer), tetap latih teknik dan strategi berkomunikasi dengan manusia. Berlatihlah menyampaikan pengetahuan dan teknologi yang kita kuasai dengan bahasa sederhana dan dapat dipahami dengan mudah oleh orang awam sekalipun.
  • Bangun jaringan (networking) dan kerjasama dengan berbagai pihak. Setiap pertemuan dengan orang lain, siapapun dia, akan membawa manfaat bagi kita, meskipung kadang-kadang tidak langsung datang seketika.

Siapapun kita, apapun degree kita, apapun bidang kerja kita, asal kita sudah berniat untuk terjun di bisnis dan industri IT, kita bisa mulai dari keunggulan defacto dan dejure yang kita miliki. Jadi pebisnis IT, siapa takut?

Rabu, 18 Juli 2007

Tomcat

Hi there,

I also only recently started using Tomcat and Netbeans and its a match made in heaven.
I use Tomcat for EVERYTHING.... its fantastic, wonderful, best thing I ever discovered, and
Netbeans is sizzling hot as well.

No, you dont have to use the embedded Tomcat server, and it wont be long before you get a
later Tomcat and want to use that anyway...
So what you do is open TOOLS->SERVER MANAGER and point it to the Tomcat version you want
to use... its that easy.

Now you do not have to worry about starting and stopping Tomcat(the new one) when developing,
as soon as you start a servlet it will happen automatically. If you want to stop it, you do
it from INSIDE Netbeans.... either in the Runtime Tag, or you will see you can do it from
the Tomcat Tag in the OUTPUT section of netbeans.... so you develop as normal.

Now when you CLEAN and BUILD your project you will see that it creates a DIST folder with
the WAR file... that you simply drop into the WEPAPPS folder of ANY TOMCAT.... and then start
THAT tomcat as a standalone (without netbeans running) and its deployed.... you can also use
the Tomcat manager from the web browser but I find this method easier.

Now just one thing that can be confusing.... when Netbeans does all its magic and lets your
debug stuff... it actually creates a temporary BUILD folder and when you
testing that is the code that is ACTUALLY running in the TOMCAT you using. Now what happens
alot is that you drop your WAR file into tomcat BUT its not actiully deployed because NETBEANS
still has control of Tomcat.... and what is actually happening is that Tomcat is still running
your servlet in the BUILD folder.
It doesnt pick the WAR file up. So what I do before checking a WAR in tomcat, is DELETE the
projects BUILD folder. Now if Tomcat complains, thats good, because you know it was still
looking at the devlopment environment. Just stop tomcat, put the WAR file in WEBAPPS and restart
it, it will pick up on the new WAR.

Dont give up, Netbeans and Tomcat are magic, best development environment I've ever used.


Kamis, 12 Juli 2007

finalize()

    protected void finalize() throws Throwable {}
  • every class inherits the finalize() method from java.lang.Object
  • the method is called by the garbage collector when it determines no more references to the object exist
  • the Object finalize method performs no actions but it may be overridden by any class
  • normally it should be overridden to clean-up non-Java resources ie closing a file
  • if overridding finalize() it is good programming practice to use a try-catch-finally statement and to always call super.finalize() (JPL pg 47-48). This is a saftey measure to ensure you do not inadvertently miss closing a resource used by the objects calling class
protected void finalize() throws Throwable {
try {
close(); // close open files
} finally {
super.finalize();
}
}
  • any exception thrown by finalize() during garbage collection halts the finalization but is otherwise ignored
  • finalize() is never run more than once on any object

Sabtu, 07 Juli 2007

Simple java thread!! ^^V

The simple example shown in full on the first page of this lesson defines two classes: SimpleThread and TwoThreadsTest. Let's begin our exploration of the application with the SimpleThread class--a subclass of the Thread class, which is provided by the java.lang package:
class SimpleThread extends Thread {
public SimpleThread(String str) {
super(str);
}
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(i + " " + getName());
try {
sleep((int)(Math.random() * 1000));
} catch (InterruptedException e) {}
}
System.out.println("DONE! " + getName());
}
}
The first method in the SimpleThread class is a constructor that takes a String as its only argument. This constructor is implemented by calling a superclass constructor and is interesting to us only because it sets the Thread's name, which is used later in the program.

The next method in the SimpleThread class is the run() method. The run() method is the heart of any Thread and where the action of the Thread takes place. The run() method of the SimpleThread class contains a for loop that iterates ten times. In each iteration the method displays the iteration number and the name of the Thread, then sleeps for a random interval of up to 1 second. After the loop has finished, the run() method prints "DONE!" along with the name of the thread. That's it for the SimpleThread class.

The TwoThreadsTest class provides a main() method that creates two SimpleThread threads: one is named "Jamaica" and the other is named "Fiji". (If you can't decide on where to go for vacation you can use this program to help you decide--go to the island whose thread prints "DONE!" first.)

class TwoThreadsTest {
public static void main (String[] args) {
new SimpleThread("Jamaica").start();
new SimpleThread("Fiji").start();
}
}
The main() method also starts each thread immediately following its construction by calling the start() method. To save you from typing in this program, click here for the source code to the SimpleThread class and here for the source code to the TwoThreadsTest program. Compile and run the program and watch your vacation fate unfold. You should see output similar to the following:
0 Jamaica
0 Fiji
1 Fiji
1 Jamaica
2 Jamaica
2 Fiji
3 Fiji
3 Jamaica
4 Jamaica
4 Fiji
5 Jamaica
5 Fiji
6 Fiji
6 Jamaica
7 Jamaica
7 Fiji
8 Fiji
9 Fiji
8 Jamaica
DONE! Fiji
9 Jamaica
DONE! Jamaica
(Looks like I'm going to Fiji!!) Notice how the output from each thread is intermingled with the output from the other. This is because both SimpleThread threads are running concurrently. Thus, both run() methods are running at the same time and each thread is displaying its output at the same time as the other.

Try This: Change the main program so that it creates a third thread with the name "Bora Bora". Compile and run the program again. Does this change the island of choice for your vacation? Here's the code for the new main program, which is now named ThreeThreadsTest.

Keep Going

This page glosses over many of the details of threads such as the start() and sleep() methods. Don't worry, the next several pages of this lesson explain these concepts and others in detail. The important thing to understand from this page is that a Java program can have many threads, and that those threads can run concurrently.

java glossary... memorizing bzzzzzzzzzzzz,,,,,

    Ideas

  1. Overloading::=One name for several different types of object or function.
  2. Interfaces::=describes what you can do with a set of classes.
  3. Package::=unrelated collection of classes and interfaces. A file that starts with a package specifier P generates classes C in directory P with a file C.class that can be imported as P.* or P.C.

    Modifiers

  4. default_modifier::=In the absence of any modifiers fields are associated with objects and are visible to all classes in a package, and accessible by a subclass in the same package only.

  5. public::modifier=A public variable or function can be accessed in any other class.

  6. private::=modifierA private variable or function can only be accessed its own class.

  7. protected::modifier=A degree of hiding lie between public and private, subclasses and classes in the same package have access to these items. -- deprecated since any class can claim to be a member of the same package! Note for C++ programming, the C++ protected is the Java 1.0 private_protected.

  8. private_protected::=`A private protected field or function can be accessed by any subclass, but can not be used otherwise', -- in Java 1.0 only, and equivalent to the C++ protected.

  9. static::=A variable or functions associated with a class rather than with the objects of the class.

    Note for C programmers. In C a static variable declared in a functions is the same variable each time you call it. This is not available in Java. In C a static variable declared outside a function is shared by the set of functions in the same file and following the declaration an hidden from other functions. In Java a static variable is shared by all functions in that class. Whether other classes can access it depend on whether it is private, public, and/or protected. A Java variable that is nonstatic is something that is not found in C. Each object in the class has its own variable, and all functions refer to that particular variable. The variable is created as part of the object and deleted with it.

    In Java instance variables are the same each time you call them. A variable or function is declared to be static when it associated with the class of objects rather than a particular object in that class. This means that a static function can not refer any data in an object - because it has no object. It also means that static data is essentially shared in common by every object but only stored in a single place. If you are in doubt about whether some data should be static or not - ask yourself how many times it occurs: once per class(static) or once per object(not static) or many time per object (its in a different class!).

  10. final::=once initialized it can not be changed. A variable(a field of a class or object) is declared final when you want it to keep its initial value for ever. It makes it a constant variable. A class is declared as final if it can not be extended.

  11. native::=Preprogrammed in another language and running as machine code. For a tutorial on a way to integrate C functions into Java methods see [ index.html ]

  12. synchronized::=Only one thread can execute this at a time. A method or block of code is marked as synchronized if only one thread of control can be in it at a time. Other threads are locked out. The code is reentrant. It protects resources from interference by multiple access at one time.

  13. abstract::method=A method that must exist for objects in a class but is fully defined only in subclasses,
  14. abstract::class=A class with one or more abstract methods.
  15. abstract::=not concrete, not yet implemented, deferred, prototypical. An abstract method is one that is defined in classes derived from this class. All subclasses have a version as defined in the base class or also declare it as abstract. Certain methods can not be abstract: constructors, static, private, final, native, synchronized, plus those that override superclass methods. An abstract method makes the whole class abstract. A class that inherits an abstract method and does not override it is also an abstract class. An abstract class can not be used to construct new objects. You can only call an abstract method via an object in a class that has extended the abstract class and defined all the abstract methods.

  16. threadsafe::= If another thread excuting this code at the same time can not change the value of a variable then the variable is threadsafe and the compiler may do clever things with it to make the code faster or smaller..

  17. transient::=something that does last longer than a function call. If an object can exist longer than a given applet....is persistent.... then its transient data does not have to be preserved when a function exits.

    Terminology

  18. applet::=A small program that can be sent across a network and interpreted safely on the receiving machine.
  19. AWT::=awt.
  20. awt::=Abstract windowing toolkit, another windowing toolkit. A set of machine independent classes that make it easier to create graphic user interfaces and output.
  21. bytecode::= [ byte_code] .
  22. byte_code::=a way of describing classes as a stream of byte oriented machine code for the Java Virtual Machine.
  23. file::=A collection of data. A Java source code file defines one or more classes, interfaces to be added to a package. [ class ] [ interface ] [ Package ]
  24. class::=Defines a collection of knowledge and know how. Classes are defined as declaring variables(fields) and functions(methods) associated with the objects of that class, and also with the class itself.. [ function ] [ method ] [ object ] [ variable ]

  25. field::=A component or member of a class that holds data about and object or about the class, a variable.
  26. function::computing=A named piece of code that returns a value and may also do something
  27. function::java=A piece of know-how attached to a class or accessed via an object

  28. interface::=Describes a set of classes in terms of what they can do for you, but allows each class to implement these methods in any way that you wish.

  29. JDK::=Java Development Kit: the compiler: javac, interpreter: java, and the classes. [ javac ] [ java ]

  30. method::=A piece of "know-how". A procedure or function that is associated with an object or to a class.

  31. object::=An instance of a class. [ class ]
  32. procedure::ComputerScience=`A named piece of code that does something for a caller'.
  33. procedure::java=a void function. [ function ]
  34. static::=something associated with a class rather than an object. [ class ] [ object ]

  35. variable::Java=A piece of data(knowledge) associated with a class or an object.

  36. virtual_machine::=A hypothetical machine that can be emulated on many different actual machines.
  37. void::=word used in place of a type to indicate that a function does not return a value. -- introduced in ANSI C and still confusing people 10 years later.

  38. womb::=Java applets are kept alive inside a running program on the hosts machine - this called the womb. It also stops the applet from doing things that might be insecure.

    Literals

  39. null::Object=nonexistent object.

Jumat, 06 Juli 2007

Using RSS to Read Blogs... yuhuu...

Using RSS to Read Blogs

RSS adalah singkatan dari Really Simple Syndication - at least that’s the current definition.

The point of this page, anyway, is not to write an introduction or tutorial of RSS itself, but rather to how to use it to keep up with various blogs. (Well, frankly you can find such an article somewhere else… but I nevertheless will write one to please my readers).

Buat apa pakai RSS? (Untuk apa RSS?)

Situasinya begini….

Kita semua suka membaca blog. (Dan semua orang punya blog). Mungkin puluhan atau ratusan blog harus (atau pengin) dibaca tiap hari. BTW, aku berlangganan 150 blog saat ini…

Jika menggunakan browser biasa, berarti:

  • kita mesti mengunjungi puluhan atau ratusan URL yang berbeda-beda
  • mengunjungi berarti menuliskan URL yang panjang dan berbeda-beda itu atau buka bookmark satu per satu
  • 10 blog = 10 windows = 10 “wait for the webpage to display”

Apalagi kalau blognya jarang diupdate… kayak blog-ku ini :-) he… he… he…. Udah susah-susah tulis URL-nya, nunggu, nggak ada post baru… pembaca kecewa.

Atau sebaliknya, blognya terlalu sering diupdate, sehingga kita sering ketinggalan berita kalau nggak sering-sering visit. (Boss bisa ngamuk kalo anak buah kerjanya browsing melulu).

Betapa mudahnya jika semuanya bisa dilakukan dengan lebih praktis dan otomatis.

Enter RSS

RSS memungkinkan kita melakukan hal tersebut. Lewat cara ini, feedsummary atau bahkan full post dari suatu blog dapat dikirimkan dan dibaca, tanpa mengunjungi website blog tersebut. RSS adalah protokol standard, jadi nggak perlu program atau aplikasi khusus untuk membaca blog yang berbeda-beda.

Ada dua cara untuk baca blog lewat RSS: online (web-based) dan offline.

Online

Untuk online silakan kunjungi (dan register) di bloglines.com.

Ada juga Google Reader atau Yahoo RSS Reader. Bisa juga pakai fasilitas live bookmark-nya Firefox atau IE7 (cari saja extension yang untuk mempermudah memanage RSS). Favoritku tetap bloglines.

Offline

Berarti install program di PC (atau handphone atau PDA) yang untuk download RSS. Keuntungannya adalah bisa baca tanpa connect, kalau punya dial-up, bisa dipertimbangkan deh.

Terus terang, belum punya rekomendasi program yang OK lagi. Ntar kalau sudah ketemu, aku update posting ini.

How to Subscribe to RSS Feed

1) Cara normal…
Tiap-tiap blog biasanya menyediakan URL dari RSS Feed-nya. Untuk tahu apa URL-nya, find di halaman tersebut kata-kata yang berbunyi “feed”, “RSS”, “XML”, “subscribe to RSS”, atau logo-logo berwarna oranye seperti ini:

Biasanya pretty obvious kok. (Well, that reminds me to put that obvious logo in my blog).

Nah copy URL tadi dan paste ke bloglines.

2) Atau kalau pakai browser Firefox (atau IE7)…

Jika saat browsing ke suatu site kita lihat icon oranye tersebut di address bar (di bagian atas browser, sebelah tempat kita menuliskan URL), tinggal diklik aja icon oranye tersebut. Firefox 2.x bahkan sudah bisa integrasi ke bloglines, jadi sekali klik, bisa langsung subscribe ke bloglines.

So guys…

Use RSS to read blogs, it’s easier and more practical…. and subscribe to my feed :-)

http://duckling.wordpress.com/feed/

judul tak berjudul.. jadul..



ni adalah salah contoh... gw coba ini hmmm.. apa yaa hasil query... dari seorang inventor bernama Hermann Opperman kan... inputan gw ada dua tu.. maksud gw bisa implementasi algorithm langsung... klo misal ntar inputan banyak.. wah gw kagak ngerti lagi.. tp ni gw coba satu inputan n kluarnya gini ni...

kelemahan nya ni...

- belum pake konvergensi dari kleinberg algorithm.. tdnya gw patok ndiri konvergensi 0.01 tp belum gw "ON" coz masi lemot =P ntar gw utak atik lagi codenya.. biznya ngoding juga arraylist jutaan tahun cahaya wehehe...

o ya gw lampirin ni inputan gw...






nah ni dia.. sederhana kan??

nah.. gw bingung bole ngga klo query gini tapi dua ciri dimasukkan .. dalam artian,, tidak membentuk sebuah kalimat si....

sebagai contoh... gw masukin ni ya... Hermann Oppermann dengan class Inventor,, tyuz Stryker corporation dengan class Asignee.. nah yang ada antara keduanya hubungan layaknya AND tp bisa juga yang mentelengin ni form ni.. ngartiin Opperman menemukan paten yang disahkan oleh Stryker corporation.. nah cari ntu...


dapet deh kaya gini...







nah ni... total return ada lima... oh.. ya ni gw pake algorithm ro-path....






gw lupa.. jd ni ngga bener2 menerapkan sifat "AND" jg bisa ,, ada yang bilang klo semantik web tu kudu persis plek pas ma query.. pokoe ciri yang di query kudu pas persis.. ada juga yang bilang klo njlembret2 titik gpp.. katanya di W3C gitu sy.. well dunno lah...

tp di tmpt gw ntu tgt threshold lo yg lo tancepin ke ntu algorithm misal minimum ni yaaa... tergantung ontologinya juga si ni.. klo gw ontologi sederhana... yg agak luas ntu punya UMLS yang gw gabungin ke ontologi gw... tp RDFS utamanya bukan di UMLS melainkan yg menghubungkannya malah...

liat ni yang utama ok..

4 main properties... has_term(inverted added), invented (inverted added,, maksudnye ada sifat owl yang menambah vocab untuk si properties ni.. klo di owl jadi objectproperties,,, klo rdf biasa pake properties,, anyway sama aja... struktur juga sama.. cuman ditambahin doang... xml mah.. pokoe struktur mbentuk euy... oh ya dalam hal ini bentuk invertednya "invented_by"),
refers_to.., assigned (inverted added)

nah kan membentuk triples tu.. ^^ so klo mo threshold cuman 2 yah.. akurat.. rat.. tp klo threshold dimolorin mpe >2 mungkin aje ade yang kepentingannya jauh masuk ke dalam list..

tp di TA gw kagak peduliin threshold.. karena ontologi gw nggak besar parah... sederhana beut... so lebih banyak kondisi yang mengarah ke "akurat" tadi...


cuman ni.. masalahnya... program gw masi lemot.. parah hiks... padahal memori 1 gb,, hd gw kap. 100 gb je... pentium ok lah meski ngga DUO... =D utak2 lagi deh codenya.. padahal dah mo maju T_T masa molor ngga dapet A >:D

ada pic2 snapshotz laen ni....






ni contoh join association.. kito bundo cari hubungan antara kedua ciri yang berelasi.. kedua info yag berelasi ato apalah..

gw gak banyak cuap2 ini di sini.. ntar blog slanjutnya jah... tp yg ni relatif gampang kok.. its okay lah =)


itu sekedar GUI yg gw bangun.... pokoknya gw pake 3 form,,, query page.... result page1.. result page2,,, yang bedain apa 1 ma 2?????? pertanyaan bagus kawan...

ya ntu... page1 buat si path and cp ass. trus page2 buat si join ass , gw adil kan?? =D

ya gitu deh... simple aslinya...


ngodingnya gw aslinya gak pake pattern .. trus gw edit litel.. litel.. la.. pake pattern gitoh .. kaya implementasi abstract class pada pemilihan algoritma... trus 3 class saling berextend ria.. huhui apakah itu???


patentSearch -> filterInput -> setAlgorithm

yang patentSearch ke filterInput ni benernya masi double " ? "

soalnya belum diujikan.. dia diberdayakan untuk menuntaskan kasus dimana terjadi query di dalam ontologi UMLS itself.. apalagi ni gw barusaja reformasi.. apaan tuh??

gini... seluruh ancestor dari class UMLS ku bikin satu pucuk bernama... bioterm.. kaya manusia aja.. dari satu pucuk eyang Adam.. he he he..
so.. bisa dipastiin dong dan pasti.. inside UMLS onto' querying pasti dan tidak bukan adalah cp... right???

so the from the righteous thing behind all of this,,, we must conclude that...
the class parent n child

filterInput -> setAlgorithm,,,


biar ngga sia2.. capek gue deklarasi lagi variabel di setAlgorithm .. gw pake aja yg di filterInput,, meski ngga ngaru bgt coz ngga bisa parsing parameter... huff ^^

dah ah capek ntar gw corat-coret lagi...ni baru sebagian.. mo deeper?? gw revisi dulu...