Pendefinisian Tabel

Pendefinisian Tabel (Tabel 1 dimensi)

Tabel adalah suatu kumpulan data dg tipe sama yg diakses dg menggunakan nama yg sama, serta disimpan di memori secara berurutan (disebut juga array).
Pendefinisian Tabel ada pada DATA DlVlSlON di WORKlNG-STORAGE SECTlON.
Contoh pendefinisian tabel :


01 tabel-nilai-siswa.

02 nilai-siswa PIC 999 OCCURS 5 TIMES.


Menyatakan array nilai-siswa yang menampung 10 data numerik. Contoh tabel di atas identik dengan :

01 data-nilai-siswa.

02 nilai-siswa-1 PIC 999.
02 nilai-siswa-2 PIC 999.
02 nilai-siswa-3 PIC 999.
02 nilai-siswa-4 PIC 999.
02 nilai-siswa-5 PIC 999.


2. Pengisian & Pengaksesan isi Tabel

Untuk menunjuk ke masing-masing elemen tabel diperlukan sebuah subscript yg dapat berupa literal numerik (bilangan bulat positif) ataupun suatu identifier yg berisi bilangan bulat positif.
Pada contoh tabel-nilai-siswa, nilai subscript adalah antara 1 s/d 5. Subscript 1 menunjukkan elemen tabel yg pertama, subscript 2 menunjukkan elemen tabel yg kedua, dst.
Untuk menunjuk atau mengakses elemen ke n pada suatu tabel dengan menyebutkan nama-tabel diikuti dengan nilai subscriptnya diapit tanda kurung.
Contoh untuk pengaksesan elemen ke 5 pd tabel-nilai-siswa :

nilai-siswa (5).

MOVE 75 TO nilai-siswa (5). DISPLAY nilai-siswa (5).
Berikut ini adalah potongan program untuk pemasukan data tabel : PERFORM pemasukan-nilai-siswa

VARYlNG i FROM 1 BY 1 UNTlL i > 10.

-------------------------------------------------------------- pemasukan-nilai-siswa.
DlSPLAY ( , ) ‘Nilai : ‘. ACCEPT nilai-siswa ( i ).


Contoh program :

IDENTIFICATION DIVISION. PROGRAM-ID. tabel1.
*Contoh penggunaan TABEL untuk pemasukan dan
*menampilkan sejumlah nilai siswa

ENVIRONMENT DIVISION. DATA DIVISION.
WORKING-STORAGE SECTION.
77 n PIC 99.
01 tabel-nilai-siswa.
02 nilai-siswa
PIC 999 OCCURS 10 TIMES.
SCREEN SECTION.

01 hapus-layar.
02 BLANK SCREEN.

PROCEDURE DIVISION. program-utama.
PERFORM pemasukan-nilai-siswa
VARYING n FROM 1 BY 1 UNTIL n > 10.
DISPLAY hapus-layar.
PERFORM tampilan-nilai-siswa
VARYING n FROM 1 BY 1 UNTIL n > 10.
STOP RUN.
pemasukan-nilai-siswa.
DISPLAY ( , ) ‘Nilai : ‘. ACCEPT ( , ) nilai-siswa (n). DISPLAY SPACE.
tampilan-nilai-siswa.
DISPLAY ( , ) ‘Nilai ke ‘, n , ‘ : ‘nilai-siswa(n).
DISPLAY SPACE.


3. Tabel 1 Dimensi dengan 2 buah kolom
Untuk pembuatan tabel yg tiap elemennya mengandung 2 buah data, seperti pd tabel berikut ini :

NAMA SALESMAN JUMLAH PENJUALAN
Windy Arwindya
Afif Susanto Miko Ariko Lely Nurlela Chika 500.000
2.100.500
1.750.000
5.700.000
760.000

Pendefinisian Tabel dg tiap elemen mengandung 2 data seperti di atas adl sbg berikut :

01 tabel-penjualan.
02 data-penjualan-salesman OCCURS 5 TIMES.
03 nama-salesman PIC X(25).
03 hasil-penjualan PIC 9(6).

Untuk mengisikan kelima elemen tabel tersebut adalah sbg berikut :

PERFORM pemasukan-data-tabel
VARYING i FROM 1 BY 1 UNTIL i > 5.
------------------------------------------------------------
-------
pemasukan-data-tabel.
DISPLAY ( , ) ‘Nama salesman : ‘. ACCEPT nama-salesman ( i ).
DISPLAY SPACE.
DISPLAY ( , ) ‘Hasil penjualan : ‘. ACCEPT hasil-penjualan ( i ).

