12.07.2015 Views

Modul Praktikm Struktur Data.pdf

Modul Praktikm Struktur Data.pdf

Modul Praktikm Struktur Data.pdf

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

DAFTAR ISIDAFTAR ISI........................................................................................................iDAFTAR PROGRAM ........................................................................................iBab 2. POINTER................................................................................................ 1Bab 3. ARRAY ................................................................................................... 33.1. Array Satu Dimensi................................................................................ 33.2. Array Dua Dimensi ................................................................................ 4BAB 4 STRUCTURE........................................................................................ 8Bab 5 LINKED LIST........................................................................................ 105.1 Single Linked List.................................................................................... 115.2 Double Linked List .................................................................................. 135.3 Circular Doubel Linked List..................................................................... 13Bab 6. STACK .................................................................................................. 156.1 Definisi Stack........................................................................................... 156.2 Stack dengan Array.................................................................................. 15DAFTAR PROGRAMContoh Program 1:............................................................................................... 1Contoh Program 2 :.............................................................................................. 2Contoh Program 3 :.............................................................................................. 2Contoh Program 4 :.............................................................................................. 3Contoh Program 5 :.............................................................................................. 5Contoh Program 6................................................................................................ 9Contoh Program 7 :............................................................................................ 11Contoh Program 8 :............................................................................................ 16i


Bab 2. POINTERPointer merupakan tipe data berukuran 32 bit yang berisi satu nilai yangberpadanan dengan alamat memori tertentu. Sebagai contoh, sebuah variabel Pbertipe pointer bernilai 0x0041FF2A, berarti P menunjuk pada alamat memori0041FF2A. Pointer dideklarasikan seperti variabel biasa dengan menambahkantanda * (asterik) yang mengawali nama variabel.Bentuk Umum: namaVariabel;Contoh :float * px;Statement di atas mendeklarasikan variabel px yang merupakan pointer.Penyebutan tipe data float berarti bahwa alamat memori yang ditunjuk oleh pxdimaksudkan untuk berisi data bertipe float.Contoh Program 1:Output Program 2 :1


Contoh Program 2 :Output Program 2 :Contoh Program 3 :Output Program 3 :2


Bab 3. ARRAYArray adalah suatu struktur yang terdiri dari sejumlah elemen yang memilikitipe data yang sama. Elemen-elemen array tersusun secara sekuensial dalammemori komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensiataupun banyak dimensi (multi dimensi).3.1. Array Satu DimensiArray Satu dimensi tidak lain adalah kumpulan elemen-elemen identik yangtersusun dalam satu baris. Elemen-elemen tersebut memiliki tipe data yangsama, tetapi isi dari elemen tersebut boleh berbeda.Elemen ke- 0 1 2 3 4 5 6 7 8 9Nilai 50 35 10 15 23 11 25 34 23 32Bentuk umum:n = jumlah elemen NamaArray[n] = {elemen0, elemen1, elemen2,.....,n};Contoh Program 4 :/* Program Mencari bilangan terkecilDan terbesar di dalam array */#includevoid main(){ int x[10]={50, 35, 10, 15, 23, 11, 25, 34, 23, 32};int i;int maks = -1000; //asumsi paling minimumint min = 1000; //asumsi paling maksimumfor (i=0; imaks){maks= x[i];}if(x[i]


Output Program 4 :Nilai maksimum : 50Nilaia minimum : 103.2. Array Dua DimensiArray dua dimensi sering digambarkan sebagai sebuah matriks, merupakanperluasan dari array satu dimensi. Jika array satu dimensi hanya terdiri darisebuah baris dan beberapa kolom elemen, maka array dua dimensi terdiri daribeberapa baris dan beberapa kolom elemen yang bertipe sama sehingga dapatdigambarkan sebagai berikut:0 1 2 3 4 5 60 10 21 23 43 45 78 651 45 43 65 12 21 12 212 32 34 23 56 54 34 453 11 12 32 23 56 76 45Bentuk umum: NamaArray [m][n];Atau NamaArray [m][n] = { {a,b,..z},{1,2,...,n-1} };Contoh :double matrix[4][4];bool papan[2][2] = { {true,false},{true,false} };Pendeklarasian array dua dimensi hampir sama dengan pendeklarasian arraysatu dimensi, kecuali bahwa array dua dimensi terdapat dua jumlah elemenyang terdapat di dalam kurung siku dan keduanya boleh tidak sama.Elemen array dua dimensi diakses dengan menuliskan kedua indeks elemennyadalam kurung siku seperti pada contoh berikut://papan nama memiliki 2 baris dan 5 kolombool papan[2][5];4


