Anda di halaman 1dari 38

Perbedaan Tipe Data, Obyek Data & Struktur Data (1)

Tipe data adalah jenis data yang mampu ditangani


oleh suatu bahasa pemrograman pada komputer.
Tiap-tiap bahasa pemrograman memiliki tipe data
yang memungkinkan:
Deklarasi terhadap variabel tipe data tersebut
Menyediakan kumpulan operasi yang mungkin
terhadap variabel bertipe data tersebut
Jenis obyek data yang mungkin
Contoh tipe data di C? Java? Pascal? .NET?

ADT (Abstract Data Type) atau Tipe Data Bentukan


ADT (Abstract Data Type) atau Tipe Data Bentukan
Bahasa C memiliki tipe data numerik dan karakter (seperti
integer, float, char dan lain- lain). Bagaimana jika kita ingin
membuat tipe data baru?
ADT adalah tipe data yang dibuat oleh programmer sendiri
yang memiliki suatu nama tertentu.
ADT dapat berupa tipe data dasar namun diberi nama baru
atau berupa kumpulan tipe data berbeda yang diberi nama
baru.
Untuk pembuatan ADT digunakan keyword typedef

Perbedaan Tipe Data, Obyek Data & Struktur Data (2)


Obyek Data adalah kumpulan elemen yang mungkin
untuk suatu tipe data tertentu.
Mis: integer mengacu pada obyek data -32768 s/d
32767, byte 0 s/d 255, string adalah kumpulan karakter
maks 255 huruf
Struktur Data adalah cara penyimpanan dan
pengorganisasian data-data pada memori komputer
maupun file secara efektif sehingga dapat digunakan
secara efisien, termasuk operasi-operasi di dalamnya.

Struct bisa diumpamakan sebagai sebuah


class, misalnya: Mahasiswa
Struct Mahasiswa memiliki property atau
atribut atau variabel yang melekat
padanya:
- NIM yaitu karakter sejumlah 8
- Nama yaitu karakter
- IPK yaitu bilangan pecahan
Struct hampir mirip dengan class pada
Java, namun struct tidak memiliki method
atau function.
Struct dapat digunakan dengan cara
membuat variabel

Ilustrasi Struct
Misalnya :
obyek anton bertipe
struct Mahasiswa
obyek erick bertipe
struct Mahasiswa
Dengan demikian anton
dan erick memiliki
NIM, Nama, dan IPK
masing-masing

Struct
- Struct adalah tipe data bentukan yang berisi kumpulan
variabel-variabel yang bernaung dalam satu nama yang
sama.
- Berbeda dengan array yang berisi kumpulan variabel
yang bertipe data sama, struct dapat memiliki variabelvariabel yang bertipe data sama atau berbeda, bahkan
bisa menyimpan variabel yang bertipe data array atau
struct
- Variabel-variabel yang menjadi anggota struct disebut
dengan elemen struct

Variabel merupakan container yang digunakan untuk menyimpan


suatu nilai pada sebuah program dengan tipe tertentu. Untuk
mendefinisikan variabel, kita dapat menggunakan identifier untuk
menamai variabel tersebut.

Array atau Larik merupakanStruktur Data Sederhana yang dapat


didefinisikan sebagai pemesanan alokasi memory sementara
pada komputer.
Array dapat didefinisikan sebagai suatu himpunan hingga
elemenyang terurut dan homogen.
Terurut : Dapat diartikan bahwa elemen tersebut dapat
diidentifikasi sebagai elemen pertama, elemen kedua dan
seterusnya sampai elemen ke-n.
Homogen : Adalah bahwa setiap elemen dari sebuah
Array tertentu haruslah mempunyai type data yang sama

Sebuah Array dapat mempunyai elemen yangseluruhnya


berupa integer atau character atau String bahkan dapat
pula terjadi suatu Array mempunyai elemen berupa Array.
Karakteristik Array :
1.Mempunyai batasan dari pemesanan alokasi memory
(Bersifat Statis)
2. Mempunyai Type Data Sama (Bersifat Homogen)
3. Dapat Diakses Secara Acak

3 Hal yang harus diketahui dalam mendeklarasikan array :


a. Type data array
b. Nama variabe larray
c. Subskrip/ index array
Jenis Array (yang akan dipelajari)adalah :
a.Array Dimensi Satu (One DimensionalArray)
b. Array Dimensi Dua (Two DimensionalArray)
c. Array Dimensi Tiga(TheeDimensionalArray)

1. ARRAY DIMENSI SATU (One DimensionalArray)


Deklarasi : Type_Data Nama_Variabel[index]
Misalnya:
Int A[5];

Rumus untukmenentukan jumlah elemen dalam Array :

Contoh :
Suatu Array A dideklarasikan sbb:
intA[10]; maka jumlah elemen Array dimensi satu

tersebut adalah=

10

PEMETAAN (MAPPING ARRAY DIMENSI SATU KE STORAGE)

Dimana :
@A[i] : Posisi Array yg dicari
B: Posisi awal index di memory komputer
i : Subkrip atau indeks array yg dicari
L: Ukuran/ Besar memory suatu type data
Contoh :
Suatu Array A dideklarasikan sebagai berikut:
intA[5]; dengan alamat awal index berada di 0011 (H) dan
Ukuran memory type data integer = 2 Tentukan berapa alamat
array A[3] ?

Sistem Bilangan

