Pemrograman Weblog


AJAX, langkah 1
November 11, 2010, 8:03 am
Filed under: ajax tutorial

Istilah AJAX digunakan pada website yang berinteraksi dengan server melalui javascript secara asinkron (background), sehingga pengguna tidak perlu untuk meload keseluruhan halaman. Hal ini menyebabkan pengiritan waktu dan bandwidth, juga menghasilkan website yang makin interaktif. Seperti kebanyakan artikel pada umumnya, website yang dijadikan contoh AJAX sejati adalah GMail. Bagi yang pernah menggunakan GMail, tentu merasakan kehandalan interface webmailnya dengan AJAX.

Untuk mengaplikasikan AJAX (Asyncronous Javascript And XML) dalam website, yang dibutuhkan adalah browser dengan kemampuan Javascript, dan komponen XMLHTTP bagi pengguna IE, dan XMLHttpRequest untuk Firefox dan browser lainnya. Syarat-syarat tersebut hampir pasti sudah terpenuhi, mengingat pengguna internet kita banyak yang menggunakan IE dan Firefox 🙂

Sebenarnya tidak ada hal baru dalam AJAX, karena yang digunakan adalah teknologi javascript, yang notabene sudah lama digunakan. Karena itu, bagi yang sudah terbiasa dengan javascript, akan mudah sekali mempelajari AJAX.

Pembahasan ini tidak menekankan pada salah satu teknologi (Javascript, AJAX, HTML, PHP), tapi keseluruhan dari hal tersebut. Hal ini karena penggunaan AJAX tidak hanya pada sisi klien (browser), tapi juga melibatkan respon dari server.

Sebagai acuan, berikut ini adalah salah satu kerangka dasar AJAX, yang katanya bikinan Mr Rasmus Redlorf, the creator of PHP.
Simpan dengan namafile: ajaxify.js

function createRequestObject() {
var ro;
var browser = navigator.appName;
if(browser == “Microsoft Internet Explorer”){
ro = new ActiveXObject(“Microsoft.XMLHTTP”);
}else{
ro = new XMLHttpRequest();
}
return ro;
}

var http = createRequestObject();

function sndReq(action) {
http.open(‘get’, ‘rpc.php?action=’+action);
http.onreadystatechange = handleResponse;
http.send(null);
}

