Senin, 02 Maret 2009

MENGATASI FLASHDISK YANG DISABLE/WRITE PROTEK

MENGATASI FLASHDISK YANG DISABLE/WRITE PROTEK

Pernahkah mengalami Flash Disk atau Hardisk Eksternal dengan kabel USB yang tiba-tiba tidak bisa digunakan, mungkin di disable aksesnya atau muncul pesan Write-Protected ? Jika mengalami hal ini, atau ingin menonaktifkan penggunaan USB di komputer anda dan membatasi aksesnya, bisa dicoba tips berikut.

Minimal ada 2 hal yang bisa menyebabkan media penyimpan USB tidak bisa diakses, pertama memang aksesnya di disable dan yang kedua, aksesnya di proteksi, biasa muncul pesan bahwa “The disk is write-protected”. Dua-duanya bisa diatur melalui registry windows.

This Disk is Write-Protected

Pada kondisi ini, USB masih bisa dibaca, tetapi tidak bisa ditulis atau untuk menyimpan data. Jika akan digunakan untuk menyimpan data maka akan muncul pesan seperti ini :

Jika mengalami kejadian seperti diatas, maka coba ikuti tip berikut :

  1. Buka Registry Editor ( Start Menu > Run, ketik : Regedit, kemudian tekan enter/klik OK)
  2. Cari Key berikut :
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies
  3. Jika di panel bagian kanan ada WriteProtect, double click dan dibagian value data isikan 0 atau hapus WriteProtect tersebut atau bisa juga hapus key StorageDevicePolicies. Kemudian refresh (View > Refresh)
  4. Coba lepas USB Flash Disk dan ulangi copy datanya

