Anda di halaman 1dari 5

MODUL 1 : QUEUE

1. Queue
Queue pada Struktur Data atau antrian adalah sekumpulan data yang mana
penambahan elemen hanya bisa dilakukan pada suatu ujung disebut dengan
sisibelakang(rear), dan penghapusan(pengambilan elemen) dilakukan lewat ujung lain
(disebut dengan sisi depan atau front). Queue atau antrian prinsip yang digunakan adalah
“Masuk Pertama Keluar Pertama” atau FIFO (First In First Out).
STACK
Pengertian Stack atau Tumpukan adalah suatu stuktur data yang penting dalam stack
akan menjadi benda pertama yang dikeluarkan dari stack.
2. #define, digunakan untuk mendefinisikan suatu nilai tertentu kepada suatu nama
konstanta.
Typedef atau Type Definition adalah keyword untuk menciptakan alias atau nama lain.
Maxqueue digunakan untuk pembatas array akan tetapi sering dituliskan hanya dengan
tulisan MAX.
3. Array adalah kumpulan data bertipe sama yang menggunakan nama sama.
 Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara
satu variabel dengan variabel lain di dalam array dibedakan berdasarkan subscript.
Sebuah subscript berupa bilangan di dalam kurung siku.
4. Structure (struct) merupakan kumpulan variable-variable yang bertempat di suatu tempat
yang sama. Berbeda dengan array yang berisi kumpulan variable-variable yang bertipe
sama dalam satu nama, maka suatu structure dapat terdiri dari variabel-variabel yang
berbeda tipenya yang tersimpan dalam satu nama structure.
5. Void initializeiqueue disini adalah proses pembuatan suatu antrian kosong.
6. Perintah dibawah ini merupakan perintah yang menunjukan proses arithmetic modular
yang diterapkan pada antrian.
7.
8.

MODUL 2 : LINKED LIST

Single Linked List


1. a. Single Linked List merupakan suatu linked list yang hanya memiliki satu variabel pointer
saja. Dimana pointer tersebut menunjuk ke node selanjutnya. Biasanya field pada tail
menunjuk ke NULL.
b. Double Linked List
Double Linked List merupakan suatu linked list yang memiliki dua variabel pointer yaitu
pointer yang menunjuk ke node selanjutnya dan pointer yang menunjuk ke node
sebelumnya. Setiap head dan tailnya juga sama-sama menunjuk ke NULL.
c. Multiple Linked List
Multiple Linked List merupakan suatu linked list yang memiliki lebih dar 2 buat variabel
pointer
d. Circular Linked List
Circular Linked List merupakan suatu linked list dimana tail (node terakhir) menunjuk ke
head (node pertama). Jadi tidak ada pointer yang menunjuk NULL.
e. Single Linked List Non Circular (senarai berantai tunggal tidak berputar)

