Modul Praktikum Struktur Data
Modul Praktikum Struktur Data
MODUL PRAKTIKUM
STRUKTUR DATA
Yani Sugiyani, MM., M.Kom.
Dyas Yudi Priyanggodo, M.Kom.
MODUL PRAKTIKUM STRUKTUR DATA
Teknik Informatika
MATERI 1
ARRAY
1.1. Array
Larik adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan
tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data pada suatu
larik disebut dengan elekmen-elemen larik. Letak urutan dari suatu larik
ditunjukkan oleh suatu subscript atau index
Deklarasi array (larik):
Keterangan :
tipe_data : menyatakan jenis tipe data elemen larik (int, char, float, dll)
nama_var_array : menyatakan nama variabel yang dipakai.
ukuran : menunjukkan jumlah maksimal elemen larik.
Contoh :
Int nilai[6]; char nama[3][20];
Nama[0]=”Yuni”;
Nama[1]=”Yani”;
Nama[2]=”Yono”;
for(i=0;i<3;i++)
{cout<<”Nama : ”; cin>>nama[i];}
Penugasan !!
Langkah tugas :
1. Cobalah contoh program 1
2. Jika r += y[n];di ganti dengan perintah r *= y[n]; apa hasilnya?
3. Lakukan input array y secara dinamis
main ()
{ int A [5]={20,9,1986,200,13};
int n,hapus;
clrscr();
cout<<"Data yang lama\n";
for (n=0;n<5;n++)
{
cout<<" "<<A[n];
}
cout<<" data yang ingin dihapus : ";
cin>>hapus;
cout<<"\nData yang baru : \n";
for (n=hapus-1;n<5-1;n++)
{
A[n]=A[n+1];
}
for (n=0;n<4;n++)
{
cout<<" "<<A[n];
}
getch()}
int main(){
//deklarasi array
int A[10]={12,24,13,25,10,11,21,20,15,18};
int bil;
cout<<endl;
//pencarian data
for (int c=0;c<10;c++)
{
if (A[c]==bil)
{ cout<<"Nilai yang anda cari terdapat pada indek ke- "<<c;
break;
}
} getch(); }
3 Yani Sugiyani, MM.,M.Kom
Dyas Y. Priyanggodo, M.Kom.
MODUL PRAKTIKUM STRUKTUR DATA
Teknik Informatika
Keterangan :
tipe_data : menyatakan jenis tipe data elemen larik (int, char, float, dll)
nama_var_array : menyatakan nama variabel yang dipakai.
batas_baris : menunjukkan jumlah maksimal elemen baris.
batas_baris : menunjukkan jumlah maksimal elemen kolom.
Nama[0][0]=”Yuni”;
Nama[0][1]=”Yani”;
3. Inputan secara dinamis
Contoh:
int A[3][2];
for(int j=0;j<3;j++)
1 2 1 2 2 4
+ =
3 4 3 4 6 8
5 6 5 6 10 12
MATERI 2
STRUKTUR / STRUCT
2.1. Struct
Deklarasi struktur
struct nama_struktur
{
type1 element1;
type2 element2;
type3 element3;
.
.
} ;
struct nama_struktur nama_object;
Cara mendeklarasikan :
struct Mahasiswa {
char nama [20];
float ip;
int semester;
} mhs;
ATAU
struct Mahasiswa{
char nama[20];
float ip;
int semester;
};
struct Mahasiswa mhs;
ATAU
struct Mahasiswa{
char nama[20];
float ip;
int semester;
};
Mahasiswa mhs;
Contoh 1 :
a. D3
b. S1
Output :
2. Buat sebuah program untuk menghitung gaji harian pegawai, bila diketahui
ketentuannya sebagai berikut :
Gaji per jam = 500
Bila jumlah jam kerja hari itu > 7 jam, maka kelebihannya dihitung lembur yang
besarnya 15 x gaji per jam.
Langkah pengerjaan :
1. Inputkan identitas pekerja, meliputi nama dan no.identitas kerja
2. Inputkan berapa jam ia bekerja setiap hari nya dari hari senin s/d jumat
3. Lalu jumlahkan dan tampilkan jam kerjanya
4. Output berupa total gaji
Struct of array 1 :
#include <stdio.h>
typedef struct Mahasiswa {
char NIM[8];
char nama[50];
float ipk;
}mhs;
void main()
{
mhs biodata[3];
……
……
……
}
artinya struct mahasiswa digunakan untuk mhs[0], mhs[1], dan mhs[2]
Struct of array 2 :
#include <stdio.h>
struct Mahasiswa {
char NIM[8];
char nama[50];
float ipk;
};
void main()
{
struct mhs biodata[3];
……
……
……
}
artinya struct mahasiswa digunakan untuk mhs[0], mhs[1], dan mhs[2]
Output :
MATERI 3
STACK
3. Stack
TUJUAN
1. Mamahami konsep stack
2. Memahami operasi dasar stack
3. Dapat mengaplikasikan stack dalam kasus nyata
PENJELASAN
Bab ini akan membahas konsep stack dan operasi – operasi yang terlibat
di dalamnya. Kemudian diteruskan dengan studi kasus pembuatan program
sederhana yang mengaplikasikan konsep stack.
PRAKTEK
Stack dibuat menggunakan array dan sebuah variabel bertipe integer yang
menunjukkan posisi puncak stack. Dalam stack terdapat beberapa fungsi untuk
operasi dasar, yaitu push() dan pop(). Percobaan kali ini menerangkan stack
dalam potongan – potongan kode program. Langkah pertama adalah membuat
array untuk stack. Dalam kode ini menggunakan asumsi
bahwa stack digunakan untuk tipe data integer saja.
Dalam fungsi ini terdapat pemeriksaan, bila nilai top sama dengan atau
lebih dari MAX
berarti stack sudah penuh.
Fungsi yang kedua adalah pop() yang digunakan untuk operasi mengeluarkan isi
stack. Fungsi akan mengembalikan nilai stack paling atas. Dalam fungsi ini juga
terdapat pemeriksaan bila nilai top sama dengan atau kurang dari 0 berarti stack
kosong.
Selain dua fungsi di atas bisa pula ditambahkan dengan fungsi show() untuk
menampilkan isi
stack dan fungsi menu() untuk menampilkan daftar menu pilihan.
Tugas !!!
1. Dari program diatas, implementasikan fungsi show() secara visual.
2. Dengan menggunakan fungsi push() dan pop() pada stack, buatlah
program untuk membalik kalimat.
MATERI 4
QUEUE
4. Queue
TUJUAN
1. Mamahami konsep queue
2. Memahami operasi dasar queue
3. Dapat mengilustrasikan cara kerja queue menggunakan model circular
array
PENJELASAN
Bab ini akan membahas konsep queue dan operasi – operasi yang terlibat
di dalamnya. Kemudian diteruskan dengan pembuatan queue dengan
menggunakan model circular array sehingga penyimpanan lebih efisien.
PRAKTEK
Queue (antrian) dibuat menggunakan array dan dua buah variabel bertipe
integer yang menunjukkan posisi awal dan akhir antrian. Dalam queue
terdapat beberapa fungsi untuk operasi dasar, yaitu store() dan retrieve().
Percobaan kali ini menerangkan queue dalam potongan – potongan kode
program.
Langkah pertama adalah membuat array untuk queue. Dalam kode ini
menggunakan asumsi bahwa queue digunakan untuk tipe data integer saja.
Contoh 1 Deklarasi queue
Index posisi ambil biasanya terletak di awal, dan index posisi simpan terletak di
akhir.
void store(int e) {
if(spos == MAX) {
printf("antrian penuh\n");
return; }
queue[spos++] = e; }
int qretrieve(void) {
if(rpos == spos) {
printf("antrian kosong\n");
return 0; }
return queue[rpos++]; }
Selain dua fungsi di atas bisa pula ditambahkan dengan fungsi show() untuk
menampilkan isi queue dan fungsi menu() untuk menampilkan daftar menu
pilihan.
Contoh 4 program queue
#define max 20
{ int head;
int tail;
char data [15][20]; //menampung 15 data dgn jumlah string max 20 huruf
}antrian;
queue antri;
void inisialisasi()
{ antri.head = antri.tail = -1;}
int isFull()
{ if (antri.tail==max-1)
return 1;
else
return 0; }
int isEmpty(){
if (antri.tail==-1)
{ antri.head=-1;
return 1;}
else
return 0; }
void dequeue()
{ cout<<"data terambil"<<" "<<antri.data[antri.head]<<endl;
for (int i=antri.head;i<=antri.tail;i++)
strcpy (antri.data[i],antri.data[i+1]);
antri.tail--; }
void clear()
{ antri.head=antri.tail=-1;
cout<<"semua data terhapus.\n";}
void print()
{ for (int i=0;i<=antri.tail;i++)
cout<<"\ntampil data "<<antri.data[i]<<endl<<endl;}
int main()
{ int pil;
inisialisasi();
char dt[20];
do{
cout<<"1. input\n";
cout<<"2. delete\n";
cout<<"3. print\n";
cout<<"4. clear\n";
cout<<"5. exit\n";
cout<<"Pilihan : ";cin>>pil;
switch(pil){
case 1: if(isFull() != 1){
cout<<"Data = ";cin>>dt;
enqueue(dt);}
else
cout<<"\nSudah penuh!\n";
break;
case 2: if(isEmpty() != 1)
dequeue();
else
cout<<"\nMasih kosong!\n";
break;
case 3: if(isEmpty() != 1)
print();
else
cout<<"\nMasih kosong!\n";
break;
case 4: clear();
cout<<"\nSudah kosong!\n";
break;
}
getch();
} while(pil != 5);
getch();
}
MATERI 5
SORTING (PENGURUTAN)
5. Sort
Banyak sekali algoritma pengurutan yang ada, tetapi disini akan kita pelajari 3
metode yaitu:
PENGURUTAN GELEMBUNG
Contoh 1 :
contoh 2:
PENGURUTAN MAKSIMUM/MINIMUM
Contoh 3:
PENGURUTAN SISIP
Contoh 4:
Penugasan !!
Langkah :
MATERI 6
SEARCHING ( PENCARIAN )
6. Searching
Ada beberapa pencarian yang akan kita uraikan disini:
Konsep : membandingkan setiap elemen larik satu per satu secara urut
(beruntun), mulai dari elemen pertama sampai dengan elemen yang
terakhir.
Contoh 1:
Contoh 2:
Contoh 3:
Penugasan !!
1. Buatlah sebuah program dengan pencarian karakter dalam sebuah nama.
Langkah tugas :
1. Contoh program sebelumnya
2. Data yang diinputkan berupa nama siswa
3. Lakukan input array secara dinamis
4. Jika pencarian tidak ditemukan maka beri keterangan
2. Buatlah sebuah program dengan pencarian data nama dalam sebuah kelas.
Langkah tugas :
1. Contoh program sebelumnya
2. Lakukan input array secara dinamis
3. Pencarian dilakukan dengan menggunakan nama siswa
Contoh 4: