48
LAPORAN PROJECT UAS STRUKTUR DATA Oleh: Anggi Tiara Citra Ekinsti 13410200122

Laporan Project Uas

Embed Size (px)

Citation preview

Page 1: Laporan Project Uas

LAPORAN PROJECT UAS

STRUKTUR DATA

Oleh:

Anggi Tiara Citra Ekinsti

13410200122

FAKULTAS TEKNOLOGI DAN INFORMATIKAINSTITUT BISNIS DAN INFORMATIKA STIKOM SURABAYA

2014

Page 2: Laporan Project Uas

I. Pemahaman Soal1. Mengakses file binary yaitu open,read,write,dll. Untuk membaca atau membuka

isi binary file yang telah diberikan.2. Mengurutkan record file secara ascending berdasarkan kodenya, lalu hasil dari

record yang sudah urut disimpan ke dalam file binary dengan nama “urutxx.dat” xx sesuai dari file berapa yang recordnya di urutkan. Mengurutkanya dapat dengan beberapa penyimpanan data sementara yaitu SLL,DLL,Binary Tree,dll. Dan dicatat waktu eksekusinya

3. Mencari sebuah record berdasarkan inputan kode nya, record yang dicari adalaha record sudah urut dari file yang menyimpan hasil pengurutan lalu dicatat waktu eksekusinya

4. Mencari record mulai record ke-x hingga record ke-y, dimana user akan menginputkan nilai record batas awal dan batas akhirnya, pencarian record ini dicari mulai dari record ke-0, dan dicatat waktu eksekusinya.

5. Menghapus SLL yang sudah terbentuk untuk penyimpanan data sebelumnya, lalu kembali melakukan pengaksesan file, atau memilih menu yang lainya.

II. Ide dan Algoritma Programide yang digunakan untuk mengerjakan project UAS ini adalah dengan

menggunakan penyimpanan data Single Link List (SLL), sedangkan penyajian program yang digunakan adalah dengan variable, class, structure, dan function. Adapun dalam program terdapat:1. Struct UAS yang digunakan untuk menampung sementara record-record dari file

binary yang belum urut untuk dibaca.2. Struct outs yang digunakan menampung sementara hasil data yang sudah urut

untuk di write/disimpan menjadi file yang berisi record-record yang telah urut, selain itu digunakan penampungan sementara untuk membaca file yang sudah urut.

3. Class nodeSLL digunakan untuk membentukan sebuah node.4. Class SLL digunakan untuk menguhubungkan node-node, terdapat destructor,

constructor, deteksi kosong, algoritma untuk mengurutkan record record menjadi node-node yang saling berhubungan dan telah sudah urut secara ascending, serta function untuk menampilkan hasil node-node SLL yang telah terhubung dan urut ke layar dan otomatis juga write record-record yang telah urut tersebut kedalam sebuah binary file.

5. Function bacadata untuk membuka binary file yang belum urut dengan mode read binary.

6. Function bacadata2 untuk membuka binary file yang telah urut dengan mode read binary.

Page 3: Laporan Project Uas

7. Function tulis untuk membuka binary file / membuat binary file yang telah urut dengan mode write binary.

8. Function cari digunakan untuk mencari record berdasarkan kodenya.9. Function cari2 digunkan untuk mencari range sebuah record berdasarkan record

ke-x hingga record ke-y10. Function tampil digunakan untuk menampilkan record-record dari file binary

yang belum urut ke layar.11. Main program memiliki 5 menu yaitu

1. Menampilkan isi binary file yang belum urut.2. Mengurutkan data dari binary file yang belum urut dan menampilkan hasilnya

ke layar serta secara otomatis menyimpanya dalam bentuk binary file, jika proses menampilkan dan menyimpan data telah selesai maka secara otomatis program akan menjalankan frstructor untuk menghapus SLL.

3. Mencari sebuah record berdasarkan kode dan menampilkanya di layar.4. Mencari range record dengan menginputkan record awal dan record akhir dan