papan[0][0] = true;papan[0][4] = false;papan[1][2] = true;papan[1][4] = false;Contoh Program 5 :/* Program Penjumlahan 2 Buah Matriks 2 x 2 */#include#include#define Nmaks 10typedef int matrik[Nmaks][Nmaks];void main(){ int n,i,j;Matrik A,B,C;cout


clrscr();cout


Output Program 5 :LATIHAN:1. Buat penjumlahan matrik ordo 3x32. Buat perkalian matrik ordo 2x23. buat perkalian matrik ordo 3x37


BAB 4 STRUCTUREStructure adalah kumpulan elemen-elemen data yang digunakan menjadi satukesatuan. Masing-masing elemen data tersebut dikenal dengan sebuah ield. Fielddata tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupunfield-field tersebut berada dalam satu kesatuan, masing-masing field tersebut tetapdapat diakses secara individual.Bentuk umumContoh :struct namastruct{ field1; field2; field3;};struct mahasiswa{char nim[11];char nama[30];char alamat[50];float ipk;};Untuk menggunakan structure, tulis nama structure beserta dnegan fieldnya yangdipisahkan dengan tanda titik (“.”). Misalnya Anda ingin menulis nim seorangmahasiswa ke layar maka penulisannya yang benar adalah sebagai berikut :cout


Contoh Program 6/*Mengisi Biodata dan Nilai IPK mahasiswa*/#includestruct mahasiswa{char nim[15];char nama[30];char alamat[50];float ipk;};void main(){mahasiswa mhs;cout


Bab 5 LINKED LISTPada bab sebelumnya dibahas mengenai variabel array yang bersifat statis dimanaukuran dan urutannya sudah pasti. Serta ruang memori yang dipakai tidak dapatdihapus bila array tersebut sudah tidak digunakan lagi pada saat programdijalankan. Penyelesain permasalahn tersebut dapat dilakukan denganmenggunakan variabel pointer. Tipe data pointer bersifat dinamis, variabel akandialokasikan hanya pada saat dibutuhkan dan sesudah tidak dibutuhkan dapatdirelokasikan kembali.Setiap ingin menambah data selalu menggunakan variabel pointer baru, yang akanmengakibatkan membutuhkan banyak pointer. Permasalahan ini dapat dipecahkandengan menggunakan satu variabel pointer saja untuk menyimpan banyak datadengan metode Linked List. Linked List adalah salah satu bentuk struktur data,berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambungmenyambung,dinamis dan terbatas.Bentuk umum :typedef struct telmtlist{infotype info;address next;}elmt list;infotype sebuah tipe terdefinisi yang menyimpan informasi sebuah elemen listnext adddress dari elemen berikutnya (sulsesor)10


5.1 Single Linked ListPengertian :• Single : artinya field pointer-nya hanya satu buah saja dan satu arah sertapada akhir node, pointernya menunjuk NULL• Linked List : artinya node-node tersebut saling terhubung satu sama lain.• Setiap node pada linked list mempunyai field yang berisi pointer ke nodeberikutnya, dan juga memiliki field yang berisi data.• Node terakhir akan menunjuk ke NULL yang akan digunakan sebagaikondisi berhenti pada saat pembacaan isi linked list.Pembuatan Single Linked List dapat menggunakan 2 metode :• LIFO (Last In First Out), aplikasinya : StackSuatu metode pembuatan Linked List dimana data yang masuk palingakhir adalah data yang keluar paling awal. Penambahan (insert) simpuldilakukan melalui belakang, yang dikenal dengan istilah INSERT.• FIFO (First In Last Out), aplikasinya : QueueSuatu metode pembuatan Linked List dimana data yang masuk paling awaladalah data yang keluar paling awal.Penambahan (insert) simpul dilakukandi depan.Contoh Program 7 :/* Membuat Single Linked List */#include#include#include11


