Uploaded by User82677

Makalah Rangkuman Materi Struktur Data

advertisement
MAKALAH
STRUKTUR DATA
Dosen Pengampuh Mata kuliah : Lukman Anas, S.Kom.,M.T.
RANGKUMAN MATERI PERKULIAHAN
OLEH :
NURMAN AWALUDDIN
NIM : 105841109119
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH
MAKASSAR TAHUN 2021
i
KATA PENGANTAR
Puji syukur kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga
saya dapat menyelesaikan tugas makalah yang berjudul rangkuman materi perkuliahan ini
tepat pada waktunya.
Adapun tujuan dari penulisan dari makalah ini adalah untuk memenuhi tugas mata kuliah
struktur data. Selain itu, makalah ini juga bertujuan untuk menambah wawasan tentang
materi perkuliahan yang telah diberikan bagi para pembaca dan juga bagi penulis.
Saya mengucapkan terima kasih kepada bapak Lukman Anas, S.Kom.,M.T., selaku dosen
mata kuliah struktur data yang telah memberikan tugas ini sehingga dapat menambah
pengetahuan dan wawasan sesuai dengan bidang studi yang saya tekuni.
Saya juga mengucapkan terima kasih kepada semua pihak yang telah membagi sebagian
pengetahuannya sehingga saya dapat menyelesaikan makalah ini.
Saya menyadari, makalah yang saya tulis ini masih jauh dari kata sempurna. Oleh karena itu,
kritik dan saran yang membangun akan saya nantikan demi kesempurnaan makalah ini.
Selayar, 11 Januari 2021
Penulis
ii
DAFTAR ISI
JUDUL
i
KATA PENGANTAR
ii
DAFTAR ISI
iii
BAB I PENDAHULUAN
1
A. Latar Belakang masalah
B. Rumusan masalah
C. Tujuan
1
1
1
BAB II PEMBAHASAN
A.
B.
C.
D.
E.
F.
G.
H.
2
Data Dan Struktur Data
Deklarasi Data
Array
String
Record
List
Tree
Terminology Stack
2
2
3
4
5
6
7
8
BAB III PENUTUP
13
A. Kesimpulan
B. Saran
13
13
DAFTAR PUSTAKA
14
iii
BAB I
PENDAHULUAN
A. Latar Belakang
Pandemi Covid-19 memberikan dampak yang sangat besar bagi seluruh umat manusia , Karena
sangat berbahaya terhadap kesehatan. Kita diharuskan menjalani karantina dan melakukan “Social
Distancing” akibat-nya seluruh sektor menjadi tertutup utama-nya sector ekonomi, pendidikan dan
pariwisata, berbagai kegiatan dan rencana menjadi terhalang bahkan bisa saja dibatalkan.
Pandemi Covid-19 di Indonesia masih tak kunjung usai. Imbasnya, mahasiswa mengikuti
pembelajaran jarak jauh atau kuliah daring. Pelaksanaan kuliah daring secara penuh tentunya menjadi
hal baru untuk sebagian orang. Hal ini membawa kecemasan dalam menjalani proses perkuliahan. Tidak
adanya tatap muka langsung dengan pengajar atau dosen membuat materi yang dibeikan kurang bisa
dipahami, oleh karena itu perlu adanya saran untuk menambah pemahaman mahasiswa.
B. Rumusan Masalah
1. Apa yang dimaksud dengan tipe data?
2. Apa saja bagian – bagian dari struktur data?
3. Apa itu Stack?
4. Bagaimana cara penerapan dan deklarasi stack?
C. Tujuan Pembahasan
1. Memaparkan kembali materi yang telah disampaikan pada perhkuliahan jarak jauh atau
daring sehingga dapat membantu dalam proses belajar.
2. Memahami terminologi yang terkait dengan struktur data stack.
3. Memahami operasi-operasi yang ada dalam stack.
1
BAB II
PEMBAHASAN
A. DATA DAN STRUKTUR DATA
Data adalah fakta berupa angka, karakter, symbol, gambar, tanda-tanda, isyarat,
tulisan, suara, bunyi yang merepresentasikan keadaan sebenarnya yang selanjutnya
digunakan sebagai masukan suatu Sistem Informasi. Jenis data sederhana antara
lain :
a. Numerik, terdiri dari :
 Numerik integer (bilangan bulat)
 Numerik real (bilangan riil)
b. Karakter, terdiri dari :
 Alfabet : a .. z, A .. Z
 Angka : 0 .. 9
 Simbol khusus : + ? ‘ ! [ ] { } … dll
c. Boolean (logika), terdiri dari :
 True
 False
Identifier dalam bahasa pemrograman, item data diidentifikasi menurut
namanya, bukan menurut alamat lokasinya dalam memori, Identifier akan
merupakan konstanta jika ia selalu dikaitkan dengan nilai data yang sama. Identifier
akan merupakan variabel jika nilai datanya yang terkait bisa berubah.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi
kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun
kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak
oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan
catatan (record). Beberapa struktur data :





Array (larik)
String
Record
List (daftar)
Tree
SIMPLE DATA TYPE
DATA STRUCTURES
 Kombinasi dari item data
individual
 Membentuk item data lain
 Item data individual
B. DEKLARASI DATA
a. Jenis data konstanta dan variabel harus didefinisikan dalam program
sehingga :


operasi yang tepat dapat dijalankan pada nilai data dan
Jumlah ruang penyimpanan yang tepat bisa ditentukan
2
b. Statement untuk mendefinisikan jenis data disebut declarative statement
c. Beberapa bahasa pemrograman memiliki sintaks pendeklarasian yang
berbeda
d. Beberapa contoh program (pendeklarasian data) yang akan diberikan
ditulis dalam pseudo-code. Contoh sebagai berikut:
Constants
pi = 3.141592654
Variables
i, qty
harga_satuan, harga_beli
status
nama
:
:
:
:
integer
real
boolean
character(25)
D. ARRAY (LARIK)
a. Array 1 Dimensi





Set item data yang disusun secara baik menjadi rangkaian dan diacu atau ditunjuk
oleh satu identifier
Contoh : Nilai = (56 42 89 65 48)
Item data individual dalam array bisa ditunjuk secara terpisah dengan menyatakan
posisinya dalam array itu
1) Nilai(1) menunjuk 56
2) Nilai(2) menunjuk 42
Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam
array (disebut juga subscript / indeks)
Dekarasi array 1 dimensi :
Variables
Nilai
A
: array [1..5] of integer
: array [1..4] of real
b. Array 2 Dimensi





Variabel bisa digunakan sebagai subscript, misalnya Nilai(i).
1) Jika i = 2 maka menunjuk ke Nilai(2) yaitu 42
2) Jika i = 4 maka menunjuk ke Nilai(4) yaitu 65
Item data individual dalam suatu array sering disebut elemen
Matriks
1) Array yang hanya berisi bilangan dan tidak ada data alfabetisnya
Klasifikasi Array
1) Array 1 dimensi
2) Array multi dimensi
Deklarasi array 2 dimensi :
Variables
A
: array [1..5, 1..2] of integer
3
c. Array Multi Dimensi


Mempunyai elemen-elemen yang disusun ke dalam baris dan kolom dan digunakan
sebagai tabel data
Contoh : Nilai ujian dari mahasiswa satu kelas untuk beberapa mata kuliah bisa
ditempatkan dalam array 2 dimensi.
d. Penanganan Array





Metode dasar penanganan array :
1) Mencari nilai terbesar
2) Mencari nilai terkecil
3) Menghitung nilai rata-rata
4) Menghitung nilai total
5) Menghitung jumlah nilai di bawah rata-rata
Menyortir Array (Sort)
1) Buble sort
2) Straight selection sort
Mencari/Meneliti Array (Search)
1) Linear search
Contoh : Nilai ujian mahasiswa akan dibaca dalam array. Kemudian akan
ditampilkan nilai terbesar, nilai terkecil, nilai rata-rata, nilai total, dan jumlah nilai
di bawah rata-rata.
Tahapan penanganan array
1) Input nilai data ke dalam array
2) Mengkalkulasi nilai terbesar, terkecil, total, dan rata-rata
3) Mengkalkulasi jumlah nilai di bawah rata-rata
4) Menampilkan hasilnya (output)
E. STRING
a. Rangkaian karakter yang ditangani sebagai unit data tunggal
b. Contoh (string literal) :
 “ABC, 32fl2. 3h”
 “Kucing dalam karung”
c. Contoh (variabel string) :
 A = “Universitas”
 B = “Gunadarma”
