Tuesday 19 April 2011

Kategori: , ,

Membuat program Database Hotel sederhan dengan Menggunakan C++ (Linklist)

Hallo sobat warna, kali ini saya mau share contoh coding dari tugas akhir kemarin dan terselesainya ini juga ada bantuan teman untuk menyelesaikan dan alhasil bisa, dan berikut penejelasana sikat dan pengeritian apa itu linked, struct dll.

Pengertian
Linkedlist tidak lain adalah suatu struktur data yg merupakan suatu rangkaian atau daftar record berjenis sama. Kemudian dihubungkan melalui bantuan pointer. Pengalokasian daftar dapat dilakukan secara dinamis sehingga isi dari daftar dapat dimanipulasi.

Pengertian:
Struct adalah salah satu dasar penggunaan linked list. Apabila pemahaman akan struct sudah baik, maka penggunaan linked list akan semakin mudah.

Node            : Rangkaian beberapa simpul.
Single           : Artinya field pointer-nya hanya satu buah saja dan satu arah.
Linked List  : Artinya node-node tersebut saling terhubung satu sama lain.
Circular        : Artinya pointer next-nya akan menunjuk pada dirinya sendiri sehingga berputar.

Deklarasi:
Deklarasi node dibuat dari struct berikut ini: 
typedef struct TNode{
int data;
TNode *next;
};

Operator sizeof(); pada bahasa pemrograman C/C++ digunakan untuk mengetahui ukuran dari suatu tipe data, baik itu tipe data built-in seperti int, char, float, double maupun tipe data yang dibuat sendiri oleh programmer misal dengan menggunakan keyword struct, union, enum, dll. Operator unary sizeof(); adalah sebuah operator yang mengembalikan nilai ukuran dalam bytes dari suatu variable atau tipe data.

Contoh :
printf("1. int : %d\n",sizeof(int));
printf("2. char : %d\n",sizeof(char));
printf("3. float : %d\n",sizeof(float));
printf("4. double : %d\n",sizeof(double));

Fungsi strlen() :
Fungsi strlen(); digunakan untuk mengetahui panjang dari sebuah string dalam bahasa pemrograman C/C++. Panjang string disini, maksudnya jumlah/banyaknya karakter dalam string tidak termasuk null character '\0'.

Fungsi-fungsi String
Merupakan kumpulan fungsi-fungsi pustaka string yang prototype-nya berada pada file string.h
Fungsi strcpy() untuk menyalin nilai string.
Fungsi strlen() untuk mengetahui panjang nilai string.
Fungsi strcat() untuk menggabungkan nilai string.
fungsi scanf() berguna untuk meninput data baik berupa bilangan, karakter, ataupun kalimat secara terformat.

contoh :
%c : Membaca sebuah karakter
%s : Membaca sebuah string
%i, %d : Membaca sebuah bilangan bulat (integer, desimal)
%f, %e : Membaca sebuah bilangan pecahan (real, float)
%o : Membaca sebuah bilangan octal
%x : Membaca sebuah bilangan heksadesimal
%u : Membaca sebuah bilangan tak bertanda)

a. Menampilkan output ke layar monitor.
Fungsi printf() berguna untuk menampilkan semua jenis data (number, string, dan karakter).
Fungsi puts() digunakan untuk menampilkan data string dan secara otomatis akan pidah baris (new line).
Fungsi putchar() digunakan untuk menampilkan sebuah karakter.

b. Mengatur tampilan output.
Bentuk sintaks :
printf(”%m,nf”, var)

m : Menyatakan banyaknya digit angka
n  : Menyatakan banyaknya digit angka dibelakang koma
var : variabel bertipe float yang akan ditampilkan

Contoh
printf(”%5.2f”, nilai); ”berarti yang akan ditampilkan angka sebanyak 5 digit dan 2 digit angka dibelankang koma”

Dengan menggunakan #include <iostream.h>
Menampilkan output ke layar monitor

Bentuk sintaks
cout << var;
cout << konstanta;

