Arsip Kategori: Easy

Masih melanjutkan tentang The Readers and Writers Problem. Java sudah menyediakan fitur Lock khusus untuk model permasalahan ini yakni ReadWriteLock yang disediakan oleh Concurrent APInya Java. Locking ini mempunyai 2 buah Lock yakni ReadLock yang dapat dimiliki beberapa Reader selama tidak ada Writer yang berjalan dan WriteLock yang ekslusif untuk sebuah Writer. Penggunaannya sangat mirip pada postingan sebelumnya. Kita perlu membuat sebuah instance dari ReadWriteLock tersebut. Karena ReadWriteLock hanya berupa Interface maka kita pakai Class yang sudah ada yakni ReentrantReadWriteLock (meski dengan mudahnya kita dapat membuat sebuah Class ReadWriteLock baru dengan menggunakan kode pada postingan sebelum ini)

    private static ReentrantReadWriteLock rwlock = new ReentrantReadWriteLock();
    private static Lock rlock = rwlock.readLock();
    private static Lock wlock = rwlock.writeLock();

Baca Lebih Lanjut »

CURL adalah sebuah library untuk melakukan komunikasi dengan berbagai protokol seperti HTTP, FTP, dan lain-lain. Pada PHP sudah disediakan library CURL ini. Tapi sayangnya kalau menggunakan XAMPP masih belum langsung dapat digunakan library ini karena optionnya pada berkas konfigurasi PHPnya masih didisable.

Cara enablingnya adalah dengan menghilangkan komentar pada berkas php.ini

extension=php_curl.dll

Kemudian restart Apachenya.

Contoh penggunaannya.

<?php
// create curl resource
$ch = curl_init();

// set url
curl_setopt($ch, CURLOPT_URL, "example.com");

//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// $output contains the output string
echo curl_exec($ch);

// close curl resource to free up system resources
curl_close($ch);

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

Baca Lebih Lanjut »

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”

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.

Web Semantic adalah web di mana data dideskripsikan dan dihubungkan sedemikian rupa sehingga dapat memberikan konteks atau semantik yang kompatibel dengan bahasa yang terdefinisi. Teknologi web yang sekarang banyak digunakan hanya mendefinisikan tampilan dan struktur sebuah dokumen dalam bentuk tag HTML tanpa mendefinisikan makna dari data yang ada pada dokument tersebut. Visi dari web semantic adalah agar data-data tersebut dapat digunakan oleh mesin tidak hanya untuk tampilan bagi manusia saja melainkan juga untuk otomasi, integrasi, dan reuse data tersebut untuk banyak aplikasi.

JSON atau Javascript Object Notation adalah sebuah format pertukaran data yang ringan dan mudah ditulis atau dibaca oleh manusia. Karena ringan, format ini sering dipakai dalam pertukaran data. Contoh format data JSON.

{
    "glossary": {
        "title": "example glossary",
		"GlossDiv": {
            "title": "S",
			"GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
					"SortAs": "SGML",
					"GlossTerm": "Standard Generalized Markup Language",
					"Acronym": "SGML",
					"Abbrev": "ISO 8879:1986",
					"GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
						"GlossSeeAlso": ["GML", "XML"]
                    },
					"GlossSee": "markup"
                }
            }
        }
    }
}

Kadang-kadang untuk menghemat data maka seluruh whitespace dihilangkan dari format data. Penghematan ini jelas membuat format data menjadi susah terbaca oleh manusia.

{"glossary":{"title":"example glossary","GlossDiv":{"title":"S","GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":{"para":"A meta-markup language, used to create markup languages such as DocBook.","GlossSeeAlso":["GML","XML"]},"GlossSee":"markup"}}}}}

Code beautifier adalah salah satu perkakas untuk membuat kode menjadi terbaca. Salah satu caranya adalah dengan indenting yakni menambahkan whitespace pada kode. Dengan perkakas ini, kode kedua dapat kembali mejadi yang pertama.

Baca Lebih Lanjut »

Sedikit sharing tentang desain HTML. Gw beberapa hari ini lagi bikin theme wordpress buat website kantor meski pada dasarnya gw gak jago desain. Meski demikian, gw lumayan bisa kalo layout HTML dan CSS. Oke, sering kita ngeliat pada halaman web sering ada sebuah halaman yang memiliki bingkai gradasi atau pola-pola menarik. Di CSS yang sekarang kita gak bisa set bingkai (border) sebuah elemen menjadi sebuah gradasi atau pola. Tapi kita bisa menyiasatinya.

Layout HTML yang dipakai adalah sebagai berikut

<body>
<div id="page_wrapper">
<div id="header"></div>
<div id="content"></div>
<div id="footer"></div>
</div>
</body>

Selanjutnya kita sediakan sebuah gambar berukuran 920*2 pixel. Sebenarnya ukurannya lebarnya bisa terserah berkisar antara 900 s.d. 800an pixel dan tingginya hanya 1 s.d. 3 pixel. Di kedua pinggirnya kita siapkan pola atau gradasi. Contoh dapat dilihat di sini.

Nah, setelah itu kita tinggal bermain-main CSS.

body {margin:0px;padding:0px;background:#aaffb0;}
#page_wrapper {width:920px;background:url(page-border.png) repeat-y;margin:auto;}
#header {width:860px;margin:0px 30px 0px 30px;height:100px;border:1px solid #00ff12;background:#00ff12;}
#content {width:860px;margin:0px 30px 0px 30px;height:400px;border:1px solid #00ff12;background:#ffffff;}
#footer {width:860px;margin:0px 30px 0px 30px;height:100px;border:1px solid #00ff12;background:#00ff12;}

Page wrapper adalah sebuah elemen yang menampilkan gambar background di atas dan membungkus elemen-elemen utama : header, content, dan footer. Pada gambar yang disertakan, ukuran gradasi adalah 30px masing-masing. Oleh karena itu ukuran lebar header harusnya 60px lebih kecil dari  page wrapper dan harus memiliki margin 30px di kedua sisi kanan dan kiri. Margin ini akan memberi tempat bagi bingkai tersebut agar dapat terlihat.

Hasilnya nanti seperti di bawah.

Kode dapat diunduh di sini.

(seperti biasa, rename extension ke *.zip)

Pada post yang lalu, server yang dijalankan hanya bisa memaintain sebuah koneksi kemudian keluar. Cara untuk mengatasinya adalah dengan menggunakan infinite loop.
Baca Lebih Lanjut »

Kalau di post ini kita nyobanya pake Telnet, maka sekarang kita bikin client sederhana untuk berkomunikasi dengan server tersebut.
Baca Lebih Lanjut »