#include#define Nil NULL#define info(P) P->info#define next(P) P->next#define First(L) (L)typedef int InfoType;typedef struct telmtlist *address;typedef struct telmtlist{InfoType info;Address next;}elmtlist;typedef address list;void BuatLinked(list *L){First(*L) = Nil;}list NodDaru(int m){list n;n = (list) malloc(sizeof (elmlist));if (n != NULL){info(n) m;next(n) = Nil;}}return n;void SisipSenarai (list *L, list t, list p){if (p ==Nil){t->next = *L;*L = t;}else{t->next = p->next;p->next = t;}}void CetakSenarai(list L){list ps;for (ps=L; ps!=Nil; ps=ps->next){cout


int mail(){list pel;list n;int I,k,nilai;CiptaSenarai(&pel);coutk;for(i=1; i


UpdateiDelete NowDelete HeadClear: fungsi untuk mengubah elemen yang ditunjuk oleh now denganisi dari sesuatu.: fungsi untuk menghapus elemen yang ditunjuk oleh now. Jikayang dihapus adalah elemen pertama dari linked list (head),head akan berpindah ke elemen berikut.: fungsi untuk menghapus elemen yang ditunjuk Head. Headberpindah ke elemen sesudahnya.: fungsi untuk menghapus linked list yang sudah ada. Fungsi iniwajib dilakukan bila anda ingin mengakhiri program yangmenggunakan linked list. Jika anda melakukannya, data-datayang dialokasikan ke memori pada program sebelumnya akantetap tertinggal di dalam memori.14


Bab 6. STACK6.1 Definisi StackStack adalah tumpukkan dari benda. Suatu tumpukkan item, dimana dapatmemasukkan item baru dan menghapus item yang terakhir. Konsep utama LIFO(Last In Firt Out), benda yang terakhir masuk dalam stack akam menjadi bendayang pertama kali dikeluarkan dari stack.CompoCompoVCDCompoVCDVCDTVTVTVTVDari gambar diatas ketika akan mengambil barang, maka barang yang pertamakali diambil adalah compo kemudian VCD dan TV. Di C++, ada dua carapenerapan prinsip stack, yakni dengan array dan linked list. Operasi –operasidalam stack adalah :Push untuk menambahkan item pada tumpukan paling atasPop untuk mengambil item teratasClear untuk mengosongkan stackIsEmpty untuk memeriksa apakah stack kosongIsFull untuk memeriksa apakah stack sudah penuhRetreive untuk mendapatkan nilai dari item tersebut.6.2 Stack dengan Arraysesuai dengan sifat stack, pengambilan / penghapusan di elemen dalam stackharus dimulai dari elemen teratas.Operasi-operasi pada Stack dengan ArrayIsFullFungsi digunakan untuk memeriksa apakah stack yang ada sudah penuh. Stackpenuh jika puncak stack terletak tepat di bawah jumlah maksimum yang dapatditampung stack (Top = MAX_STACK -1)PushFungsi yang digunakan untuk menambahkan sebuah elemen ke dalam stack dantidak bisa dilakukan jika stack sudah penuh15


IsEmptyFungsi yang digunakan untuk menentukan apakah stack kosong atau tidak. Tandabahwa stack kosong adalah Top bernilai kurang dari nol.PopFungsi yang digunakan untuk mengambil elemen teratas dari stack dengan syaratstack tidak kosongClearFungsi yang digunakan untuk mengosongkan stack dengan cara mengeset Topdengan -1. Jika Top bernilai kurang dari nol maka stack dianggap kosong.RetrieveFungsi yang digunakan untuk melihat nilai yang berada pada posisi tumpukanteratas.Contoh Program 8 :/* Program untuk Insert (Push) Nilai dan Delete(Pop) Nilai dalam Stack */#include #include#include#define MAX 10void push (int stack[], int *top, int value);void pop (int stack[], int *top, int *value);void main(){int stack[MAX];int top = -1;int n, value;do{do{coutvalue;push(stack, &top, value);cout


while (n = = 1){pop(stack, &top, &value);cout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!