d. Berada dalam bentuk array karakter 1 dimensi
e. Fixed-length string (String yang panjangnya tetap)
 Mempunyai jumlah tempat karakter yang tetap yang tersedia (bisa digunakan)
untuk penyimpanan data
4
posisi karakter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
isi
A N D R I A M R I
I N A
J O K O
D E D I
komentar
string ke 1
string ke 2
string ke 3
string ke 4
string ke 5
Variables
nama : string[5]
f. Variable-length string (String yang panjangnya berubah-ubah)
 Memberi data sejumlah spasi (ruang) sesuai yang ia perlukan
posisi karakter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
24
25
isi
A N D R I * A M R I * I N A * J O K O * A L *
komentar
string ke 1
string ke 2
string ke 3
string ke 4 string ke 5 tempat sisa
Variables
nama : string
g. Operasi Pada String
 Concatenation
1. Penggabungan dua atau lebih string
2. Contoh :
A = “Universitas”
B = “Gunadarma”
C = A + B
maka
C = “UniversitasGunadarma”

Substring
1. Mengambil bagian dari suatu string
2. Contoh :
A = “Universitas”
B = “Gunadarma”
C = Left(A, 3)
D = Right(B, 5)
E = Substr(A, 4, 5)
maka
C = “Uni”
D = “darma”
E = “versi”
F. RECORD
a.
b.
c.
d.
Seperti array 1 dimensi
Terdiri dari serangkaian item data yang terkait
Item data berurutan yang ada dalam record bisa mempunyai jenis yang berbeda
Contoh : Mengorganisasikan 3 item data yang berbeda ke dalam struktur data
tunggal
 NIP
: string(8)
 Nilai
: real
 Lulus
: Boolean
e. Deklarasi Record
5
mahasiswa : record
NIP
: string(8)
Nilai : real
Lulus : boolean
end record
Setiap elemen memiliki identifier sendiri dan Elemen dari suatu record disebut field
f. Penunjukan ke setiap field dari suatu record bisa dilakukan dengan :
1) Notasi “dot” (titik)
Begin
mahasiswa.NPM := ‘51292215’
mahasiswa.Nilai := 90.5
mahasiswa.Lulus := True
End
2) Notasi “with”
Begin
with mahasiswa
do
NPM := ‘51292215’
Nilai := 90.5
Lulus := True
end with
End
g. Array Record(Tabel)


Kumpulan dua atau lebih record
Deklarasi Array Record :
Variable
Mahasiswa : Array [1..5] of record
NIP
: string(8)
Nilai : real
Lulus : boolean
End record
G. LIST
a. Memberikan cara yang fleksibel untuk penanganan item data secara urut
b. Perubahan terhadap urutan tersebut dapat dicapai (dilakukan) dengan perpindahan
data yang minimal dan kehilangan ruang penyimpanan yang sedikit
c. Contoh : Kalimat "Ahmad does not like cake" dituliskan sebagai suatu list, seperti
berikut :
d. Beberapa istilah


Datum : item data dalam list
Pointer : penunjuk yang menyambungkan item data satu dengan yang lain
6





Node / elemen : elemen dari suatu list yang terbentuk dari datum dan pointer
Terminator : pointer terakhir dari list
Start pointer : menyatakan tempat datum pertama
Free storage pointer : menyatakan di mana datum berikutnya bisa mengarah
atau menuju.
List dapat dideklarasikan sebagai sebuah array record :
Variable
kalimat : Array [1..7] of record
Datum : string
Next
: integer
End record
e. Operasi List



Deletion : penghapusan elemen suatu list, Ketika elemen suatu list dihapus,
tempat penyimpanan yang telah dikosongkan dapat digunakan lagi
Insertion : penyisipan elemen ke dalam suatu list
Search : pencarian elemen dalam suatu list.
H. TREE
a. Struktur data hirarki
b. Dikonstruksi menggunakan aturan preseden untuk item data, misal : menggunakan
rangkaian alfabet atau numerik
c. Beberapa Istilah :
 Node : elemen dari suatu tree. Setiap node memiliki (sedikitnya) dua pointer
yaitu left pointer dan right pointer.
 Root node : datum pertama yang ditempatkan dalam tree
7
 Parent node : node yang memiliki node di bawahnya (sub-node)
 Child node : node yang berada di bawah parent
 Leaf node : node yang tidak mempunyai child