function handleResponse() {
if(http.readyState == 4){
var response = http.responseText;
var update = new Array();

update = response.split(‘|’);
if((response.indexOf(‘|’ != -1)) && (update[0] == “OK”)) {
document.getElementById(“hasil”).style[‘color’] = ‘#00f’;
document.getElementById(“hasil”).innerHTML = update[1];
}
else
{
document.getElementById(“hasil”).style[‘color’] = ‘#f00’;
document.getElementById(“hasil”).innerHTML = “Respond dari server tidak sesuai”;
}

Kode di atas adalah AJAX yang sangat dasar, yang jika ingin dikembangkan, masih butuh untuk dimodifikasi lagi.

Untuk melaksanakan proses request, dibutuhkan obyek XMLHttpRequest. Pada kode di atas, hal tersebut dilakukan pada fungsi createRequestObject(), yang hasilnya disimpan dalam obyek http.
Dalam fungsi tersebut, jika browser yang digunakan adalah IE, maka yang diciptakan adalah obyek Microsoft.XMLHTTP, dan XMLHttpRequest untuk browser lainnya.

Fungsi berikutnya, yaitu sndReq(), berfungsi sebagai pengirim request kepada server. Pada contoh di atas, request yang dilakukan adalah dengan method ‘get’, dan action/datanya diletakkan pada URL-nya.
Pada kasus sebenarnya, mungkin saja suatu saat nanti dibutuhkan pengiriman data melalui method ‘post’. Untuk hal seperti ini, dibutuhkan teknik yang lebih jauh. Kali ini kita gunakan method ‘get’ dulu.

Pada fungsi sndReq() ditentukan bahwa yang akan menangani hasil request adalah fungsi handleResponse(), dan setelah melakukan pengiriman (send), tugas dari fungsi sndReq() telah berakhir.

Fungsi yang akan sangat sibuk dalam AJAX adalah fungsi handleRequest(), karena di sinilah segala respon dari server ditangani.

Dalam contoh ini, yang ditangani adalah ketika request telah komplit diterima (readyState == 4). Data yang diambil adalah responseText, yaitu seluruh teks hasil kembalian dari server. Jika ingin menangani kembalian data yang berupa XML, maka data yang diambil adalah responseXML.

Untuk kasus di atas, diharapkan response dari server berupa:

“status|Pesan”

Sehingga script akan langsung mengetahui status request, dan merubah isi div yang telah disediakan dengan teks respon dari server.

Pemanfaatan kode di atas, mengharuskan kita menyediakan script dengan nama rpc.php, dan halaman HTML dengan suatu div untuk menampilkan hasil respon.

Berikut ini contoh file rpc.php:

Ini adalah contoh halaman HTML yang memanfaatkan AJAX:

AJAX Test

AJAX Test


Silakan klik link ini:

Hari Ini
Nama server
Alamat IP
Versi PHP
Tidak diketahui


info: http://www.bengkelprogram.com

Untuk mengaplikasikan AJAX dalam situs anda, banyak hal yang harus dipikirkan, diantaranya adalah:

* Kelebihan dan kekurangan yang didapatkan oleh pengguna anda
Jangan sampe user anda kesulitan berhadapan dengan interface baru, meski secara teori, interface AJAX justru mempermudah.
* Keterbatasan user
Browser yang support AJAX memang sudah banyak, tapi bagaimana dengan user yang benar-benar tidak dapat menjalankan AJAX?
* Handling yang banyak
Ini adalah beban buat programmer, bagaimana menangani berbagai kemungkinan. Misalnya jika transfer tidak sukses, jika user membatalkan proses, jika browser tidak diaktifkan javascriptnya, dan lain sebagainya.

Demikian tutorial singkat ini. Memang masih belum lengkap, karena kita masih belum memanfaatkan teknologi XML, sebagaimana kepanjangan AJAX 🙂

Untuk proses interaksi menggunakan XML, akan dibahas pada pada artikel selanjutnya: AJAX, langkah 2.

Advertisements


Asynchronous JavaScript And XML
November 11, 2010, 7:58 am
Filed under: ajax tutorial

Istilah AJAX technology belakangan ini sering terdengar dalam pengembangan aplikasi web, berikut sedikit gambaran tentang AJAX dan cara memanfaatkannya dalam pengembangan web.

AJAX pertama kali di perkenalkan oleh Jesse James Garrett pada tulisannya yang berjudul AJAX: A New Approach To Web Applications.
AJAX bukan merupakan bahasa pemrograman baru, namun hanya sebuah tehnik pemanfaatan Javascript dalam mengontrol class object XMLHttpRequest untuk me-Refresh / mengupdate content dalam halaman web tanpa melakuan Reload keseluruhan halaman web seperti pada Metoede Tradisional, AJAX sendiri merupakan singkatan dari “Asynchronous JavaScript And XML”.

Kelebihan utama AJAX sendiri terletak pada pemanfaatan class object XMLHttpRequest untuk berkomunikasi dengan Web Server dalam melakukan request content, berikut pengunaan Javascript dalam membuat class object XMLHttpRequest :

Untuk membuat class object pada browser Firefox, Safari, IE7, Mozila, dsb.

oAJAX = new XMLHttpRequest();

Untuk membuat class object pada browser IE versi terbaru.

oAJAX= new ActiveXObject(‘MSXML2.XMLHTTP’);

Untuk membuat class object pada browser IE versi lama.

oAJAX = new ActiveXObject(‘Microsoft.XMLHTTP’);
Continue reading



Submit Form Dengan Ajax Menggunakan jQuery
November 11, 2010, 7:52 am
Filed under: ajax tutorial

Kalau sebelumnya saya sudah menulis tentang cara menampilkan halaman menggunakan Ajax (menggunakan fungsi load() pada jQuery), maka kali ini adalah contoh penggunaan Ajax untuk mengirimkan data dalam sebuah form dan memprosesnya. Salah satu kelebihan menggunakan form berbasis Ajax dibandingkan form konvensional adalah: kita tidak perlu meninggalkan form selama form dikirimkan/diproses.

Untuk contoh ini, saya menggunakan dua buah file, yang pertama adalah file ajaxform.html untuk menampilkan form nya, dan file proses.php untuk memproses data yang dikirimkan dan menampilkan hasilnya.
Continue reading



Belajar Ajax dengan prototype.js
November 11, 2010, 7:43 am
Filed under: ajax tutorial

Ya ya, saya tahu ini basi, tapi paling tidak ini adalah pengalaman saya secara pribadi yang baru tahu bentuk makhluk yang namanya AJAX. Tapi bukan Ajax Andsterdam loh, saya nggak suka ama Ajax. Sukanya ama AC Milan.

Ajax singkatan dari “Asynchronous Javascript and XML“. Adalah sebuah teknologi yang memungkinkan kita bekerja di web secara realtime. Yap, itulah pengertian Ajax menurut saya (maklum bahasa Inggris lemah). Dan sebelumnya saya melihat sebuah script yang membingungkan. Maklum saya itu orangnya kepengen cepet dan nggak pengen yang lambat.

Dalam hal ini masalah coding ajax. Terus terang saya sendiri orangnya aplikatif. Tidak faham dengan script yang panjang. Dan mending diberitahukan cara tercepat untuk memulai dan menggunakannya. Dan et voila, hal itu terjawab sudah dengan menggunakan prototype.js. Script ini bisa anda ambil di wordpress. Saya sengaja nggak memberikan link download-annya, karena anda bisa download wordpress sendiri. 🙂
Continue reading



Javascript Object Notation
November 11, 2010, 7:30 am
Filed under: ajax tutorial

JSON atau kepanjangan dari Javascript Object Notation, sebenarnya bukanlah hal yang baru. JSON seperti halnya XML, eXtensible Markup Language. berfungsi sebagai media pertukaran data. dari struktur penulisan JSON, tidak jauh berbeda dengan tipe data array di Javascript. dan memang JSON dari namanya saja Javascript Object Notation. jadi ini memang bagian dari javascript. sehingga seandainya di eksekusi pada browser yang tidak mendukung Javascript maka tidak akan berfungsi.

Untuk struktur penulisannya JSON secara umum sebagai berikut:

{ “data”:[ {
“buah”:”Apel”,
“sayur”:”tomat”

},
{
“buah” :”anggur”,
“sayur”:”bayam”

}

]
}

sedangkan untuk mengaksesnya cukup dengan menggunakan fungsi eval() melalu javascript. misal jika kita menggunakan framework prototype sebagai programmingnya maka sebagai berikut, contohnya:

…..
var result = eval( ‘(‘ + transport.responseText + ‘)’ );
alert(result.data[0].buah); // hasilnya Apel
alert(result.data[1].buah); // hasilnya anggur
alert(result.data[0].sayur); // hasilnya tomat
alert(result.data[1].sayur); // hasilnya bayam
….

Menurut saya sendiri, penggunaan JSON memang lebih cepat dan simple dibanding XML sebagai media pertukaran data. tapi karena beberapa hal nampaknya saya pribadi belum terlalu sering menggunakan JSON, namun saya mengakui JSON adalah teknologi yang baru sadar kita temui sekarang ini.

Untuk contoh XML tidak akan saya bahas disini, karena berhubung judul artikel ini mengenai JSON. mungkin lain kali insya allah akan saya posting mengenai XML sebagai pembanding bagi kita semua.



Deadlock
November 9, 2010, 7:43 am
Filed under: Flash

Deadlock dalam arti sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses. Jadi Deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau tidak ada komunikasi lagi antar proses. Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain, proses lain itu pun sedang menunggu sumber daya yang dipegang olehnya. Dengan kata lain setiap proses dalam set menunggu untuk sumber yang hanya dapat dikerjakan oleh proses lain dalam set sedang menunggu.
ya merupakan masalah sumber daya yang digunakan bersama-sama. Oleh karena itu, kita juga perlu tahu tentang jenis sumber daya, yaitu: sumber daya dapat digunakan lagi berulang-ulang dan sumber daya yang dapat digunakan dan habis dipakai atau dapat dikatakan sumber daya sekali pakai. Sumber daya ini tidak habis dipakai oleh proses mana pun.Tetapi setelah proses berakhir, sumber daya ini dikembalikan untuk dipakai oleh proses lain yang sebelumnya tidak kebagian sumber daya ini. Contohnya prosesor, Channel I/O, disk, semaphore. Contoh peran sumber daya jenis ini pada terjadinya Deadlock ialah misalnya sebuah proses memakai disk A dan B, maka akan terjadi Deadlock. jika setiap proses sudah memiliki salah satu disk dan meminta disk yang lain. Masalah ini tidak hanya dirasakan oleh pemrogram tetapi oleh seorang yang merancang sebuah sistem operasi. Cara yang digunakan pada umumnya dengan cara memperhitungkan dahulu sumber daya yang digunakan oleh proses-proses yang akan menggunakan sumber daya tersebut. Contoh lain yang menyebabkan Deadlock dari sumber yang dapat dipakai berulang-ulang ialah berkaitan dengan jumlah proses yang memakai memori utama.
Ada empat kondisi yang dapat menyebabkan terjadinya deadlock. Keempat kondisi tersebut tidak dapat berdiri sendiri, namun saling mendukung.
1. Mutual exclusion. Hanya ada satu proses yang boleh memakai sumber daya, dan proses lain yang ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi dilepaskan atau tidak ada proses yang memakai sumber daya tersebut.
2. Hold and wait. Proses yang sedang memakai sumber daya boleh meminta sumber daya lagi maksudnya menunggu hingga benar-benar sumber daya yang diminta tidak dipakai oleh proses lain, hal ini dapat menyebabkan kelaparan sumber daya sebab dapat saja sebuah proses tidak mendapat sumber daya dalam waktu yang lama.
3. No preemption. Sumber daya yang ada pada sebuah proses tidak boleh diambil begitu saja oleh proses lainnya. Untuk mendapatkan sumber daya tersebut, maka harus dilepaskan terlebih dahulu oleh proses yang memegangnya, selain itu seluruh proses menunggu dan mempersilahkan hanya proses yang memiliki sumber daya yang boleh berjalan.
4. Circular wait. Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya yang dipegang proses berikutnya.

DONLOWDS data projeck

Terima kasih agan2 atas kunjunganya,,,!!



Sleeping Parber Problem
November 9, 2010, 7:37 am
Filed under: Flash

1. SLEEPING BARBER PROBLEM
SLEEP and WAKE UP
• Solusi dengan busy waiting ternyata banyak membuang waktu CPU
• Proses yang belum mendapat giliran sebaiknya “tidur” dahulu, dan akan dibangunkan (WAKE UP) jika gilirannya tiba
• Proses yang sedang SLEEP tidak mengunakan waktu CPU sama sekali
• Contoh producer – consumer
• Producer ingin memasukkan item, sedang buffer telah penuh (“tidur” dahulu)
• Producer akan dibangunkan, setelah consumer me “remove” sebuah item
• Consumer akan tidur bila isi buffer adalah empty
• Consumer bangun bila buffer telah berisi sebuah item.
• Consumer dan producer bekerja secara independen (bergantung jatah waktu CPU)
• Buffer  sebagai Critical Section
• Race Condition, bagaimana terjadinya ?
• Akses ke count “unconstrained”
• Ada interrupt (karena jatah CPU habis) pada consumer, yaitu pada saat : if (count=0)  hingga C & P  sleep

Nah dari penjelasan di atas apakah lo,,lo udah mengerti?!!!??
Jika lo ingin mempelajari entu sleeping silakan klick di sini sleeping parber




%d bloggers like this: