PROGRAM COBOL Array Dimensi Satu dan Multi Dimensi
TABEL
DIMENSI SATU,
TABEL
MULTI DIMENSI
Obyektif
:
1.
Mengetahui cara pembuatan Tabel satu dimensi
2.
Mengetahui cara pembuatan Tabel dua dimensi
3.
Dapat membuat program tabel sederhana
1.
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 DIVISION di WORKING-STORAGE SECTION.
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
VARYING
i FROM 1 BY 1 UNTIL i > 10.
--------------------------------------------------------------
pemasukan-nilai-siswa.
DISPLAY ( , ) ‘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.
|
|
|
||
1
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
|
500.000
|
|
Afif Susanto
|
2.100.500
|
|
Miko Ariko
|
1.750.000
|
|
Lely Nurlela
|
5.700.000
|
|
Chika
|
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.
1
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
|
21
|
15
|
8
|
|
Semarang
|
32
|
28
|
27
|
|
Solo
|
12
|
11
|
13
|
|
Yogya
|
4
|
6
|
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
PIC 99.
Definisi tabel di atas :
02 cabang OCCURS 4 TIMES. ⇒ Menyatakan bahwa ada 4 buah cabang
3
bulan
OCCURS 3 TIMES. ⇒ Menyatakan bahwa setiap
cabang
ada data dalam 3 bulan
jumlah-unit-terjual PIC 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.
1
hapus-layar.
02BLANK 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.

Komentar
Posting Komentar