* Contoh Program :

IDENTIFICATION DIVISION. PROGRAM-ID. tabel.
*Contoh penggunaan tabel 1 dimensi yg berisi nama salesman
* dan hasil penjualan ENVIRONMENT DIVISION. CONFIGURATIO SECTION. SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 n PIC 9.
77 garis PIC X(47) VALUE ALL ‘-’.

01 tabel-penjualan.
02 data-penjualan-salesman OCCURS 5 TIMES.
03 nama-salesman PIC X(25).
03 hasil-penjualan PIC 9(8).
01 judul-1 PIC X(20) VALUE ‘ Tabel Penjualan ‘.
01 judul-2.
02 FILLER PIC X(2) VALUE ‘| ‘.
02 FILL PIC X(26) VALUE ‘ NAMA SALESMAN ‘.
02 FILL PIC X(2) VALIE ‘| ‘.
02 FILL PIC X(16) VALUE ‘ HASIL PENJUALAN ‘.
02 FILL PIC X(1) VALUE ‘|’.
01 isi-tabel.
02 FILL PIC X(2) VALUE ‘| ’.
02 lap-nama-salesman PIC x(26).
02 FILL PIC X(2) VALUE ‘| ‘.
02 lap-hasil-penjualan PIC ZZ.ZZZ.ZZZ.ZZZBB.
02 FILL PIC X(1) VALUE ‘|’.

SCREEN SECTION.
01 hapus-layar.
02 BLANK SCREEN.
PROCEDURE DIVISION. program-utama.
PERFORM pemasukan-data-tabel
VARYING n FROM 1 BY 1 UNTIL n > 5
PERFORM tampilan-tabel-penjualan
VARYING n FROM 1 BY 1 UNTIL n > 5. STOP RUN.
pemasukan-data-tabel.
DISPLAY ( , ) n, ‘. Nama salesman : ‘.
ACCEPT ( , ) nama-salesman (n). DISPLAY SPACE.
DISPLAY ( , ) SPACE, ‘ Hasil penjualan : ‘.
ACCEPT ( , ) hasil-penjualan (n). DISPLAY SPACE.
tampilan-tabel-penjualan.
DISPLAY hapus-layar.
DISPLAY judul-1.
DISPLAY garis. DISPLAY judul-2. DISPLAY garis.
PERFORM tampilkan-isi-tabel
VARYING n FROM 1 BY 1 UNTIL n > 5.
DISPLAY garis. tampilkan-isi-tabel.
MOVE nama-salesman (n) TO lap-nama-salesman.
MOVE hasil-penjualan (n) TO lap-hasil-penjualan.
DISPLAY isi-tabel.



4. Tabel 2 dimensi
Pada tabel dimensi 2 mempunyai 2 buah subscript, berbeda dg tabel dimensi satu yg untuk pengaksesannya hanya diperlukan 1 buah subscript, sebagai contoh dapat dilihat pd tabel berikut :

Cabang Jumlah kendaraan terjual
Bulan 1 Bulan 2 Bulan 3
Medan
Semarang Solo Yogya 21
32
12
4 15
28
11
6 8
27
13
10


Untuk tabel di atas, pendefinisiannya adl sbg berikut :

01 tabel-penjualan-mobil.
02 cabang OCCURS 4 TIMES.
03 bulan OCCURS 3 TIMES.
04 jumlah-unit-terjual PlC 99.

Definisi tabel di atas :
02 cabang OCCURS 4 TlMES. ⇒ Menyatakan bahwa ada 4 buah cabang
03 bulan OCCURS 3 TlMES. ⇒Menyatakan bahwa setiap cabang
ada data dalam 3 bulan

jumlah-unit-terjual PlC 99. ⇒ Menyatakan elemen dari tabel bulan berupa jumlah-unit-terjual , yg bertipe numerik (2 digit).

Untuk mengakses elemen jumlah-unit-terjual , diperlukan pengenal/penunjuk berupa :
jumlah-unit-terjual ( subscript-cabang, subscript-bulan )

contoh : Untuk mengakses data penjualan cabang Medan pada bulan kedua, bentuknya adalah :
jumlah-unit-terjual ( 1, 2 )

Contoh Program :

