Monday, October 15, 2012


MAKALAH STRUKTUR DATA

“ARRAY DAN RECORD”

TUGAS MAKALAH DIPRESENTASIKAN UNTUK MEMENUHI PERSYARATAN PERKULIAHAN DALAM DISKUSI KELOMPOK DENGAN MATA KULIAH ALGORITMA DAN PEMROGRAMAN

 Dosen Pembimbing : Bambang H Hayadi, S.Kom





Disusun Oleh :
MAHASISWA
LOKAL TEKNIK INFORMATIKA ‘B’
NEDI YANSAH PUTRA
SEMESTER III

 

PROGRAM STUDI MANAGEMEN INFORMATIKA DAN KOMPUTER

JURUSAN TEKNIK INFORMATIKA

 

 



SEKOLAH TINGGI MANAGEMEN INFORMATIKAN DAN KOMPUTER
STMIK AL-QURANIYAH
JL.AFFAN BACHIN NO 13 (0739) 21689 MANNA BENGKULU SELATAN
OKTOBER 2012

 



BAB II
PEMBAHASAN

A.    ARRAY
Sebuah array dapat dikatakan sebagai suatu himpunan terurut dengan elemen-elemen homogen. Terurut, dimaksudkan bahwa elemen pertama, elemen kedua, dst masing-masing dapat diidentifikasi. Sedangkan homogen berarti masing-masing elemen tersebut mempunyai tipe data yang sama.
    Array dapat dikelompokkan atas 2 bagian, yaitu :
      1. Array satu dimensi.
      2. Array multi dimensi.

*      ARRAY SATU DIMENSI
      Bentuk array yang paling sederhana adalah array satu dimensi. Array jenis ini dapat dianggap sebagai sebuah vektor. Suatu array A berdimensi satu dengan N buah elemen, secara fisik dapat digambarkan sebagai berikut :

A(1)
A(2)
.....
A(I)
.....
A(n)

Indeks dari elemen suatu array menyatakan posisinya dalam urutan secara umum suatu array A berdimensi satu dengan elemen berjenis data T yang mempunyai indeks dari L s/d U dituliskan sbb:

            A(L:U) = {A(I)}
           
            Untuk I = L, L+1, L+2, ................., U-1, U,
            dimana masing-masing  A(I) berjenis data T.

L disebut sebagai batas bawah dari indeks A dan U sebagai batas atas dari A.
Jumlah elemen dalam suatu array disebut sebagai range.
Range dari array A(L:U) adalah U - L + 1.           
Range dari array B(1:N) adalah N - l + 1= N
*      ARRAY MULTI DIMENSI
      Array dua dimensi adalah salah satu contoh dari array jenis multi dimensi (dimensi banyak). Array ini elemen-elemennya merupakan array pula. Bentuk yang dianggap dapat mewakili array dua dimensi ini adalah matriks.  Suatu array B yang terdiri atas M elemen dimana masing-masing elemennya berupa array dengan N elemen, dapat digambarkan sebagai suatu tabel MxN, dengan bentuk sbb:   


1
2
3
...
J
...
N
1







2







3







...







I







...







M









Array ini dituliskan :   B(1:M,1:N) = {B(I,J)},
                                                Untuk  I = 1,2,...,M
                                                            J = 1,2,...,N
Jumlah elemen (range) dari array B ini adalah M x N.

Secara umum, array 2 dimensi B dengan batas bawah indeks pertama L1, batas atas indeks pertama U1, batas bawah indeks kedua L2 batas atas indeks kedua U2, dituliskan:

            B(L1 : U1, L2 : U2) = {B(I,J)}
            Untuk L1 < I < U1 dan L2 < J < U2

Jumlah elemen baris dari array B adalah : ( U2 - L2 + 1 )
Jumlah elemen kolom dari array B adalah : ( U1 - L1 + 1)
Jumlah total elemen array B adalah : (U2 - L2 + 1 )(U1 - L1 + 1)

*      CROSS SECTION
      Yang dimaksud dengan Cross section dari array 2 dimensi adalah : suatu himpunan yang anggotanya adalah elemen-elemen dalam satu baris saja atau satu kolom saja. Notasinya menggunakan *.
Contoh :
Misal diberikan array B(1:M,1:N).
        B(4,*) = {B(4,1), B(4,2), ...,B(4,N)}
            B(*,4) = {B(1,4), B(2,4), ...,B(M,4)}

*      TRANSPOSE
      Transpose dari suatu array dua dimensi, adalah suatu array dua dimensi pula dengan menukar posisi indeksnya. Transpose dari array berukuran M x N adalah suatu array berukuran N x M. Transpose dari suatu array dari B dinotasikan dengan BT, dan didefinisikan:
                        B(I,J) = BT (J,I)
