SD Materi #2

download SD Materi #2

of 38

description

SD Materi #2

Transcript of SD Materi #2

  • 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.

  • Ilustrasi Struct 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

    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 variabel-

    variabel 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] ?

  • 0 1 2 3 4 5 6 7

    21da 21db 21dc 21dd 21de 21df 21e0 21e1

    indeks

    value

    alamat

  • 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 ?

  • 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)

    Lanjutan Contoh Pemetaan :

  • 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 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

    TRINGULAR ARRAY

    (ARRAY SEGITIGA)

  • 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 :