• Tidak ada hasil yang ditemukan

85292 struktur data linier

N/A
N/A
Protected

Academic year: 2017

Membagikan "85292 struktur data linier"

Copied!
8
0
0

Teks penuh

(1)

Tujuan

Mahasiswa mampu memilih struktur/type data yang tepat pada setiap variabel yang digunakan dalam program guna meningkatkan efisiensi penggunaan memori (Space) sehingga berdampak pada peningkatan Speed (kecepatan eksekusi) sebuah program.

Definisi Struktur dan Data

Struktur dapat diartikan sebagai suatu susunan, bentuk, pola atau bangunan. Contoh rangkaian kata yang mengandng kata struktur adalah: struktur organisasi, struktur jaringan, struktur kimia, dsb

Data berasal dari bahasa Yunani datum yang berarti fakta. Kata data sudah berarti majemuk/jamak sehingga tidak perlu mengulangnya untuk menyatakan banyak.

Ada 2 Model Data

a. Model data logika adalah model data yang ditinjau dari sudut pandang pemakai (manusia), yaitu segala sesuatu yang dapat diterima oleh indera manusia yang berasal dari rangsangan-rangsangan di sekitarnya, baik secara tersurat maupun tersirat.

b. Model data fisik adalah model data yang ditinjau dari sudut pandang komputer yaitu segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau simbol-simbol yang telah disediakan di setiap komputer. (Ingat kembali data di komputer/ sistem bilangan dan konversi bilangan)

Definisi Struktur Data

Jika kata “struktur” dan “data’ disatukan akan bermakna “suatu susunan simbol-simbol yang diorganisasikan sesuai dengan definisi yang diberikan terhadapnya di komputer”.

Jadi mata kuliah ini mempelajari bagaimana data disusun di memori utama komputer agar penggunaan space di memori efisien, cepat dalam pencarian dan pengambilannya kembali (retrieving) dan dapat diolah sesuai tujuan kita. Sehingga mempelajari struktur data erat kaitannya dengan membuat suatu algoritma (rangkaian pemikiran logis untuk menyelesaiakan suatu masalah).

Algoritma Penyelesaian

Struktur Data

Input

Output Proses

Program untuk menyelesaikan masalah

Masalah

(2)

Data Majemuk dan Data Elementer

Nim Nama Alamat TTL Jkel

0431001 Agus Jl. Kartini 25 Malang Malang, 11/11/77 L 0431002 Dessy Jl. Ijen 25 Malang Surabaya, 12/01/80 P

data elementer data majemuk

Operasi-Operasi Dasar Pada Struktur Data

a. Traversing : proses mengunjungi setiap elemen data pada suatu struktur data, tepat

satu kali

b. Searching : proses pencarian data dengan kriteria tertentu

c. Inserting : proses menambah elemen data baru ke suatu struktur data

d. Deleting : proses menghapus elemen data dari struktur

e. Sorting : proses menyusun elemen-elemen data dalam urutan/aturan tertentu

f. Update : proses mengganti nilai suatu elemen data dengan nilai baru

g. Mergening : proses menggabung dua buah struktur data menjadi satu

Klasifikasi Struktur Data

Array

Sederhan

Non linier Linier

Link List

Struktur data

Tree

(3)

Struktur Data Linier

Array (Larik)

Array adalah tipe terstruktur yang mempunyai komponen/elemen dalam jumlah

yang tetap (statis sesuai deklarasi) dan setiap elemennya mempunyai tipe data yang

sama. Posisi setiap elemen dalam array dinyatakan dalam nomor indek atau subscript.

Struktur ini banyak digunakan dalam operasi sorting, searching dan traversing data.

Ciri-ciri array:

a. Banyak elemennya tertentu/terhingga

b. Tipe elemennya sama

c. Membutuhkan lokasi memori yang Contigueus/menyatu sehingga letak elemen

berdekatan satu sama lain (dengan tujuan agar mudah melacak/membaca kembali)

Array Satu Dimensi a. Model Logika

Cara penulisan di media kertas/papan sedemikian rupa sehingga dapat dengan

mudah untuk menulis atau membaca kembali.