Sebaliknya, untuk membatasi pengguna komputer agar tidak bisa menulis, mengcopy atau memindah data di flash disk, maka bisa dilakukan dengan tips berikut :

  1. Buka Registry Editor ( Start Menu > Run, ketik : Regedit, kemudian tekan enter/klik OK)
  2. Cari Key (mirip folder) berikut
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
  3. Buat key baru (klik kanan dan pilih menu New > Key, kemudian beri nama StorageDevicePolicies
  4. Kemudian buka key StorageDevicePolicies tersebut dan klik kanan pilih New > DWORD Value beri nama WriteProtect
  5. Double click WriteProtect tersebut, di bagian value data dan isi dengan nilai 1. Klik OK

Update 27 Juni 2008
Selain CurrentControlSet, pengubahan juga harus dilakukan di key ControlSet001, ControlSet002 dan seterusnya jika ada. Jadi bisa di cek di Key berikut :

  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\StorageDevicePolicies
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\StorageDevicePolicies

Setelah di set seperti diatas, maka semua user yang menggunakan komputer tersebut tidak dapat menyimpan, mencopy atau memindah data ke USB Flash Disk, tanpa harus me restart komputer terlebih dahulu. Sehingga muncul pesan disk write-protected seperti diatas. Tips ini dapat berjalan di Windows XP SP2 and SP3, Windows Vista, Windows Server 2003 dan 2008. (http://ebsoft.web.id)

USB Mass Storage tidak berfungsi (Disable)

Ada kalanya media penyimpan eksternal seperti USB Flash Disk, hardisk Eksternal dan sejenisnya tidak bisa diaktifkan atau di disable. Jika mengalami hal ini maka coba tip berikut :

  1. Buka Registry Editor ( Start Menu > Run, ketik : Regedit, kemudian tekan enter/klik OK)
  2. Cari Key berikut :
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor

  3. Di panel bagian kanan double klik Start, ganti isinya (Value data) dengan 3 untuk mengaktifkan USB storage, jika isinya 4 maka Removable USB mass storage akan di disable.

Jika efeknya tidak langsung terlihat, maka Restart komputer terlebih dahulu. Tips ini dapat diterapkan di Windows Vista, XP, Windows Server 2008, 2003 dan 2000. (http://ebsoft.web.id).

Sumber : http://www.mydigitallife.info

Sabtu, 27 Desember 2008

ARRAY DALAM PASCAL

Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap.
Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript.
Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange.
Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut.
Contoh: Var Untai : array[1..50] of Integer; Pada contoh Array dengan nama untai telah dideklarasikan dengan tipe integer, dengan jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe integer. Contoh Program : Program Contoh_Array_Input; Uses Crt; Var Bilangan : array[1..50] of Integer; Begin ClrScr; Bilangan[1]:=3; Bilangan[2]:=29; Bilangan[3]:=30; Bilangan[4]:=31; Bilangan[5]:=23; Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]); Readln; End. Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini : Program Contoh_Deklarasi_Array_Beragam;
Uses Crt;
Var
NPM : array[1..20] of string[10];
Nama : array[1..20] of string[25];
Nilai : array[1..20] of real;
Umur : array[1..20] of byte;
banyak,i : integer;
Begin
ClrScr;
Write('Isi berapa data array yang diperlukan :');Readln(banyak);
For i := 1 to banyak Do
Begin
Write('NPM =');Readln(NPM[i]);
Write('Nama =');readln(Nama[i]);
Write('Nilai=');readln(Nilai[i]);
Write('Umur =');readln(Umur[i]);
End; {cetak varibel array}
Writeln('NPM NAMA NILAI UMUR ');
For i:= 1 to banyak Do
Begin
Writeln(Npm[i]:10,
Nama[i]:25,Nilai[i]:3:2,' ',
Umur[i]:3); End; Readln;
End.

Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini : Type Angka = String[20]; Var Nama : Array [1..50] of Angka; Begin . . End. Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real. Contoh: Var Nilai : Array[1..10] of Integer; pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut dapat dideklarasikan dengan type seperti berikut ini : Type Skala = 1..10; Var Nilai : Array [skala] of Integer; atau : Type Skala = 1..10; Y = Array[skala] of Integer; Var Nilai : Y; atau : Type Y = Array[1..10] of Integer; Var Nilai : Y; atau : Const Atas =1; Bawah = 5; type Y = Array[Atas..Bawah] of Integer; Var Nilai : Y; I. Deklarasi Type Indeks Skalar Indeks dari larik dapat berupa tipe skalar. Contoh. : Program Deklarasi_Indeks_Array_Skalar; Uses Crt; Var Jum : Array[(jan,feb,mar,apr,mei)] of Integer; Begin Jum[jan]:=25; Jum[feb]:=45; Jum[mar]:=21; Jum[apr]:=23; Jum[mei]:=50; Writeln('Jumlah nilai bulan maret =',Jum[mar]); Readln; End. dapat juga ditulis : type Bln = (jan,feb,mar,apr,mei); Var Jum : Array[bln] of Integer; atau : type Bln =(jan,feb,mar,apr,mei); Var Jum : Array[jan..mei] of Integer;II. Deklarasi Konstanta Array Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi variabel, tetapi dapat juga berupa konstanta (const). Contoh Program : Program Contoh_Deklarasi_Array_Konstan; Uses Crt; Const Tetap : Array[1..4] of Integer=(7,10,21,20); Var i : Integer; Begin For i:= 1 to 4 Do Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]); Readln; End. konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut. Contoh Program : Program Contoh_Konstan_Array_Char_; Uses Crt; Const Huruf : Array[0..5] of Char=('A','B','C','D','E','F'); Var i : Integer; Begin For i:= 0 to 5 Do Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]); Readln; End. Konstanta array dapat juga berupa string seperti berikut ini. Contoh Program : Program Constanta_Array_String; Uses Crt; Type A = Array [1..5] of String; Const Nama : A = ('basic','pascal','cobol','paradox','dbase'); Var i : Integer; Begin For i:= 1 to 5 Do Writeln('Nilai Array ke-',i:2,'= ',Nama[i]); readln; end. Dalam pascal string merupakan array dari elemen- elemen karakter seperti berikut : Contoh Program : Program String_Adalah_Array_Tipe_Char; Uses Crt; Var Nama : string; i : Integer; Begin Nama:='Turbo Pascal'; For i:= 1 to Length(nama) Do Writeln('Elemen ',i,' dari ',Nama,'= ',Nama[i]); Readln; End. contoh program bilangan prima dengan menggunakan bantuan array. Contoh program : Program Mencari_Bilangan_Prima_Dengan_Array; Uses Crt; Var Prima : Array[1..100] of Integer; i,j : Integer; bil : Integer; Begin ClrScr; For i := 2 to 100 Do Begin Prima[i]:=i; For j:= 2 to i-1 Do Begin bil := (i mod j); {* i dibagi j dicek apakah 0*} If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*} End; If Prima[i]<> 0 Then Write(Prima[i],' '); {*cetak array yg prima*} End; Readln; End. Contoh pengurutan data dengan metode buble sort, yaitu dengan cara penukaran, dapat dilihat pada contoh dibawah ini : Contoh Program : Program Penggunaan_Array_Untuk_Sortir_Buble_Sort; Uses Crt; Var nil1 : Array[1..100] of Integer; n,i,j,dum : Integer; Begin ClrScr; Write('mau isi berapa data acak (integer) ='); readln(n); For i := 1 to n Do Begin Write('Data Ke ',i,':');Readln(nil1[i]); End; {* penyapuan proses} for i:= 1 to n-1 do begin for j:= i to n do begin if nil1[j]begin dum:=nil1[j]; nil1[j]:=nil1[i]; nil1[i]:=dum; end; end; end; writeln; writeln('Hasil Sortir'); for i := 1 to n do write(nil1[i]:3); readln; end. III. Array Dua Dimensi Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik. 1 2 1 2 3 Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini . Contoh Program: Program Deklarasi_Array_Dua_Dimensi; Uses Crt;Var Tabel : Array[1..3,1..2] of Integer;i,j : Integer;Begin ClrScr; Tabel[1,1]:=1; Tabel[1,2]:=2; Tabel[2,1]:=3; Tabel[2,2]:=4; Tabel[3,1]:=5; Tabel[3,2]:=6; For I := 1 to 3 Do Begin For J:= 1 to 2 Do Begin Writeln('Elemen ',i,',',j,'= ',tabel[i,j]); End; End; Readln; End. IV. Alternatif Deklarasi Array Dua Dimensi. Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut dapat dilihat dibawah ini : Contoh : Var Tabel : Array[1..3] of Array[1..2] of Byte; atau : Type Matrik = Array[1..3,1..2] of Byte; Var Tabel : Matrik; atau : Type Baris = 1..3; Kolom = 1..2; Matrik = Array[Baris,Kolom] of Byte; Var Tabel : Matrik; atau : Type Baris = 1..3; Kolom=1..2; Matrik= Array[Baris] of Array[Kolom] of Byte; Var Tabel : Matrik; Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam aplikasi penjumlahan matrik : Contoh Prorgam: Program Penjumlahan_Matrik; Uses Crt; Var Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer; i,j : Integer; Begin ClrScr; { input matrik ke satu } Writeln(' Elemen matrik satu'); For i := 1 to 3 Do Begin For j := 1 to 2 Do Begin Write('Elemen baris -',i,' Kolom -',j,'= '); Readln(matrik1[i,j]); End; End; {input matrik ke dua} Writeln('input elemen matrik dua'); For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Begin Write('Elemen baris -',i,' kolom -',j,'= '); Readln(matrik2[i,j]); End; End; {proses penjumlahan tiap elemen} For i := 1 to 3 Do Begin For j:= 1 to 2 Do Begin Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j]; End; End; {proses cetak hasil} For i:= 1 to 3 Do Begin For j:= 1 to 2 Do Begin Write(Hasil[i,j]:6); End; Writeln; End; Readln; End. V. Array Sebagai Parameter Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value) atau secara acuan (by reference) ke procedure atau ke function. Procedure yang menggunakan parameter berupa array harus dideklarasikan di dalam judul procedure yang menyebutkan parameternya bertipe array. Contoh Program : Program Contoh_Pengiriman_Parameter_Array_Di_Procedure; Uses Crt; Const Garis ='---------------------------------------------------'; Type Untai = Array[1..10] of String[15]; Bulat = Array[1..10] of Integer; Huruf = Array[1..10] of Char; Var i,Banyak : Integer; Procedure Proses(Nama:Untai;Nilai:Bulat); Var Ket : String; Abjad : Char; Begin Writeln(Garis); Writeln('Nama Nilai Abjad Keterangan'); Writeln(Garis); For i := 1 to Banyak Do Begin If Nilai[i] > 90 Then Begin Abjad:='A'; Ket :='Istimewa'; End; If (Nilai[i]<90)>70) Then Begin Abjad:='B'; Ket :='Memuaskan'; End; If (Nilai[i]<70)>60) Then Begin Abjad:='C'; Ket :='Cukup'; End; If (Nilai[i]<60)>45) Then Begin Abjad:='D'; Ket :='Kurang'; End; If Nilai[i]< 45 Then Begin Abjad:='E'; Ket :='Sangat kurang'; End; Writeln(Nama[i]:15,' ',Nilai[i]:4,' ',Abjad,' ',Ket:15); End; Writeln(Garis); End; Procedure Masuk_Data; Var Nama : Untai; Nilai : Bulat; Begin Write('Banyak data =');Readln(Banyak); For i:= 1 to Banyak Do Begin ClrScr; Writeln('Data ke - ',i); Write('Nama =');readln(Nama[i]); Write('Nilai =');readln(Nilai[i]); End; Proses(Nama,Nilai); End; {modul Utama} Begin Masuk_Data; Readln; End.