d. Contoh : bilangan-bilangan ini (56 42 89 65 48) ditempatkan ke dalam tree
e. Catatan :
 Node paling kiri berisi bilangan terkecil
 Node paling kanan berisi bilangan terbesar
I. TERMINOLOGI STACK
a. Pengertian Stack
Stack merupakan sebuah kumpulan data yang diletakkan di atas data lainya, seperti sebuah
tumpukan. Dengan demikian, stack merupakan salah satu struktur data yang menerapkan
prinsip LIFO (Last In First Out). Dimana elemen yang terakhir disimpan dalam stack, menjadi
elemen yang pertama diambil. Untuk meletakkan sebuah elemen pada bagian atas dari
stack, maka dilakukan operasi push. Sedangkan untuk memindahkan sebuah elemen dari
tempat atas tersebut dalam sebuah stack, maka dilakukan operasi pop.
8
b. Operasi Pada Stack

Create
Merupakan operator yang berfungsi untuk membuat sebuah stack kosong
struct STACK {
int top;
float data[5];
};
float dta;
struct STACK stackbaru;

IsEmpty
Merupakan operator yang berfungsi untuk menentukan apakah suatu stack merupakan
stack kosong. Tanda bahwa sebuah stack kosong adalah Top bernilai kurang dari nol (-1).
bool isempty() {
if (stackbaru.top==1) return true;
else return false;
}
 IsFull
Merupakan operator yang digunakan untuk memeriksa apakah stack yang ada sudah
penuh. Stack akan penuh jika puncak stack terletak tepat dibawah jumlah maksimum
yang dapat ditampung stack (Top = MAX_STACK-1).
bool isfull() {
if (stackbaru.top==maxstack) return
true;
else return false;
}
 Push
Merupakan operator yang berfungsi untuk menambahkan satu elemen ke dalam stack
dan tidak dapat dilakukan jika stack dalam keadaan penuh.
void push(float dta) {
if (isfull()==false) {
puts("stack penuh");
} else {
stackbaru.top++;
stackbaru.data[top]=dta;
}
}
 Pop
Merupakan operator yang berfungsi untuk mengeluarkan satu elemen teratas dari
dalam stack dengan syarat stack tidak dalam kondisi kosong.
void pop() {
if (isempty()==false) {
cout<<"data kosong";
} else {
cout<<"data yang terambil :
"<<stackbaru.data[top]<<endl;
9
stackbaru.top--;
}
}

Clear
Fungsi yang digunakan untuk mengosongkan stack dengan cara mengeset Top dengan 1. Jika Top bernilai kurang dari nol maka stack dianggap kosong.
void clear () {
top=-1
}
 Retrieve
fungsi yang digunakan untuk melihat nilai yang berada pada posisi tumpukan teratas.
void print() {
for (int i=0; i<=top; i++) {
cout<<stackbaru.data[i]<<"
";
}
}
c. Pointer Sebagai Penunjuk Stack
Selain menggunakan indeks, untuk menunjuk sebuah Top atau posisi teratas dari stack,
dapat juga digunakan pointer sebagai berikut.
 Membuat Stack Dengan Pointer
int S[10], *Top, *BatasAtas
Top = &S[-1];
BatasAtas = &S[10];
 Proses Push
if (Top < BatasAtas)
Top++;
*Top = X;
else
printf(“Stack Penuh”);
 Proses Pop