Itu di atas tadi pengenalan tentang linklsit dan kawan-kawannya berikut ini fungsi-fungsi yang   kita akan gunakan dalam pembuatan Databae Hotel dengan menggunakan C++.

Library ionstream.h pagil fungsinya : cout,cin,gets
conio.h pagil fungsinya : Clrscr(),getch,
string.h pagil fungsinya : strcpy
stdlib.h pagil fungsinya : linklist, malloc(memory allocation).

Fungsi cout : dapat digunakan untuk menampilkan semua jenis data (numeric dan karakter) yang dapat berupa nilai, karakter ataupun konstanta.

Fungsi cin : berguna untuk menginput data berupa numerik, string, dan karakter. Var dapat lebih dari satu variabel (cin >> var >> var) dan dapat berupa karakter.

Format : cin.get.(var, sizeof(var)), penggunaan format ini untuk menginput string lebih dari satu kata atau seperti kita menekan spasi, tetapi akan terjadi kesalahan jika satu program digunakan lebih dari satu kali. Dan untuk menangani ini lebih baik menggunakan format cin.getline(var, sizeof(var)).

fungsi gets(): berguna untuk memasukkan data bertipe karakter, tanpa penggunaan format seperti scanf(), dan tidak dapat untuk menginput data numeric ataupun string.

fungsi getchar : berguna untuk membaca data yang bertipe karakter. Dengan menggunakan #include <iostream.h> bagi yang belum tahu fungsi iostream.h

Fungsi strcpy() untuk menyalin nilai string.
Fungsi strlen() untuk mengetahui panjang nilai string.
Fungsi strcat() untuk menggabungkan nilai string.

