Dulu ketika pake KAV 2009, urusan mengupdate lisensi yang kadaluarsa adalah urusan yang mudah. Apalagi seorang teman memergoki ada situs yang rajin menampilkan lisensi KAV dan up to date. URL situs yang menjadi jujugan untuk mendownload file license key adalah : www.hack-home.net Jadi walaupun KAVnya bajakan, database-nya tetap bisa update secara otomatis ke Kaspersky Lab update server. Hehe.. Tapi ternyata sekarang, setelah pake KAV 2012. Caranya agak sedikit beda! Dan pernah dibuat pusing karena masa trial yang habis tapi belum bisa juga memperbaharui lisensi-nya.
Beli? Haha.. Rasanya internet kita masih cukup bisa diandalkan daripada mengirimkan rupiah ke Rusia (markas besar KAV). Lagipula situs hack-home, masih juga menyediakan key-key yang bisa diandalkan.
Oke, How to activate Kaspersky 2012 via license key file?
Pertama, anda harus mendownload file license key tersebut di situs hack-home. Oya, agar anda bisa masuk dan mendownload key yang dimaksud, anda juga diwajibkan untuk mematikan (disable) KAV anda untuk sementara waktu. Setelah file license key sukses didownload, anda bisa meng-enable-kan kembali KAV anda.
Kedua, anda wajib matikan koneksi internet sementara sampe proses penginputan license key selesai.
Trus, masuk ke bagian Manage License (ada dipojok kanan bawah; lihat gambar).
Ketiga, anda bisa delete license number yang lama dengan cara klik tanda silang disampingnya. Berikutnya klik pada tombol "Enter activation code"
Nah, disini yang unik!! Anda masukkan saja invalid code, misal : "11111-11111-11111-1111x". X yang terakhir, anda coba2 dengan angka atau huruf lain hingga tombol Next aktif (lihat gambar dibawah).
Klo tombol Next sudah aktif, anda klik tombol tersebut. Selanjutnya, waiting for few seconds.. Dan akan muncul pesan error “Internet connection is missing” dan traalalaaaa...
Anda akan menemukan tombol browse, dan langkah berikutnya anda tinggal mengarahkan pada file license key yang tadi sudah anda download, klik OK dan Finish..
Anda sudah mempunyai KAV 2012 yang aktif dan bisa KAV anda bisa otomatis meng-update-kan dirinya kembali.. Internet memang gratis.. :)
Friday, November 18, 2011
Thursday, October 27, 2011
Ant Agent pada Netlogo
Masih ingat, contoh aplikasi Ant Lines yang ane paparkan dipostingan terdahulu?? Klo lupa, lihat dulu deh di sini http://ar-wdh.blogspot.com/2011/10/intelligent-agent-sebuah-teori.html. Yuk, kita coba membuatnya..
Pertama..
Fokuskan pada pembuatan GUI di tabulasi Interface (untuk mempermudah bayangan anda, bisa anda lihat gambar di atas ato dipostingan terdahulu.
Langkah 1, kita buat slider untuk mengatur jumlah semut (Slider yang pertama). Caranya, klik tombol button -> pilih slider -> tempatkan (dengan cara klik) dilayar putih sebelah kiri.
Ya, seharusnya muncul wizard untuk konfigurasi Slider. Global variable ini untuk memberi nama slider. Karena tujuan kita ingin membuat slider untuk mengatur jumlah semut, kita isi saja dengan NumberOfAnt.
Minimum, untuk menandakan value (jumlah semut) minimal, ane isikan saja 1. Increment juga biarkan saja terisi 1. Maximum, mempunyai fungsi yang berkebalikan dengan Minimum, ane isikan saja 100.
Value, artinya nilai default yang akan diset. Ane isikan nilai value : 50.
Langkah 2, kita buat tombol setup. Langkah membuat tombol setup, sama seperti membuat slider.
Tombol setup disini nantinya akan digabungkan dengan coding (akan dijelaskan dibagian procedures nanti). Tombol ini saya buat sebagai perintah untuk inisiasi dan menyiapkan lokasi sarang juga makanan. Apa saja yang harus dipersiapkan ?
Langkah 3, buat tombol go. Pada tombol go,kita persiapkan seperti berikut :
Slider ini dibuat untuk mengatur besaran sudut head wiggle (goyangan kepala) pada setiap langkah si semut pemimpin. Jadi jika besaran sudutnya dibuat 0 derajat, maka si semut akan berjalan lurus menuju makanan. Sudut terbesar adalah 90 derajat. Dari cerita ini, bisa kan mengatur isiannya? Gak bisa? Oke deh saya beri gambarnya.
Langkah 5, membuat slider delay.
Seperti namanya, slider ini bertujuan untuk mengatur jeda antar semut. Kita atur jeda minimum adalah 0 detik dan maksimum jeda adalah 60 detik. Bisa kan membuat konfigurasi slider ini ya..
Langkah 6, membuat monitor ants-released.
Kedua..
Kita fokuskan perhatian kita ke tabulasi procedures. Bagian ini penting, karena disinilah kita coding bagaimana si agent tersebut bekerja.
Baris potongan perintah (procedures) diawali kalimat to diakhiri end
Referensi..
Wilensky, U. (1997). NetLogo Ant Lines model.
Pertama..
Fokuskan pada pembuatan GUI di tabulasi Interface (untuk mempermudah bayangan anda, bisa anda lihat gambar di atas ato dipostingan terdahulu.
Langkah 1, kita buat slider untuk mengatur jumlah semut (Slider yang pertama). Caranya, klik tombol button -> pilih slider -> tempatkan (dengan cara klik) dilayar putih sebelah kiri.
Ya, seharusnya muncul wizard untuk konfigurasi Slider. Global variable ini untuk memberi nama slider. Karena tujuan kita ingin membuat slider untuk mengatur jumlah semut, kita isi saja dengan NumberOfAnt.
Minimum, untuk menandakan value (jumlah semut) minimal, ane isikan saja 1. Increment juga biarkan saja terisi 1. Maximum, mempunyai fungsi yang berkebalikan dengan Minimum, ane isikan saja 100.
Value, artinya nilai default yang akan diset. Ane isikan nilai value : 50.
Langkah 2, kita buat tombol setup. Langkah membuat tombol setup, sama seperti membuat slider.
Tombol setup disini nantinya akan digabungkan dengan coding (akan dijelaskan dibagian procedures nanti). Tombol ini saya buat sebagai perintah untuk inisiasi dan menyiapkan lokasi sarang juga makanan. Apa saja yang harus dipersiapkan ?
- Pertama, kita atur agar button ini dapat dikendalikan oleh external agent/observer.
- Kedua, pada isian commands, kita isi setup. Maksudnya tombol ini nantinya dikaitkan dengan procedures setup.
- Berikutnya kita isi Display name : "Setup". Display name berfungsi untuk memberi nama button.
- Klik OK untuk mengakhiri.
Langkah 3, buat tombol go. Pada tombol go,kita persiapkan seperti berikut :
- Pertama, kita atur agar button ini dapat dikendalikan oleh external agent/observer.
- Kedua, check list forever diberi tanda centang. Mengapa? Karena saat button go dipencet. Button ini nantinya akan menjalankan procedur terkait secara loop hingga selesai, karenanya check list forever harus diberi tanda centang. Jika tidak berarti tidak ada proses loop saat button ini dieksekusi.
- Berikutkan, command diisi go.
- Display name juga diisi go.
- Klik OK untuk mengakhiri
Slider ini dibuat untuk mengatur besaran sudut head wiggle (goyangan kepala) pada setiap langkah si semut pemimpin. Jadi jika besaran sudutnya dibuat 0 derajat, maka si semut akan berjalan lurus menuju makanan. Sudut terbesar adalah 90 derajat. Dari cerita ini, bisa kan mengatur isiannya? Gak bisa? Oke deh saya beri gambarnya.
Langkah 5, membuat slider delay.
Seperti namanya, slider ini bertujuan untuk mengatur jeda antar semut. Kita atur jeda minimum adalah 0 detik dan maksimum jeda adalah 60 detik. Bisa kan membuat konfigurasi slider ini ya..
Langkah 6, membuat monitor ants-released.
Ini fungsinya untuk monitor berapa jumlah semut yang telah meninggalkan sarangnya. Cara membuatnya :
- Klik pada button -> pilih monitor -> klik pada area putih yang kosong
- Pada kotak isian reporter, kita isi : count turtles with [xcor > nest-x]. Maksudnya menghitung jumlah turtles (ingat kan arti dari istilah turtles?) dimana koordinat x-nya lebih besar daripada koordinat x nest (sarang)
- Display name, diisi ant-released, kemudian klik OK.
Kedua..
Kita fokuskan perhatian kita ke tabulasi procedures. Bagian ini penting, karena disinilah kita coding bagaimana si agent tersebut bekerja.
breed [ leaders leader ]
breed [ followers follower ]
globals [
nest-x nest-y ;; location of center of nest
food-x food-y ;; location of center of food
leader-heading ;; heading of the leader ant
]
to setup ;; set up nest and food locations
ca
set-default-shape turtles "bug"
set nest-x 10 + min-pxcor
set nest-y 0
set food-x max-pxcor - 10
set food-y 0
;; draw the nest in brown by stamping a circular
;; brown turtle
ask patch nest-x nest-y [
sprout 1 [
set color brown
set shape "circle"
set size 10
stamp
die
]
]
;; draw the nest in orange by stamping a circular
;; orange turtle
ask patch food-x food-y [
sprout 1 [
set color orange
set shape "circle"
set size 10
stamp
die
]
]
create-leaders 1
[ set color red ;; leader ant is red
set size 2
wiggle 50 ] ;; ...and starts out with a random heading
create-followers (num-ants - 1)
[ set size 2
set color yellow ] ;; middle ants are yellow
ask turtles
[ setxy nest-x nest-y ;; start the ants out at the nest
set heading 90 ]
ask turtle (num-ants - 1)
[ set color blue ;; last ant is blue
set pen-size 2
pd ] ;; ...and leaves a trail
ask leaders
[ set pen-size 2
pd ] ;; the leader also leaves a trail
set leader-heading [heading] of one-of leaders
to go
if all? turtles [xcor >= food-x]
[ stop ]
ask leaders ;; the leader ant wiggles and moves
[ wiggle leader-wiggle-angle
correct-path
if (xcor > (food-x - 5 )) ;; leader heads straight for food, if it is close
[ facexy food-x food-y ]
if xcor < food-x ;; do nothing if you're at or past the food [ fd 0.5 ] ] ask followers [ face turtle (who - 1) ;; follower ants follow the ant ahead of them if time-to-start? and (xcor < food-x) ;; followers wait a bit before leaving nest [ fd 0.5 ] ] set leader-heading [heading] of one-of leaders tick end ;; turtle procedure; wiggle a random amount, averaging zero turn to wiggle [angle] rt random-float angle lt random-float angle end ;; turtle procedure to correct-path ifelse heading > 180
[ rt 180 ]
[ if patch-at 0 -5 = nobody
[ rt 100 ]
if patch-at 0 5 = nobody
[ lt 100 ] ]
end
;; turtle reporter; if true, then the ant is authorized to move out of the nest
to-report time-to-start?
report ([xcor] of (turtle (who - 1))) > (nest-x + start-delay + random start-delay )
end
; Copyright 1997 Uri Wilensky. All rights reserved.
; The full copyright notice is in the Information tab.
breed [ followers follower ]
globals [
nest-x nest-y ;; location of center of nest
food-x food-y ;; location of center of food
leader-heading ;; heading of the leader ant
]
to setup ;; set up nest and food locations
ca
set-default-shape turtles "bug"
set nest-x 10 + min-pxcor
set nest-y 0
set food-x max-pxcor - 10
set food-y 0
;; draw the nest in brown by stamping a circular
;; brown turtle
ask patch nest-x nest-y [
sprout 1 [
set color brown
set shape "circle"
set size 10
stamp
die
]
]
;; draw the nest in orange by stamping a circular
;; orange turtle
ask patch food-x food-y [
sprout 1 [
set color orange
set shape "circle"
set size 10
stamp
die
]
]
create-leaders 1
[ set color red ;; leader ant is red
set size 2
wiggle 50 ] ;; ...and starts out with a random heading
create-followers (num-ants - 1)
[ set size 2
set color yellow ] ;; middle ants are yellow
ask turtles
[ setxy nest-x nest-y ;; start the ants out at the nest
set heading 90 ]
ask turtle (num-ants - 1)
[ set color blue ;; last ant is blue
set pen-size 2
pd ] ;; ...and leaves a trail
ask leaders
[ set pen-size 2
pd ] ;; the leader also leaves a trail
set leader-heading [heading] of one-of leaders
end
to go
if all? turtles [xcor >= food-x]
[ stop ]
ask leaders ;; the leader ant wiggles and moves
[ wiggle leader-wiggle-angle
correct-path
if (xcor > (food-x - 5 )) ;; leader heads straight for food, if it is close
[ facexy food-x food-y ]
if xcor < food-x ;; do nothing if you're at or past the food [ fd 0.5 ] ] ask followers [ face turtle (who - 1) ;; follower ants follow the ant ahead of them if time-to-start? and (xcor < food-x) ;; followers wait a bit before leaving nest [ fd 0.5 ] ] set leader-heading [heading] of one-of leaders tick end ;; turtle procedure; wiggle a random amount, averaging zero turn to wiggle [angle] rt random-float angle lt random-float angle end ;; turtle procedure to correct-path ifelse heading > 180
[ rt 180 ]
[ if patch-at 0 -5 = nobody
[ rt 100 ]
if patch-at 0 5 = nobody
[ lt 100 ] ]
end
;; turtle reporter; if true, then the ant is authorized to move out of the nest
to-report time-to-start?
report ([xcor] of (turtle (who - 1))) > (nest-x + start-delay + random start-delay )
end
; Copyright 1997 Uri Wilensky. All rights reserved.
; The full copyright notice is in the Information tab.
Baris potongan perintah (procedures) diawali kalimat to diakhiri end
to correct-path
ifelse heading > 180
[ rt 180 ]
[ if patch-at 0 -5 = nobody
[ rt 100 ]
if patch-at 0 5 = nobody
[ lt 100 ] ]
ifelse heading > 180
[ rt 180 ]
[ if patch-at 0 -5 = nobody
[ rt 100 ]
if patch-at 0 5 = nobody
[ lt 100 ] ]
end
Referensi..
Wilensky, U. (1997). NetLogo Ant Lines model.
Wednesday, October 26, 2011
Jade and HelloWorldAgent
Oke, beberapa waktu yang lalu kita udah sukses menjalan JADE Remote Agent Management GUI melalui Netbeans, sekarang kita coba perdalam JADE dan nanti diakhir kita coba coding membuat agent yang memiliki fitur sederhana. Menampilkan Hello World!!
Yuk, kita dalami dulu sedikit istilah-istilah yang ada pada JADE..
Prinsip Kerja JADE
JADE sebagai middleware yang memberikan fasilitas untuk pengembangan sistem berbasiskan agent menyediakan :
Selain menerima pendaftaran dari normal container sebuah main container selalu memiliki dua buah agent yang aktif secara otomatis ketika main container dijalankan. Kedua agent itu adalah:
Pertama..
Kita buat project baru saja deh, biar ingat bagaimana setingan dan konfigurasi menjalankan JADE di Netbeans. Beri nama, misalkan AgentHelloWorld.
Kedua..
Inputkan library jade ke project AgentHelloWorld, dilanjutkan dengan konfigurasi run secara customize. Lupa? Lihat lagi di postingan ane sebelumnya http://ar-wdh.blogspot.com/2011/10/jade-and-intelligent-agent.html he..he..
Ketiga..
Inputkan code berikut :
Yuk, kita dalami dulu sedikit istilah-istilah yang ada pada JADE..
Prinsip Kerja JADE
JADE sebagai middleware yang memberikan fasilitas untuk pengembangan sistem berbasiskan agent menyediakan :
- Runtime environment yang menjadi tempat di mana agent dapat berjalan dan harus aktif pada host dimana agent akan bekerja.
- Pustaka berupa kelas-kelas yang dapat/harus digunakan untuk mengembangkan agent.
- Sekumpulan graphic tool yang digunakan untuk melakukan administrasi dan monitoring terhadap aktivitas agent yang sedang berjalan pada runtime environment.
Selain menerima pendaftaran dari normal container sebuah main container selalu memiliki dua buah agent yang aktif secara otomatis ketika main container dijalankan. Kedua agent itu adalah:
- AMS (Agent Management Sistem) yang menyediakan naming service yang memastikan setiap agent dalam platform memiliki identitas yang unik. Selain itu AMS dapat merepresentasikan otoritas dalam platform di mana melalui AMS kita dapat menjalankan atau menghentikan agent dalam container yang terdaftar.
- DF (Directory Facilitator) adalah agent yang berfungsi sebagai “yellow pages” bagi platform. Melalui DF sebuah agent dapat mencari agent yang aktif dan layanan yang diberikan agent tersebut.
Pertama..
Kita buat project baru saja deh, biar ingat bagaimana setingan dan konfigurasi menjalankan JADE di Netbeans. Beri nama, misalkan AgentHelloWorld.
Kedua..
Inputkan library jade ke project AgentHelloWorld, dilanjutkan dengan konfigurasi run secara customize. Lupa? Lihat lagi di postingan ane sebelumnya http://ar-wdh.blogspot.com/2011/10/jade-and-intelligent-agent.html he..he..
Ketiga..
Inputkan code berikut :
package agenthelloworld;
import jade.core.Agent;
import jade.core.behaviours.CyclicBehaviour;
import jade.lang.acl.ACLMessage;
import java.util.Iterator;
public class Main extends Agent {
public void setup() {
System.out.println("hello...I am agent; " + getLocalName());
System.out.println("my local name is " + getAID().getLocalName());
System.out.println("my GUID is " + getAID().getName());
System.out.println("my address are ");
Iterator it = getAID().getAllAddresses();
while (it.hasNext()) {
System.out.println(" - " + it.next());
}
System.out.println("my argument are :");
Object[] args = getArguments();
if (args != null) {
for (int i = 0; i < args.length; i++) { System.out.println("- " + args[i]); } } } }
import jade.core.Agent;
import jade.core.behaviours.CyclicBehaviour;
import jade.lang.acl.ACLMessage;
import java.util.Iterator;
public class Main extends Agent {
public void setup() {
System.out.println("hello...I am agent; " + getLocalName());
System.out.println("my local name is " + getAID().getLocalName());
System.out.println("my GUID is " + getAID().getName());
System.out.println("my address are ");
Iterator it = getAID().getAllAddresses();
while (it.hasNext()) {
System.out.println(" - " + it.next());
}
System.out.println("my argument are :");
Object[] args = getArguments();
if (args != null) {
for (int i = 0; i < args.length; i++) { System.out.println("- " + args[i]); } } } }
Jade, Netbeans and Intelligent Agent
JADE atau Java Agent DEvelopment Framework adalah sebuah framework yang memfasilitasi pengembangan aplikasi berbasis agent yang diimplementasikan dalam bahasa Java. Salah satu tujuan dari pengembangan Jade adalah menyederhanakan pengimplementasian Multi Agents System yang sesuai dengan spesifikasi FIPA. (Foundation for Intelligent, Physical Agent; http://fipa.org). Jade juga menyediakan seperangkat tools berbasis grafik untuk debugging sistem yang akan dikembangkan. Website Jade adalah http://jade.tilab.com. Jade dikembangkan pada tahun 1998 oleh Research & Development Departement of Telecom Italia, namun sejak tahun 2003, Jade menjadi software Open Source di bawah lisensi LGPL dengan hak cipta tetap dipegang oleh Telecom Italia.
Versi terbaru Jade adalah versi 4.1 yang dirilis pada tanggal 13 Juli 2011, dan karena Jade diimplementasikan dalam bahasa Java maka Jade membutuhkan persyaratan sistem minimal, yaitu Java (JDK) versi 1.4 atau yang lebih baru.
Oke, sebelum kita berbicara banyak bagaimana JADE bisa membuat agent, bahkan multi agents, kita share dulu bagaimana JADE kita manipulasi dan kita jalankan melalui Netbeans. Kenapa Netbeans? Ya karena JADE merupakan framework berbasis java, maka Netbeans adalah salah satu tools yang bisa kita gunakan untuk ngutak-ngatik dan ngoding JADE.
Yang pertama harus dilakukan setelah mendownload JADE adalah mengekstrak dan menempatkannya di direktori pilihan anda. Misalkan ditaruh di D:\JADE. Oke, jika sudah kita coba running test apakah JADE yang kita download bisa dijalankan melalui Netbeans atau tidak. Dan sekali lagi sebelum kita melanjutkan, mohon dipastikan bahwa anda telah menginstal java minimal JDK versi 1.4.
Versi terbaru Jade adalah versi 4.1 yang dirilis pada tanggal 13 Juli 2011, dan karena Jade diimplementasikan dalam bahasa Java maka Jade membutuhkan persyaratan sistem minimal, yaitu Java (JDK) versi 1.4 atau yang lebih baru.
Oke, sebelum kita berbicara banyak bagaimana JADE bisa membuat agent, bahkan multi agents, kita share dulu bagaimana JADE kita manipulasi dan kita jalankan melalui Netbeans. Kenapa Netbeans? Ya karena JADE merupakan framework berbasis java, maka Netbeans adalah salah satu tools yang bisa kita gunakan untuk ngutak-ngatik dan ngoding JADE.
Yang pertama harus dilakukan setelah mendownload JADE adalah mengekstrak dan menempatkannya di direktori pilihan anda. Misalkan ditaruh di D:\JADE. Oke, jika sudah kita coba running test apakah JADE yang kita download bisa dijalankan melalui Netbeans atau tidak. Dan sekali lagi sebelum kita melanjutkan, mohon dipastikan bahwa anda telah menginstal java minimal JDK versi 1.4.
Monday, October 24, 2011
What is RAID? How RAID works?
RAID (Redundant Array of Independent Disks) adalah suatu cara untuk meningkatkan unjuk kerja dan reliabilitas media penyimpanan eksternal dengan memanfaatkan redundancy. Hal tersebut dilakukan dengan jalan menggabungkan beberapa disk menjadi sebuah logical disk dan mendistribusikan data ke setiap disk di dalamnya. Lho bukankah sekarang harddisk kapasitasnya sudah sangat besar dan mencukupi??
Ceritanya, teknologi ini lahir tahun 1990an. Ketika itu komputer-komputer server mengalami lonjakan data yang harus disimpan. Sementara itu jika harus meningkatkan kapasitas penyimpanan masih membutuhkan biaya yang sangat besar. Nah, RAID hadir dan menjadi solusi murah tanpa mengorbankan performansi komputer tersebut. Jika jaman dahulu RAID banyak digunakan untuk enterprise and server markets namun pada tahun 2000 awal sudah banyak dimanfaatkan oleh kalangan end-user.
Tiga alasan utama menggunakan teknologi RAID :
Secara keseluruhan RAID memberikan beberapa keuntungan (tergantung dari versi RAID yang diimplementasikan). End user level akan lebih senang menggunakan RAID 0 untuk menaikkan performa tanpa mengurangi kapasitas ruang penyimpanan. Hal ini karena redundancy bukan masalah utama bagi kebanyakan user.
Sedangkan biaya untuk mengimplementasikan RAID 0+1 atau RAID 5 masih terlalu mahal dan hanya akan ditemukan pada high-end workstation atau pada level server.
Kesimpulan pada tabel :
Sumber :
Ceritanya, teknologi ini lahir tahun 1990an. Ketika itu komputer-komputer server mengalami lonjakan data yang harus disimpan. Sementara itu jika harus meningkatkan kapasitas penyimpanan masih membutuhkan biaya yang sangat besar. Nah, RAID hadir dan menjadi solusi murah tanpa mengorbankan performansi komputer tersebut. Jika jaman dahulu RAID banyak digunakan untuk enterprise and server markets namun pada tahun 2000 awal sudah banyak dimanfaatkan oleh kalangan end-user.
Tiga alasan utama menggunakan teknologi RAID :
- Redundancy
Redundancy merupakan faktor penting pada pengembangan RAID di server. Mengapa? Karena redundancy digunakan untuk menyimpan informasi paritas untuk menjaga agar data dapat di-recover jika terjadi kegagalan disk. Jika salah satu disk mengalami kegagalan, maka dapat ditukar dengan disk rendundant-nya tanpa harus mematikan sistem (hot-swappable). Metode redundancy tergantung pada versi RAID yang digunakan. - Peningkatan performansi komputer
- Murah
Bisa anda bandingkan, membeli harddisk baru yang lebih besar kapasitasnya cost yang diperlukan lebih besar daripada membeli 2 atau (mungkin) 3 harddisk baru (apalagi second) yang kapasitasnya sama.
- RAID 0
RAID 0 sebenarnya tidak sepenuhnya mengimplementasikan karakteristik RAID, karena RAID 0 tidak memanfaatkan redundancy. RAID 0 menggunakan block-level striping tanpa pemanfaatan paritas ataupun mirroring. Dengan kata lain, RAID 0 dapat meningkatkan unjuk kerja namun tidak
menyediakan fault tolerance, sehingga apabila salah satu drive mengalami kegagalan, seluruh data bisa rusak.
Mengapa striping bisa meningkatkan performance? Karena, strips menulis ke dalam dua drive dengan jumlah data yang lebih banyak dua kali lipat dibandingkan dengan menulis jumlah data yang sama ke dalam single drive. Di bawah ini, adalah contoh bagaimana data ditulis dengan RAID 0. Setiap baris pada tabel menunjukkan physical block pada drive dan setiap kolom adalah identitas drive. Angka pada tabel menunjukkan blok data. Jika terdapat angka ganda (duplicate number), itu berarti menunjukkan duplikat blok data.
Semua blok (6 block data) dibutuhkan untuk file, tapi hanya tiga yang dapat diakses, karena setiap drive bekerja secara paralel, dan hanya dapat membaca 3 physical blocks. - RAID 1
RAID 1 adalah contoh RAID yang sebenarnya. RAID 1 memberikan contoh sederhana redundancy data melalui proses yang disebut mirroring. RAID 1 membutuhkan dua drive yang kapasitasnya sama. Satu drive sebagai drive aktif dan drive kedua berfungsi sebagai mirror. Ketika data ditulis ke drive aktif, data yang sama dikopikan ke drive mirror. Di bawah ini adalah contoh bagaimana data ditulis dengan implementasi RAID 1.
Duplikat number menunjukkan duplikasi blok data. Dari gambar terlihat full level redundancy data pada sistem. Jika satu drive gagal, drive yang lain masih memiliki semua data yang terdapat pada sistem. Keuntungannya : RAID 1 sukses menduplikasi data dengan teknik mirror. Kelemahannya : RAID 1 tidak efektif dalam memperbesar kapasitas. - RAID 5
RAID 5 merupakan the most powerful form of RAID in a desktop computer system. Biasanya, RAID 5 membutuhkan kartu hardware controller untuk me-manage array. Tapi pada beberapa OS dapat mengontrolnya menggunakan software. RAID 5 membutuhkan minimal 3 drive yang identik untuk mendapatkan best performance. RAID 5 menggunakan stripping dengan parity untuk menjaga redundancy data.
Parity pada dasarnya adalah bentuk matematika biner yang membandingkan dua blok data. Jika jumlah dua blok data adalah genap, maka parity bit juga genap. Sebaliknya jika jumlah dua blok adalah ganjil maka bit parity juga ganjil. Jadi 0+0 dan 1+1 keduanya sama dengan 0, sedangkan 0+1 atau 1+0 sama dengan 1. Karenanya jika terjadi kegagalan pada satu drive dalam array, parity bit akan melakukan rekonstruksi data ketika drive diganti.
Berdasarkan bentuk RAID 5 yang digambarkan pada tabel di atas, setiap angka pada cell menandakan blok data. "P" adalah parity bit untuk dua blok data.
Kapasitas array drive mengikuti rumus berikut :
(n-1)z = Array Capacitydimana n : jumlah drive sedangkan z : kapasitas harddisk.
Misal, terdapat 3 harddisk 500 GB, maka total kapasitas array adalah :
(3-1) x 500 GB or 1000 GBRAID 5 juga memiliki fungsi hot swap. Fungsi ini menjadi fitur berharga untuk sistem yang memerlukan operasi 24x7.
Keuntungannya : Meningkatkan performa array penyimpan, Full data redundancy, Kemampuan untuk menjalankan 24x7 dengan hot swap Kelemahannya : mahal, tingkat performa menurun selama proses rebuilding
Secara keseluruhan RAID memberikan beberapa keuntungan (tergantung dari versi RAID yang diimplementasikan). End user level akan lebih senang menggunakan RAID 0 untuk menaikkan performa tanpa mengurangi kapasitas ruang penyimpanan. Hal ini karena redundancy bukan masalah utama bagi kebanyakan user.
Sedangkan biaya untuk mengimplementasikan RAID 0+1 atau RAID 5 masih terlalu mahal dan hanya akan ditemukan pada high-end workstation atau pada level server.
Kesimpulan pada tabel :
Sumber :
- http://compreviews.about.com/od/storage/l/aaRAIDPage1.htm
- Stallings,W. Computer Organization and Architecture: Designing for Performance. Prentice Hall. 2010.
arsitektur vs organisasi (komputer)
Salah satu mata kuliah wajib bagi mahasiswa teknologi informasi adalah
Arsitektur dan Organisasi Komputer, atau beberapa kampus sering
menyingkatnya menjadi Arsikom. Ada kitab suci yang menjadi bahan bacaan wajib pada mata kuliah ini, yaitu bukunya William Stallings dan Andrew S. Tanenbaum. Bukunya Stalling berjudul "Computer Organization and Architecture Designing for Performance" saat ini edisi terakhirnya adalah edisi 8th, sedangkan bukunya Tanenbaum adalah "Structured Computer Organization" yang saat ini edisi terakhirnya adalah edisi 5th.
Lantas apa sih esensi dari arsitektur komputer, dan apa pula maksudnya organisasi komputer? Apa perbedaan keduanya? Mengapa kita harus mempelajari arsitektur dan organisasi komputer? Yuk kita lanjutkan.
Pada ruang lingkup ilmu komputer dan juga teknik komputer, arsitektur komputer adalah bagaimana seorang programmer melihat atribut-atribut hardware komputer dalam merancang logika program yang dibuatnya. Sebagai contoh, misalkan si programmer ketika akan coding, dia perlu mengetahui apakah pada komputer yang sedangkan digunakannya memiliki instruksi perkalian atau tidak? Bagaimana pengalamatan data di memori? Bagaimana data direpresentasikan? Bagaimana bilangan direpresentasikan? Pertanyaan-pertanyaan ini merupakan pertanyaan domain arsitektur komputer. Jika dipersempit, maka fokus dari pembelajaran di bidang arsitektur komputer adalah "bagaimana software bekerja pada hardware".
Sedangkan organisasi komputer berbicara bagaimana mengimplementasikan arsitektur tersebut. Bagaimana unit-unit komputer berjalan dan bagaimana interkoneksinya sehingga komputer dapat berfungsi sesuai strukturnya.
Mengapa kita harus mempelajari arsitektur dan organisasi komputer? Ini jawaban yang ane ringkas dari bukunya mbah Stallings :
Semua komputer dapat dipandang sebagai sebuah struktur sistem besar yang terdiri dari banyak komponen dan kompleks. Setiap komponen memiliki struktur dan fungsi sendiri. Akan tetapi setiap komponen ini saling terkait dan saling terhubung untuk sebuah tujuan kolektif yaitu unjuk performansi komputasi. Itulah arsitektur dan organisasi komputer.
Lantas apa sih esensi dari arsitektur komputer, dan apa pula maksudnya organisasi komputer? Apa perbedaan keduanya? Mengapa kita harus mempelajari arsitektur dan organisasi komputer? Yuk kita lanjutkan.
Pada ruang lingkup ilmu komputer dan juga teknik komputer, arsitektur komputer adalah bagaimana seorang programmer melihat atribut-atribut hardware komputer dalam merancang logika program yang dibuatnya. Sebagai contoh, misalkan si programmer ketika akan coding, dia perlu mengetahui apakah pada komputer yang sedangkan digunakannya memiliki instruksi perkalian atau tidak? Bagaimana pengalamatan data di memori? Bagaimana data direpresentasikan? Bagaimana bilangan direpresentasikan? Pertanyaan-pertanyaan ini merupakan pertanyaan domain arsitektur komputer. Jika dipersempit, maka fokus dari pembelajaran di bidang arsitektur komputer adalah "bagaimana software bekerja pada hardware".
Sedangkan organisasi komputer berbicara bagaimana mengimplementasikan arsitektur tersebut. Bagaimana unit-unit komputer berjalan dan bagaimana interkoneksinya sehingga komputer dapat berfungsi sesuai strukturnya.
Mengapa kita harus mempelajari arsitektur dan organisasi komputer? Ini jawaban yang ane ringkas dari bukunya mbah Stallings :
- Students need to understand computer architecture in order to structure a program so that it runs more efficiently on a real machine. In selecting a system to use, they should be able to understand the tradeoff among various components, such as CPU clock speed vs. memory size
- Architecture extends upward into computer software because a processor’s architecture must cooperate with the operating system and system software. It is difficult to design an operating system well without knowledge of the underlying architecture
- Concepts used in computer architecture find application in other courses. In particular, the way in which the computer provides architectural support for programming languages and operating system facilities reinforces concepts from those areas
Semua komputer dapat dipandang sebagai sebuah struktur sistem besar yang terdiri dari banyak komponen dan kompleks. Setiap komponen memiliki struktur dan fungsi sendiri. Akan tetapi setiap komponen ini saling terkait dan saling terhubung untuk sebuah tujuan kolektif yaitu unjuk performansi komputasi. Itulah arsitektur dan organisasi komputer.
Subscribe to:
Posts (Atom)