Contoh : daftar belanja nilai

Menyusun sedemikian rupa elemen-elemen data yang akan diinputkan dan

kemudian disimpan dalam memori komputer. Untuk lebih memperjelas pemahaman

tentang model fisik ini dapat diambil contoh sebagai berikut:

Tipe data sederhana Tipe data array

(4)

Tipe data sederhana PEMETAAN DATA DI MEMORI Tipe data array

A 2 Byte A[0]

I 1 Byte A[1]

JM 2 Byte •

Free Total : 5 Byte •

• 2 Byte * 100 = 200 Byte A[99]

• 1 Byte I

• 2 Byte JM Free Total : 203 Byte Free Pendeklarasian tipe data array 1 demensi

type_elemen namaarray[jumlah_elemen];

contoh:

int A[10];

float B[20];

dari deklarasi di atas, dapat dihitung kebutuhan memori suatu array atau yang lebih

dikenal dengan istilah Panjang Dimensi (DIM(A)) sebagai berikut:

DIM(A) = Banyak Elemen (A) * W (Word Length)

dimana W adalah kebutuhan memori masing-masing elemennya. Sedangkan untuk

mencari lokasi atau address suatu elemen array dapat digunakan rumus:

LOC(A[i]) = Base(A) + i * W

Keterangan: i : Nomor elemen yang dicari

Base(A) : Alamat elemen pertama (biasanya diketahui)

Contoh kasus :

Diket deklarasi array sebagai berikut:

int A[20];

Hitunglah:

a. DIM(A)

b. Alamat A[3], Jika diketahui Base(A)=2500. Latihan:

Diketahui deklarasi array sebagai berikut: int A[20];

float B[100]; Hitunglah:

a. DIM(A) dan DIM(B)

(5)

Traversing

Proses mengunjungi setiap elemen data tepat satu kali

Traversing(A, Jml) Atau

Operasi menambahkan elemen data baru ke struktur. Operasi ini hanya dapat

dilakukan jika ada kelebihan alokasi memori/masih ada tempat yang kosong.

Untuk melakukan operasi inserting, dimisalkan:

• Nama arraynya = A

• Kapasitas maximum dari array = Max

• Jumlah elemen yang sudah terisi = Jml,

• Posisi penyisipan/Index = P, dan

• Elemen yang disisipkan = X, maka

Algoritma insertingnya adalah:

Inserting_array(A, Max, Jml, P, X) If Jml = Max Then

(6)

Deleting

Operasi menghapus elemen data dari struktur Array. Operasi ini hanya dapat

dilakukan jika ada data dalam struktur tersebut (tidak kosong).

Index Data Untuk melakukan operasi inserting, dimisalkan:

• Nama arraynya = A

• Jumlah elemen yang terisi = Jml,

• Posisi penghapusan/Index = P, dan

Algoritma Deleting adalah:

Deleting_array(A, Jml, P) If Jml = 0 Then

Operasi menyusun elemen-elemen data dalam aturan atau urutan tertentu. Ada dua

model sorting yaitu:

1. Data disusun dengan urutan dari kecil ke besar, yang dikenal dengan model

ascending, dan

2. Data disusun dengan urutan dari besar ke kecil, yang dikenal dengan model

descending.

Sedangkan metode/cara yang dapat digunakan untuk mengurutkan data cukup

banyak, diantaranya: ƒ Buble Sort

(7)

Searching

Operasi mencari elemen data dengan kriteria tertentu. Metode yang dapat digunakan dalam operasi ini ada dua yaitu:

Linier/sequential Search

Searching

Binary Search

A. Metode Sequential Search

Metode Sequential Search adalah metode pencarian data dengan cara

membandingkan nilai pencarian setiap elemen dalam struktur mulai index pertama

hingga index terakhir selama pencarian belum ditemukan.

0 1 2 3 4 . . Max

Algoritma Sequential Search

Sequential_Search(A, Cari, Max) I = 0;

While (A[I] != Cari) && (I <= Max) I = I + 1;

If I > Max

Write ( data tidak ditemukan) Else

Write ( data ketemu di posisi I ) Endif