Berikut adalah contoh coding Database Hotel menggunakan C++:
/*supported by - Marcelo Evander Djela - 672010256/*
# include <iostream.h>
# include <conio.h>
# include <stdlib.h>
# include <string.h>
# include <stdio.h>



struct data {
int nomor;
char nama [20];
char alamat[30];
char pekerjaan[20];
char lm_sewa[5];
char harga[20];
struct data *n;
}*f;



void initial(){
f=NULL;
}


void add(int bil,
char nama[20],
char alamat[30],
char pekerjaan[20],
char lm_sewa[5],
char harga[20]
)
{
data *baru;
baru= new data;
baru->nomor = bil;
strcpy(baru->nama,nama);
strcpy(baru->alamat,alamat);
strcpy(baru->pekerjaan,pekerjaan);
strcpy(baru->lm_sewa,lm_sewa);
strcpy(baru->harga,harga);
if (f==NULL || f->nomor >bil)
{
baru->n = f;
f=baru;
}
else
{
data *t1,*t2;
t1=f;
while (t1 !=NULL)
{
if(t1->nomor <bil)
{
t2=t1;
t1=t1->n;
}
else break;
}



baru->n=t1; t2->n=baru;
}
cout<<"\t\t\t\tData telah ditambahkan. <<Press Enter>>";
}


data* cari(int bil)
{
data *t; t=f;
while(t!=NULL){
if(t->nomor == bil)
break;
else t = t->n;
}
return t;
}


void hapus(data *t1){
if (t1== f)
f= f->n;
else
{
data *t2;
t2 = f;
while (t2->n != t1)
{
t2 =t2->n;
}
t2->n = t1->n;
}
t1->n=NULL;
delete t1;
cout << "Data telah dihapus. <<Press Enter>>\n";
}


void cetak() {
if (f== NULL){
cout<< "Data belum di-Input, silahkan input data dulu. <<Press Enter>>\n";
return;
}
data *t;
t=f;
while(t!=NULL){
cout<<"Nomor Kamar : "<<t->nomor<<endl;
cout<<"Nama : "<<t->nama<<endl;
cout<<"Alamat : "<<t->alamat<<endl;
cout<<"Pekerjaan : "<<t->pekerjaan<<endl;
cout<<"Lama Sewa : "<<t->lm_sewa<<endl;
cout<<"Harga : Rp. "<<t->harga<<endl;
printf("\n\n");
t=t->n;
}
cout<<"\t\t\t\t\t\t<<Press Enter>>"<<endl;
}

void main()
{
initial();
int pil, nomor;
char nama[20];
char alamat[30];
char pekerjaan[20];
char lm_sewa[5];
char harga[20];
data *pos;

lbl:
clrscr();
printf("\n\n");
printf("\t\t TAS TAKE HOME ASD\n");
printf("\t\t PROGRAM DATABASE HOTEL\n");
printf("\t\t CREATE BY: 672010179 KUKOH R.NUGROHO\n");
do {
printf("\t\t +++++++++++++++++++++++++++++++++++++++++");
cout<<"\n\t\t : MENU\t\t\t\t\t:\n"
<<"\n\t\t : 1. TAMBAH DATA.\t\t\t:"
<<"\n\t\t : 2. UPDATE DATA.\t\t\t:"
<<"\n\t\t : 3. HAPUS DATA.\t\t\t:"
<<"\n\t\t : 4. LIHAT DATA.\t\t\t:"
<<"\n\t\t : 5. EXIT.\t\t\t\t:"
<<"\n\t\t :_______________________________________:";
cout<<"\n\n\t\t Masukan pilihan : ";cin>>pil;cout<<"\t\t\:";


clrscr();
switch(pil)
{

case 1:
cout<<"\nINSERT DATA";
cout<<"\n===========\n";
cout<<"Nomor Kamar : "; cin >> nomor;
cout<<"Nama : "; gets(nama);
cout<<"Alamat : "; gets(alamat);
cout<<"Pekerjaan : "; gets(pekerjaan);
cout<<"Lama Sewa : "; gets(lm_sewa);
cout<<"Harga : Rp. "; gets(harga);


add(nomor,nama,alamat,pekerjaan,lm_sewa,harga);
getch();
goto lbl;
break;


case 2:
clrscr();
cout <<"\nUPDATE:\n";
printf("===============\n\n");
cout <<"Update Nomor Kamar: ";cin >> nomor;
pos = cari(nomor);
if (pos !=NULL)
{
clrscr();
printf("Data Lama yang akan diubah,\n");
printf("===========================\n");
cout << "Nama : "<<pos->nama<<endl;
cout << "Alamat : "<<pos->alamat<<endl;
cout << "Pekerjaan : "<<pos->pekerjaan<<endl;
cout << "Lama Sewa : "<<pos->lm_sewa<<endl;
cout << "Harga : Rp. "<<pos->harga<<endl;
printf("\n");
printf("Input Data Baru\n");
printf("===========================\n");
cout << "Nama : "; gets(pos->nama);
cout << "Alamat : "; gets(pos->alamat);
cout << "Pekerjaan : "; gets(pos->pekerjaan);
cout << "Lama Sewa : "; gets(pos->lm_sewa);
cout << "Harga : Rp. "; gets(pos->harga);
cout << "\nData telah berhasil diupdate."<<endl;
cout << "\Pilih menu 4 untuk melihat perubahan data";
}
else


cout <<"\nMaaf data dengan Nomor Kamar "<<nomor<<" tidak ditemukan atau masih kosong,\n coba dengan yang lain.\n"<<endl;
getch();
goto lbl;
break;
case 3:
clrscr();
cout << "\nDELETE DATA:\n";
printf("===============\n\n");
cout << "Hapus Nomor : "; cin >> nomor;
pos = cari(nomor);
clrscr();
if(pos != NULL) hapus(pos);
else
cout <<" Maaf data dengan nomor "<<nomor
<<" tidak ada, coba lagi.\n";
getch();
goto lbl;
break;
case 4 :
clrscr();
cout <<"\nLIHAT DATA : \n";
printf("===============\n\n");
cetak();
getch();
goto lbl;
}
}
while (pil>0 && pil >5);
}

Berikut adalah hasil output dari contoh coding diatas, silahkan mencoba untuk mempelajari jalannya program, goodluck :)
Output

2 comments:

  1. gan kok gag bsa d compile ea ,,,?
    tlong d bntu, agr program'y bsa jln.... :D

    ReplyDelete