menampilkanya di layar.5. Keluar dari program/exit.

Flowchart

Flowchart Global Program

END

Main program

FILE *baca;FILE *tulis;

FILE *baca2;int input,

pilih,pilih2,i=0,x,a,y,awal,akhir;int record;

char mulai[10];void tampil();

START

Page 4: Laporan Project Uas

Sub program utama

Yes

No

No

Yes

7

43

3

2

Output"pilih file yang ingin di urutkan:"; Input pilih;

Menu=2?

tampil

1

Yes

1

Menu=1?

output1. Tampilkan data2. Urutkan data dan tampilkan3. Cari data berdasarkan kode 4. Cari data berdasarkan record5. keluar dari program

Input menu;

Menu=5?

SLL q; clock_t

waktu,waktu2; double hsl; int menu;

START

No

output“pilih file (1,2,3,4,5,6,7) “

Input pilih;

END

Bacadata

Page 5: Laporan Project Uas

waktu=clock();

Bacadata

tulisdata

S=0;

S<record?

S++;

q.urut

Yes

No

q.print

2

fclose(baca); fclose(tulis);

waktu2=clock();

3

3

hsl= (double)(waktu2-waktu)/CLOCKS_PER_SEC;

q.~SLL

Output"waktu eksekusi adalah ",hsl

Menu=3?

Output “pilih file:" input pilih2; Output "masukkan kode data yang dicari” gets(mulai);

waktu=clock();

Bacadata2

5

4

Yes

8

No

Page 6: Laporan Project Uas

6

Bacadata2

Cari2

Waktu2=clock();

hsl= (double)(waktu2-waktu)/CLOCKS_PER_SEC;

Output"waktu eksekusi adalah ",hsl

7

Yes

No

8

6

waktu=clock();

Output “pilih file:" input pilih2; Output "masukkan data yang dicari dari record ke:";Input awal;Output "hingga record ke: ";Input akhir;

Menu=4?

Output"waktu eksekusi adalah ",hsl

Waktu2=clock();

hsl= (double)(waktu2-waktu)/CLOCKS_PER_SEC;

cari

5

No

Page 7: Laporan Project Uas

Class NodeSLL function nodeSLL

Next=NULL

END

START

END

nodeSLL()

public: char kode_s[10]; char jenis_s; bool status_s; short ukuran_s; int berat_s; long tinggi_s; float harga_s; double subtotal_s; long double total_s; char keterangan_s[56]; nodeSLL *next;

START

Page 8: Laporan Project Uas

Class SLL Function SLL (constructor)

Function ~SLL(destructor)

END

public: SLL();

~SLL(); bool kosong(); void tambah();

void urut(); void print();

private: nodeSLL *head,*tail;

START

Head=tail=NULL

END

START

START

END

hps=head;

nodeSLL *hps;

Head!=tail

head=head->next; delete hps; hps=head;

delete head; head=NULL; tail=NULL;

No

Yes

Page 9: Laporan Project Uas

Function kosong function urut

START

END

(head==tail && head == NULL)

Return(true)

Return(false)

No

Yes

START

baru= new nodeSLL();fread(&b,1,sizeof(b),baca); strcpy(baru->kode_s,b.kode); baru->jenis_s=b.jenis; baru->status_s=b.status; baru->ukuran_s=b.ukuran; baru->berat_s=b.berat; baru->tinggi_s=b.tinggi; baru->harga_s=b.harga; baru->subtotal_s=b.subtotal; baru->total_s=b.total; strcpy(baru->keterangan_s,b.keterangan);

UAS b; nodeSLL

*baru;

9

Page 10: Laporan Project Uas

9

Kosong?

head = tail = baru;

strcmp(baru->kode_s,head->kode_s)<0 ?

baru->next=head; head=baru;

strcmp(baru->kode_s,tail->kode_s)>0?

tail->next=baru; tail=baru;

nodeSLL *bantu;

bantu = head;

strcmp(bantu->next-

>kode_s,baru->kode_s)<0 ?

bantu = bantu->next;

