Skip navigation

Monthly Archives: Agustus 2009


Persistence Unit adalah sebuah unit data yang menjelaskan konfigurasi entity yang digunakan. Salah satu konfigurasinya berisi tentang storage tempat entity disimpan. Cara menambahkan PersistenceUnit pada sebuah Java project di Netbeans adalah sebagai berikut

Read More »

Iklan

Didedikasikan buat rekan-rekan IF ITB 2006.

Ada sedikit permintaaan dari beberapa junior supaya saya sedikit mengupas tentang aplikasi medis sederhana di Java EE. Aplikasi ini cuman aplikasi pengaturan dokter, pasien, dan pemeriksaan. Aplikasi ini akan dibangun dengan menggunakan basis data MySQL dan IDE Netbeans.classdiagram

Read More »


Secara default, MySQL di XAMPP menyertakan fitur InnoDB meski tidak otomatis dijalankan. InnoDB adalah database engine yang memiliki banyak sekali kelebihan. Untuk dapat mengkonfigurasi InnoDB di XAMPP lakukan beberapa langkah berikut

  • Buka berkas my.cnf di folder xampp\mysql\bin
  • Cari kalimat “skip-innodb”
  • Beri tanda “#” didepan baris tersebut
  • Kemudian hapus tanda “#” di beberapa baris di bawah “# Uncomment the following if you are using InnoDB tables”

Setelah jarang ngoding tampilan aplikasi di Netbeans, gw tadi pagi kesulitan buat ngeset sebuah JFrame supaya bisa ditengah-tengah layar. Ternyata ada cara mudahnya

  1. Klik kanan pada JFrame yang bersangkutan
  2. Pilih “Properties
  3. Pilih “Code
  4. Set “Form Size Policy” ke “Generate Resize Code
  5. Check “Generate Center

Voila, kalau Framenya dirun, akan tampil di tengah layar.


Sedikit iseng-iseng di Java. Salah seorang rekan tadi minta bantuan bagaimana mengimplementasikan konstruktor dengan masukan list of objek sebuah kelas dengan sederhana.

Cara mudanya adalah kita bikin listnya dulu dan menambahkan satu persatu anggotanya lalu list tersebut dipass melalui konstruktor. Tapi sebenarnya Java kita bisa ngebikin method agar dapat menerima argument dengan banyak yang tidak tentu.

import java.util.ArrayList;

public class Person {

    private ArrayList<Person> parent;

    public Person(Person... parent) {
        this.parent = new ArrayList<Person>();
        for (Person person : parent) {
            this.parent.add(person);
        }
    }

    public int countParent() {
        return this.parent.size();
    }
}
public class Main {

    public static void main(String[] args) {
        Person a = new Person();
        Person b = new Person(a);
        Person c = new Person(b);
        Person d = new Person(a, b);
        Person e = new Person();
        Person f = new Person(a, e);
        Person g = new Person(f, d);
        System.out.println("Count parent a : " + a.countParent());
        System.out.println("Count parent b : " + b.countParent());
        System.out.println("Count parent c : " + c.countParent());
        System.out.println("Count parent d : " + d.countParent());
        System.out.println("Count parent e : " + e.countParent());
        System.out.println("Count parent f : " + f.countParent());
        System.out.println("Count parent g : " + g.countParent());
    }
}

Web Ontology menjelaskan definisi entitas-entitas yang ada pada sebuah semantic web dan relasi satu sama lain. Untuk itu di dalam pengembangan semantic web, ontology merupakan hal yang paling penting. Saat ini belum ada metode pengembangan web ontology yang sudah formal. Langkah-langkah pengembangan ontology sebuah web pada domain tertentu secara sederhana adalah

  1. Acquire Domain Knowledge
    Sumber-sumber informasi dan narasumber harus dikumpulkan untuk dapat mendefinisikan istilah-istilah yang ada pada sebuah domain tertentu.
  2. Organize the OntologyPengembang harus merancang konsep keseluruhan dari domain tersebut. Kegiatan ini mencakup identifikasi konsep-konsep penting pada domain dan properti-propertinya, mengidentifikasi relasi antara konsep-konsep tersebut, membuat konsep abstrak untuk mengorganisasikan hal-hal yang ada, dan menerapkan panduan dari metodologi yang dipilih.
  3. Flesh out the Ontology
    Menambahkan konsep, relasi, dan instansiasi pada tingkat detail yang cukup penting untuk memenuhi tujuan ontology.
  4. Check Work
    Memeriksa konsistensi logika, sintaks, dan semantik dari elemen-elemen yang ada pada ontology. Pemeriksaan konsistensi dapat mencakup klasifikasi otomatis yang mendefinisikan konsep-konsep baru berdasarkan properti dan relasi.
  5. Commit the Ontology
    Melakukan verifikasi ontology kepada para ahli di domain tersebut.

OWL atau Web Ontology Language merupakan bahasa untuk mendefinisikan dan menginstansiasi ontologi sebuah web. Sementara itu ontology merupakan ilmu untuk mendeskripsikan jenis-jenis entitas yang ada di dunia dan bagaimana mereka terkait satu sama lain. Sebuah ontologi OWL mencakup deskripsi dari sebuah kelas, properti, dan instansiasi kelas tersebut.

OWL dibangun di atas skema RDF. OWL dan RDF memiliki fungsi dasar yang sama: mendefinisikan kelas, properti, dan relasi. Meski demikian OWL menawarkan kapabilitas lebih daripada RDF dalam mendefinisikan relasi-relasi yang kompleks seperti subClass, restriction, disjoint, constraint, dan juga cardinality.