IDENTIFICATION DIVISION. PROGRAM-ID. tabel2.
*Contoh pemakaian tabel dua dimensi
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ws-subscript.
02 subscript-cabang PIC 9.
02 subscript-bulan PIC 9.
01 tabel-penjualan-mobil.
02 cabang OCCURS 4 TIMES.
03 bulan OCCURS 3 TIMES.
04 jumlah-unit-terjual PIC 99.
77 total-penjualan-cabang PIC 99 VALUE 0.

SCREEN SECTION.
01 hapus-layar.
02 BLANK SCREEN.

PROCEDURE DIVISION. program-utama.
PERFORM entry-tabel. PERFORM tampilkan-tabel. STOP RUN.

entry-tabel.

DISPLAY ‘Pemasukan data ke dalam tabel dimensi dua :‘.
PERFORM isi-data-tabel
VARYING subscript-cabang FROM 1 BY 1
UNTIL subscript-cabang > 4
AFTER subscript-bulan FROM 1 BY 1
UNTIL subscript-bulan > 3.

isi-data-tabel.
DISPLAY ( , ) ‘Cabang ‘, subscript-cabang,
‘Bulan ‘, subscript-bulan, ‘ : ‘. ACCEPT ( , ) jumlah-unit-terjual (subscript-cabang,
subscript-bulan).
DISPLAY SPACE.

tampilkan-tabel.
DISPLAY hapus-layar.
DISPLAY ‘ Menampilkan isi tabel berdimensi dua : ‘.

PERFORM display-data-tabel
VARYING subscript-cabang FROM 1 BY 1
UNTIL subscript-cabang > 4
AFTER subscript-bulan FROM 1 BY 1
UNTIL subscript-bulan > 3.

display-data-tabel.
DISPLAY ( , ) ‘Cabang ‘, subscript-cabang,
‘Bulan ‘, subscript-bulan, ‘ : ‘,
jumlah-unit-terjual (subscript-cabang,
subscript-bulan).
DISPLAY SPACE.

ADD jumlah-unit-terjual (subscript-cabang, subscript- bulan)
TO total-penjualan-cabang.

IF (subscript-bulan = 3)
DISPLAY ‘*** Total penjualan per cabang = ‘, total- penjualan-cabang.
MOVE 0 TO total-penjualan-cabang.

0 komentar:

Posting Komentar

Jumat, 12 November 2010

Pendefinisian Tabel

Pendefinisian Tabel (Tabel 1 dimensi)

Tabel adalah suatu kumpulan data dg tipe sama yg diakses dg menggunakan nama yg sama, serta disimpan di memori secara berurutan (disebut juga array).
Pendefinisian Tabel ada pada DATA DlVlSlON di WORKlNG-STORAGE SECTlON.
Contoh pendefinisian tabel :


01 tabel-nilai-siswa.

02 nilai-siswa PIC 999 OCCURS 5 TIMES.


Menyatakan array nilai-siswa yang menampung 10 data numerik. Contoh tabel di atas identik dengan :

01 data-nilai-siswa.

02 nilai-siswa-1 PIC 999.
02 nilai-siswa-2 PIC 999.
02 nilai-siswa-3 PIC 999.
02 nilai-siswa-4 PIC 999.
02 nilai-siswa-5 PIC 999.


2. Pengisian & Pengaksesan isi Tabel

Untuk menunjuk ke masing-masing elemen tabel diperlukan sebuah subscript yg dapat berupa literal numerik (bilangan bulat positif) ataupun suatu identifier yg berisi bilangan bulat positif.
Pada contoh tabel-nilai-siswa, nilai subscript adalah antara 1 s/d 5. Subscript 1 menunjukkan elemen tabel yg pertama, subscript 2 menunjukkan elemen tabel yg kedua, dst.
Untuk menunjuk atau mengakses elemen ke n pada suatu tabel dengan menyebutkan nama-tabel diikuti dengan nilai subscriptnya diapit tanda kurung.
Contoh untuk pengaksesan elemen ke 5 pd tabel-nilai-siswa :

nilai-siswa (5).

MOVE 75 TO nilai-siswa (5). DISPLAY nilai-siswa (5).
Berikut ini adalah potongan program untuk pemasukan data tabel : PERFORM pemasukan-nilai-siswa

VARYlNG i FROM 1 BY 1 UNTlL i > 10.

-------------------------------------------------------------- pemasukan-nilai-siswa.
DlSPLAY ( , ) ‘Nilai : ‘. ACCEPT nilai-siswa ( i ).


Contoh program :