baru->next = bantu->next; bantu->next = baru;

Main program

11

11

Main program

12

12

13

13

Yes

No

Yes

No

Yes

No

Page 11: Laporan Project Uas

III. Implementasi Program header program yang digunakan

-Iostream (Standard Input / Output Streams Library)

Classes :

| ios_base Base | ios | istream | ostream | iostream | ifstream | ofstream | fstream |

istringstream | ostringstream | stringtream | streambuf | filebuf | stringbuf |

Objects :

| cin | cout | cerr | clog |

Types :

| fpos : | streamoff | streampos | streamsize |

Manipulators :

| boolalpha | dec | endl | ends | fixed | flush | hex | internal | left | noboolalpha |

noshowbase | noshowpoint | noshowpos | noskipws | nounitbuf | nouppercase |

oct | resetiosflags | right | scientific | setbase | setfill | setiosflags | setprecision |

setw | showbase | showpoint | showpos | skipws | unitbuf | uppercase | ws |

-stdio.h

Library Functions :

| clearr() | fclose() | fccloseall() | fdopen() | fflush() | fgetc() | fgetchar() | fgetpos() |

fgets() | flushall() | fopen() | fprint() | fputc() | fputchar() | fputs() | fread() | free() |

freopen() | fscan() | fseek() | fsetpos() | ftell() | fwrite() | gets() | getw() | perror() |

printf() | puts() | putw() | rename() | rewind() | scanf() | unlink() |

Library Macroes :

| feof(f) | ferror(f) | fileno(f) | getch(f) | getchar(f) | putchar(f) | remove(path) |

Page 12: Laporan Project Uas

-stdlib.h

Library Functions :

| abs() | atof() | atoi() | atol() | div() | exit() | free() | ldiv() | malloc() | rand() | srand() |

system() |

Library Macroes :

| abs(x) | atoi(s) | random(num) | randomize() |

-string.h

Librari Functions :

| strcpy() | strcat() | strchr() | strcmp() | strlen() | struct yang digunakan

-conio.h

Library Functions :

| clrscr() | getch() | getche() | gotoxy() | khbit() | putch() |

-time.h

Mendefinisikan fungsi tanggal dan waktu penanganan

struct yang digunakan

Page 13: Laporan Project Uas

Menggunakan Single link list sebagai penyimpan data Class untuk membentuk node untuk SLL

Page 14: Laporan Project Uas

Class untuk membentuk rangkaian node menjadi single link list

Constructor dan destructor class SLL, constructor untuk membangun class SLL dimulai dimana belum ada node sama sekali sehingga pointer tail=head=null, destructor digunakan untuk memebrsihkan SLL agar SLL seperti keadaan semula dimana belum ada node yang terbentuk. Untuk membersihkan SLL dimana pointer hps=head, ketika head tidak sama dengan tail maka pointer head akan terus bergerak ke kanan dan pointer hps akan di hapus, setelah itu pointer hps akan diposisikan lagi

Page 15: Laporan Project Uas

sama dengan head. Jika head sama dengan tail maka berarti node hanya satu dan akan menghapus dirinya sendiri. Dan dengan begitu head=tail=NULL

Function deteksi kosong

Ketika head==tail dan head==NULL maka disitu akan dibaca keadaan tidak ada node sama sekali, dan jik benar akan mengembalikan nilai true, namun jika salah akan mengembalikan nilai false.

Function urut

Page 16: Laporan Project Uas

Akan terjadi pembentukan node baru dan pengiisan data pada node SLL dari struct UAS. Namun sebelumnya akan membuka file yang belum urut dan membaca file tersebut. Dapat dilihat penggunaan fread dimana syntax fread:Fread=(void*buffer,int n,jumlah byte,FILE *pointer)Keterangan:Buffer=pointer yang menunjuk ke alamat memoriJum_byte=jumlah byte yang akan dibaca atau disimpann=banyaknya blok data berukuran jum_bytepointer=pointer ke FILE yang berisi nilai keluaran dari fopen().

