Kamis, 14 Oktober 2010

COBOL

BAHASA PEMROGRAMAN COBOL


Pendahuluan
COBOL (Common Business Oriented Language) adalah suatu bahasa komputer awam ( High Level Language) yang berorientasi langsung pada permasalahan bisnis. COBOL hampir dapat digunakan pada semua komputer bila terdapat compiler COBOL-nya. Diciptakan pada tahun 1959 dan dikembangkan oleh suatu grup bernama CODASYL (Conference on Data System Language).
Diperkenalkan pertama kali secara formal pada bulan Januari 1960. COBOL mempunyai banyak versi, sehingga untuk mempermudah penggunanya COBOL terus dikembangkan dan distandarisasi pada tahun 1968 dan 1974, diberi nama ANSI COBOL (American National Standard Institute COBOL)


Struktur Program COBOL

Program COBOL dibagi kedalam 4 bagian yang disebut dengan Division. Masing-masing divisi dimulai dengan judul divisi dengan urutan sbb:

IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION
PROCEDURE DIVISION

Masing-masing divisi dapat terdiri dari urutan-urutan susunan bagian. Tersusun secara hirarki, yang secara umum sbb :
Division
Region
Section
Paragraph
Sentence/Entry
Statement/Clause
Phrase/Option

Istilah Region, sentence, statement dan phrase/option digunakan pada PROCEDURE DIVISION, sedangkan istilah Entry dan clause digunakan pada ke-3 divisi lainnya.



Division, merupakan bagian utama dari suatu program COBOL dan selalu di awali dengan judul divisi.




Region, merupakan suatu kumpulan bagian tertentu dalam PROCEDURE DIVISION.





Section, merupakan suatu kumpulan dari paragraph atau entry dan selalu diawali denga judul seksi.




Paragraph, merupakan suatu grup dari kalimat (sentences) didalam PROCEDURE DIVISION dan selalu diawali dengan nama/ judul Paragraph.





Entry, merupakan sesuatu yang harus dituliskan pada tempat-tempat tertentu didalam program COBOL. Suatu entry dapat juga dikatakan sebagai suatu set (kumpulan) dari clause (anak kalimat) yang diakhiri dengan titik.




Sentence, merupakan kumpulan dari satu atau lebih statement, dan harus diakhiri dengan tanda titik.




Clause, merupakan kumpulan dari kata yang membentuk suatu arti. Clause adalah bagian dari entry.






Statement, merupakan perintah pengerjaan untuk komputer. Statement dalam bentuk kata kerja yang merupakan COBOL Reserved Words.





Phrase, Suatu group kata yang merupakan bagian dari statement atau clause.





Option, kebanyakan Phrase adalah optional (boleh disertakan/tidak) maka, sering disebut dengan Option.




Syarat Pemberian nama :

1. Gabungan dari huruf A-Z atau a-z, angka 0-9, Hypen (-).
2. Panjang maksimum 30 karakter.
3. Paling sedikit harus mengandung 1 huruf.
4. tidak boleh mengandung karakter khusus kecuali hypen yang diletakkan ditengah-tengah, tidak boleh diawal atau diakhir.
5. Tidak boleh mengandung COBOL reserved word.
6. Tidak boleh ada blank atau spasi.



















Programmer dapat membentuk kata-kata untuk membuat dan mendefinisikan tersendiri untuk pemberian nama pada:
1. Nama-program (program-name) adalah suatu nama yang diberikan untuk menunjukkan identitas dari program yang dibuat, dituliskan pada paragraph PROGRAM-ID dalam IDENTIFICATION DIVISION.

2. Nama-alat (mnemonic-name) adalah nama yang dibuat oleh programmer untuk menunjukkan suatu alat tertentu. Dibentuk pada paragraph SPECIAL-NAMES dalam ENVIRONMENTDIVISION.

3. Nama-file (file-name) adalah nama yang dibuat untuk menunjukkan suatu file tertentu yang dipergunakan dalam program. Dibentuk pada paragraph FD (File Description) dalam DATA DIVISION atau pada statement CLOSE< OPEN< READ dalam PROCEDURE DIVISION.

4. Nama-record, pada COBOL, record harus diberi nama-record (Record-name) pada DATA RECORD clause dan pada record description entry dalam DATA DIVISION.

5. Nama-data (data-name) adalah nama yang dibuat untuk menunjukkan suatu data item yang dipergunakan dalam program. Dibentuk pada FILE SECTION di record description entry dalam DATA DIVISION dan pada WORKING-STORAGE SECTION.

6. Nama-indek dan nama-data-indek, digunakan untuk data pada tabel yang di-indek. Dibentuk secara implisit dengan OCCURS dan INDEXED BY clause. Nama-data-indek didefinisikan dengan mengunakan USAGE IS INDEX dalam DATA DIVISION.

7. Nama-kondisi (condition-name) adalah nama data yang dihubungkan dengan suatu nilai tertentu. Didefinisikan dalam DATA DIVISION dengan level number 88 dan dioperasikan dalam PROCEDURE DIVISION pada statement IF.

8. Nama-prosedur (procedure-name) atau nama-paragraph (paragraph-name) adalah nama yang menunjukkan suatu paragraph dalam PROCEDURE DIVISION. Nama-paragraph diperlukan bila proses akan melompat ke paragraph tertentu dengan menggunakan statement GO TO dan PERFORM dalam PROCEDURE DIVISION.

9. Nama-seksi , pada PROCEDURE DIVISION, dapat dibuat menjadi beberapa seksi dan tiap seksi dapat dibentuk dengan dimulai judul seksinya yang disebut dengan Section-name.

10. Nama-kualifikasi bila nama-data atau nama-kondisi tidak unik (ada yang sama satu dengan yang lain), untuk menentukan yang mana yang akan digunakan, dapat digunakan qualifier.










Dibagi menjadi dua:
1. Data Variable
2. Konstanta


1. Data variabel
Data variabel adalah data yang nilainya dapat berubah didalam program. Nilai data ini akan selalu berubah bila dibaca nilai data yang lain dengan nama data yang sama.

2. Konstanta
Konstanta atau data konstanta adalah bentuk dari data yang dibutuhkan untuk pengolahan dimana nilai datanya tidak tergantung dari input yang dibaca. Ada 3 bentuk dari konstanta yang dapat dipakai dalam PROCEDURE DIVISION pada program COBOL, yaitu Numeric Literal, Non Numeric Literal, dan Figurative Constant.



2.1 Numeric Literal
Aturan penggunaan literal numerik :
1. Panjang maksimum 18 digit.
2. Boleh ada tanda plus atau minus yang letaknya pada posisi terkiri tanpa ada spasi dengan angka pertama.Bila tidak bertanda berarti bernilai positif.
3. Boleh ada titik desimal dimana saja kecuali pada posisi terkanan.


2.2 Non-Numeric Literal
Adalah konstanta yang digunakan bukan untuk operasi arithmatika. Aturan penggunaan literal bukan numerik :
1. Panjang maksimum 120 karakter
2. Boleh terdiri dari kumpulan karakter (Character set) kecuali karakter petik.
3. Dibatasi tanda petik pada awal dan akhir.


