makalah struktur data
Post on 25-Jul-2015
708 Views
Preview:
TRANSCRIPT
BAB I
DATA DAN STRUKTUR DATA
1. PENGERTIAN DATA
Data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan
yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau
simbol. Pengertian data ini menyiratkan suatu nilai yang bisa dinyatakan dalam bentuk
konstanta / variable.
Konstanta digunakan untuk menyatakan nilai tetap sedangkan variable digunakan dalam
program untuk menyatakan nilai yang dapat berubah-ubah selang eksekusi berlangsung. Ada
empat istilah data, yaitu:
Tipe data adalah jenis atau macam data di dalam suatu variable dalam bahasa pemrograman.
Objek data mengacu kumpulan elemen, D (domain).
Representasi data : Suatu mapping dari struktur data ‘d’ ke suatu set ke struktur data ‘e’ (d===e)
misal bolean di representasikan dalam 0 dan 1.
Struktur data biasa dipakai untuk mengelompokan beberapa informasi yang terkait
menjadi sebuah kesatuan.
Tipe data sederhana terbagi menjadi dua, yaitu:
Data sederhana tunggal. Misalnya : Integer, real / float, Boolean dan character.
Data sederhana majemuk. Misalnya : String.
1. TIPE DATA SEDERHANA TUNGGAL
INTEGER
Anggota dari himpunan bilangan :
{..., -(n+1), -n, ..., -2, -1, 0, 1, 2, ..., n, n+1, ...}
Operasi dasar yaitu : penjumlahan, pengurangan, perkalian, pembagian dan perpangkatan
1
REAL
Contoh :
Di dalam sistem desimal, 123000 = 0.123 * 106 di sini 0.123 adalah mantissa atau pecahan,
sedangkan 6 adalah eksponennya. Secara umum suatu bilangan real X dituliskan M * RE di sini :
M dijadikan pecahan, R adalah radixnya dan E merupakan eksponennya.
BOOLEAN
Disebut juga jenis data logical. Anggota { true atau false}.
Operator Logika, yaitu : AND, OR, NOT
Operator AND akan menghasilkan nilai true, jika kedua operand bernilai true.
Operator OR akan menghasilkan nilai true, jika salah satu operand bernilai true
Operator NOT merupakan “precedence” dari operator AND dan OR.
Dalam suatu ekspresi yang tidak menggunakan tanda kurung, operator NOT harus dievaluasi
sebelum operator AND dan OR.
Operator Relasional, yaitu : >, <, >=, <=, <> dan =
Contoh : 6 < 8 = True
9 < 8 = False
KARAKTER
Elemen dari suatu himpunan yang terdiri atas bilangan, abjad dan simbol khusus.
(0,1,...,8,9, A, B, ..., Y,Z, +, -,*,, ...}
Ada banyak skema yang digunakan untuk merepresentasikan karakter dalam storage.
Pada umumnya skema yang paling banyak digunakan adalah :
1. Extended Binary Coded Decimal Interchange (EBCDIC)
Digunakan kode 8 bit untuk menyatakan sebuah karakter. Jika dihitung, kemungkinan
kombinasi seluruhnya : 28 = 256.
2. American Standard Code for Information Interchange (ASCII)
Digunakan kode 7 bit untuk menyatakan sebuah karakter. Jika dihitung, kemungkinan
kombinasi seluruhnya : 27 = 128.
2
2. TIPE DATA MAJEMUK
STRING
Contoh :
Misal diberikan himpunan alfabet A = {C,D,1}.
String yang dapat dibentuk dari alfabet di atas di antaranya :
‘CD1’,’CDD’,’DDC’,’CDC1’,... dan sebagainya, termasuk “null string” atau “empty string”
Himpunan tak hingga dari string yang dibentuk oleh alfabet A disebut VOCABULARY,
Notasi : VA atau A* Jika suatu string dibentuk dari alfabet {0,1}, maka string yang terbentuk
disebut dengan “Bit String”.
OPERASI Operator
- Jumlah karakter dalam string LENGTH
- Gabungan 2 buah string CONCAT
- Sub bagian dari string SUBSTR
- Menyisipkan string ke dalam string yang lain INSERT
- Menghapus karakter dalam string DELETE
LENGTH
Nilai dari operasi ini adalah suatu integer yang menunjukkan panjang dari suatu string .
Notasi : LENGTH(S) = N (integer) di sini S = String, N = integer
CONCAT
Operasi ini bekerja terhadap dua string dan hasilnya merupakan resultan dari kedua string
tersebut. Jika S1 dan S2 masing-masing adalah suatu string, maka bentuk operasi
CONCATENATION dinotasikan dengan : CONCAT(S1, S2).
Contoh :
Misal S1 = ‘a1a2 ... aN’ dan S2 =‘b1b2 ... bM’
Maka CONCAT(S1,S2) = ‘a1a2 ... aNb1b2 ... bM’
String S1 = "Sistem"
String S2 = "Informasi"
CONCAT(S1, S2)= "SistemInformasi"
3
LENGTH(CONCAT(S1, S2)) = 15
LENGTH(S1) + LENGTH(S2) = LENGTH(CONCAT(S1, S2))
6 + 9 = 15
15 = 15
SUBSTR
Operasi ini adalah operasi membentuk string baru, yang merupakan bagian dari string
yang diketahui.
Notasi : SUBSTR(S, i, j)
di sini : S = string yang diketahui
i dan j = integer
i = posisi awal substring 1 i LENGTH(S)
j = banyak karakter yang diambil
0 j LENGTH(S) dan 0 i+j-1 LENGTH(S)
INSERT
Operasi ini adalah untuk menyisipkan suatu string ke dalam string lain. Bentuk
umumnya adalah :
INSERT(S1,S2,i). S1 dan S2 masing-masing adalah suatu string dan i adalah posisi awal S2 pada
S1.
Contoh :
Misalkan : S1 = ‘a1a2 ... aN’
S2 = ‘b1b2 ... bM’
INSERT(S1, S2,3) = ‘a1a2b1b2 ... bMa3a4... aN’
String S1 = "Sistem"
String S2 = "Informasi"
INSERT(S1,S2,4) = “SisInformasitem”
INSERT(S2,S1,4) = “InfSistemormasi”
DELETE
Operasi ini digunakan untuk menghapus sebagian karakter dalam suatu string.
Bentuk umumnya adalah :
DELETE(S,i,j) menghapuskan sebagian karakter dalam string S, mulai dari posisi i dengan
panjang j.
4
2. PENGERTIAN STRUKTUR DATA
Struktur data adalah suatu koleksi / kelompok data yang dapat di karakteristikan oleh
organisasi serta operasi yang di definisikan terhadapnya.
Dalam teknik pemrograman,struktur data berarti tata letak yang berisi kolom-kolom data,baik itu
kolom yang tampak oleh pengguna (user) ataupun kolom yang hanya digunakan untuk keperluan
pemrograman yang tidak tampak oleh pengguna.
Struktur data meliputi :
Struktur data sederhana, misalnya array dan Record.
Struktur data majemuk, yang terdiri :
Linier : Stack, Queue, serta List dan Multilist
Non Linier : Pohon Biner dan Graph
Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan
algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih
efisien dan sederhana.
Struktur data standar yang biasanya digunakan dibidang informatika adalah :
ADT , Array , Struk Queue (Antrian)
List linier (Linked List) dan variasinya Tree ( Pohon )
Multilist Graph ( Graf )
Stack (Tumpukan)
2.1 PEMBUATAN STRUKTUR DATA
Untuk membuat menjadi struktur data, kita harus melakukan dulu aktivitas terhadap
objek data, yaitu :
- Mendeskkripsikan kumpulan operasi sah yang diterapkan ke elemen-elemen objek data.
Menunjukan mekanisme kerja operasi-operasi.
- Objek data integer ditambah operasi (+ , - , * , / , mod ,cell , floor , < , >) dan operasi-
operasi lain yang memanipuasi objek data integer menyatakan struktur data.
Struktur data = Objek data + { Operasi manipulasi }.
5
BAB II
ARRAY
1. PENGERTIAN
Array adalah himpunan elemen (variable) dengan tipe yang sama dan disimpan secara
berurutan dalam memory yang ditandai dengan memberikan index pada suatu nama variable.
Contohnya, kita dapat menyimpan 5 nilai dengan tipe int tanpa harus mendeklarasikan 5
identifier variabel yang berbeda. Perhatikan contoh dibawah ini :
Bagian kosong diatas merepresentasikan elemen array, dalam kasus ini adalah nilai integer.
Angka 0 - 4 merupakan index dan selalu dimulai dari 0. Seperti penggunaan variable pada
umumnya, array harus dideklarasikan terlebih dahulu, dengan format sbb :
type name [elements];
Maka contoh array diatas dideklarasikan sbb :
int billy [5];
Array atau larik di definisikan sebagai pemesanan alokasi memory berurutan.definisi ini
kurang tepat, karena terjadi kerancuan antara struktur data dan representasinya. Memang benar
array hampir selalu di implementasikan menggunakan memory berurutan tapi tidak selalu
demikian.
Semua elemem array bertipe sama. Array cocok untuk organisasi kumpulan data homogen yang
ukuran atau jumlah elemen maksimumnya telah diketahui dari awal.
Homogen adalah bahwa setiap elemen dari sebuah array tertentu haruslah mempunyai tipe data
yang sama.
2. KARAKTERISTIK ARRAY
Mepunyai batasan dari pemesanan alokasi memori (bersifat statis)
Mempunyai tipe data sama (bersifat homogen)
Dapat diakses secara acak.
6
2.1. DEKLARASI ARRAY
Ada tiga hal yang harus di ketahui dalam mendeklarasikan array, yaitu :
Type data array
Nama variable array
Subkrip / index array.
Contoh deklarasi dari array adalah sebagai berikut :
int A[5] ; artinya variabel A adalah kumpulan data sebanyak 5 bilangan bertipe integer.
Struktur data Array adalah organisasi kumpulan data homogen yang ukuran atau jumlah elemen
maksimumnya telah diketahui dari awal. Array umumnya disimpan di memori komputer secara
kontigu (berurutan). Deklarasi dari array adalah sebagai berikut:
int A[5]; artinya variabel A adalah kumpulan data sebanyak 5 bilangan bertipe integer.
Operasi terhadap elemen di array dilakukan dengan pengaksesan langsung. Nilai di
masing-masing posisi elemen dapat diambil dan nilai dapat disimpan tanpa melewati
posisi-posisi lain.
Terdapat dua tipe operasi, yaitu:
Operasi terhadap satu elemen/posisi dari array
Operasi terhadap array sebagai keseluruhan
Dua operasi paling dasar terhadap satu elemen/posisi adalah
Penyimpanan nilai elemen ke posisi tertentu di array
Pengambilan nilai elemen dari posisi tertentu di array
1.3.1 Penyimpanan dan Pengambilan Nilai
Biasanya bahasa pemrograman menyediakan sintaks tertentu untuk penyimpanan dan
pengambilan nilai elemen pada posisi tertentu di array.
Contoh:
A[10] = 78, berarti penyimpanan nilai 78 ke posisi ke-10 dari array A
C = A[10], berarti pengambilan nilai elemen posisi ke-10 dari array A
7
2.2. JENIS ARRAY
1. ARRAY DIMENSI SATU
Deklarasi : Type_Data Nama_Variabel [index]
Rumus untuk menentukan jumlah elemen dalam array adalah :
= Perkalian dari index sebelumnya (untuk arraybdimensi dua
dan tiga).
PEMETAAN (MAPPING) ARRAY DIMENSI SATU KE STORAGE
Rumus : @A[i] = B + (i – 1) * L
Dimana : @A[i] : Posisi array yang dicari
B : Posisi awal index di memori computer
i : Subkrip atau index array yang di cari
L : Ukuran atau besar memori suatu tipe data
Contoh bentuk Array menggunakan c++
include<iostream>
using namespace std;
void main(void)
{
int x[10]={0,1,2,3,4,5,6,7,8,9};
int *px;
int i;
for(i=0;i<10;i++)
{
px=&x[i]; // membaca alamat dari x
cout<<x[i] << " " <<*px<<" "<<px<<endl;
}
{
cout<<"1.NAMA :SAEPUL IMAN"<<endl;
cout<<"2.NIM :0670 11 701"<<endl;
cout<<"3.SEMESTER :IIIA"<<endl;
cout<<"4.TANGGAL PRAKTIKUM :23-03-2011"<<endl;
8
n
p (Index Array)
i = 1
}
#include<iostream>
#include<conio.h>
using namespace std;
void main(void)
{
int billy [5] = {16,2,77,40,12017};
int n, result=0;
for( n=0 ; n<5 ; n++ )
{
result += billy[n];
}
cout<<"Outputnya:"<<endl;
cout<<result<<endl<<endl;
cout<<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:"<<endl;
cout<<"Nama : SAEPUL IMAN:"<<endl;
cout<<"SEMESTER : IIIA:"<<endl;
cout<<"Tanggal praktikum : kamis-1/04/2011:"<<endl;
cout<<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:"<<endl;
getch();
}
2. ARRAY DIMENSI DUA
Deklarasi : Type_Data Nama_Variabel [index1] [index2]
Menentukan jumlah elemen dalam array dimensi dua :
= Perkalian dari statemen sebelumnya
PEMETAAN (MAPPING) ARRAY DIMENSI DUA KE STORAGE
9
n
(Index Array)
i = 1
Terbagi dua cara pandang (representasi) yang berbeda :
Secara kolom per kolom (coloumn major order / CMO)
Secara baris per
baris (row major order / RMO)
Keterangan :
@M[i][j] = Posisi array yang di cari, 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.
3. ARRAY DIMENSI TIGA
Adalah suatu array yang setiap elemennya merupakan tipe data array juga yang
merupakan array dimensi dua.
Contoh :
Penyajian data mengenai banyaknya mahasiswa dari 20 perguruan tinggi di Jakarta,
berdasarkan tingkat (1 sampai 5), dan jenis kelamin (pria atau wanita). Misalkan array tersebut
dinamakan MHS. Ambil subskrip pertama, tingkat = 1, 2, ..., 5; subskrip kedua, jenis kelamin
(pria = 1, wanita = 2), dan subskrip ketiga, perguruan tinggi adalah K = 1, 2, ..., 20. Jadi
MHS(4,2,17) menyatakan jumlah mahasiswa tingkat 4, wanita, dari perguruan tinggi 17.
CROSS SECTION (Penampang Array Berdimensi-2)
Adalah pengambilan salah satu subskrip.
Misal : Baris = tetap/konstan
Kolom = berubah-ubah (*)
Contoh : B(*,4) = semua elemen pada kolom ke-4.10
@M[i][j] = M[0][0] + {(j – 1) * K + (i – 1)} *
L
@M[i][j] = M[0][0] + {(i – 1) * N + (j – 1)} *
L
B(2,*) = semua elemen pada baris ke-2.
Pengertian cross-section pada array dimensi banyak, adalah sama seperti pada array dimensi dua.
Misal :
MHS(4,*,17) = jumlah mahasiswa tingkat 4 dari perguruan tinggi 17 (masing-masing
untuk pria dan wanita).
MHS(*,*, 3) = jumlah mahasiswa untuk masing-masing tingkat, pria dan
wanita, dari perguruan tinggi 3.
2.3. OPERASI DASAR PADA ARRAY
Operasi terhadap elemen di array dilakukan dengan pengaksesan langsung. Nilai di
masing-masing posisi elemen dapat diambil dan nilai dapat disimpan tanpa melewati posisi-
posisi lain.
Terdapat dua tipe operasi, yaitu :
Operasi terhadap satu elemen / posisi dari array
Operasi terhadap array sebagai keseluruhan
Dua operasi paling dasar terhadap satu elemen / posisi adalah
Penyimpanan nilai elemen ke posisi tertentu di array
Pengambilan nilai elemen dari posisi tertentu di array
Operasi-operasi dasar terhadap array secara keseluruhan adalah :
Operasi penciptaan
Operasi penghancuran
Operasi pemrosesan traversal
Operasi pencarian (table look-up)
Operasi sorting
2.3.1. PENCIPTAAN DAN PENGHANCURAN
Operasi penciptaan biasa disebut inisialisasi. Operasi ini untuk mempersiapkan struktur
data untuk operasi-operasi berikutnya. Operasi penghancuran menyatakan ketidak berlakuan
struktur data atau membebaskan memory, menyerahkan memory ke manajemen memory agar
11
dapat di pergunakan keperluan lain. Operasi penghancuran penting terutama bila struktur data di
implementasikan secara dinamis menggunakan pointer
2.3.2. PENYIMPANAN DAN PENGAMBILAN NILAI
Biasanya bahasa pemrograman menyediakan sintaks tertentu untuk penyimpanan dan
pengambilan nilai elemen pada posisi tertentu di array.
Contoh :
A[10] = 78, berarti penyimpanan nilai 78 ke posisi ke-10 dari array A
C = A[10], berarti pengambilan nilai elemen posisi ke-10 dari array A
2.3.3. PEMROSESAN TRANSVERSAL
Operasi pemrosesan transversal adalah pemrosesan mengolah seluruh elemen secara
sistematik.
2.3.4. PENCARIAN DI ARRAY (Table Look-Up)
Pencarian di array (table look-up) adalah proses pencarian suatu nilai di array. Klasifikasi
pencarian di array adalah :
1) Pencarian sekuen (sequential searching),yaitu:
i. Tanpa Boolean, terbagi:
Tanpa sentinen
Dengan sentine
ii. Menggunakan boolean
2) Pencarian secara biner / dikotom (binary = dichotomy searching).
2.4. PENGURUTAN ARRAY
Pengurutan atau sorting adalah proses yang paling sering di lakukan dalam pengolahan
data.pengurutan di bedakan menjadi dua, yaitu :
a. Pengurutan internal
Pengurutan dilakukan terhadap sekumpulan data di media memory internal komputer dimana
data dapat di akses elemennya secara langsung.
b. Pengurutan eksternal
12
Pengurutan data di memory sekunder. Biasanya data bervolume besar sehingga tidak mampu
dimuat semuanya di memori utama.
3. KEUNGGULAN DAN KELEMAHAN ARRAY
Keunggulan array adalah sebagai berikut :
1. Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat diacu
secara langsung tanpa melalui elemen-elemen lain.
2. Jika berada di suatu lokasi elemen, maka sangat mudah menelusuri ke elemen-elemen
tetangga, baik elemen pendahulu atau elemen penerus 3
3. Jika elemen-elemen array adalah nilai-nilai independen dan seluruhnya harus terjaga,
maka penggunaan penyimpanannya sangat efisien.
Kelemahan array adalah sebagai berikut :
Array mempunyai fleksibilitas rendah, sehingga tidak cocok untuk berbagai aplikasi karena
Array mempunyai batasan sebagai berikut :
1. Array harus bertipe homogen. Kita tidak dapat mempunyai array dimana satu elemen
adalah karakter, elemen lain bilangan, dan elemen lain adalah tipe-tipe lain
2. Kebanyakan bahasa pemrograman mengimplementasikan array statik yang sulit
diubah ukurannya di waktu eksekusi. Bila penambahan dan pengurangan terjadi
Terus-menerus, maka representasi statis
Tidak efisien dalam penggunaan memori
Menyiakan banyak waktu komputasi
Pada suatu aplikasi, representasi statis tidak dimungkinkan
Bila penambahan dan pengurangan terjadi terus menerus, maka representasi statis (array):
1. Tidak efisien dalam penggunaan memory
2. Menyiakan banyak waktu komputasi
3. Pada suatu aplikasi, representasi statis tidak di mungkinkan.
13
BAB III
SARAN DAN KESIMPULAN
Struktur data merupakan salah satu bahan dasar pembuatan program. Pemakaian struktur
data yang tepat di dalam proses pemrograman, akan menghasilkan algoritma yang jelas dan tepat
sehingga menjadikan program secara keseluruhan lebih sederhana. Array merupakan bagian dari
struktur data yaitu termasuk kedalam struktur data sederhana yang dapat di definisikan sebagai
pemesanan alokasi memory sementara pada komputer. Apabila kita membuat program dengan
data yang sudah kita ketahui batasnyamaka kita menggunakan Array (type data statis), namun
apabila datanya belum kita ketahui batasnya maka gunakan pointer (type data dinamis).
1. Array adalah suatu struktur yang terdiri dari sejumlah elemen yang memiliki tipe data
yang sama
2. Ketika kita mendeklarasikan array local (didalam fungsi) , jika tidak diberikan nilai, maka
isi dari array tidak akan ditentukan sampai nilai diberikan. Jika mendeklarasikan array
global (diluar semua fungsi ) maka isi dari array diinidialisasikan sebagai 0.
Contoh int matriks[5]
Maka setiap elemen array akan diinisialisakan sebagai nol
3. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi
(multi dimensi).
4. Array dinamis adalah array yang pengalokasi memorinya dapat diubah-ubah. Hal ini
terjadi karena array dinamis menggunakan pointer sebagai tempat pengalokasian memori.
5. Jenis array yang digunakan pada program adalah array dinamis dua dimensi,dan array
dinamis satu dimensi, karena ordo array dapat ditentukan pada saat program dijalankan.
Array dinamis membutuhkan pointer sebagai tempat pengalokasian memori
14
KATA PENGANTAR
Puji syukur kepada Tuhan yang Maha Esa yang kiranya telah memberikan kesehatan dan
pembelajaran sehingga penyusunan makalah ini telah selesai berkat pertolongan Tuhan dan kerja
keras. Dan kepada bapak asistent dosen struktur data saya mengucap syukur sebesar besarnya
kiranya telah diberikan pelajaran Struktur Data sehingga menambah wawasan saya makalah
yang berjudul “Array” ini.
Makalah ini di buat untuk mengganti absensi pada praktikum matakuliah struktur data
ketika saya tidak mengikuti kegiatan praktikum di karenakan saya izin. Semoga makalah ini
dapat berguna bagi teman-teman mahasiswa tanpa doa teman-teman mungkin makalah ini belum
selesai.
Mungkin makalah ini jauh diatas sempurna, jadi saya mohon maaf jika ada kesalahan
penulisan atau kurang berkenan dihati saudara kami mohon maaf atas kesalahan tersebut. Dan
semoga makalah ini membuat ilmu kita bertambah, saya berterimakasih kepada Bapak asisten
dosen struktur data beserta teman-teman mahasiswa.
Bogor, 20 Juni 2012Penulis
SAEPUL IMAN
15
DAFTAR ISI
Kata Pengantar....................................................................................................................... i
Daftar Isi................................................................................................................................ ii
BAB I DATA DAN STRUKTUR DATA.......................................................................... 1
1. Pengertian Data................................................................................................................. 1
1.1. Tipe Data Sederhana Tunggal.............................................................................. 1
1.2. Tipe Data Majemuk.............................................................................................. 3
2. Pengertian Struktur Data................................................................................................... 5
2.1. Pembuatan Struktur Data...................................................................................... 5
BAB II ARRAY................................................................................................................... 6
1. Pengertian Array............................................................................................................... 6
2. Karakteristik Array........................................................................................................... 6
2.1. Deklarasi Array.................................................................................................. 7
2.2............................................................................................................................... Jenis
Array.................................................................................................................... 8
2.3............................................................................................................................... Opera
si Dasar Pada Array............................................................................................. 11
2.4............................................................................................................................... Pengu
rutan Array........................................................................................................... 12
2.5............................................................................................................................... Keun
ggulan dan Kelemahan Array.............................................................................. 13
BAB III SARAN DAN KESIMPULAN............................................................................ 14
16
i
17
top related