Sebelum membuat sebuah linked list, terlebih dahulu harus mendeklarasikan tipe d a ta
dan p oi nt er ya n g a k a n di gu n a ka n . Se la in it u ju ga h a r us m e nd ek la ra si ka
n li st -list yang nantinya akan digunakan.
2. Node/Self-referential objects (object yang mereferensikan dirinya sendiri) yang disebut
nodes, yang dihubungkan dengan links, membentuk kata “linked” list.
3. Pointer adalah penunjuk suatu variabel. Karena menunjuk suatu variabel, maka pointer
wajib memiliki alamat dari variabel yang ditunjuknya. Kadangkala dalam program yang
besar, penghematan memori wajib untuk dilakukan. Dengan mekanisme copy dan paste nilai
variabel satu kedalam variabel lain, akan sangat memboroskan memori. Dengan mekanisme
pointer, suatu variabel dalam suatu fungsi dapat diakses oleh fungsi yang lain.
4. Proses yang paling penting pada linked list adalah proses pembuatan node, sebab pada
proses inilah nantinya akan digunakan pada proses-proses selanjutnya. Tanpa adalnya node
tersebut program yang lainnya tidak akan dapat berjalan.
5. Pada kepala=new gerbong; disini adalah sebuah node dengan nama kepala.
Kepala->next==NULL; disini adalah pointer milik kepala diarahkan ke NULL.
Kepala->data=101; disini adalah isi field data dengan 101.
6. Program tersebut adalah untuk tambah depan. Didalam terdapat parameter yang
menyambungkan node baru dengan node kepala. Dan juga terdapat parameter yang
memindahkan kepala ke node baru.
7. Program tersebut adalah untuk menampilkan isi suatu node dengan cara mengakses field
yang ada di dalam node tersebut.
8. Fungsi ini bernama “hapusDepan”. Fungsi nya adalah untuk menghapus data yang berada
diawal list.
void hapusDepan()
{
linkedList *hapus;
char data;
if (kosong() == 0)
{
if (head->Next != NULL)
{
hapus = head;
data = hapus->NIM;
head = head->Next;
delete hapus;
}
else {
data = head->NIM;
head = NULL;
}
cout<<data<<" Data Sudah Di Delete \n";
}
else {
cout<<"Data Masih Kosong, Kembali Ke Menu \n"<<endl;
}
getch ();
}
Fungsi ini bernama “hapusBelakang”. Fungsi nya adalah untuk menghapus data yang berada
di paling akhir list.
void hapusBelakang() {
linkedList *hapus, *help;
char data;
if (kosong() == 0) {
if (head->Next != NULL) {
help = head;
while(help->Next->Next != NULL) {
help = help->Next;
}
hapus = help->Next;
data = hapus->NIM;
help->Next = NULL;
delete hapus;
}
else {
data = head->NIM;
head = NULL;
}
cout<<data<<"Sudah Terdelete"<<endl;
}
else {
cout<<"Data Masih Kosong, Kembali Ke Menu "<<endl;
}
getch ();
}
EVALUASI MODUL 4 : SORTING
1. Algoritma pengurutan Apung akan membandingkan elemen yang sekarang dengan
elemen berikutnya, pada pengurutan ascending jika nilai elemen sekarang > elemen
berikutnya, maka dilakukan proses penukaran. Misalkan terdapat L larik yang tiap
indeksnya k berisi data belum terurut dengan jumlah elemen n, maka untuk mendapatkan
larik yang terurut ascending algoritmanya secara umum.
2. for(int i=1; i<n; i++)
{
for(int j=n-1; j>=i; j--)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
}
3. Ide dasar pengurutan Seleksi adalah memilih elemen maksimum/minimum dari larik lalu
menempatkan elemen maksimum/minimum itu pada awal atau akhir larik. Selanjutnya
elemen awal/akhir tersebut “diisolasi” dan tidak disertakan dalam proses perbandingan
selanjutnya. Seperti pada algoritma pengurutan Apung, proses memilih nilai
maksimum/minimum dilakukan pada setiap pass. Jila larik berukuran n, maka jumlah
pass adalah n-1. Algoritma pengurutan Seleksi untuk mendapatkan larik yang terurut
ascending secara umum.
4. for(i=0; i<n-1; i++)
{
pos=i;
for(j=i+1; j<n; j++)
{
if(data[j]<data[pos])pos=j;
}
if(pos!=i) tukar(pos,i);
}
5. inspirasi dari algoritma pengurutan Sisip adalah seperti ketika mengurutkan kartu pada
permainan kartu. Metode pengurutan dengan cara menyisipkan elemen larik pada posisi
yang tepat. Pencarian posisi yang tepat dilakukan dengan menyisir larik. Selama
penyisiran dilakukan pergeseran elemen larik. Algoritma pengurutan Sisip untuk
mendapatkan larik yang terurut ascending secara umum.
6. for(i=1; i<n; i++)
{
temp=data[i];
j=i-1;
while(data[j]>temp && j>=0)
{
data[j+1]=data[j];
j--;
}
data[j+1]=temp;
}
7. Pada algoritma pengurutan Shell jarak antar dua elemen yang dibandingkan dan
ditukarkan. Langkah pertama, ambil elemen pertama dan bandingkan dengan elemen
pada jarak tertentu dari elemen pertama tersebut. Kemudian elemen kedua dibandingkan
dengan elemen lain dengan jarak yang sama seperti diatasnya. Demikian seterusnya
sampai seluruh elemen dibandingkan. Pada pass berikutnya proses diulang dengan
langkah yang lebih kecil, hingga proses dihentikan jika jarak sudah sama dengan satu.
Secara umum,
8. for(int w = n/2; w > 0;w=w/2) {
for(int x = w; x < n; x++) {
for (int y = x-w; y >= 0; y-=w) {
if(val[y+w] < val[y]) {
t=val[y+w];
val[y+w]=val[y];
val[y]=t;
}
}
}
}

EVALUASI MODUL V : SEARCHING


1. Pencarian sequential (pencarian beruntun) adalah membandingkan setiap elemen larik
satu per satu secara beruntun, mulai dari elemen pertama, sampai elemen yang dicari
ditemukan, atau seluruh elemen larik sudah diperiksa.
Pencarian binary (pencarian bagi dua) adalah membagi data atas dua bagian sebelum
melakukan pencarian. Untuk memudahkan proses pencarian elemenelemen data sudah
dalam kondisi terurut. Dalam proses pencarian Bagi Dua, diperlukan dua buah indeks
larik, yaitu indeks terkecil dan indeks terbesar.
2.

Anda mungkin juga menyukai