2.3 Figurative Constant
Figurative constant termasuk dalam COBOL reserved word yang mempunyai maksud tertentu yang namanya sudah dikenal oleh compiler. Contoh :
ZERO, ZEROS, ZEROES berarti nilai nol
SPACE,SPACES berarti nilai 1 blank atau spasi
QUOTE, QUOTES berarti tanda petik
























Operator Fungsi Jenjang
** Pemangkatan 1
* Perkalian 2
/ pembagian 2
+ penjumlahan 3
- pengurangan 3









Ungkapan Aritmatika
Adalah kombinasi dari literal numerik, nama data, operator aritmatika, kurung buka dan kurung tutup. Penulisan ungkapan aritmatika harus dipisahkan paling sedikit dengan sebuah blank atau spasi.


ATURAN PENULISAN SOURCE PROGRAM
Kolom yang tersedia untuk menuliskan program COBOL adal kolom 1- 80, dengan ketentuan :
Kolom 1 – 6 : Digunakan untuk nomor urut bilamana diperlukan, sifatnya optional, dan nomor yang diberikan harus urut ascending.

Kolom 7 : a. Tanda baris sambung dari baris sebelumnya dengan memberikan tanda hypen (-), baris sambungannya dimulai dari Area B.
b. Bila kolom ini di sis dengan karakter “*” , maka apa yang ditulis pada baris ini akan dianggap sebagai komentar.
c. Bila kolom ini diisi dengan slash (/), maka baris yang ada tanda ini dianggap sebagai komentar dan akan dicetak mulai halaman baru teratas, bila source program dicetak di printer.
d. Bila kolom ini di isi dengan karakter “D” , baris ini juga dianggap sebagai komentar, tetapi bila pada ENVIRONMENT DIVISION dalam paragraph SOURCE-COMPUTER disebutkan WITH DEBUGGING MODE, maka akan berguna untuk tujuan debugging.
Kolom 8 – 11 : Disebut dengan area A, semua judul divisi,judul seksi, nama paragraph, judul file description (FD), level number 01 dan level number 77 ditulis mulai kolom ke-8.

Kolom 12 – 72 : Disebut dengan area B, semua elemen program selain yang ditulis di area A ditulis pada area B.

Kolom 73 – 80 : Merupakan kolom yang tidak diproses oleh komputer, jadi jika diisi dengan catatan-catatan apa saja hanya untuk dokumentasi program.

LEVEL NUMBER
Level number atau nomor jenjang adalah suatu nomor yang menunjukkan jenjang dari data item dalam suatu record.
Level number yang digunakan:
a. 01 Untuk mengawali keterangan dari record (record description).

b. 02 – 49 Digunakan untuk mengawali keterangan dari data item.

c. 66 Digunakan untuk RENAMES

d. 77 Digunakan untuk mengawali data item yang berdiri sendiri. Hanya boleh
terdapat pada WORKING-STORAGE SECTION.

e. 88 Digunakan untuk mengawali suatu nama kondisi.



PICTURE CLAUSE
Picture clause digunakan untuk menerangkan masing-masing data-item yang digunakan, mengenai ukuran dari field dan memberikan informasi dari nilai data tersebut, juga mengatur bentuk data dimemori.

Macam-macam picture clause:
1. Picture karakter 9 : Menunjukkan bahwa posisi sebuah memori hanya dapat mengandung nilai-nilai numerik saja. Ukuran panjang data-item ditentukan oleh banyaknya karakter 9 yang digunakan. Bersifat right justified.
2. Picture karakter V : Menunjukkan lengkap anggapan dari titik desimal. Anggapan disini maksudnya adalah titik desimal tersebut tidak ditulis di memori, sehingga tidak termasuk sebagai panjang field.
3. Picture karakter P : Digunakan dengan gabungan Picture karakter V, yang digunakan untuk menimbulkan angka 0.
4. Picture karakter S : Digunakan untuk menyimpan tanda dari nilai data, dan tidak dihitung sebagai panjang field.
5. Picture karakter A : Digunakan untuk menyimpan nilai data huruf(alphabetic).Bersifat left justified.
6. Picture karakter X : Digunakan untuk menyimpan nilai data alphanumerik, dapat berupa gabungan angka, huruf, ataupun karakter khusus.

PICTURE EDITING

Berguna untuk perubahan bentuk data dari data yang telah tersimpan distorage (memori). Dengan adanya editing (perubahan), data yang dicetak pada output akan tampak lebih mudah dibaca, mudah dimengerti dan mempunyai susunan yang lebih baik dibandingkan dengan bentuk data asli yang tersimpan di storage.
Macam-macam picture editing :
1. Picture editing Z : digunakan untuk menggantika angka 0 diawal agar tidak tampak pada waktu pencetakan.

2. Picture editing $ : pada saat pencetakan karakter $ akan tampak pada ujung paling kiri.

3. Picture editing “.” : digunakan untuk menunjukkan letak posisi dari titik desimal pada pencetakan, hanya boleh dipergunaka 1 saja.

4. Picture editing “,” : digunakan untuk memberikan tanda koma pada tempat-tempat tertentu, dan boleh digunakan lebih dari 1.

5. Picture editing “-“ : Jika data asli bernilai minus maka penggunaan tanda minus di awal atau diakhir akan menyebabkan tanda minus muncul pada saat pencetakan, sedangkan bila data positif akan digantikan dengan blank.

6. Picture editing “+” : jika tanda plus digunakan diawal atau diakhir data maka akan tampak pada pencetakan bila data bernilai positif, jika data negatif akan muncul tanda minus, jika tidak bertanda dianggap positif.

7. Picture editing B : digunakan untuk mengedit nilai data bukan numerik.Blank akan disisipkan pada posisi dinama karakter B ditempatkan.

8. Picture editing “*” : digunakan untuk menggantikan nilai nol pada nilai data disebelah kanan dengan tanda *.

9. Picture editing 0(nol) : digunakan untuk menyisipkan angka 0 pada posisi dimana karakter 0 ditempatkan.

10. Picture editing “/” : digunakan untuk menyisipkan karakter “/” diposisi dimana karakter tersebut ditempatkan.

11. Picture editing DB dan CR : Sering digunakan pada aplikasi akuntansi. Ditulis mulai ujung sebelah kanan dari picture, dan hasilnya hanya tampak pada hasil edit bila nilai datanya negatif.


















Merupakan divisi yang pertama dalam COBOL dan yang paling sederhana. IDENTIFICATION DIVISION tidak dibagi dalam beberapa section tetapi langsung terdiri dari beberapa paragraph.

Bentuk umum dari IDENTIFICATION DIVISION :

IDENTIFICATION DIVISION.
PROGRAM-ID. nama program.
[ AUTHOR. nama programmer .]
[ INSTALLATION. nama instalasi. ]
[ DATE-WRITTEN. Tgl program dibuat. ]
[ DATE-COMPILED. Tgl program dicompile. ]
[ SECURITY. sifat program. ]

keterangan :
• Tulisan dalam tanda ‘[ ]’ bersifat optional, boleh disertakan boleh juga tidak.
• Ditulis persis seperti contoh diatas, diikuti titik dan diberi 1 spasi.
• Penulisan divisi dan semua paragraphnya dimulai pada area A atau kolom ke-8.
• Huruf kecil adalah nama yang dibuat oleh programmer.
• PROGRAM-ID panjang maks. 6 karakter, boleh lebih tetapi hanya 6 karakter pertama saja yang dibaca.