<owl:Class rdf:ID="ExpensiveSLR">
   <rdfs:subClassOf rdf:resource="#SLR"/>
     <rdfs:subClassOf>
       <owl:Restriction>
         <owl:onProperty rdf:resource="#owned_by"/>
         <owl:allValuesFrom rdf:resource="#Professional"/>
       </owl:Restriction>
   </rdfs:subClassOf>
</owl:Class>

Di dalam dunia web sekarang ini, pengembangan web yang ada hanya memfokuskan pengguna kepada pengguna manusia. Dengan menggunakan HTML, data yang ditampilkan dalam sebuah web hanya berisi informasi yang sifatnya presentasi bagi manusia. Jika sebuah mesin membaca dokumen tersebut maka mesin hanya dapat menerima data tersebut dan bagaimana data tersebut ditampilkan dalam browser. Mesin tidak dapat menerima pengetahuan (knowledge) apa yang terkandung di dalam data tersebut.

RDF (Resource Description Format) merupakan format XML yang memiliki fungsi sebagai metadata yakni untuk memberikan representasi knowledge dari data. Sebuah model data RDF memiliki 4 buah aturan

  1. Sebuah fakta direpresentasikan dalam bentuk triple Subject – Predicate – Object atau lebih dikenal sebagai statement.
  2. Baik Subject, Predicate, dan Object merupakan sebuah entitas atau sering disebut resource dan node. Entitas dapat melambangkan benda, orang, website, keadaan, dan relasi.
  3. Nama yang digunakan merupakan URI yang selalu menunjuk pada entitas yang sama.
  4. Obyek dapat berupa teks atau literal dan dapat direpresentasi baik menggunakan tipe data pada XML Schema ataupun tida
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
    xmlns:edu="http://www.example.org/">
    <rdf:Description rdf:about="http://www.princeton.edu">
        <geo:lat>40.35</geo:lat>
        <geo:long>-74.66</geo:long>
        <edu:hasDept rdf:resource="http://www.cs.princeton.edu"
            dc:title="Department of Computer Science"/>
    </rdf:Description>
</rdf:RDF>

Kode di atas merupakan kode RDF dari representasi tabel di bawah.

Subject Predicate Object
http://www.princeton.edu geo:lat 40.35
http://www.princeton.edu geo:long -74.66
http://www.princeton.edu edu:hasDept http://www.cs.princeton.edu
http://www.cs.princeton.edu dc:title Department of Computer Science

Di dalam kode tersebut terdapat 4 buah representasi triple: 3 buah representasi dari entitas “http://www.princeton.edu” dan 1 buah milik “http://www.cs.princeton.edu “.  Kedua triple berikutnya menjelaskan letak geografis dari Universitas Princeton. Triple ketiga menjelaskan bahwa Universitas Princeton memiliki departemen Computer Science. Dan triple terakhir menjelaskan nama dari departemen tersebut.

Selain dengan format XML, RDF juga dapat diekspresikan dengan menggunakan format Notation3.

@prefix rdf:  .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix geo: <http://www. w3.org/2003/01/geo/wgs84_pos#> .
@prefix edu: <http://www.example.org/> .

<http://www.princeton.edu> geo:lat "40.35" ; geo:long "-74.66" .
<http://www.cs.princeton.edu> dc:title "Department of Computer Science" .
<http://www.princeton.edu> edu:hasDept <http://www.cs.princeton.edu> .

Di dalam dunia distributed system ada beberapa istilah yang mirip-mirip tapi sebenarnya digunakan dalam konteks yang berbeda.

Load sharing bertujuan untuk membagi-bagikan pekerjaan dari satu atau beberapa sumber pekerjaan kepada satu atau beberapa pekerja sehingga tidak ada satupun pekerja yang tidak mendapat pekerjaan dalam suatu waktu.

Load balancing bertujuan untuk menyamakan workload pada seluruh mesin pekerja.

Task scheduling adalah kegiatan untuk membagikan pekerjaan ke pada banyak mesin pekerja secara optimal dengan memperhitungkan beban kerja, kecepatan kerja, dan lain-lain.

Parallel computing bertujuan untuk melakukan sebuah pekerjaa dengan membagi-bagi pekerjaan besar tersebut menjadi pekerjaan-pekerjaan yang lebih kecil dan mengerjakannya secara paralel.

Apa mereka itu dan bedanya di mana akan gw coba jabarkan satu per satu di postingan selanjutnya. ^_^ (ntar kalo sempet)


Extendibility adalah kemudahan pengadaptasian produk perangkat lunak terhadap perubahan spesifikasi]. Hal ini dikarenakan kebiasaan client yang sering berganti-ganti spesifikasi dan sulitnya untuk mengekstraksi apa yang diinginkan oleh client tersebut.

Ada 2 hal yang penting di dalam meningkatkan extendibility

  1. Design simplicity
    Arsitektur yang sederhana akan mudah diadaptasi daripada yang lebih rumit.
  2. Decentralization
    Semakin otonom sebuah modul maka kemungkinan besar perubahan kecil hanya akan mempengaruhi satu atau sedikit modul daripada menimbulkan efek berantai yang mempengaruhi sistem secara keseluruhan. Salah satu keunggulan dari pengembangan perangkat lunak berorientasi obyek adalah pemilah-milahan modul yang lebih baik.
%d blogger menyukai ini: