28 March 2011

BASIS DATA 1

Posted by BHAYANG RATU WAHYUNUR [1103051]
 for  TUGAS BASIS DATA 1
TEKNIK INFORMATIKA 1B

Sebelum membuat database, anda terlebih dahulu harus menginstall aplikasi POSTGRES.
DATABASE PERPUSTAKAAN
Langkah 1
Masuk dan jalankan program postgres sql shell terlebih dahulu.
Masukan
Ø  Server =Localhost
Ø  Database = Postgres
Ø  Port = 5432
Ø  Password = ***** (password yang anda masukan saat pertama install postgres)

Menjalankan Postgres

Langkah 2
Kemudian buat terlebih dahulu databasenya dengan nama Perpustakaan.
Dengan syntax seperti ini :
postgres=# create database perpustakaan;

Membuat Database Perpustakan


Langkah 3
Koneksikan ke Database perpustakaan dengan syntax seperti ini :
postgres=# \c perpustakaan;

Menggunakan Database Perpustakaan

Langkah 4
Buatlah table data mahasiswa seperti ini :
1.    TABLE MAHASISWA
NO.
NPM
NAMA
JURUSAN
KELAS
ALAMAT
1.
1103051
Bhayang Ratu
Teknik Informatika
1B
Cijerokaso
2.
1105677
Zed Maulana
Manajemen Informatika
1A
Sariasih 4
3.
1103053
Daniel Tambunan
Teknik Informatika
1B
Sarijadi blok 8
Dengan syntax seperti ini :
postgres=# create table mahasiswa(NO int,NPM int,NAMA varchar(30),JURUSAN varchar(30),KELAS varchar(10),ALAMAT varchar(30));
lalu
perpustakaan=# insert into mahasiswa values (‘1’,’1103051’,’Bhayang Ratu’,’Teknik Informatika’,’1B’,’Cijerokaso’);
perpustakaan=# insert into mahasiswa values (‘2’,’1105677’,’ Zed Maulana’,’Managemen Informatika’,’1A’,’Sariasih 4’);
perpustakaan=# insert into mahasiswa values (‘3’,’1103053’,’Dani Permanadani’,’Akuntasi’,’1A’,’Sarijadi blok 8’);
perpustakaan=# select*from mahasiswa;

Hasilnya seperti ini :


Table Data Mahasiswa



Langkah 5
Buatlah table data buku seperti ini :
2.    TABEL BUKU
NO.
KODE
JUDUL BUKU
PENGARANG
TAHUN TERBIT
PENERBIT
1.
133DA
Belajar PHP
Andi Odang
2000
Erlangga
2.
132EA
Seni Pemograman WEB
Dudung
2001
Ganeca
3.
122WA
Matematika Diskrit
Rinaldi Munir
2009
Informatika


Dengan syntax seperti ini :
postgres=# create table buku(NO int,KODE varchar(10),JUDUL_BUKU varchar(30),PENGARANG varchar(30),TAHUN_TERBIT int,PENERBIT varchar(30));
lalu
perpustakaan=# insert into buku values(‘1’,‘133DA’,’ Belajar PHP’, Andi Odang’,’ 2000,’ Erlangga’);
perpustakaan=# insert into buku values (‘2’,’ 132EA’,’ Seni Pemograman WEB’,’ Dudung’,’2001’,’Ganeca’);
perpustakaan=# insert into buku values (‘3’,’ 122WA’, Matematika Diskrit’,’Rinaldi Munir’,’2009’,’Informatika’);
perpustakaan=# select*from buku;

Hasilnya seperti ini :


Table Data Buku





Langkah 6
Buatlah table peminjaman seperti ini :
3.    TABEL PEMINJAMAN
NO.
HARI
TANGGAL
PUKUL
1.
SENIN
2011-03-28
7.30
2.
SENIN
2011-03-28
7.33
3.
SELASA
2011-03-29
09.00

Dengan syntax seperti ini :
postgres=# create table peminjaman(NO int,HARI varchar(10), TANGGAL date, PUKUL real);

lalu

perpustakaan=# insert into peminjaman values(‘1’,’SENIN’,’2011-03-28’,’07.30’);
perpustakaan=# insert into peminjaman values(‘2’,’SENIN’,’2011-03-28’,’07.33’);
perpustakaan=# insert into peminjaman values(‘3’,’SELASA’,’2011-04-29’,’09.00’);

perpustakaan=# select*from peminjaman;


Hasilnya seperti ini : 


Table Data Peminjaman





Langkah 7
Buatlah table peminjaman seperti ini :
4.    TABEL PENGEMBALIAN
NO.
HARI
TANGGAL
PUKUL
1.
SELASA
2011-04-29
9.10
2.
RABU
2011-04-30
8.15
3.
KAMIS
2011-05-01
11.15

Dengan syntax seperti ini :
postgres=# create table pengembalian(NO int,HARI varchar(10), TANGGAL date, PUKUL real);

lalu

perpustakaan=# insert into pengembalian values(‘1’,’SELASA’,’2011-04-29’,’09.10’);
perpustakaan=# insert into pengembalian values(‘2’,’RABU’,’2011-04-30’,’08.15’);
perpustakaan=# insert into pengembalian values(‘3’,’KAMIS’,’2011-05-01’,’11.15);

perpustakaan=# select*from pengembalian;


Hasilnya seperti ini :

Table Data Pengembalian

Langkah 8
Buatlah table peminjaman seperti ini :
5.    TABEL DENDA
NO.
TELAT
HARI SEKARANG
TANGGAL SEKARANG
DENDA
1.
2 Hari
SENIN
2011-04-29
Rp. 1.000
2.
5 Hari
SABTU
2011-06-10
Rp. 5.000
3.
2 Minggu
SELASA
2011-05-25
Rp. 10.000

Dengan syntax seperti ini :
postgres=# create table denda(NO int,TELAT varchar(20),HARI_SEKARANG varchar(20), TANGGAL_SEKARANG date, DENDA varchar(30));

lalu

perpustakaan=# insert into denda values(‘1’,’2 Hari’,’SENIN’,’2011-04-29’,’Rp.1.000’);
perpustakaan=# insert into denda values (‘2’,’5 Hari’,’SABTU’,’2011-06-10’,’Rp.5.000’);
perpustakaan=# insert into denda values (‘3’,’2 Minggu’,’SELASA’,’2011-05-25’,’Rp. 10.000);

perpustakaan=# select*from denda;


Hasilnya seperti ini :

Table Data Denda

BAB 1 PENGANTAR STRUKTUR DATA



Tujuan Struktur Data
Kuliah ini mempelajari dasar-dasar ilmu komputer agar dapat melakukan perancangan dan pemilihan struktur data yang sesuai, melakukan analisis pada algoritma yang dibuat dan pemrogramannya.

Referensi:
1.      Deshpande and Kakde, 2004, C & Data Structures, Charles River Media.
2.      Fitriasari, N.S., 2010, Handout Struktur Data, Jurusan Teknik Informatika – Politeknik Pos Indonesia.
3.      Fitriasari, N.S., Hamidin D., 2011, Handout Algoritma dan Pemrograman, Jurusan Teknik Informatika – Politeknik Pos Indonesia.
4.      Korsh J. and Garrett L., 2007, Data Structures, Algorithms and Program Style Using C
5.      Rachmat A., 2007, Handout Struktur Data, Prodi Teknik Informatika, UKDW.


1.      Pendahuluan
Bagaimana cara mengatasi masalah implementasi data dengan komputer?
·         Pemahaman masalah secara menyeluruh dan persiapan data
·         Keputusan operasi-operasi yang dilakukan terhadap data
·         Penyimpanan data-data pada memori sehingga tersimpan dan terstruktur secara logis, operasinya efisien
·         Pengambilan keputusan terhadap bahasa pemrograman mana yang paling cocok untuk jenis data yang ada

Struktur data adalah: model logika/matematik yang secara khusus mengorganisasikan data. Sebuah model harus dapat mencerminkan keterhubungan data dengan dunia nyata dan bentuknya sederhana. Dua jenis struktur data adalah sebagai berikut:
1.      statis – struktur yang tidak berubah : array, record, himpunan
array adalah struktur data yang diproses melalui indeksnya.  contoh
2.      dinamis – struktur yang berubah seperti list/senarai, queue/antrian,tumpukan/stack.
Contoh: list berkait/senarai struktur data yang diproses melalui alamat kepala (awal).
  info : tempat untuk datanya
  next:menyimpan alamat berikutnya:
  struktur dinamis dimana ukurannya boleh bertambah pada saat eksekusi program

Dalam struktur data terdapat 3 hal yang dideskripsikan yaitu:
1.      kumpulan objek data
2.      operasi-operasi dasar terhadap objek data
3.      hubungan antar objek data
Struktur data dapat dinyatakan sebagai tipe data abstrak (abstrak data type) krn implementasinya tersembunyi dari pemakai

Tipe Data (Bahasa C)
  • char  format %c :karakter/string
  • int   format %d :integer
  • float format %f : bilangan pecahan
  • double format %lf : pecahan presisi ganda
·         void keterangan : tidak berti

Variabel
  • suatu indentifier yang digunakan untuk mewakili suatu nilai tertentu didalam proses program
  • nilai dari suatu variabel dapat diubah-ubah sesuai dengan suatu kebutuhan.
  • nama suatu variabel ditentukan sendiri oleh programer

Deklarasi
  • deklarasi variable :                   nama_tipe nama_variabel
contoh: int a;char b
  • deklarasi konstanta :                #define nama_variabel nilai konstanta
contoh: define phi 3.14
  • deklarasi fungsi :                     tipe_fungsi nama_fungsi (parameter_fungsi)
contoh : float luas_lingkaran(int jari)

Operator
  • digunakan untuk menyatakan suatu perhitungan/operasi.
  • operator dapat terbagi atas:
        operator penugasan: penugasan:dalam bhasa c berupa (“=“).
contoh nilai = 50 atau z=x*y
        operator aritmatika: aritmatika:*,/,%,+,-
contoh: 9%2=1
        Hubungan: hubungan/perbandingan: <,<=,>,>=,==,!+
contoh bil<100
        Logika : logika:&& (and),||(or),!(not)
        Bitwise : memanipulasi bit-bit dari nilai datai yang ada dimemori (<<,>>,&,^,|,~)
        Unary : operator yang membutuhkan hanya satu operand saja:-,++,--,sizeof


Penyeleksian Kondisi
  • kondisi “if…”
if (nilai >65)
printf (“\n selamat anda lulus \n”)
  • kondisi “if..else…”
if (nilai >65)
printf (“\n selamat anda lulus \n”)
else
printf (“\n maaf anda tidak  lulus \n”)
·         switch..case..default…
penyeleksian kondisi dengan kemungkinan yang terjadi cukup banyak
switch(hari)
{ case 1 :puts (“hari senin”); break;
case 2 :puts (“hari selasa”); break;
case 3 :puts (“hari rabu”); break;
case 4 :puts (“hari kamis”); break;
case 5 :puts (“hari jumat”); break;
case 6 :puts (“hari sabtu”); break;
case 7 :puts (“hari minggu”); break;
default :puts (“kode hari yang anda masukkan salah”);}
Perulangan
·         while: jumlah perulangan belum diketahui
x=1
while (x<=10)
{printf(“%d saya mahasiswa politeknik pos indonesia \n”,x);
  x++;}

·         do..while
x=1
do
{printf(“%d saya mahasiswa politeknik pos indonesia \n”,x);
  x++;}
while (x<=10);
·         for digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya.
for (x=1;x<=10;x++)
{printf(“%d saya mahasiswa politeknik pos indonesia \n”,x);}

Perbedaan antara Tipe Data, Obyek Data dan Struktur Data
·         Tipe data adalah jenis data yang ditangani oleh suatu bahasa pemrograman pada komputer.
·         Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan:
1.      Deklarasi terhadap variabel tipe data tersebut
2.      Menyediakan kumpulan operasi yang mungkin terhadap variabel
3.      bertipe data tersebut
4.      Contoh tipe data di C? Java? Pascal? .NET?
·         Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu. Misalnya: integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf

2.      Struktur Data
-          Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer maupun file pada media penyimpanan secara efektif sehingga dapat digunakan secara efisien, termasuk operasioperasi di dalamnya.
-          di dalam struktur data kita berhubungan dengan 2 aktivitas:
o   Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe  data yang ada
o   Menunjukkan mekanisme kerja operasi-operasinya
o   Contoh: integer (-32768 s/d 32767) dan jenis operasi yang
o   diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb.
o   Struktur data = obyek data + [operasi manipulasi]
-          Dengan pemilihan struktur data yang baik, maka problem yang kompleks dapat diselesaikan dengan algoritma yang dapat digunakan secara efisien, operasi-operasi penting dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih kecil, dan waktu eksekusi yang lebih cepat.
-          Ciri algoritma yang baik menurut Donald E.Knuth:
o   Input: ada minimal 0 input atau lebih
o   Ouput: ada minimal 1 output atau lebih
o   Definite: ada kejelasan apa yang dilakukan
o   Efective: langkah yang dikerjakan harus efektif
o   Terminate: langkah harus dapat berhenti (stop) secara jelas
-          Tidak semua struktur data baik dan sesuai. Contoh untuk problem data bank, problem pengurutan dan pencarian data berbeda.

3.      ADT (Abstract Data Type) atau Tipe Data Bentukan
-          Bahasa pemrograman bisa memiliki tipe data:
§  Built-in : sudah tersedia oleh bahasa pemrograman tersebut. Tidak berorientasi pada persoalan yang dihadapi.
§  UDT : User Defined Type, dibuat oleh pemrogram. Mendekati penyelesaian persoalan yang dihadapi. Contoh: record pada Pascal, struct pada C, class pada Java
§  ADT : Abstract Data Type, memperluas konsep UDT dengan menambahkan pengkapsulan atau enkapsulasi, berisi sifat-sifat dan operasioperasi yang bisa dilakukan terhadap kelas tersebut.  Contoh: class pada Java
-          Bahasa C memiliki tipe data numerik dan karakter (seperti int, float, char dan lain-lain). Disamping itu juga memiliki tipe data enumerasi dan structure. Bagaimana jika kita ingin membuat tipe data baru?
-          Untuk pembuatan tipe data baru digunakan keyword typedef
Bentuk umum:
typedef <tipe_data_lama> <nama_tipe_data_baru>
Contoh:
#include <stdio.h>
#include <conio.h>
typedef int angka;
typedef float pecahan;
typedef char huruf;
void main(){
clrscr();
angka umur;
pecahan pecah;
huruf h;
huruf nama[10];
printf("masukkan umur anda : ");scanf("%d",&umur);
printf("Umur anda adalah %d",umur);
printf("\nmasukkan bilangan pecahan : ");scanf("%f",&pecah);
printf("Bilangan pecahan %f",pecah);
printf("\nmasukkan huruf : ");h=getche();
printf("\nHuruf anda %c",h);
printf("\nmasukkan nama : ");scanf("%s",nama);
printf("Nama anda %s",nama);
getch();
}

4.      Struct
-          Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain.
-          Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri.
-          Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct.
-          Bentuk umum:
typedef struct{
tipe_data <nama_var>;
tipe_data <nama_var>;
....
}


Ilustrasi Struct

a.      Pendeklarasian dan penggunaan Struct  (1) (menggunakan typedef)
typedef struct Mahasiswa {
char NIM[8];
char nama[50];
float ipk;
};
//untuk menggunakan struct Mahasiswa dengan membuat variabel mhs dan mhs2
Mahasiswa mhs,mhs2;
//untuk menggunakan struct Mahasiswa dengan membuat variabel array m;
Mahasiswa m[100];

b.      Pendeklarasian dan penggunaan Struct (2) (tanpa menggunakan typedef)
struct {
char NIM[8];
char nama[50];
float ipk;
} mhs;
Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas.


Cara penggunaan struct dan pengaksesan elemen-elemennya
-          Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data struct tersebut
-          Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.)
-          Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut:

a.      Contoh 1
#include <stdio.h>
#include <conio.h>
//Pendeklarasian tipe data baru struct Mahasiswa
typedef struct Mahasiswa{
char NIM[9];
char nama[30];
float ipk;
};
void main(){
//Buat variabel mhs bertipe data Mahasiswa
Mahasiswa mhs;
clrscr();
printf("NIM = ");scanf("%s",mhs.NIM);
printf("Nama = ");scanf("%s",mhs.nama);
printf("IPK = ");scanf("%f",&mhs.ipk);
printf("Data Anda : \n");
printf("NIM : %s\n",mhs.NIM);
printf("Nama : %s\n",mhs.nama);
printf("IPK : %f\n",mhs.ipk);
getch();
}

Hasilnya:

b.      Contoh 2
#include <stdio.h>
#include <conio.h>
#define phi 3.14
//langsung dianggap variabel 'lingkaran'
struct {
float jari2;
float keliling;
float luas;
} lingkaran;
//fungsi void untuk menghitung luas ingkaran
void luasLingkaran(){
//langsung menggunakan luas lingkaran asli
lingkaran.luas = lingkaran.jari2 * lingkaran.jari2 * phi;
printf("\nLuas lingkaran = %f",lingkaran.luas);
}
//fungsi yang mengembalikan nilai float untuk menghitung keliling lingkaran
float kelLingkaran(float j){
return 2*phi*lingkaran.jari2;
}
int main(){
clrscr();
printf("Jari-jari = ");scanf("%f",&lingkaran.jari2);
//panggil fungsi luasLingkaran
luasLingkaran();
//panggil fungsi keliling, nilai kembaliannya dikirim ke keliling lingkaran asli
lingkaran.keliling = kelLingkaran(lingkaran.jari2);
//tampilkan keliling lingkaran asli
printf("\nKeliling lingkaran = %f",lingkaran.keliling);
getch();
}

Hasilnya:

c.       Struct yang berisi struct lain
Contoh:
#include <stdio.h>
#include <conio.h>
typedef struct Date{
int dd;
int mm;
int yyyy;
};
typedef struct Time{
int h;
int m;
int s;
};
typedef struct Login{
int ID;
Date tglLogin;
Time waktuLogin;
};
int main(){
Login user1;
printf("USER 1\n");
printf("ID : ");scanf("%d",&user1.ID);
printf("Tanggal Login\n");
printf("Hari : ");scanf("%d",&user1.tglLogin.dd);
printf("Bulan : ");scanf("%d",&user1.tglLogin.mm);
printf("Tahun : ");scanf("%d",&user1.tglLogin.yyyy);
printf("Waktu Login\n");
printf("Jam : ");scanf("%d",&user1.waktuLogin.h);
printf("Menit : ");scanf("%d",&user1.waktuLogin.m);
printf("Detik : ");scanf("%d",&user1.waktuLogin.s);
printf("Terimakasih\n");
printf("Data Anda :\n");
printf("ID : %d\n",user1.ID);
printf("Date : %d - %d -
%d\n",user1.tglLogin.dd,user1.tglLogin.mm,user1.tglLogin.yyyy);
printf("ID :
%d:%d:%d\n",user1.waktuLogin.h,user1.waktuLogin.m,user1.waktuLogin.s);
getch();
}
Hasil:



d.      Array of Struct
Contoh
#include <stdio.h>
#include <conio.h>
typedef struct Date{
int dd;
int mm;
int yyyy;
};
typedef struct Time{
int h;
int m;
int s;
};
typedef struct Login{
int ID;
Date tglLogin;
Time waktuLogin;
};
int main(){
Login user[3];
//3 user
for(int i=0;i<3;i++){
printf("\nUSER ke-%d\n",i+1);
printf("ID : ");scanf("%d",&user[i].ID);
printf("Tanggal Login\n");
printf("Hari : ");scanf("%d",&user[i].tglLogin.dd);
printf("Bulan : ");scanf("%d",&user[i].tglLogin.mm);
printf("Tahun : ");scanf("%d",&user[i].tglLogin.yyyy);
printf("Waktu Login\n");
printf("Jam : ");scanf("%d",&user[i].waktuLogin.h);
printf("Menit : ");scanf("%d",&user[i].waktuLogin.m);
printf("Detik : ");scanf("%d",&user[i].waktuLogin.s);
printf("Terimakasih Atas Pengisiannya\n");
printf("\nData User ke-%d:\n",i+1);
printf("Login ID : %d\n",user[i].ID);
printf("Login Date : %d - %d -
%d\n",user[i].tglLogin.dd,user[i].tglLogin.mm,user[i].tglLogin.yyyy);
printf("Login Time :
%d:%d:%d\n",user[i].waktuLogin.h,user[i].waktuLogin.m,user[i].waktuLogin.s);
}
getch();
}




Hasil