Contoh:
IDENTIFICATION DIVISION.
PROGRAM-ID. Contoh.
AUTHOR. yuti
INSTALLATION. UNIVERSITAS GUNADARMA.
DATE-WRITTEN. 05-11-2003.
DATE-COMPILED. 06-11-2004.
SECURITY. rahasia.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.








Menyediakan informasi mengenai peralatan yang dipergunakan didalam program.

Bentuk umum ENVIRONMENT DIVISION :

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
[ SOURCE-COMPUTER. nama-komputer WITH DEBUGGING MODEL. ]
[ OBJECT-COMPUTER. nama-komputer. ]
SPECIAL-NAMES.
[ PRINTER IS nama-mnemonic ]
[ CURRENCY SIGN IS literal ]
[ DECIMAL-POINT IS COMMA. ]
INPUT-OUTPUT SECTION.
FILE-CONTROL.
{file control entry}.



CONFIGURATION SECTION
Diperlukan karena kemungkinan program dibuat pada sebuah komputer dan dijalankan pada komputer yang lain.
• Paragraph SOURCE-COMPUTER
Paragraph ini digunakan untuk menunjukkan nama komputer yang digunakan dalam pembuatan dan mengkompilasi program.Ditulis mulai kolom ke-8 atau area A.Bila Clause WITH DEBUGGING MODE disertakan dan pada kolom ke-7 diberi karakter ‘D’ akan dikompilasi untuk tujuan penelusuran kesalahan.Statement untuk penelusuran kesalahan adalah statement READY TRACE, RESET TRACE, EXHIBIT.

• Paragraph OBJECT_COMPUTER
Paragraph ini untuk menunjukkan nama komputer yang digunakan untuk menjalankan program yang telah dikompilasi.


• Paragraph SPECIAL_NAMES
Paragraph ini sifatnya optional, digunakan untuk membuat nama khusus yang menghubungkan nama-mnemonic implementor dengan nama mnemonic yang dibuat programmer.
a. PRINTER IS Clause
digunakan untuk menghubungkan nama mnemonik yang dibuat programmer dengan alat pencetak (PRINTER). Clause ini digunakan pada statement DISPLAY yang menggunakan UPON dalam PROCEDURE DIVISION.

b. CURRENCY SIGN IS Clause
Untuk menunjukkan tanda mata uang digunakan $, jika ingin menggunakan simbol lain maka dituliskan pada SPECIAL_NAMES.

c. DECIMAL_POINT IS COMMA Clause
Pada bahasa COBOL titik desimal digunakan bentuk karakter ‘ . ‘ bila di inginkan bukan karakter ‘ . ‘ tetapi koma dalat dituliskan SPECIAL_NAMES. DECIMAL POINT IS COMMA.


INPUT-OUTPUT SECTION.
Bila akan digunakan file dengan media simpanan sekunder,maka paragraph FILE_CONTROL dalam seksi ini harus ditulis. FILE_CONTROL entry terdiri dari 3 bentuk, tergantung dari organisasi file yang dipergunakan, yaitu ; Sequential file, indexed file, dan relative file.
• INPUT-OUTPUT SECTION untuk SEQUENTIAL FILE
Organisasi file bersifat terurut, data direkamkan direcord dalam file secara urut dan urutannya tidak akan berubah. Organisasi fiile ini hanya pada DISK dan PRINTER.
Bentuk umum :
INPUT-OUTPUT SECTION.
FILE_CONTROL.
SELECT nama-file ASSIGN TO [DISK/PRINTER]
[ ORGANIZATION IS [LINE] SEQUENTIAL ]
[ ACCESS MODE IS SEQUENTIAL ]
[ FILE STATUS IS nama-data ].

• INPUT-OUTPUT SECTION untuk INDEXED FILE
Organisasi file yang datanya dapat diambil langsung diposisi record yang mmpunyai nilai kunci tertentu yang unik. Organisasi seperti ini memungkinkan pencarian data secara cepat.Organisasi file ini hanya pada DISK
Bentuk umum :
INPUT-OUTPUT SECTION.
FILE_CONTROL.
SELECT nama-file ASSIGN TO DISK
ORGANIZATION IS INDEXED
SEQUENTIAL
ACCESS MODE IS RANDOM

DYNAMIC

RECORD KEY IS nama-data 1
[ FILE STATUS IS nama-data 2 ]




• INPUT-OUTPUT SECTION untuk RELATIVE FILE
Organisasi file yang tiap-tiap recordnya dibedakan dengan sutau nomor record relative. Organisasi ini memungkinkan pencarian data yang cepat, hanya terdapat pada DISK.

Bentuk umum :
INPUT-OUTPUT SECTION.
FILE_CONTROL.
SELECT nama-file ASSIGN TO DISK
ORGANIZATION IS RELATIVE
SEQUENTIAL [, RELATIVE KEY IS nama-data 1 ]
ACCESS MODE IS RANDOM
DYNAMIC , RELATIVE KEY IS nama-data 1

[ FILE STATUS IS nama-data 2 ]






Memberikan penjelasan tentang input data dan output yang dipergunakan, atau berisi semua keterangan tentang file, record, nama-data serta bentuk / format yang akan dipergunakan didalam PROCEDURE DIVISION.

1. FILE SECTION
Berisi mengenai file-file yang dipakai didalam program, FILE SECTION ini ada bila dipergunakan file dalam bentuk simpanan sekunder yaitu disk atau printer yang mempunyai hubungan dengan INPUT_OUTPUT SECTION dalam ENVIRONMENT DIVISION.

Bentuk umumnya :
DATA DIVISION.
FILE SECTION.
FD nama-file
;BLOCK CONTAINS [integer-1 TO ] integer-2 CHARACTERS
RECORDS
[ ;RECORD CONTAINS [ integer-3 TO ] integer-4 CHARACTERS ]
RECORD IS STANDARD
;LABEL RECORDS ARE OMITTED
[ ;VALUE OF FILE-ID IS nama-file di label ]
RECORD IS
;DATA RECORDS ARE nama-record-1 [, nama-record-2]
nama-data-1 nama-data-2
;LINKAGE IS integer-5 LINES ; WITH FOOTING AT integer-6
nama-data-3
;LINES AT TOP integer-7

nama-data-4
;LINES AT BOTTOM integer-8

judul FD ditulis pada area A dan diikuti oleh nama filenya yang harus sama dengan yang disebutkan pada INPUT-OUTPUT SECTION dalam ENVIRONMENT DIVISION, nama-file ditulis mulai area B.

• BLOCK CONTAINS Clause
Menunjukkan ukuran dari record didalam file untuk tiap-tiap blocknya. Clause ini biasa digunakan pada file yang berupa tape magnetik.

• RECORD CONTAINS Clause
Menunjukkan banyaknya karakter tiap-tiap recordnya. Clause ini boleh tidak disertakan, karena nantinya akan termasuk dalam record description entry

• LABEL RECORD dan LABEL RECORDS Clause
Menunjukkan apakah file yang digunakan mempunyai label atau tidak.
LABEL RECORD IS OMITTED digunakan untuk card-file atau print-file yang tidak mempunyai label.
LABEL RECORD IS STANDARD digunakan untuk disk-file yang mempunyai label.