IDENTIFICATION DIVISION. PROGRAM-ID. tabel1.
*Contoh penggunaan TABEL untuk pemasukan dan
*menampilkan sejumlah nilai siswa

ENVIRONMENT DIVISION. DATA DIVISION.
WORKING-STORAGE SECTION.
77 n PIC 99.
01 tabel-nilai-siswa.
02 nilai-siswa
PIC 999 OCCURS 10 TIMES.
SCREEN SECTION.

01 hapus-layar.
02 BLANK SCREEN.

PROCEDURE DIVISION. program-utama.
PERFORM pemasukan-nilai-siswa
VARYING n FROM 1 BY 1 UNTIL n > 10.
DISPLAY hapus-layar.
PERFORM tampilan-nilai-siswa
VARYING n FROM 1 BY 1 UNTIL n > 10.
STOP RUN.
pemasukan-nilai-siswa.
DISPLAY ( , ) ‘Nilai : ‘. ACCEPT ( , ) nilai-siswa (n). DISPLAY SPACE.
tampilan-nilai-siswa.
DISPLAY ( , ) ‘Nilai ke ‘, n , ‘ : ‘nilai-siswa(n).
DISPLAY SPACE.


3. Tabel 1 Dimensi dengan 2 buah kolom
Untuk pembuatan tabel yg tiap elemennya mengandung 2 buah data, seperti pd tabel berikut ini :

NAMA SALESMAN JUMLAH PENJUALAN
Windy Arwindya
Afif Susanto Miko Ariko Lely Nurlela Chika 500.000
2.100.500
1.750.000
5.700.000
760.000

Pendefinisian Tabel dg tiap elemen mengandung 2 data seperti di atas adl sbg berikut :

01 tabel-penjualan.
02 data-penjualan-salesman OCCURS 5 TIMES.
03 nama-salesman PIC X(25).
03 hasil-penjualan PIC 9(6).

Untuk mengisikan kelima elemen tabel tersebut adalah sbg berikut :

PERFORM pemasukan-data-tabel
VARYING i FROM 1 BY 1 UNTIL i > 5.
------------------------------------------------------------
-------
pemasukan-data-tabel.
DISPLAY ( , ) ‘Nama salesman : ‘. ACCEPT nama-salesman ( i ).
DISPLAY SPACE.
DISPLAY ( , ) ‘Hasil penjualan : ‘. ACCEPT hasil-penjualan ( i ).

* Contoh Program :

IDENTIFICATION DIVISION. PROGRAM-ID. tabel.
*Contoh penggunaan tabel 1 dimensi yg berisi nama salesman
* dan hasil penjualan ENVIRONMENT DIVISION. CONFIGURATIO SECTION. SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 n PIC 9.
77 garis PIC X(47) VALUE ALL ‘-’.

01 tabel-penjualan.
02 data-penjualan-salesman OCCURS 5 TIMES.
03 nama-salesman PIC X(25).
03 hasil-penjualan PIC 9(8).
01 judul-1 PIC X(20) VALUE ‘ Tabel Penjualan ‘.
01 judul-2.
02 FILLER PIC X(2) VALUE ‘| ‘.
02 FILL PIC X(26) VALUE ‘ NAMA SALESMAN ‘.
02 FILL PIC X(2) VALIE ‘| ‘.
02 FILL PIC X(16) VALUE ‘ HASIL PENJUALAN ‘.
02 FILL PIC X(1) VALUE ‘|’.
01 isi-tabel.
02 FILL PIC X(2) VALUE ‘| ’.
02 lap-nama-salesman PIC x(26).
02 FILL PIC X(2) VALUE ‘| ‘.
02 lap-hasil-penjualan PIC ZZ.ZZZ.ZZZ.ZZZBB.
02 FILL PIC X(1) VALUE ‘|’.

SCREEN SECTION.
01 hapus-layar.
02 BLANK SCREEN.
PROCEDURE DIVISION. program-utama.
PERFORM pemasukan-data-tabel
VARYING n FROM 1 BY 1 UNTIL n > 5
PERFORM tampilan-tabel-penjualan
VARYING n FROM 1 BY 1 UNTIL n > 5. STOP RUN.
pemasukan-data-tabel.
DISPLAY ( , ) n, ‘. Nama salesman : ‘.
ACCEPT ( , ) nama-salesman (n). DISPLAY SPACE.
DISPLAY ( , ) SPACE, ‘ Hasil penjualan : ‘.
ACCEPT ( , ) hasil-penjualan (n). DISPLAY SPACE.
tampilan-tabel-penjualan.
DISPLAY hapus-layar.
DISPLAY judul-1.
DISPLAY garis. DISPLAY judul-2. DISPLAY garis.
PERFORM tampilkan-isi-tabel
VARYING n FROM 1 BY 1 UNTIL n > 5.
DISPLAY garis. tampilkan-isi-tabel.
MOVE nama-salesman (n) TO lap-nama-salesman.
MOVE hasil-penjualan (n) TO lap-hasil-penjualan.
DISPLAY isi-tabel.