EndOfSequential_Search

Dalam pencarian data dengan metode ini dikenal dua kasus sebagai hasil pemcarian

yaitu:

Kasus terbaik (best case) : Data yang dicari ditemukan pada index pertama

Kasus terburuk (worst case) : Data yang dicari ditemukan pada index terakhir atau

tidak ditemukan hingga index+1.

Sehingga rata-rata jumlah pembandingan data, dapat dihitung sebagai berikut:

2

Max

1

+

=

(8)

B. Metode Binary Search

Pencarian biner hanya dapat dilakukan pada DATA yang sudah terurut. Pencarian data dengan metode ini dilakukan dengan membandingkan nilai pencarian dengan nilai

elemen tengah, pada contoh berikut dimisalkan CARI merupakan nilai pencarian, maka

pembandingan selalu dilakukan terhadap nilai CARI dengan nilai elemen tengah,

dimana nilai tengah didapat dengan cara sebagai berikut:

AWAL := BB; AHIR := BA;

TENGAH := (AWAL + AKHIR) DIV 2;

BERULANG SELAMA ((Data[Tengah] != CARI) DAN (AWAL <= AKHIR)) JIKA CARI > D[TENGAH] MAKA PENCARIAN KE RUAS/BAGIAN KANAN (AWAL := TENGAH+1)

JIKA CARI < D[TENGAH] MAKA PENCARIAN KE RUAS/BAGIAN KIRI (AKHIR := TENGAH-1)

TENGAH := (AWAL + AKHIR) DIV 2; AKHIR PERULANGAN

AW T AH

0 1 2 3 4 5 6

Dari algoritma diatas jika dibuat programnya sebagai berikut:

Jumlah proses pembandingan data pada pencarian biner rata-rata adalah 2 log N,

itupun jika nilai yang dicari berada di ujung urutan. Sebagai contoh lihat tabel berikut :

#include <iostream.h> #include <conio.h>

void main() {

int data[8] = {1,2,3,4,5,6,7,8}; int aw, tg, ah, cari;

clrscr();

cout << "Nilai yang dicari : "; cin >> cari; aw = 0;

ah = 7;

tg = (aw + ah) / 2;

while (cari != data[tg] && aw <= ah) {

if (cari > data[tg]) aw = tg + 1; else ah = tg - 1;

tg = (aw + ah) / 2; }

if (cari == data[tg])

cout << cari << " ditemukan di urutan ke " << tg; else

cout << cari << " tidak ditemukan !"; getch();

}

Jumlah Data (N) 4 8 16 1024

Gambar

Gambar 1 : Peranan algoritma dan struktur data dalam pembuatan program

Referensi

Dokumen terkait

Adapun yang dimaksud dengan data pribadi ialah kumpulan informasi yang menyatakan identitas seseoranng yang berisikan atas simbol, kode, angka, huruf atau

Algoritma Huffman menggunakan prinsip pengkodean yang mirip dengan kode Morse, yaitu tiap karakter (simbol) dikodekan hanya dengan rangkaian beberapa bit, dimana karakter yang

Menurut Tarigan &amp; Sanjaya (2013), “Kreativitas didefinisikan sebagai melihat sesuatu dari sudut pandang baru, umumnya dari sudut yang tidak biasa atau tidak biasa”.

BlueJ akan membuatkan template untuk contoh pada editor, jika kita tidak ingin menggunakan template contoh tersebut kita dapat di hapus kode-kode yang berada diantara simbol { }

Apabila ditinjau dari sudut pandang pengguna jasa akuntansi, akuntansi dapat didefinisikan sebagai suatu disiplin ilmu dan atau aktivitas jasa yang menyediakan

Apabila ditinjau dari sudut pandang pengguna jasa akuntansi, akuntansi dapat didefinisikan sebagai suatu disiplin ilmu dan atau aktivitas jasa yang menyediakan

Flowchart atau diagram alir merupakan sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan

Aktifitas lebih lanjut kemudian adalah analisis informasi dan data yang ada di data warehouse, yang memungkinkan untuk menampilkan dan menganalisis informasi dari berbagai sudut