Selanjutnya secara umum, suatu array A berdimensi N dapat dituliskan sbb:
                        A(L1:U1,L2:U2,...,LN:UN)
Jumlah elemen array ini adalah :                                                                                                                                                                                    N
(U1 - L1 + 1)(U2- L2+ 1)... (UN - LN + 1) (UK - LK + 1)
                                                                                      k=1

Sebagai contoh perhatikan sebuah array berdimensi 3 yang menggambarkan (berisi) jumlah mahasiswa STMIK Gunadarma untuk kelas pagi dan malam.
Array ini dapat digambarkan sbb :


Jika array ini diberi nama Gunadarma, maka bentuknya dapat dituliskan sbb:
            Gunadarma(1:2,1:2,1:5) = {Gunadarma(i,j,k)}
            dimana            I = 1,2 (1 = pria, 2 = wanita)
                                    J = 1,2 (1 = pagi, 2 = malam)
                                    K = 1,2,3,4,5 (kelas 1 s/d 5)
Seluruh mahasiswa pagi dapat ditunjukkan dengan Gunadarma (*,1,*)
sedangkan seluruh mahasiswa malam dapat ditunjukkan dengan :
                                    Gunadarma(*,2,*)

*      DEKLARASI ARRAY DALAM BAHASA PEMROGRAMAN.
      Misal diberikan array dengan nama A yang mempunyai 24 elemen dengan masing-masing elemen berjenis data integer, maka deklarasinya dalam bahasa pemrograman adalah sbb:
COBOL : 01 A_Table
                        02  A OCCURS 24 TIMES PIC 99

PASCAL : VAR A : ARRAY [1..24] OF INTEGER;
Dalam mendeklarasikan suatu array ada 3 hal yang harus ada pada deklarasi tersebut, yaitu:
1.   Nama array
2.   Range dari indeksnya
3.   Tipe elemen-elemen datanya


*      MAPPING KE STORAGE DARI ARRAY
      Ada beberapa cara untuk menyatakan suatu array pada storage, tetapi konsepnya hampir sama dengan apa yang ada pada data fungsi.

ARRAY SATU DIMENSI
      Misal diberikan array satu dimensi dengan nama A yang mempunyai indeks 1 s/d N, yaitu A(1:N). Secara fisik array A(1:N) dapat digambarkan sbb:

A(1)
A(2)
A(3)
...
A(I)
...
A(N)

Yang perlu kita ketahui disini adalah : Letak elemen ke I dari array A(1:N), atau letak masing-masing elemen array pada storage. Letak suatu elemen biasanya disebut sebagai starting address atau starting location atau base location. Untuk mengetahui starting address suatu elemen array, perlu diketahui lebih dulu antara lain :
1.  Starting address dari array yang bersangkutan.
2.  Ukuran masing-masing elemen array atau ruang yang digunakan            
     masing-masing elemen array.
Misal starting address dari array A(1:N) adalah B dan masing-masing elemennya menggunakan ruang sebanyak  S bit. Maka starting address elemen ke I dari array A(1:N) adalah :
            B + (I-1) * S