• VALUE OF FILE-ID Clause
Menunjukkan informasi mengenai file yang mempunyai label di disk. Label di disk ini berupa suatu nama-file yang berisi data yang direkamkan tersebut.

• DATA RECORD atau DATA RECORDS Clause
Menunjukkan nama-record dalam file, sifatnya optinal, hanya sebagai dokumentasi saja.

• LINAGE Clause
Pencetakan output di printer dapat dilakukan dengan 2 cara, yaitu :
a. Dengan menganggap printer sebagai print-file, yang berbentuk organisasi file secara sequential, dengan menggunakan statement WRITE pada procedure division.
b. Dengan tanpa menggunakan print-file, tetapi langsung menghubungkan alat cetak printer sebagai nama-mnemonik pada paragraph SPECIAL-NAMES, yang kemudian menggunakan statement DISPLAY… UPON.

LINAGE Clause digunakan untuk mengatur pencetakan output diprinter yang mempergunakan cara pertama, yaitu sebagai print-file yang menggunakan statement WRITE, menunjukkan jumlah baris yang akan dicetakper halamannya, jumlah dari baris kosong paling atas (TOP MARGIN) dan jumlah dari baris kosong paling bawah (BOTTOM MARGIN).
LINAGE IS menunjukkan tubuh dari laporan, daerah laporan yang akan dicetak meliputi judul, isi dan footingnya.
WITH FOOTING AT menunjukkan daerah letak permukaan foot-note/footing (untuk pencetakan suatu total atau keterangan-keterangan untuk laporan).
LINES AT BOTTOM menunjukkan sejumlah baris yang tidak dipergunakan pada ujung bawah laporan.

2. WORKING-STORAGE SECTION
Mempunyai maksud pemesanan tempat di internal memori (STORAGE) yang diperlukan oleh pekerjaan (WORKING) proses program. Pemesanan tempat ini biasanya digunakan untuk :
a. Bentuk, nilai dan nama data yang diperlukan didalam proses yang terpisah dan belum di sebutkan pada FILE SECTION. Data yang disebutkan pada FILE SECTION adalah data yang akan diambil dari disk-file, atau data yang akan direkamkan pada disk-file atau yang aklan dicetak pada print-file.
b. Persiapan penulisan judul.
c. Pemesanan tempat untuk data output yang akan ditampilkan.

Bentuk umum :
WORKING-STORAGE SECTION.
77- level data description entry
record description.

3. SCREEN SECTION
berguna untuk menunjukkan bentuk format dari layar terminal untuk menampilkan data atau memasukkan data. Data-item yang dipergunakan dapat berupa group data item atau data item individu.
Bentuk umum :
SCREEN SECTION.
level-number [nama-layar]
[ BLANK SCREEN ]
[ LINE NUMBER IS [PLUS] integer-1 ]
[ COLUMN NUMBER IS [PLUS] integer-2 ]
[ BLANK LINE ]
[ BELL ]
UNDERLINE
REVERSE-VIDEO
HIGHLIGHT
BLINK
[ VALUE IS literal-1 ]
Picture literal-2
PIC is karakter-string FROM nama-data-1 TO nama-data-2
USING nama-data-3
[ BLANK WHEN ZERO ]
[ AUTO ]
[ SECURE ]
[ REQUIRED ]
[ FULL ]

SCREEN berhubungan dengan statemet DISPLAY dan ACCEPT dalam PROCEDURE DIVISION.

Statement DISPLAY digunakan untuk menampilkan format yang telah dibentuk di SCREEN SECTION pada layar terminal.

Statement ACCEPT digunakan untuk memasukkan nilai data-item lewat layar terminal dengan bentuk format yang dibentuk pada SCREEN SECTION tersebut.
• BLANK SCREEN Clause, digunakan untuk membersihkan layar dan menempatkan kursor pada posisi kiri atas.
• LINE Clause, digunakan untuk menempatkan cursor pada posisi baris tertentu.
• COLUMN Clause, digunakan untuk menempatkan kursor pada posisi kolom tertentu.
• BLANK LINE Clause, digunakan untuk menghapus tampilan pada baris tertentu dilayar.
• UNDERLINE, REVERSE-VIDEO, HIGHLIGHT dan BLINK Clause, digunakan untuk menampilkan efek tertentu.
UNDERLINE clause, digunakan untuk memberikan garis bawah pada tampilannya.
REVERSE-VIDEO clause, digunakan untuk membalik warna dari tempilannya, warna dasar menjadi warna tampilannya dan sebaliknya.
HIGHLIGHT clause, digunakan untuk menampilkan tampilan dengan bentuk yang lebih terang.
BLINK clause, digunakan untuk membuat kedap-kedip bentuk tampilannya.

• FROM, TO dan USING Clause, digunakan untuk menampilkan atau menerima data yang bentuk data-itemnya dihubungkan ditempat lain diluar SCREEN SECTION. misalnya pada WORKING-STORAGE SECTION, FILE SECTION, atau LINKAGE SECTION.
FROM clause digunakan untuk menampilkan isi data.
TO clause digunakan untuk menerima isi data.
USING clause digunakan untuk menggantikan FROM clause, bila hanya dipergunakan statement DISPLAY. atau digunakan untuk menggantikan FROM dan TO yang digunakan bersama-sama, bila digunakan statement DISPLAY dan ACCEPT.

• BLANK WHEN ZERO Clause, digunakan untuk menampilkan spasi / blank bila suatu data numerik mengandung nilai 0.

• AUTO, SECURE, REQUIRED, dan FULL Clause, digunakan untuk memberikan efek tertentu pada waktu memasukkan nilai suatu data.
AUTO clause, digunakan untuk pergeseran cursor secara otomatis ke field berikutnya, bila field data item sudah penuh terisi.
SECURE clause, digunakan untuk membuat supaya suatu nilai data yang dimasukkan pada field data item tertentu tidak tampak sewaktu diketik, sebagai gantinya akan muncul karakter ‘ * ‘.
FULL clause, digunakan untuk suatu field data item yang harus diisi dengan suatu data sampai penuh untuk tempat yang disediakan.






Merupakan inti dari pemrograman COBOL. Statement yang ada pada PROCEDURE DIVISION dibentuk dari verb, diantaranya: MOVE, DISPLAY, ACCEPT, dan STOP.

• MOVE verb
Digunakan untuk memindahkan data dari satu field ke lokasi field yang lain, sehingga input data dapat dimanipulasi untuk menghasilkan output.
Bentuk umum :

MOVE nama-data-1 TO nama-data-2 [ , nama-data-3 ] …
literal

Bentuk khusus dari MOVE adalah MOVE CORRESPONDING, yang berguna untuk memindahkan data dari group data item ke group lain.
Bentuk umum ;

MOVE CORRESPONDING nama-data-1 TO nama-data-2

• DISPLAY verb
Digunakan untuk menampilkan hasil dilayar ataupun printer. Jika dipergunakan statement WRITE untuk menampilkan hasil di printer, maka print-file harus disebutkan terlebih dahulu di ENVIRONMENT DIVISION pada FILE-CONTROL. Ada 3 bentuk statement DISPLAY:
a. Bentuk 1
DISPLAY nama-layar

b. Bentuk 2
DISPLAY nama-data , nama-data ... UPON nama-mnemonic
literal , literal

c. Bentuk 3
nama-data
DISPLAY (posisi tampilan) literal …UPON nama-mnemonic
ERASE
• ACCEPT verb
Digunakan untuk memasukkan data lewat layar sewaktu program tersebut dijalankan (runtime). Ada 4 bentuk statement ACCEPT :


a. Bentuk 1
BU : ACCEPT nama-data

Data yang dimasukkan akan ditempatkan pada nama-data setelah ACCEPT, yang bentuk, jenis dan panjangnya sudah ditentukan dalam DATA DIVISION.

b. Bentuk 2
BU : ACCEPT nama-layar [ ON ESCAPE statement-imperative ]

Digunakan untuk menerima data dan mengirimkan data tersebut ke (TO) atau menggunakan (USING) field data item yang disebutkan pada nama-layar di SCREEN SECTION dalam DATA DIVISION.

c. Bentuk 3
BU : ZERO - FILL
SPACE - FILL
LEFT - JUSTIFY
RIGHT - JUDTIFY
TRAILING - SIGN
ACCEPT (posisi layar) nama data WITH PROMPT
UPDATE
LENGTH - CHECK
EMPTY – CHECK
AUTO – SKIP
NO – ECHO
BEEP

• ZERO-FILL phrase menyebabkan bila posisi-posisi field data-item penerima data tidak di isi dengan data (langsung menekan enter ) akan terisis dengan nol.
• SPACE-FILL phrase menyababkan bila posisi-posisi fieldd data-item dilayar tidak di isi dengan data (langsung menekan enter) akan terisi blank pada layar tetapi field data-item penerima tetap berisi nilai nol atau nilai sebelumnya, biasanya untuk jenis data numerik.

• LEFT-JUSTIFY phrase tidak berfungsi pada MS COBOL, tetapi boleh ditulis

• RIGHT-JUSTIFY phrase menyebabkan setelah data dimasukkan, hasil akhir yang tampak dilayar akan rata sebelah kanan. Digunakan untuk jenis data-item alphabetik atau alphanumerik.

• TRAILING-SIGN phrase menyebabkan tanda operasi + atau – tampak diposisi paling kanan dari field data input.

• PROMPT phrase menyebabkan tampilan untuk field data-item penerima berbentuk nol untuk posisi digit, titik untuk desimal point dan spasi untuk tanda operasi + (plus) atau – (minus).

• UPDATE phrase menyebabkan tampilan utuk field data-item penerima berbentuk nilai awal dari field penerima tersebut.

• LENGTH-CHECK phrase menyebabkan penekanan tombol carriage return tidak berfungsi kalau semua posisi field penerima belum terisi semua.

• EMPTY-CHECK phrase menyebabkan penekanan tombol carriage return tidak berfungsi jika tidak paling sedikit sebuah karakter atau angka yang bukan sifatnya terminator sudah di input.

• AUTO-SKIP phrase menyebabkan proses pemasukan data bergeser ke field penerima data lain berikutnya, bila posisi field penerima sudah penuh terisi tanpa harus menekan tombol carriage return atau tombol terminator yang lainnya.

• NO-ECHO phrase menyebabkan data yang dimasukkan tidak tampak dilayar.
• BEEP phrase menyebabkan bunyi bel sewaktu data di input.

d. Bentuk 4
bu : ACCEPT nama-data FROM DATE
DAY
TIME
ESCAPE-KEY

• DATE, akan mendapatkan 6 digit nilai standard dengan bentuk YYMMDD, diambil langsung dari “system-date”.(2 digit tahun, 2 digit bulan, 2 digit tanggal)
• DAY, akan mendapatkan 5 digit nilai “julian date” dengan bentuk YYDDD ( 2 digit tahun, 3 digit jumlah hari untuk tanggal tersebut)
• TIME, akan mendapatkan 8 digit nilai dengan bentuk JJMMDDSS ( 2 digit jam 00-23, 2 digit menit 00-59, 2 digit detik 00-59, 2 digit seperseratus detik 00-99).
• ESCAPE-KEY, akan mendapatkan 2 digit kode yang dihasilkan dari penekanan tombol-tombol terminator. yaitu : Backtab = 99, Escape = 01, Carriage-return = 00, Function key 1 – 10 = 02 – 11.

• STOP verb
Digunakan untuk menghentikan program baik secara permanen maupun sementara.
BU :
STOP literal
RUN

STOP literal, akan menyebabkan proses program terhenti sementara dan literal akan ditampilkan dilayar. Jika operator menekan sembarang tombol maka program akan dilanjutkan mulai statement setelah STOP literal tersebut.
STOP RUN, akan menyebabkan program berhenti secara permanen.







• ADD Verb
Digunakan untuk menambahkan 2 atau lebih operand numerik dan menyimpan hasilnya.
BU-1:
ADD nama-data-1 , nama-data-2 … TO nama-data-m [ROUNDED]
literal-1 literal-2
[; ON SIZE ERROR statement imperative]

BU-2:
ADD nama-data-1 , nama-data-2 … GIVING nama-data-m [ROUNDED]
literal-1 literal-2
[; ON SIZE ERROR statement imperative]

Keterangan :
1. TO digunakan bila beberapa nilai akan dijumlahkan dan hasilnya akan disimpan pada salah satu operand.
2. GIVING digunakan bila beberapa nilai dijumlahkan dan hasilnya disimpan pada nama data yang lain.
3. Field penerima harus merupakan nama data, bukan literal.
4. Bentuk TO dan GIVING harus ada dan salah satu diantaranya, tidak boleh dipergunakan keduanya.
5. Semua nama-data yang dipergunakan di dalam operasi aritmatika harus berbentuk data numerik dengan picture yang belum diedit kecuali operand dari field penerima.
6. ROUNDED option digunakan bila diinginkan hasil perhitungan dibulatkan
7. ON SIZE ERROR digunakan bila hasil perhitungan untuk digit-digit bilangan utuh (high order digits) tidak bisa masuk seluruhnya pada field penerima, nilai tidak akan disimpan di storsge dan program akan melanjutkan pada imperative statement yang mengikutinya.

• SUBSTRACT Verb
Digunakan untuk operasi pengurangan suatu nilai data numerik.
BU :
SUBSTRACT nama-data-1 , nama-data-2
literal-1 literal2
FROM nama-data-n GIVING nama-data-m
literal-n
[ROUNDED] [;ON SIZE ERROR imperative statement]





• MULTIPLY Verb
Digunakan untuk mengalikan 2 nilai numerik dan menyimpan hasilnya.
BU 1 :
MULTIPLY nama-data-1 BY nama-data-2
literal-1

BU 2 :
MULTIPLY nama-data-1 BY nama-data-2
literal-1 literal-2
GIVING nama-data-3 [ROUNDED]
[; ON SIZE ERROR imperative statement]


• DIVIDE Verb
Digunakan untuk membentuk statement operasi pembagian.
BU 1 :
DIVIDE nama-data-1 INTO nama-data-2 [ROUNDED]
literal-1
[ ; ON SIZE ERROR imperative statement]

BU 2 :
DIVIDE nama-data-1 INTO nama-data-2
literal-1 literal-2
GIVING nama-data-3 [ROUNDED]
[ ; ON SIZE ERROR imperative statement]

BU 3 :
DIVIDE nama-data-1 BY nama-data-2
literal-1 literal-2
GIVING nama-data-3 [ROUNDED]
[ ; ON SIZE ERROR imperative statement]

BU 4 :
DIVIDE nama-data-1 INTO nama-data-2
literal-1 literal-2
GIVING nama-data-3 [ROUNDED]
REMAINDER nama-data-4
[ ; ON SIZE ERROR imperative statement]




BU 5 :
DIVIDE nama-data-1 BY nama-data-2
literal-1 literal-2
GIVING nama-data-3 [ROUNDED]
REMAINDER nama-data-4
[ ; ON SIZE ERROR imperative statement]

• COMPUTE
Digunakan untuk operasi yang lebih rumit, untuk menyederhanakan 4 arithmatic verb sebelumnya.
BU :
COMPUTE nama-data-1 [ROUNDED] = ungkapan aritmatika
[ ; ON SIZE ERROR imperative statement]

• GO TO Verb
Digunakan untuk alih kontrol tanpa syarat ke paragraph tertentu.
BU :
GO TO nama-paragraph

• GO TO … DEPENDING Verb
Digunakan untuk alih kontrol bersyarat. Beralih pada paragraph tertentu dengan kondisi tertentu.
BU :
GO TO nama-paragraph-1, nama-paragraph-2, … nama-paragraph-n
DEPENDING ON nama-data

• ALTER Verb
Digunakan untuk merubah arah tujuan proses dari statement GO TO yang telah ada di program.
BU :
ALTER nama-paragraph-1 TO [ PROCEED TO] nama-paragraph-2

• PERFORM Verb
Digunakan untuk membuat suatu statement yang akan membawa proses dari program meloncat kesuatu paragraph, kemudian menjalankan seluruh statetement yang ada pada paragraph tersebut. Jika telah selesai akan kembali ke statement setelah PERFORM.
BU :
PERFORM nama-paragrapg-1 THROUGH nama-paragraph-2
THRU


DEBUGGING

Debugging adalah proses mencari sebab kesalahan program dan membetulkannya. Kesalahan-kesalahan tersebut diantaranya : kesalahan bahasa ( language errors), kesalahan sewaktu proses (run-time errors), kesalahan logika program ( logical errors ).

Kesalahan Bahasa
Kesalahan bahasa atau kesalahan penulisan (syntax errors) adalah kesalahan didalam penulisan sorce program yang tidak sesuai dengan yang disyaratkan. Kesalahan in merupakan kesalahan yang relatif mudah dilacak dan dibetulkan, karena kompile COBOL akan mendeteksi dan memberitahukan letak serta sebab kesalahannya.

Kesalahan Sewaktu Proses
Kesalahan sewaktu proses (run-time errors) adalah kesalahan yang terjadi sewaktu executable program dijalankan. Kesalahan ini menyebabkan program terhenti sebelum saatnya. Bila terjadi run-time errors, COBOL akan menyajikan sebab dari kesalahan, nama-program dari PROGRAM-ID dan baris dari program yang salah.

Kesalahan Logika
Merupakan kesalahan yang tidak bisa dilabak oleh COBOL, karena kesalahan terdapat pada logika pemrogramannya.



FILE URUT (Lanjutan)

ENVIRONMENT DIVISION
Informasi mengenai organisasi file urut disebutkan pada INPUT-OUTPUT SECTION. ASSIGN clause menunjukkan bentuk dari file yang akan dipergunakan yaitu disk-file atau print-file. ORGANIZATION IS LINE SEQUENTIAL atau SEQUENTIAL boleh dipilih salah satu, jika tidak disebutkan dianggap (default) SEQUENTIAL.
FILE STATUS clause digunakan untuk menunjukan jenis kesalahan yang terjadi dari suatu hasil operasi. Jenis kesalahan ini ditunnjukan oleh suatu nilai sepanjang karakter yang disimpan pada nama data yang disebutkan pada clause ini dan sudah disebutkan terlebih dahulu pada WORKING-STORAGE SECTION atau pada LINKAGE SECTION.

Nilai status organisasi file urut

Nilai Status Jenis Kesalahan
00 Tidak terjadi kesalahan
10 Akhir dari file ( End Of File )
30 File tidak ada ( File Not Found )
34 Disk Penuh ( Disk space full )
91 Struktur file rusak


PROCEDURE DIVISION

Statement khusus yang dipergunakan dalam PROCEDURE DIVISION yaitu OPEN, CLOSE, READ, WRITE, REWRITE, dan USE
OPEN verb digunakan untuk membuka file yang akan diakses. CLOSE verb digunakan untuk menutup file yang digunakan setelah selesai melaksanakan operasi file untuk mecegah rusaknya struktur file. WRITE verb digunakan untuk merekamkan data pada record tertentu difile yang telah dibuka. READ verb digunakan untuk membaca record yang ada di file. REWRITE verb digunakan untuk merekam ulang record yang sudah pernah direkam / update record.

Rabu, 13 Oktober 2010

SEJARAH REID

RAID, singkatan dari Redundant Array of Independent Disks merujuk kepada sebuah teknologi di dalam penyimpanan data komputer yang digunakan untuk mengimplementasikan fitur toleransi kesalahan pada media penyimpanan komputer (terutama hard disk) dengan menggunakan cara redundansi (penumpukan) data, baik itu dengan menggunakan perangkat lunak, maupun unit perangkat keras RAID terpisah. Kata "RAID" juga memiliki beberapa singkatan Redundant Array of Inexpensive Disks, Redundant Array of Independent Drives, dan juga Redundant Array of Inexpensive Drives. Teknologi ini membagi atau mereplikasi data ke dalam beberapa hard disk terpisah. RAID didesain untuk meningkatkan keandalan data dan meningkatkan kinerja I/O dari hard disk.

RAID juga merupakan organisasi disk memori yang mampu menangani beberapa disk dengan sistem akses paralel dan redudansi ditambahkan untuk meningkatkan reliabilitas. Kerja paralel ini menghasilkan resultan kecepatan disk yang lebih cepat.

SEJARAH RAID

Pada tahun 1978, Norman Ken Ouchi dari International Business Machines (IBM) dianugerahi paten Amerika Serikat, dengan nomor 4092732 dengan judul "System for recovering data stored in failed memory unit." Klaim untuk paten ini menjelaskan mengenai apa yang kemudian dikenal sebagai RAID 5 dengan penulisan stripe secara penuh. Patennya pada tahun 1978 tersebut juga menyebutkan bahwa disk mirroring atau duplexing (yang kini dikenal sebagai RAID 1) dan juga perlindungan dengan paritas khusus yang didedikasikan (yang kini dikenal dengan RAID 4) bisa digunakan, meskipun saat itu belum ada implementasinya.