4. Tabel 2 dimensi
Pada tabel dimensi 2 mempunyai 2 buah subscript, berbeda dg tabel dimensi satu yg untuk pengaksesannya hanya diperlukan 1 buah subscript, sebagai contoh dapat dilihat pd tabel berikut :

Cabang Jumlah kendaraan terjual
Bulan 1 Bulan 2 Bulan 3
Medan
Semarang Solo Yogya 21
32
12
4 15
28
11
6 8
27
13
10


Untuk tabel di atas, pendefinisiannya adl sbg berikut :

01 tabel-penjualan-mobil.
02 cabang OCCURS 4 TIMES.
03 bulan OCCURS 3 TIMES.
04 jumlah-unit-terjual PlC 99.

Definisi tabel di atas :
02 cabang OCCURS 4 TlMES. ⇒ Menyatakan bahwa ada 4 buah cabang
03 bulan OCCURS 3 TlMES. ⇒Menyatakan bahwa setiap cabang
ada data dalam 3 bulan

jumlah-unit-terjual PlC 99. ⇒ Menyatakan elemen dari tabel bulan berupa jumlah-unit-terjual , yg bertipe numerik (2 digit).

Untuk mengakses elemen jumlah-unit-terjual , diperlukan pengenal/penunjuk berupa :
jumlah-unit-terjual ( subscript-cabang, subscript-bulan )

contoh : Untuk mengakses data penjualan cabang Medan pada bulan kedua, bentuknya adalah :
jumlah-unit-terjual ( 1, 2 )

Contoh Program :

IDENTIFICATION DIVISION. PROGRAM-ID. tabel2.
*Contoh pemakaian tabel dua dimensi
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ws-subscript.
02 subscript-cabang PIC 9.
02 subscript-bulan PIC 9.
01 tabel-penjualan-mobil.
02 cabang OCCURS 4 TIMES.
03 bulan OCCURS 3 TIMES.
04 jumlah-unit-terjual PIC 99.
77 total-penjualan-cabang PIC 99 VALUE 0.

SCREEN SECTION.
01 hapus-layar.
02 BLANK SCREEN.

PROCEDURE DIVISION. program-utama.
PERFORM entry-tabel. PERFORM tampilkan-tabel. STOP RUN.

entry-tabel.

DISPLAY ‘Pemasukan data ke dalam tabel dimensi dua :‘.
PERFORM isi-data-tabel
VARYING subscript-cabang FROM 1 BY 1
UNTIL subscript-cabang > 4
AFTER subscript-bulan FROM 1 BY 1
UNTIL subscript-bulan > 3.

isi-data-tabel.
DISPLAY ( , ) ‘Cabang ‘, subscript-cabang,
‘Bulan ‘, subscript-bulan, ‘ : ‘. ACCEPT ( , ) jumlah-unit-terjual (subscript-cabang,
subscript-bulan).
DISPLAY SPACE.

tampilkan-tabel.
DISPLAY hapus-layar.
DISPLAY ‘ Menampilkan isi tabel berdimensi dua : ‘.

PERFORM display-data-tabel
VARYING subscript-cabang FROM 1 BY 1
UNTIL subscript-cabang > 4
AFTER subscript-bulan FROM 1 BY 1
UNTIL subscript-bulan > 3.

display-data-tabel.
DISPLAY ( , ) ‘Cabang ‘, subscript-cabang,
‘Bulan ‘, subscript-bulan, ‘ : ‘,
jumlah-unit-terjual (subscript-cabang,
subscript-bulan).
DISPLAY SPACE.

ADD jumlah-unit-terjual (subscript-cabang, subscript- bulan)
TO total-penjualan-cabang.

IF (subscript-bulan = 3)
DISPLAY ‘*** Total penjualan per cabang = ‘, total- penjualan-cabang.
MOVE 0 TO total-penjualan-cabang.

Tidak ada komentar:

Posting Komentar