Hal ini disebabkan ada (I - 1) elemen array A, masing-masing dengan ukuran atau panjang S secara fisik mendahului elemen ke I pada array tersebut.
Secara umum dapat dikatakan bahwa :
      Starting address elemen ke I dari array A(L:U) adalah (B +(I-L)*S jika starting address array A adalah B dan masing-masing elemenya menggunakan rungan sebanyak S bit.




MAPPING KE STORAGE : ARRAY MULTI DIMENSI.
      Prinsip yang digunakan disini tetap didasarkan pada array satu dimensi. Oleh karena itu untuk array multi dimensi, linierisasinya dapat dilakukan berdasarkan baris atau kolom.
Contoh :
Misal diberikan array  A(1:3,1:4). Array ini secara fisik dapat digambarkan sbb :


1
2
3
4
1




2




3





Linierisasi menurut baris akan mengakibatkan bentuk diatas menjadi :

























1



2



3



Jika B adalah starting address array A(1:3,1:4) dan S adalah ruang yang digunakan oleh masing-masing elemennya, maka starting address dari elemen A(I,J) adalah :
            B + (I-1) * 4 * S + (J-1) * S
Hal ini karena ada ( I-1) baris, masing-masing dengan panjang 4*S yang mendahului baris dimana elemen A(I,J) berada dan ada (J-1) elemen masing-masing dengan panjang S yang mendahului elemen A(I,J) pada baris ke I.
Contoh
Dari array A(1:3,1:4) akan dicari starting adress elemen A(2,4).
























baris
1


baris
2

baris
3


                                                                                    A(2,4)
Starting address A(2,4)           = B + (2 - 1) * 4 * S + (4 - 1) * S
                                                = B + 7 * S
Secara umum elemen A(I,J) dari array A(l:U,L:U) mempunyai starting address :
                                    B + (I-L1) * (U2-L2+1) * S + (J-L2) * S
Alternatif lain untuk linierisasi adalah dengan menggunakan cara kolom jika diberikan array A(1:3,1:4) diatas, maka bentuk linierisasinya :
           
Jika B adalah starting address dari array A(1:4,1:6) dan S adalah ruang digunakan untuk masing-masing elemenya, maka starting address dari
A(I,J) adalah :
                                    B + (J - 1) * 4 * S + (I - 1) * S
Hal ini disebabkan ada (J - I) kolom masing-masing dengan 4 elemen yang panjangnya s yang mendahului kolom tempat elemen A(I,J) berada dan ada (I-1) elemen masing-masing dengan panjang S yang mendahului elemen A(I,J) pada kolom ke J.
Secara umum dapat dikatakan bahwa :
Elemen A(I,J) dari array A(L1:U1,L2:U2), menurut kolom mempunyai starting address :
                        B + (J-L2) * (U1-L1+1) * S + (I-L1) * S
Jika starting adress array tersebut adalah B dan masing-masing elemenya menggunakan ruang sebanyak S bit.
Contoh :
Misal diberikan array K(1:4,1:6) dengan starting address B dan masing-masing elemenya menggunakan ruang S bit. Maka starting adress dari elemen k(2,4) adalah :
                                    = B + (4 - 1) * (4-1+1)  * S + (2 - 1) * S
                                    = B + 3 * 4* S + 1 * S
                                    = B + 13 * S



B.     RECORD
            Record adalah himpunan dari elemen-elemen yang heterogen.
Heterogen adalah elemen-elemennya dapat mempunyai tipe data yang berbeda.

v ELEMENTARY ITEM adalah suatu field yang tidak mempunyai subfield.
v GROUP ITEM adalah suatu field yang mempunyai subfield.
v TUPEL adalah gabungan atribut yang menjadi suatu informasi dari proses basis data.
Contoh RECORD :
      PEGAWAI
Job Tittle
Emp. No
Pay Rate
Name
Telp. No
Analys
00012724
1.000.000
Bob Geldof
7801725
Programmer
00023451
   800.000
Ceu Rika
7521475
( String(20) )
( String(8) )
( Real(9,2) )
( String(25) )
( String(7) )

      Record-record yang tipenya sama : FILE.
      Untuk menyatakan suatu data dalam record yang mempunyai identifikasi yang khusus, maka harus punya 1 field khusus yang disebut KEY (kunci field).

*      DEKLARASI RECORD DALAM BAHASA PEMROGRAMAN

  PROGRAM DALAM COBOL
      DATA DIVISION.

      01  PEGAWAI.
            02  JOB_TITTLE        PIC X(20).
            02  EMP_NO              PIC X(8).
            02  PAY_RATE         PIC 9(2) V 9(2).
            02  NAME                              PIC X(25).
            02  TELP_NO             PIC X(7).


  PROGRAM DALAM PASCAL
      Type
            Pegawai = Record;
                                    Job_Tittle : String[20];
                                    Emp_No  : String[8];
                                    Pay_Rate : Real;
                                    Name       : String[25];
                                    Telp_No   : String[7];
                             End;          























BAB III
PENUTUP


A.    Kesimpulan
Array adalah suatu struktur yang terdiri dari sejumlah elemen yang memiliki tipe data yang sama. Elemen-elemen array tersusun secara sekuensial dalam memori komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi (multi dimensi).
Structure (struktur) adalah kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupun fieldfield tersebut berada dalam satu kesatuan, masing-masing field tersebut tetap dapat diakses secara individual.
Setiap ingin menambahkan data, Anda selalu menggunakan variabel pointer yang baru, akibatnya Anda akan membutuhkan banyak sekali pointer. Oleh karena itu, ada baiknya jika Anda hanya menggunakan satu variabel pointer saja untuk menyimpan banyak data dengan metode yang kita sebut Linked List. Linked list adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian.

B.     Saran
Dengan tersusunnya makalah ini diharapkan para pembaca memberi saran dan kritik demi terciptanya kemajuan dalam pembuatan makalah-makalah berikutnya.






DAFTAR PUSTAKA

Artikel Terkait

No comments:

Post a Comment