Istilah "RAID" pertama kali didefinisikan oleh David A. Patterson, Garth A. Gibson dan Randy Katz dari University of California, Berkeley, Amerika Serikat pada tahun 1987, 9 tahun berselang setelah paten yang dimiliki oleh Norman Ken Ouchi. Mereka bertiga mempelajari tentang kemungkinan penggunaan dua hard disk atau lebih agar terlihat sebagai sebuah perangat tunggal oleh sistem yang menggunakannya, dan kemudian mereka mempublikasikannya ke dalam bentuk sebuah paper berjudul "A Case for Redundant Arrays of Inexpensive Disks (RAID)" pada bulan Juni 1988 pada saat konferensi SIGMOD. Spesifikasi tersebut menyodorkan beberapa purwarupa RAID level, atau kombinasi dari drive-drive tersebut. Setiap RAID level tersebut secara teoritis memiliki kelebihan dan juga kekurangannya masing-masing. Satu tahun berselang, implementasi RAID pun mulai banyak muncul ke permukaan. Sebagian besar implementasi tersebut memang secara substansial berbeda dengan RAID level yang asli yang dibuat oleh Patterson dan kawan-kawan, tapi implementasi tersebut menggunakan nomor yang sama dengan apa yang ditulis oleh Patterson. Hal ini bisa jadi membingungkan, sebagai contoh salah satu implementasi RAID 5 dapat berbeda dari implementasi RAID 5 yang lainnya. RAID 3 dan RAID 4 juga bisa membingungkan dan sering dipertukarkan, meski pada dasarnya kedua jenis RAID tersebut berbeda.

Patterson menulis lima buah RAID level di dalam papernya, pada bagian 7 hingga 11, dengan membagi ke dalam beberapa level, sebagai berikut:

  • RAID level pertama: mirroring
  • RAID level kedua : Koreksi kesalahan dengan menggunakan kode Humming
  • RAID level ketiga : Pengecekan terhadap disk tunggal di dalam sebuah kelompok disk.
  • RAID level keempat: Pembacaan dan penulisan secara independen
  • RAID level kelima : Menyebarkan data dan paritas ke semua drive (tidak ada pengecekan terhadap disk tunggal)



KONSEF RAID
Sejak pertama kali diperkenalkan, RAID dibagi ke dalam beberapa skema, yang disebut dengan "RAID Level". Pada awalnya, ada lima buah RAID level yang pertama kali dikonsepkan, tetapi seiring dengan waktu, level-level tersebut berevolusi, yakni dengan menggabungkan beberapa level yang berbeda dan juga mengimplementasikan beberapa level proprietary yang tidak menjadi standar RAID.
RAID menggabungkan beberapa hard disk fisik ke dalam sebuah unit logis penyimpanan, dengan menggunakan perangkat lunak atau perangkat keras khusus. Solusi perangkat keras umumnya didesain untuk mendukung penggunaan beberapa hard disk secara sekaligus, dan sistem operasi tidak perlu mengetahui bagaimana cara kerja skema RAID tersebut. Sementara itu, solusi perangkat lunak umumnya diimplementasikan di dalam level sistem operasi, dan tentu saja menjadikan beberapa hard disk menjadi sebuah kesatuan logis yang digunakan untuk melakukan penyimpanan.

Ada beberapa konsep kunci di dalam RAID: mirroring (penyalinan data ke lebih dari satu buah hard disk), striping (pemecahan data ke beberapa hard disk) dan juga koreksi kesalahan, di mana redundansi data disimpan untuk mengizinkan kesalahan dan masalah untuk dapat dideteksi dan mungkin dikoreksi (lebih umum disebut sebagai teknik fault tolerance/toleransi kesalahan).

Level-level RAID yang berbeda tersebut menggunakan salah satu atau beberapa teknik yang disebutkan di atas, tergantung dari kebutuhan sistem. Tujuan utama penggunaan RAID adalah untuk meningkatkan keandalan/reliabilitas yang sangat penting untuk melindungi informasi yang sangat kritis untuk beberapa lahan bisnis, seperti halnya basis data, atau bahkan meningkatkan kinerja, yang sangat penting untuk beberapa pekerjaan, seperti halnya untuk menyajikan video on demand ke banyak penonton secara sekaligus.

Konfigurasi RAID yang berbeda-beda akan memiliki pengaruh yang berbeda pula pada keandalan dan juga kinerja. Masalah yang mungkin terjadi saat menggunakan banyak disk adalah salah satunya akan mengalami kesalahan, tapi dengan menggunakan teknik pengecekan kesalahan, sistem komputer secara keseluruhan dibuat lebih andal dengan melakukan reparasi terhadap kesalahan tersebut dan akhirnya "selamat" dari kerusakan yang fatal.

Teknik mirroring dapat meningkatkan proses pembacaan data mengingat sebuah sistem yang menggunakannya mampu membaca data dari dua disk atau lebih, tapi saat untuk menulis kinerjanya akan lebih buruk, karena memang data yang sama akan dituliskan pada beberapa hard disk yang tergabung ke dalam larik tersebut.

Teknik striping, bisa meningkatkan performa, yang mengizinkan sekumpulan data dibaca dari beberapa hard disk secara sekaligus pada satu waktu, akan tetapi bila satu hard disk mengalami kegagalan, maka keseluruhan hard disk akan mengalami inkonsistensi. Teknik pengecekan kesalahan / koreksi kesalahan juga pada umumnya akan menurunkan kinerja sistem, karena data harus dibaca dari beberapa tempat dan juga harus dibandingkan dengan checksum yang ada. Maka, desain sistem RAID harus mempertimbangkan kebutuhan sistem secara keseluruhan, sehingga perencanaan dan pengetahuan yang baik dari seorang administrator jaringan sangatlah dibutuhkan. Larik-larik RAID modern umumnya menyediakan fasilitas bagi para penggunanya untuk memilih konfigurasi yang diinginkan dan tentunya sesuai dengan kebutuhan.

Beberapa sistem RAID dapat didesain untuk terus berjalan, meskipun terjadi kegagalan. Beberapa hard disk yang mengalami kegagalan tersebut dapat diganti saat sistem menyala (hot-swap) dan data dapat diperbaiki secara otomatis. Sistem lainnya mungkin mengharuskan shutdown ketika data sedang diperbaiki. Karenanya, RAID sering digunakan dalam sistem-sistem yang harus selalu on-line, yang selalu tersedia (highly available), dengan waktu down-time yang, sebisa mungkin, hanya beberapa saat saja.

STRUKTUR RAID
Disk memiliki resiko untuk mengalami kerusakan. Kerusakan ini dapat berakibat turunnya kinerja atau pun hilangnya data. Meski pun terdapat backup data, tetap saja ada kemungkinan data yang hilang karena adanya perubahan setelah terakhir kali data di-backup. Karenanya reliabilitas dari suatu disk harus dapat terus ditingkatkan.

Berbagai macam cara dilakukan untuk meningkatkan kinerja dan juga reliabilitas dari disk. Biasanya untuk meningkatkan kinerja, dilibatkan banyak disk sebagai satu unit penyimpanan. Tiap-tiap blok data dipecah ke dalam beberapa subblok, dan dibagi-bagi ke dalam disk-disk tersebut. Ketika mengirim data disk-disk tersebut bekerja secara paralel, sehingga dapat meningkatkan kecepatan transfer dalam membaca atau menulis data. Ditambah dengan sinkronisasi pada rotasi masing-masing disk, maka kinerja dari disk dapat ditingkatkan. Cara ini dikenal sebagai RAID. Selain masalah kinerja RAID juga dapat meningkatkan realibilitas dari disk dengan jalan melakukan redundansi data.

Tiga karakteristik umum dari RAID ini, yaitu :
1. RAID adalah sekumpulan disk drive yang dianggap sebagai sistem tunggal disk.
2. Data didistribusikan ke drive fisik array.
3. Kapasitas redunant disk digunakan untuk menyimpan informasi paritas, yang menjamin
recoveribility data ketika terjadi masalah atau kegagalan disk.