Jika SLL terdeteksi kosong maka pointer head dan tail akan menunjuk pada node baru, namun jika tidak akan dilakukan beberapa hal sebagai berikut:1. Sisip depan

Page 17: Laporan Project Uas

Akan dijalankan ketika nilai kode head > kode dari node baru, node baru akan disisipkan di depan head dan node baru akan menjadi head.

2. Sisip belakangAkan dijalankan ketika nilai kode tail<kode darinode baru, node baru akan disisipkan dibelakang tail dan node baru akan menjadi tail.

3. Sisip tengahKetika nomor satu dan dua tidak terpenuhi maka akan di lakukan sisip tengah, dimana akan dibentuk pointer baru yaitu pointer bantu. Pointer bantu->next akan bergerak ke kanan jika kode dari node baru lebih kecil dari kode yang node nya ditunjuk oleh pointer bantu->next, jika ada node yang ditunjuk oleh pointer bantu->next lebih besar maka perulangan akan berhenti dan akan terjadi penyisipan node baru pada rangkaian node SLL, node baru akan disispkan di belakang node yang ditunjuk oleh pointer bantu.

Pembandingan kode menggunakan strcmp yang berfungsi untuk membandingkan dua string. Beriut adalah syntaxnyaStrcmp(str1,str2);Keterangan:Str1>str2 maka nilai nya > 0Str1<str2 maka nilainya < 0Str1=str2 maka nilainya =0

Page 18: Laporan Project Uas

Function print

Page 19: Laporan Project Uas

Untuk menampilkan hasil SLL yang telah urut maka akan dibentuk pointer baru yang akan bergerak ke kanan untuk menampilkan semua isi SLL ke layar, selama pointer bantu!=NULL, selain itu akan menulis hasil pengurutan pada sebuah binary file dengan menggunakan fwrite, dimana syntax fwrite persis seperti fread hanya saja fwrite digunakan untuk menulis ke file.

Page 20: Laporan Project Uas

Function bacadata

Case 1: untuk membuka file data01.dat dengan mode read binary

Case 2: untuk membuka file data02.dat dengan mode read binary

Case 3: untuk membuka file data03.dat dengan mode read binary

Case 4: untuk membuka file data04.dat dengan mode read binary

Page 21: Laporan Project Uas

Case 5: untuk membuka file data05.dat dengan mode read binary

Case 6: untuk membuka file data06.dat dengan mode read binary

Case 7: untuk membuka file data07.dat dengan mode read binary

function bacadata2

Page 22: Laporan Project Uas

Sama seperti function bacadata hanya saja digunakan untuk membuka file binary dari data yang sudah urut.

Function tulisdata

Digunakan untuk membuka file data dengan mode write binary.

Page 23: Laporan Project Uas

Function cari

Akan menampilkan pencarian berdasarkan kode. Akan mencari dari record 0 hingga record terakhir, jika char index k dari kode sama dengan index k dari

Page 24: Laporan Project Uas

inputan kode maka varibel sign akan counter up, jika sign bernilai 10 maka dapat dipastikan semua index karakter sama sehingga akan dilakukan perintah untuk mencetak record tersebut.

Function cari2

Akan scan record 0 hingga terakhir dan akan menampilkan record yang berada di antara record yang diinginkan oleh user. Awal maksudnya adalah record yang dimulai untuk ditampilkan dan record akhir adalah record terakhir untuk ditampilkan, maka diluar range record awal dan record akhir tidak akan di tampilkan ke layar.

Page 25: Laporan Project Uas

Function tampil

Digunakan untuk menampilkan isi dari file yang belum urut.

Page 26: Laporan Project Uas

Main program

Page 27: Laporan Project Uas
Page 28: Laporan Project Uas

IV. Evaluasi Skill- lebih memahami penggunaan struct- lebih memahami penggunaan class- mengetahui beberapa cara untuk menyimpan memori secara efektif- lebih memahami pointer- lebih memahami SLL- mengerti cara mengakses file(open dan write)- mengetahui fungsi strcmp-lebih optimis