if (Top > &A[-1])
X= *Top;
Top --;
else
printf(“Stack Kosong”);
d. Representasi Proses Stack
Stack adalah salah satu dari contoh struktur data yang terdiri dari satu collection, yang juga
menerapkan prinsip LIFO. Bila stack tersebut menggunakan array satu dimensi, maka stack
tersebut dapat diilustrasikan sebagai berikut :
10
diatas diilustrasikan ada sebuah indeks array yang masih kosong pada awal pembuatan stcak
dimana n[10], variabel Top berada pada -1 yang menunjukkan indeks masih dalam keadaan
kosong.
Pada gambar 4.3 adalah keadaan ketika stack sudah diisi data. Pada kondisi ini data pertama
yang diinputkan adalah S[0]=11, data kedua S[1]=7, data ketiga S[2]=15, data keempat
S[23]=23. Kondisi Top sudah berubah menjadi data yang terakhir diinputkan (data keempat)
sehinggan Top[3] X=23. Variabel Top digunakan sebagai indeks untuk menunjuk nomor
elemen array yang berisi nilai stack yang berada paling kanan atau Top, yang ditunjukan
dengan angka 3. Variabel X bertipe integer digunakan sebagai perantara, dimana data yang
akan disimpan kedalam stack harus berasal dari X. Demikian juga data yang baru diambil dari
dalam stack harus diterima terlebih dahulu oleh variabel X, kemudian baru diberikan ke
variabel lain untuk diolah.
Oleh karena itu, jika ada instruksi PUSH, maka data baru (yang diambil dari isi variabel X) akan
disimpan dalam elemen S[4] sehingga indeks Top harus diarahkan ke posisi no.4. Artinya, Top
maju terlebih dahulu satu langkah ke S[4], kemudian baru mengisi nilai pada S[4]. Sedangkan
jika ada instruksi Pop, maka yang akan diambil adalah isi dari S[3] dan datanya akan disimpan
terlebih dahulu dalam variabel X, kemudian indeks Top menjadi mundur satu langkah
sehinggaakan menunjuk S[2].
e. Double Stack
Double Stack atau Stack Ganda adalah dua stack yang berada dalam satu array. Satu array
digunakan untuk dua stack dimana dasar Stack1 berada pada sisi indeks yang terkecil dan
dasar Stack2 berada pada sisi indeks yang terbesar. Sama halnya dengan Single Stack, Double
Stack juga menerapkan prinsip LIFO (Last in Firt Out)
Gambar diatas adalah ilustrasi indeks array pada double stack. Padastack 1 kondisi data
pertama yang diinputkan adalah S[0], data kedua S[1], data ketiga S[2] dan Top=data input
11
terakhir S[2]. Sedangkan pada stack 2 data pertama adalah S[9], data kedua S[8], data ketiga
S[7], data keempat S[6] dan Top=data input terakhir S[6].
f. Operasi Dasar Pada Double Stack
 Inisialisasi
Proses awal adalah proses menyiapkan indeks penunjuk stack untuk pertama kali. Pada
tahap ini ditetapkan Top1=-1 (sama seperti single stack) dan Top2=banyak jumlah data
void AWAL (void)
{
Top1 = -1;
Top2 = n;
}
 Is Empty
Sama dengan single stack, yaitu proses pengecekan stack dalam kondisi kosong

if(top1==-1) return true;
Is Full
if(top2==n) return true;
Sama dengan single stack, yaitu proses pengecekan stack dalam kondisi kosong
int full(void){
if(top1+1>=top2){
return true;
}

Push (Stack1 dan Stack2)
Proses mengisi data pada stack1 maupun stack2
void PUSH1 (void)
{
Top1 = Top1 + 1;
S[Top1] = X;
}

void PUSH2 (void)
{
Top2 = Top2 - 1;
S[Top2] = X;
Pop (Stack1 dan Stack2)
Proses mengambil data pada stack1 maupun stack2
void POP1 (void)
{
X = S[Top1];
Top1 = Top1 - 1;
}
void POP2 (void)
{
X = S[Top2];
Top2 = Top2 + 1;
}
12
BAB III
PENUTUP
A. KESIMPULAN
Materi yang telah dipelajari selama perkuliahan daring ini berlangsung yaitu sebagai berikut :
1.
2.
3.
4.
5.
6.
7.
8.
Data Dan Struktur Data
Deklarasi Data dan macam – macam tipe data
Array
String
Record
List
Tree
Stack pembahasan dan contoh deklarasinya dalam program
B. SARAN
Saran saya, baiknya kita sebagai mahasiswa hendaknya kita memahami betul tentang
materi perkuliahan yang diberikan sehingga dalam membuat makalah, meringkas, erangkum
maupun meresensi sesuai dengan kaidahnya, dan juga dapat menyusunnya dengan cara
sistematis agar mudah di pahami.
13
DAFTAR PUSTAKA
Materi perkuliaahan Struktur data.ppt
Materi perkuliahan mengenai stack dan deklarasinya
https://www.bbc.com/indonesia/majalah-53220630
https://www.slideshare.net/AJENGAMALIASAFITRI/makalah-rangkuman-ajeng
https://bocahkampus.com/cara-membuat-makalah
https://www.kompas.com/edu/read/2020/11/14/132920571/3-tantangan-mahasiswa-saatkuliah-daring
14
Download