Jadi, RAID merupakan salah satu jawaban masalah kesenjangan kecepatan disk memori dengan CPU dengan cara menggantikan disk berkapasitas besar dengan sejumlah disk-disk berkapasitas kecil dan mendistribusikan data pada disk-disk tersebut sedemikian rupa sehingga nantinya dapat dibaca kembali.

Level RAID
RAID dapat dibagi menjadi 8 level yang berbeda :

1. RAID level 0
RAID level 0 menggunakan kumpulan disk dengan striping pada level blok, tanpa redundansi. Jadi hanya menyimpan melakukan striping blok data ke dalam beberapa disk. Level ini sebenarnya tidak termasuk ke dalam kelompok RAID karena tidak menggunakan redundansi untuk peningkatan kinerjanya.

2. RAID level 1
RAID level 1 ini merupakan disk mirroring, menduplikat setiap disk. Cara ini dapat meningkatkan kinerja disk, tetapi jumlah disk yang dibutuhkan menjadi dua kali lipat, sehingga biayanya menjadi sangat mahal. Pada level 1 (disk duplexing dan disk mirroring) data pada suatu partisi hard disk disalin ke sebuah partisi di hard disk yang lain sehingga bila salah satu rusak , masih tersedia salinannya di partisi mirror.

3. RAID level 2
RAID level 2 ini merupakan pengorganisasian dengan error-correcting-code (ECC). Seperti pada memori di mana pendeteksian terjadinya error menggunakan paritas bit. Setiap byte data mempunyai sebuah paritas bit yang bersesuaian yang merepresentasikan jumlah bit di dalam byte data tersebut di mana paritas bit=0 jika jumlah bit genap atau paritas=1 jika ganjil. Jadi, jika salah satu bit pada data berubah, paritas 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.

4. RAID level 3
RAID level 3 merupakan pengorganisasian dengan paritas bit interleaved. Pengorganisasian ini hampir sama dengan RAID level 2, perbedaannya adalah RAID level 3 ini hanya memerlukan sebuah disk redundan, berapapun jumlah kumpulan disk-nya. Jadi tidak menggunakan ECC, melainkan hanya menggunakan sebuah bit paritas untuk sekumpulan bit yang mempunyai posisi yang sama pada setiap disk yang berisi data. Selain itu juga menggunakan data striping dan mengakses disk-disk secara paralel.

5. RAID level 4
RAID level 4 merupakan pengorganisasian dengan paritas blok interleaved, yaitu menggunakan striping data pada level blok, menyimpan sebuah paritas blok pada sebuah disk yang terpisah untuk setiap blok data pada disk-disk lain yang bersesuaian. Jika sebuah disk gagal, blok paritas tersebut dapat digunakan untuk membentuk kembali blok-blok data pada disk yang gagal tadi. Kecepatan transfer untuk membaca data tinggi, karena setiap disk-disk data dapat diakses secara paralel. Demikian juga dengan penulisan, karena disk data dan paritas dapat ditulis secara paralel.

6. RAID level 5
RAID level 5 merupakan pengorganisasian dengan paritas blok interleaved tersebar. Data dan paritas disebar 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 terdapat kumpulan dari 5 disk, paritas blok ke n akan disimpan pada disk (n mod 5) + 1; blok ke n dari empat disk yang lain menyimpan data yang sebenarnya dari blok tersebut. Sebuah paritas blok tidak menyimpan paritas untuk blok data pada disk yang sama, karena kegagalan sebuah disk akan menyebabkan data hilang bersama dengan paritasnya dan data tersebut tidak dapat diperbaiki. Penyebaran paritas pada setiap disk ini menghindari penggunaan berlebihan dari sebuah paritas disk seperti pada RAID level 4.

7. RAID level 6
RAID level 6 disebut juga redundansi P+Q, seperti RAID level 5, tetapi menyimpan informasi redundan 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 untuk 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 untuk perbaikan data (Mean Time To Repair atau MTTR). Kerugiannya yaitu penalti waktu pada saat penulisan data, karena setiap penulisan yang dilakukan akan mempengaruhi dua buah paritas blok.

8. RAID level 0+1 dan 1+0
RAID level 0+1 dan 1+0 ini merupakan kombinasi dari RAID level 0 dan 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 yaitu RAID 1+0, di mana disk-disk di-mirror secara berpasangan, dan kemudian hasil pasangan mirrornya di-strip. RAID 1+0 ini mempunyai keuntungan lebih dibandingkan dengan RAID 0+1. Sebagai contoh, jika sebuah disk gagal pada RAID 0+1, seluruh strip-nya tidak dapat diakses, hanya sebagian strip saja yang dapat diakses, sedangkan pada RAID 1+0, disk yang gagal tersebut tidak dapat diakses, tetapi pasangan mirror-nya masih dapat diakses, yaitu disk-disk selain dari disk yang gagal.

Implementasi RAID
Pada umumnya, RAID diimplementasikan di dalam komputer server, tapi bisa juga digunakan di dalam workstation. Penggunaan di dalam workstation umumnya digunakan dalam komputer yang digunakan untuk melakukan beberapa pekerjaan seperti melakukan penyuntingan video/audio. Implementasi RAID, selain secara hardware (dengan RAID controller) juga dapat dilakukan secara software, misalnya pada Microsoft Windows NT 4.0.

KESIMPULAN
RAID, singkatan dari Redundant Array of Independent Disks merupakan organisasi disk memori yang mampu menangani beberapa disk dengan sistem akses paralel dan redudansi ditambahkan untuk meningkatkan reliabilitas / kehandalan.
Konsep kunci dari RAID meliputi mirroring (penyalinan data ke lebih dari satu buah hard disk), striping (pemecahan data ke beberapa hard disk) dan juga koreksi kesalahan, di mana redundansi data disimpan untuk mengizinkan kesalahan dan masalah untuk dapat dideteksi dan mungkin dikoreksi (lebih umum disebut sebagai teknik fault tolerance/toleransi kesalahan).

Tiga karakteristik umum dari RAID ini, yaitu :
1. RAID adalah sekumpulan disk drive yang dianggap sebagai sistem tunggal disk.
2. Data didistribusikan ke drive fisik array.
3. Kapasitas redunant disk digunakan untuk menyimpan informasi paritas, yang menjamin recoveribility data ketika terjadi masalah atau kegagalan disk.

RAID dapat dibagi menjadi 8 level, yaitu level 0, level 1, level 2, level 3, level 4, level 5, level 6, level 0+1 dan 1+0. Setiap level tersebut memiliki kelebihan dan kekurangannya.
Pada umumnya, RAID diimplementasikan di dalam komputer server, tapi bisa juga digunakan di dalam workstation. Penggunaan di dalam workstation umumnya digunakan dalam komputer yang digunakan untuk melakukan beberapa pekerjaan seperti melakukan penyuntingan video/audio. Implementasi RAID, selain secara hardware (dengan RAID controller) juga dapat dilakukan secara software, misalnya pada Microsoft Windows NT 4.0.

sumber:
(http://sira-go.blogspot.com/2010/02/tentang-raid.html)
(http://id.wikipedia.org/w/index.php?title=RAID&diff=3190099&oldid=3003204)