V. Listing Program

#include <iostream>#include <stdio.h>#include <conio.h>#include <string.h>#include <time.h>#include <stdlib.h>

FILE *baca;FILE *tulis;FILE *baca2;int input, pilih,pilih2,i=0,x,a,y,awal,akhir;int record;char mulai[10];void tampil();

struct UAS{ char kode[10]; char jenis; bool status; short ukuran; int berat; long tinggi; float harga; double subtotal; long double total; char keterangan[56]; //node *next; //nodeSLL();};

struct outs{

char kode_o[10];

Page 29: Laporan Project Uas

char jenis_o; bool status_o; short ukuran_o; int berat_o; long tinggi_o; float harga_o; double subtotal_o; long double total_o; char keterangan_o[56];

};/*================================Global=========================*/

struct nodeSLL{

public: char kode_s[10]; char jenis_s; bool status_s; short ukuran_s; int berat_s; long tinggi_s; float harga_s; double subtotal_s; long double total_s; char keterangan_s[56]; nodeSLL *next; nodeSLL();};

nodeSLL::nodeSLL(){

next=NULL;

}

/*=======================================Node=========================*/struct SLL{

private: nodeSLL *head,*tail;

public: SLL(); ~SLL();

bool kosong();

void tambah();

Page 30: Laporan Project Uas

void urut(); void print();

};

SLL::SLL(){

head=tail=NULL ;}

SLL::~SLL(){

nodeSLL *hps; hps=head;

while (head!=tail) { head=head->next; delete hps; hps=head; }

delete head; head=NULL; tail=NULL;}

bool SLL::kosong(){

if(head==tail && head == NULL) return(true); else return(false);}

void SLL::urut(){

UAS b; nodeSLL *baru; baru= new nodeSLL();

fread(&b,1,sizeof(b),baca); strcpy(baru->kode_s,b.kode);

Page 31: Laporan Project Uas

baru->jenis_s=b.jenis; baru->status_s=b.status; baru->ukuran_s=b.ukuran; baru->berat_s=b.berat; baru->tinggi_s=b.tinggi; baru->harga_s=b.harga; baru->subtotal_s=b.subtotal; baru->total_s=b.total; strcpy(baru->keterangan_s,b.keterangan);

if (kosong()) { head = tail = baru; } else { if(strcmp(baru->kode_s,head->kode_s)<0) { baru->next=head; head=baru; }

else if(strcmp(baru->kode_s,tail->kode_s)>0) { tail->next=baru; tail=baru; } else { nodeSLL *bantu; bantu = head; while(strcmp(bantu->next->kode_s,baru->kode_s)<0) { bantu = bantu->next; } ///---Tahap Penambahan Node Baru baru->next = bantu->next; bantu->next = baru; }

}

}

void SLL:: print(){ //nodeSLL c; nodeSLL *bantu; bantu = head; outs simpan;

if(bantu!=NULL) { //i=0; //while(bantu!=tail->next) for(int i=0;i<record;i++)

Page 32: Laporan Project Uas

{

printf("=====| DATA %d |=====\n", (i+1));

printf("Kode = %s\n", bantu->kode_s);

strcpy(simpan.kode_o, bantu->kode_s);

printf("Jenis = %c\n", bantu->jenis_s);

simpan.jenis_o = bantu->jenis_s;

printf("Status = %i\n", bantu->status_s);

simpan.status_o=bantu->status_s;

printf("Ukuran = %hd\n", bantu->ukuran_s);

simpan.ukuran_o=bantu->ukuran_s;

printf("Berat = %d\n", bantu->berat_s);

simpan.berat_o=bantu->berat_s;

printf("Tinggi = %u\n", bantu->tinggi_s);

simpan.tinggi_o=bantu->tinggi_s;

printf("Harga = %.20f\n", bantu->harga_s);

simpan.harga_o=bantu->harga_s;

printf("SubTotal = %.20lf\n", bantu->subtotal_s);

simpan.subtotal_o=bantu->subtotal_s;

printf("Total = %.20Lf\n", bantu->total_s);

simpan.total_o=bantu->total_s;

printf("Keterangan = %s\n", bantu->keterangan_s);

strcpy(simpan.keterangan_o,bantu->keterangan_s);

fwrite(&simpan,sizeof(simpan),1,tulis); cout << endl << endl;

bantu= bantu->next; //i++; }

} cout<< endl;

}

Page 33: Laporan Project Uas

/*=======================================SLL=========================*/

bacadata(){

switch(pilih){

case 1:baca = fopen("data01.dat", "r+b");record = 10;break;

case 2:baca = fopen("data02.dat", "r+b");record = 100;break;

case 3:baca = fopen("data03.dat", "r+b");record = 1000;break;

case 4:baca = fopen("data04.dat", "r+b");record = 10000;

break;

case 5:baca = fopen("data05.dat", "r+b");record = 100000;break;

case 6:baca = fopen("data06.dat", "r+b");record = 1000000;break;

case 7:baca = fopen("data07.dat", "r+b");record = 10000000;break;

}}

bacadata2(){

switch(pilih2){

case 1:baca2 = fopen("urut01.dat", "r+b");record = 10;break;

Page 34: Laporan Project Uas

case 2:baca2 = fopen("urut02.dat", "r+b");record = 100;break;

case 3:baca2 = fopen("urut03.dat", "r+b");record = 1000;break;

case 4:baca2 = fopen("urut04.dat", "r+b");record = 10000;

break;

case 5:baca2 = fopen("urut05.dat", "r+b");record = 100000;break;

case 6:baca2 = fopen("urut06.dat", "r+b");record = 1000000;break;

case 7:baca2 = fopen("urut07.dat", "r+b");record = 10000000;break;

}}

tulisdata(){

switch(pilih) { case 1: tulis=fopen("urut01.dat","w+b"); break;

case 2: tulis=fopen("urut02.dat","w+b"); break;

case 3: tulis=fopen("urut03.dat","w+b"); break;

case 4: tulis=fopen("urut04.dat","w+b"); break;

case 5:

Page 35: Laporan Project Uas

tulis=fopen("urut05.dat","w+b"); break;

case 6: tulis=fopen("urut06.dat","w+b"); break;

case 7: tulis=fopen("urut07.dat","w+b"); break;

}

}

void cari(){

outs cr; int k; int sign; int y,z; //SLL a;

for(int i=0; i<record; i++) { fread(&cr, 1, sizeof(cr), baca2); sign=0; for(k=0;k<=10;k++) {

if(int(cr.kode_o[k])== int(mulai[k])) { sign++; //y=i; }

else { break; }

} if (sign==10) { cout<< "data ditemukan"<<endl; printf("=====| DATA %d |=====\n", (i+1)); //int printf("Kode = %s\n", cr.kode_o); //string printf("Jenis = %c\n", cr.jenis_o); //char printf("Status = %i\n", cr.status_o); //bool

printf("Ukuran = %hd\n", cr.ukuran_o); //short printf("Berat = %d\n", cr.berat_o); //int printf("Tinggi = %u\n", cr.tinggi_o); //long printf("Harga = %.20f\n", cr.harga_o); //float printf("SubTotal = %.20lf\n", cr.subtotal_o); printf("Total = %.20Lf\n", cr.total_o); printf("Keterangan = %s\n", cr.keterangan_o); //cout << endl << endl;

Page 36: Laporan Project Uas

} }

fclose(baca2);}

void cari2(){

outs cr;

for(int i=0;i<record;i++) { fread(&cr, 1, sizeof(cr), baca2); //cout<< "data ditemukan"<<endl<<endl; if((i>=(awal-1))&&(i<=(akhir-1))) { printf("=====| DATA %d |=====\n", (i+1)); printf("Kode = %s\n", cr.kode_o); printf("Jenis = %c\n", cr.jenis_o); printf("Status = %i\n", cr.status_o);

printf("Ukuran = %hd\n", cr.ukuran_o); printf("Berat = %d\n", cr.berat_o); printf("Tinggi = %u\n", cr.tinggi_o); printf("Harga = %.20f\n", cr.harga_o); printf("SubTotal = %.20lf\n", cr.subtotal_o); printf("Total = %.20Lf\n", cr.total_o); printf("Keterangan = %s\n", cr.keterangan_o); cout << endl << endl; } }

fclose(baca2);}

void tampil(){

UAS keluar; //SLL a;

for(int i=0; i<record; i++) { //a.read(); fread(&keluar, 1, sizeof(keluar), baca);

printf("=====| DATA %d |=====\n", (i+1)); printf("Kode = %s\n", keluar.kode); printf("Jenis = %c\n", keluar.jenis); printf("Status = %i\n", keluar.status);

printf("Ukuran = %hd\n", keluar.ukuran); printf("Berat = %d\n", keluar.berat); printf("Tinggi = %u\n", keluar.tinggi); printf("Harga = %.20f\n", keluar.harga); printf("SubTotal = %.20lf\n", keluar.subtotal); printf("Total = %.20Lf\n", keluar.total); printf("Keterangan = %s\n", keluar.keterangan);

Page 37: Laporan Project Uas

cout << endl << endl; } fclose(baca);

}

/*=========================================fuction============================*/

int main(){

SLL q; clock_t waktu,waktu2; double hsl;

int menu;

do{

cout <<"1. Tampilkan data"<<endl<<"2. Urutkan data dan tampilkan"<< endl<<"3. Cari data berdasarkan kode"<<endl

<<"4. Cari data berdasarkan record"<<endl<<"5. keluar dari program"<<endl;

cin >> menu;

switch(menu) {

case 1: {

cout<< "pilih file (1,2,3,4,5,6,7) :" ;cin>> pilih ;bacadata() ;

tampil(); break; }

case 2: { cout<<"pilih file yang ingin di urutkan:"; cin>>pilih;

waktu=clock();

bacadata(); tulisdata();

for(int s=0;s<record;s++) {

q.urut();

} q.print();

Page 38: Laporan Project Uas

fclose(baca); fclose(tulis); waktu2=clock(); q.~SLL(); cout<<endl; hsl= (double)(waktu2-waktu)/CLOCKS_PER_SEC; cout<<"waktueksekusi adalah "<<hsl<<" ms"<<endl<<endl;

getch();

break; }

case 3: { cout<<"pilih file:"; cin>>pilih2; cout<<"masukkan kode data yang dicari"<<endl; gets(mulai); waktu=clock(); bacadata2(); cari(); waktu2=clock(); cout<<endl; hsl= (double)(waktu2-waktu)/CLOCKS_PER_SEC; cout<<"waktu eksekusiadalah "<<hsl<<"ms"<<endl<<endl; break; }

case 4: { cout<<"pilih file:"; cin>>pilih2; cout<<"masukkan data yang dicari dari record ke:"; cin>>awal; cout<<endl; cout<<"hingga record ke: "; cin>>akhir; cout<<endl; waktu=clock(); bacadata2(); cari2(); waktu2=clock(); cout<<endl; hsl= (double)(waktu2-waktu)/CLOCKS_PER_SEC; cout<<"waktu eksekusi adalah "<<hsl<<ms"<<endl<<endl; } }

}while(menu != 5);}

Page 39: Laporan Project Uas

PERNYATAAN KEJUJURAN

Program untuk project UAS ini saya buat dengan hasil usaha saya sendiri

dan diskusi dengan beberapa orang. Adapun ada sedikit potongan koding

yang mirip dengan dukan arif dikarenakan diskusi, yaitu kode pada

function tampil (mencetak menggunakan bahasa c / printf ) untuk

menampilkan isi file binary yang belum urut ke layar dan pada function

bacadata (fopen) namun disajikan dengan cara yang sesuai dengan

pemahaman saya sendiri.

Anggi Tiara Citra E