Latihan :
Suatu

Array
B
dideklarasikan
sebagai berikut:
Float B[10]; dengan alamat awal
index berada di 001D(H). Tentukan
berapa alamat array B[5] ?

indeks

value

alamat

21da 21db

21dc

21dd

21de

21df

21e0

21e1

2. ARRAY DIMENSI DUA(TwoDimensionalArray)


Deklarasi : Type_Data Nama_Variabel[Index1] [index2]
Misal: intA[3][2];
Penggambaran secara Logika :

Sering digunakan dalam menterjemahkan matriks pada


pemrograman.

Menentukan jumlah elemen dalam Array dimensidua:


n
(Index array) = Perkalian dari statemen sebelumnya
i=1
Contoh :
Suatu Array X dideklarasikan sbb:
intX[4][3];
Maka jumlah elemen Array dimensi dua tersebut adalah:
(4) * (3) =

12

PEMETAAN (MAPPING) ARRAY DIMENSI DUA KE STORAGE


Terbagi Dua cara pandang (representasi) yang berbeda :
1. Secara Kolom Per Kolom (Coloumn Major Order/CMO)
@M[i][j] = M[0][0] + {(j -1) * K + (i -1)} * L
2. Secara Baris Per Baris (Row Major Order/ RMO)
@M[i][j] = M[0][0] + {(i -1) * N + (j -1)} * L
Keterangan :
@M[i][j] = Posisi Array yg dicari,
M[0][0] = Posisi alamat awal index array,i= Baris, j = kolom, L =
Ukuran memory type data, K = Banyaknya elemen per kolom, N =
Banyaknya elemen per baris

Penggambaran secara logika

Contoh Pemetaan:
Suatu Array X dideklarasikan sebagai berikut :
Float X[4][3], dengan alamat index X[0][0] berada di 0011(H) dan ukuran
type data float = 4
Tentukan berapa alamat array X[3][2] berdasarkan cara pandang baris
dan kolom ?

Lanjutan Contoh Pemetaan :


Penyelesaian :
Secara Baris Per Baris (Row Major Oder / RMO)
@M[i][j] = @M[0][0] + {(i - 1) * N + (j - 1)} * L
X[3][2] = 0011(H) + {(3 1) * 3 + (2 1)} * 4
= 0011(H) + 28 (D)
1C (H)
= 0011(H) + 1C (H)
= 002D(H)

Lanjutan Contoh Pemetaan :


Penyelesaian :
Secara Kolom Per Kolom (Coloumn Major Oder / CMO)
@M[i][j] = @M[0][0] + {(j - 1) * K + (i - 1)} * L
X[3][2] = 0011(H) + {(2 1) * 4 + (3 1)} * 4
= 0011(H) + 24 (D)
18 (H)
= 0011(H) + 18 (H)
= 0029(H)

3.ARRAY DIMENSI TIGA (ThreeDimensionalArray)


Deklarasi :
Type_DataNama_Variabel[index1] [ndex2] [index3];
Misal:intA[3][4][2];
Penggambaran secara Logika :

Menentukan jumlah elemen dalam Array dimensi3:


n
(index array) = Perkalian dari statemen sebelumnya
i=1
Contoh :
SuatuArray X dideklarasikan sbb:
intA[3][4][2] ;maka jumlah elemen Array dimensi tiga
Tersebut adalah:
(3) * (4) * (2) =

24

PEMETAAN (MAPPING) ARRAY DIMENSI TIGA KE STORAGE


Rumus:
@M[n][m][p] =M[0][0][0] + {((n-1)*(index1)) +((m-1)*(index2))
+ ((p-1)*(index3)}* L
Contoh:
SuatuArray A dideklarasikan sebagai berikut:
ShortintA [2][4][3], dengan alamat awal index A[0][0][0]
Berada di0011(H) dan ukuran type data shortint = 2 Tentukan
Berapa alamat array diA[2][3][2] ?

Penyelesaian:
1.Tentukan jumlah eleme narray A [2][4][3]
= (2) * (4) * (3)
= 32
2.@M[n][m][p] =M[0][0][0]+{((n-1)*(index1))+((m-1)*(index2))
+ ((p-1)*(index3)}* L
A[2][3][2] = 0011(H) + {((21) * 4 * 3) + ((3-1) * 3) + (2-1)} * 2
= 0011(H) + {12 + 6 + 1 } * 2
= 0011(H) + 38 (D)
26 (H)
= 0011(H) + 26 (H)
= 0037

(H)

TRINGULAR ARRAY
(ARRAY SEGITIGA)
Tringular Array dapat merupakan Upper Tringular
(seluruh elemen di bawah diagonal utama = 0), ataupun Lower Tringular
(seluruh elemen di atas diagonal utama = 0).
Dalam Array Lower Tringular dengan N baris, jumlah maksimum elemen <>
0 pada baris ke-I adalah = I,
karenanya total elemen <>0, tidak lebih dari
N
I = N(N+1)/2
I=1

SuatuArray Upper Tringular dan Array Lower Tringular


Dapat dengan order yang sama, dapat disimpan sebagai
suatuarray dengan order yang berbeda, Contohnya:

SPARSE ARRAY
(ARRAY JARANG)
Suatu Array yang sangat banyak elemen nol-nya,
contohnya adalah Array A pada Gambar berikut :

Anda mungkin juga menyukai