Sabtu, 06 Desember 2008

TUGAS ARKOM (RAID)

Pemilihan Tingkatan RAID

Bab 20. Sistem Penyimpanan Masal

Pemilihan Tingkatan RAID
Raid terdiri dapat dibagi menjadi enam level yang berbeda:
Raid level 0. Menggunakan kumpulan disk dengan striping pada level blok, tanpa redundansi. jadi hanya melakukan striping blok data kedalam beberapadisk. kelebihan level ini antara lain akses beberapa blok bisa dilakukan secara paralel sehingga bis lebih cepat. kekurangan antara lain akses perblok sama saja seperti tidak ada peningkatan, kehandalan kurang karena tidak adanya pembekc-upan data dengan redundancy. Berdasarkan definisi RAID sebagai redudancy array maka level ini sebenarnya tidak termasuk kedalam kelompok RAID karena tidak menggunakan redundansy untuk peningkatan kinerjanya.
RAID level 1. Merupakan disk mirroring, menduplikat data tanpa striping. Cara ini dapat meningkatkan kinerja disk, tapi jumlah disk yang dibutuhkan menjadi dua kali lipat kelebihannya antara lain memiliki kehandalan (reliabilitas) yang baik karena memiliki back up untuk tiap disk dan perbaikan disk yang rusak dapat dengan cepat dilakukan karena ada mirrornya. Kekurangannya antara lain biaya yang menjadi sangat mahal karena membutuhkan disk 2 kali lipat dari yang biasanya.
RAID level 2. Merupakan pengorganisasian dengan error correction code (ECC). Seperti pada memory dimana pendeteksian mengalami error mengunakan paritas bit. Sebagai contoh, misalnya misalnya setiap byte data, memiliki paritas bit yang bersesuaian yang mempresentasikan jumlah bit "1" didalm byte data tersebut dimana paritas bit = 0 jika bit genap atau paritas bit = 1 jika bit ganjil. Jadi, jika salah satu bit pada salah satu data berubah dan tidak sesuai dengan paritas bit yang tersimpan. Dengan demikian, apabila terjadi kegagalan pada salah satu disk, data dapat dibentuk kembali dengan membaca error correction bit pada disk lain. Kelebihannya antara lain kehandalan yang bagus karena dapat membentuk kembali data yang rusak dengan ECC tadi, dan jumlah bit redundancy yang diperlukan lebih sedikit jika dibandingkan dengan level 1 (mirroring). Kelemahannya antara lain prlu adanya perhitungan paritas bit, sehingga menulis atau perubahan data memerlukan waktu yang lebih lama dibandingkan dengan yang tanpa menggunakan paritas bit, level ini memerlukan disk khusus untuk penerapannya yang harganya cukup mahal.
RAID level 3. Merupakan pengorganisasian dengan paritas bit yang interleaved. Pengorganisasian ini hamper sama dengan RAID level 2, perbedaanya adalah pada level 3 ini hanya memerlukan sebuah disk redudan, berapapun kumpulan disknya, hal ini dapt dilakukan karena disk controller dapat memeriksa apakah sebuah sector itu dibaca dengan benar atau tidak (mengalami kerusakan atau tidak). Jadi tidak menggunakan ECC, melainkan hanya membutuhakan sebuah bit paritas untuk sekumpulan bit yang mempuntai sekumpulan bit yang mempunyai posisi yang sama pada setiap dis yang berisi data. Selain itu juga menggunakan data striping dan mengakses disk-disk secara parallel. Kelebihannya antara lain kehandalan (rehabilitas) bagus, akses data lebih cepat karena pembacaan tiap bit dilakukan pada beberapa disk (parlel), hanya butuh 1 disk redudan yang tentunya lebih menguntungkan dengan level 1 dan 2. kelemahannya antara lain perlu adanya perhitungan dan penulisan parity bit akibatnya performannya lebih rendah dibandingkan yang menggunakan paritas.
RAID level 4. Merupakan pengorganisasian dengan paritas blok interleaved, yaitu mengunakan striping data pada level blok, menyimpan sebuah parits blok pada sebuah disk yang terpisah untuk setiap blok data pada disk-disk lain yang bersesuaian. Jka sebuah disk gagal. Blok paritas tersebut dapat digunakan untuk membentuk kembali blok-blok data pada disk yang bisa lebih cepat karena bisa parlel dan kehandalannya juga bagus karena adanya paritas blok. Kelemahannya antara lain akses perblok seperti biasa penggunaan 1 disk., bahkan untuk penulisan ke 1 blok memerlukan 4 pengaksesan untuk membaca ke disk data yag bersangkutan dan paritas disk, dan 2 lagi untuk penulisan ke 2 disk itu pula (read-modify-read)
RAID level 5. Merupakan pengorganisasian dengan paritas blok interleaved terbesar. Data dan paritas disebr pada semua disk termasuk sebuah disk tambahan. Pada setiap blok, salah satu dari disk menyimpan paritas dan disk yang lainnya menyimpan data. Sebagai contoh, jika terdapt kumpulan dari 5 disk, paritas paritas blok ke n akan disimpan pada disk (n mod 5) +1, blok ke n dari 4 disk yang lain menyimpan data yang sebenarnya dari blok tersebut. Sebuah paritas blok tidak disimpan pada disk yang sama dengan lok-blok data yang bersangkutan, karena kegagalan disk tersebut akan menyebabkan data hilang bersama dengan paritasnya dan data tersebut tidak dapat diperbaiki. Kelebihannya antara lain seperti pada level 4 ditambah lagi dengan pentebaran paritas seoerti ini dapat menghindari penggunaan berlebihan dari sebuah paritas bit seperti pada RAID level 4. kelemahannya antara lain perlunya mekanisme tambahan untuk penghitungan lokasi dari paritas sehingga akan mempengaruhi kecepatan dalam pembacaan blok maupun penulisannya.
RAID level 6. Disebut juga redudansi P+Q, seperti RAID level 5, tetapi menyimpan informasi redudan tambahan untuk mengantisipasi kegagalan dari beberapa disk sekaligus. RAID level 6 melakukan dua perhitungan paritas yang berbeda, kemudian disimpan di dalam blok-blok yang terpisah pada disk-disk yang berbeda. Jadi. Jika disk data yang digunakan sebanyak n buah disk, maka jumlah disk yang dibutuhkan pada RAID level 6 ini adalah n+2 disk. Keuntungan dari RAID level 6 ini adalah kehandalan data yang sangat tinggi, karena untuk menyebabkan data hilang, kegagalan harus terjadi pada tiga buah disk dalam interval rata-rata data mean time to repair (MTTR). Kerugiannya yaitu penalty waktu pada saat penulisan data, karena setiap penulisan yang dilakukan akan mempengaruhi dua buah paritas blok.
Raid level 0+1 dan 1+0. Ini merupakan kombinasi dari RAID level 0 dan RAID level 1. RAID level 0 memiliki kinerja yang baik., sedangkan RAID level 1 memiliki kehandalan. Namun, dalam kenyataannya kedua hal ini sama pentingnya. Dalam RAID 0+1, sekumpulan disk di strip, kemudian strip tersebut di-mirror ke disk-disk yang lain, menghasilkan strip-strip data yang sama. Kombinasi lainnya adalah RAID 1+0, dimana disk-disk mirror secara berpasangan, dan kemudian hasil pasangan mirror-nya di-stri. RAID 1+0 ini mempunyai keuntungan lebih dibandingkan dengan RAID 0+1. sebagai contoh, jika sebuah disk gagal pada RAID 0+1, seluruh disknya tidak dapat di akses, sedangkan pada RAID 1+0, disk yang gagal tersebut tidak dapat diakses tetapi pasangan stripnya yang lain masih bisa, dan pasangan mirror-nya masih dapat diakses untuk menggantikannya sehingga disk-disk lain selain yang rusak masih bisa digunakan.

Gambar 20.4. (a) RAID 0: non-redundant striping

Gambar 20.5. (b) RAID 1: mirrored disk

Gambar 20.6. (c) RAID 2: memory-style error-correcting codes

Gambar 20.7. (d) RAID 3: bit-interleavedparity

Gambar 20.8. (e) RAID 4: block-interleaved parity

Gambar 20.9. (f) RAID 5: block-interleaved distributed parity

Gambar 20.10. (g) RAID 6: P+Q redundancy



RAID

Penyimpanan Tersier