Basis data.

Slides:



Advertisements
Presentasi serupa
TURUNAN/ DIFERENSIAL.
Advertisements

Pemrograman Terstruktur
BAB IV MATRIKS (ARRAY MULTI DIMENSI)
Perangkat Lunak Pengolah Kata
Modul 10 : PHP dan MySQL Mempelajari koneksi PHP dengan database MySQL dan Fungsi-fungsi asesnya Modul- 10: PHP dan My SQL.
Menunjukkan berbagai peralatan TIK melalui gambar
Database MySQL.
FILE pada FORTRAN Pertemuan 9
Bagian Ke-4 Pertemuan Ke-4
Pasangan Pola Pasangan Pola.
Pengenalan Prolog Pengenalan Prolog.
Sistem Operasi (pertemuan 7) Memori Razief Perucha F.A Jurusan Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Syiah Kuala
Input dan output Data Dalam bahasa Pascal untuk keperluan input (membaca input) digunakan identifier standar READ atau READLN. ReadLn digunakan untuk.
Dasar Komputer & Pemrog 2 A minggu 4
LINKED LIST.
DATA FLOW DIAGRAM (DFD)
Akses File As’ad Djamalilleil
MENGIDENTIFIKASI STRUKTUR HIRARKI BASIS DATA
Konsep dan Defenisi data 1Nurdiansah PTIK 09 UNM.
TURUNAN DIFERENSIAL Pertemuan ke
CARA MENYATAKAN HIMPUNAN
Praktikum Database Pengenalan Query
Rekaman – Record Pada Pascal
Struktur Perulangan Week 4 & 5.
Algoritma dan Struktur Data
Membuat Data Base Kemahasiswaan
Implementasi Binary Tree
Chapter 3.2 : Tipe, Nama dan Nilai
SLIDE OTOMATIS PINDAH DALAM WAKTU 4-5 MENIT. A:kiriB:kanan Deklarasikan sebuah variabel dengan nama ‘isi’ yang mempunyai type array of double dengan ukuran.
Membuat website Umumnya disainer web membuat website dengan dreamweaver adalah membuat halaman-halaman web di hardisk komputernya yang disebut dengan local.
STRUKTUR DATA Materi pertemuan 8.
Manajemen File.
Record (Rekaman) Nurdiansah PTIK 09 UNM.
1 MAILMERGE Winda Widya A Barka Satya. Apl Mnjmn Pkntran A M4 2 Tidak jarang sebuah surat yang isinya sama dikirim ke banyak orang, misalnya surat undangan,
Dasar Pemrograman ARRAY/LARIK.
STATEMENT PRINT - INPUT
MENGENAL TIPE STRING Nilai string adalah kumpulan dari angka, angka dan huruf atau huruf, dimana tidak bisa dilakukan suatu operasi aritmatika, operator.
MODUL 2 BAHASA BASIS DATA
Pengendalian Alur.
Pokok Bahasan Pertemuan 8:
Query Tessy Badriyah.
BASIS DATA TERAPAN Triana Elizabeth, S. Kom
Internet Programming MySQL
Pemrogramn Berorientasi Obyek MySQL
File Data Pertemuan ke 13..
Microsoft SQL Server DDL dan DML dasar
Field Name / Nama Field Data Type / Tipe Data
Database dalam Ms.Access
BASIS DATA TERAPAN Pertemuan 2.
Data Types Data Definition Language Referential Constraint SQL Query
Unfikasi, Runut Balik, Trace, Masukan dan Keluaran
Basis Data.
Pengolahan string dan operasi file
Pengenalan Database MySQL
Konsep teknologi informasi b
Pengenalan Sistem Basis Data
PERINTAH INTERAKTIF DALAM DBASE
BASIS DATA 1 KONSEP DATA & FILE.
BASIS DATA 1 KONSEP DATA & FILE.
Field Name / Nama Field Data Type / Tipe Data
Membuat Table Pertemuan 3
As’ad Djamalilleil Akses File As’ad Djamalilleil
Pemrograman Internet Database.
PERANCANGAN DATABASE.
FILE.
Query.
Pengenalan dan Instalasi Dbase
Tipe Data Struktur Ridwan, S.T., M.Eng. Pokok Pembahasan Bahan Kajian. Tipe Data Terstruktur Materi Tipe Data: 1.Definisi data, tipe data dan struktur.
Riyani Purwita Rachmawati, S.Pd
KONSEP TEKNOLOGI INFORMASI A
Transcript presentasi:

Basis data

Basis data Basis data adalah kumpulan fakta-fakta tentang suatu pokok bahasan tertentu Di dalam prolog ada 2 macam basis data yaitu Basis Data Internal Basis Data Eksternal

Basis data internal Untuk menyatakan penggunaan basis data maka harus didefiniskan terlebih dahulu DOMAINS alamat = alamat(jalan,kota,kode_pos) tgl_lahir = tgl_lahir(tanggal,bulan,tahun) tanggal,tahun,nomor = integer nama,jalan,kota,kode_pos,bulan,pekerjaan = string lama = real DATABASE data_pribadi(nama,alamat,tgl_lahir,pekerjaan)

Basis data internal Syarat predikat yang dinyatakan dalam basis data Hanya fakta yang boleh disimpan, aturan tidak diperbolehkan Fakta tersebut tidak boleh mengandung variabel bebas Bagian DATABASE boleh lebih dari satu akan tetapi harus diberi nama yang berbeda DATABASE – DaftarPegawai pegawai(nama,alamat,pendidikan) DATABASE – Gaji gaji_pegawai(nama,gaji) Bila tidak diberi nama untuk suatu bagian DATABASE seperti hanya ada 1 bagian DATABASE maka nama otomatis dbasedom

Predikat standar asserta(fakta) asserta(fakta,NamaDatabase) assertz(fakta) assertz(fakta,NamaDataBase) retract(fakta) retract(fakta,NamaDatabase) retractall(fakta) retractall(fakta,NamaDataBase) save(NamaFile) save(NamaFile,NamaDataBase) consult(NamaFile) Syarat agar file dapat dibaca oleh predikat consult Tidak boleh ada huruf besar, spasi, atau simbol kecuali berada di dalam tanda “” (Sebagai string) Tidak boleh ada komentar (menggunakan tanda /*) Tidak boleh ada baris yang kosong

Contoh program DOMAINS alamat = alamat(jalan,kota,kode_pos) nama,jalan,kota,kode_pos,tgl_lahir,pekerjaan = string nomer = integer DATABASE data_pribadi(nama,alamat,tgl_lahir,pekerjaan) PREDICATES menu pilihan_awal(nomer) tambah_data pilihan(nomer) GOAL menu. CLAUSES menu :- makewindow(1,13,1,"PILIHAN",3,0,20,80), write(" 1. Memasukkan data baru \n"), write(" 2. Menambah data \n"), write(" 3. Menggunakan data lama \n"), write(" 4. Menghapus data \n"), write(" 5. Selesai \n"), write(" Masukkan pilihan anda (1,2,3,4,5) : "), readint(No_Awal), No_Awal<>5,!, pilihan_awal(No_Awal), menu.

pilihan_awal(3) :- makewindow(1,13,1,"DATA LAMA",3,0,20,80), write(" 1 pilihan_awal(3) :- makewindow(1,13,1,"DATA LAMA",3,0,20,80), write(" 1. Data pribadi semua orang \n"), write(" 2. Data orang yang tinggal di kota tertentu \n"), write(" 3. Data orang yang mempunyai pekerjaan tertentu \n"), write(" Masukkan pilihan anda (1,2,3) : "), readint(Pilihan), consult("a:pribadi.dat"), pilihan(Pilihan), read_char(_). pilihan_awal(4) :- makewindow(1,13,2,"MENGHAPUS DATA",3,10,20,60), write(" Nama : "),readln(Nama), retract(data_pribadi(Nama,_,_,_)), save("a:pribadi.dat"). pilihan(1) :- clearwindow, data_pribadi(Nama,alamat(Jalan,Kota,Kode_Pos),TglLahir,Pekerjaan), writef("\n %-12 %-18 %-8 %-8 %-15 %- 15",Nama,Jalan,Kota,Kode_Pos,TglLahir,Pekerjaan), fail. pilihan(1). pilihan_awal(1) :- makewindow(1,13,1,"DATA BARU",3,0,20,80), clearwindow,nl, write(" Nama : "),readln(Nama), Nama <> "x",!, write("\n Jalan : "),readln(Jalan), write("\n Kota : "),readln(Kota), write("\n Kode Pos : "),readln(KodePos), write("\n Tgl lahir : "),readln(TglLahir), write("\n pekerjaan : "),readln(Pekerjaan), assertz(data_pribadi(Nama,alamat,(Jalan,Kota,KodePos),TglLahir,Pekerjaa n)), pilihan_awal(1). save("a:pribadi.dat"), removewindow. pilihan_awal(2) :- makewindow(1,13,1,"MENAMBAH DATA ",3,0,20,80), consult("a:pribadi.dat"), tambah_data.

pilihan(2) :- clearwindow, write(" Kota : "),readln(Kota), write(" Data orang yang tinggal di kota ",Kota," :\n"), data_pribadi(Nama,alamat(Jalan,Kota,Kode_Pos),TglLahir,Pekerjaan), writef("\n %-12 %-18 %-8 %-8 %-15 %- 15",Nama,Jalan,Kota,Kode_Pos,TglLahir,Pekerjaan), fail. pilihan(2). pilihan(3) :- write(" Pekerjaan : "),readln(Pekerjaan), write(" Data orang yang mempunyai pekerjaan ",Pekerjaan," :\n"), pilihan(3). tambah_data :- clearwindow,nl, write(" Nama : "),readln(Nama), Nama <> "x",!, write("\n Jalan : "),readln(Jalan), write("\n Kota : "),readln(Kota), write("\n Kode Pos : "),readln(KodePos), write("\n Tgl lahir : "),readln(TglLahir), write("\n pekerjaan : "),readln(Pekerjaan), assertz(data_pribadi(Nama,alamat,(Jalan,Kota,KodePos),TglLah ir,Pekerjaan)), tambah_data. save("a:pribadi.dat").

Basis data eksternal Dalam basis data eksternal data yang diolah dapat langsung diakses dari 3 macam tempat File (di disket atau hardisk) Memori (mirip dengan basis data internal) EMS (Extended Memory System) Selektor basis data eksternal DOMAINS db_selector = pelanggan;barang PREDICATES hapus_data(ref)

Predikat standar basis data eksternal db_create(DBase,Nama,Tempat) DBase = Nama simbolik harus dinyatakan di dalam DOMAINS Nama = Nama File Tempat = in_file,in_memory,in_ems db_open(DBase, Nama,Tempat) db_close(DBase) db_delete(DBase) db_chains(DBase,Chain)

Predikat standar untuk manipulasi rantai manipulasi term chain_inserta(DBase, Rantai, Domain, Term,Ref) DBase = basis data yang dinyatakan di db_selector Rantai = bila belum ada maka rantai diciptakan Domain = Domain dari term Ref = nomor acuan untuk term chain_insertz(DBase, Rantai, Domain, Term,Ref) chain_insertafter(DBase, Domain,Ref,Term, RefBaru) chain_terms(DBase, Rantai, Domain, Term,Ref) chain_delete(DBase, Rantai) chain_first(DBase, Rantai, RefAwal) chain_last(DBase, Rantai, RefAkhir) chain_next(DBase, Rantai, RefStl) chain_prev(DBase, Rantai, RefSbl) manipulasi term term_replace(DBase, Domain, Ref,Term) term_delete(DBase, Rantai, Ref) ref_term(DBase, Domain,,Ref,Term)

Contoh program DOMAINS db_selector = dbase alamat = alamat(jalan,kota,kode_pos) nama,jalan,kota,kode_pos,tgl_lahir,pekerjaan = string data = data(nama,alamat,tgl_lahir,pekerjaan) nomer = integer PREDICATES menu pilihan_awal(nomer) masukkan_data pilihan(nomer) GOAL menu. CLAUSES menu :- makewindow(1,13,1,"PILIHAN",0,0,24,80), write(" 1. Memasukkan data baru \n"), write(" 2. Menambah data \n"), write(" 3. Menggunakan data lama \n"), write(" 4. Menghapus data \n"), write(" 5. Selesai \n"), write(" Masukkan pilihan anda (1,2,3,4,5) : "), readint(No_Awal), No_Awal<>5,!, pilihan_awal(No_Awal), menu. pilihan_awal(1) :- makewindow(1,13,1,"DATA BARU",0,0,24,80), db_create(dbase,"a:pribadi.dat",in_file), masukkan_data.

pilihan_awal(4) :- db_close(dbase). pilihan_awal(5) :- exit pilihan_awal(4) :- db_close(dbase). pilihan_awal(5) :- exit. pilihan(1) :- clearwindow, db_open(dbase,"a:pribadi.dat",in_file), db_chains(dbase,Rantai), chain_terms(dbase,Rantai,data,data(Nama,alamat(Jalan,Kota,Kode_Pos),TglLahir,Pekerjaan),_), writef("\n %-12 %-18 %-8 %-6 %-17 %-15",Nama,Jalan,Kota,Kode_Pos,TglLahir,Pekerjaan), fail. pilihan(2) :- write(" Kota : "),readln(Kt), write(" Data orang yang tinggal di kota ",Kt," :\n"),nl, Kt = Kota, pilihan_awal(2) :- makewindow(1,13,1,"MENAMBAH DATA ",0,0,24,80), db_open(dbase,"a:pribadi.dat",in_file), masukkan_data. pilihan_awal(3) :- makewindow(1,13,1,"DATA LAMA",0,0,24,80), write(" 1. Data pribadi semua orang \n"), write(" 2. Data orang yang tinggal di kota tertentu \n"), write(" 3. Data orang yang mempunyai pekerjaan tertentu \n"), write(" Masukkan pilihan anda (1,2,3) : "), readint(Pilihan), pilihan(Pilihan), field_attr(20,2,42,29), field_str(20,2,42,"Tekan Keyboard untuk kembali ke menu utama"), readchar(_). pilihan_awal(4) :- makewindow(1,13,11,"MENGHAPUS DATA",10,20,4,40), write(" Nama : "),readln(Nm), db_chains(dbase,Rantai), chain_terms(dbase,Rantai,data,data(Nama,_,_,_),Ref), Nm = Nama,!, term_delete(dbase,Rantai,Ref), db_close(dbase).

pilihan(3) :- clearwindow, write(" Pekerjaan : "),readln(Pkj), write(" Data orang yang mempunyai pekerjaan ",Pkj," :\n"), db_open(dbase,"a:pribadi.dat",in_file), db_chains(dbase,Rantai), chain_terms(dbase,Rantai,data,data(Nama,alam at(Jalan,Kota,Kode_Pos),TglLahir,Pekerjaan),_), Pkj = pekerjaan, writef("\n %-8 %-18 %-8 %-8 %-15 %- 17",Nama,Jalan,Kota,Kode_Pos,TglLahir,Pekerjaa n), fail. db_close(dbase). masukkan_data :- clearwindow,nl, write(" Nama : "),readln(Nama), Nama <> "x",!, write("\n Jalan : "),readln(Jalan), write("\n Kota : "),readln(Kota), write("\n Kode Pos : "),readln(KodePos), write("\n Tgl lahir : "),readln(TglLahir), write("\n pekerjaan : "),readln(Pekerjaan), chain_insertz(dbase,"Pribadi",data,data(Na ma,alamat(Jalan,Kota,Kode_Pos),TglLahir, Pekerjaan),_), masukkan_data. db_close(dbase).

Predikat standar b+ tree bt_create(Dbase,NamaBTree,BTree_Sel,KeyLen,Order) Dbase = Nama basis data yang menggunakan B+Tree NamaBTree = Nama BTree yang baru BTree_Sel= Selektor B+ tree digunakan pada pencarian KeyLen = Ukuran key Order = jumlah key yang disimpan tiap node bt_open(Dbase,NamaBTree,BTree_Sel) bt_close(Dbase, BTree_Sel) bt_delete(Dbase,BTree_Sel) key_insert(Dbase,BTree_Sel,Key,Ref) key_delete(Dbase,BTree_Sel,Key,Ref) key_first(Dbase,BTree_Sel,Ref) key_last(Dbase,BTree_Sel,Ref) key_search(Dbase, BTree_Sel,Key,Ref) key_next(Dbase,BTree_Sel, RefBrk) key_prev(Dbase, BTree_Sel,RefSbl) key_current(DBase,BTree_Sel,Key,Ref)

Contoh program CLAUSES menu :- makewindow(1,13,11,"PILIHAN",0,0,24,80), repeat, clearwindow, write(" 1. Memasukkan data baru \n"), write(" 2. Menambah data \n"), write(" 3. Menggunakan data lama \n"), write(" 4. Menghapus data \n"), write(" Masukkan pilihan anda (1,2,3,4,5) : "), read_int(No_Awal), pilihan_awal(No_Awal), fail. menu. pilihan_awal(1) :- !, makewindow(1,13,1,"DATA BARU",0,0,24,80), db_create(dbase,"a:pribadi.dat",in_file), bt_create(dbase,"nama",SelNama,20,4), bt_create(dbase,"pekerjaan",SelPkj,20,4), masukkan_data(SelNama,SelPkj). DOMAINS db_selector = dbase alamat = alamat(jalan,kota,kode_pos) nama,jalan,kota,kode_pos,tgl_lahir,pekerjaan = string data = data(nama,alamat,tgl_lahir,pekerjaan) nomer = integer PREDICATES repeat menu pilihan_awal(nomer) masukkan_data(bt_selector,bt_selector) pilihan(nomer) cari_nama(nama,bt_selector) cari_pekerjaan(pekerjaan,bt_selector,ref) cari_hapus(nama,bt_selector,bt_selector) GOAL menu.

pilihan_awal(4) :- !, makewindow(1,13,11,"MENGHAPUS DATA",10,20,4,40), write(" Nama : "),readln(Nm), db_open(dbase,"a:pribadi.dat",in_file), bt_open(dbase,"nama",SelNama), bt_open(dbase,"pekerjaan",SelPkj), cari_hapus(Nm,SelNama,SelPkj), removewindow. pilihan(1) :- clearwindow, db_chains(dbase,Rantai), chain_terms(dbase,Rantai,data,data(Nama,alamat(Jalan,Kot a,Kode_Pos),TglLahir,Pekerjaan),_), writef("\n %-12 %-18 %-8 %-6 %-17 %- 15",Nama,Jalan,Kota,Kode_Pos,TglLahir,Pekerjaan), fail. db_close(dbase). pilihan_awal(2) :- !, makewindow(1,13,11,"MENAMBAH DATA ",0,0,24,80), db_open(dbase,"a:pribadi.dat",in_file), bt_open(dbase,"nama",SelNama), bt_open(dbase,"pekerjaan",SelPkj), masukkan_data(SelNama,SelPkj). pilihan_awal(3) :- !, makewindow(1,13,11,"DATA LAMA",0,0,24,80), write(" 1. Data pribadi semua orang \n"), write(" 2. Data pribadi seseorang \n"), write(" 3. Data orang yang mempunyai pekerjaan tertentu \n"), write(" Masukkan pilihan anda (1,2,3) : "), readint(Pilihan), pilihan(Pilihan), field_attr(20,2,42,29), field_str(20,2,42,"Tekan Keyboard untuk kembali ke menu utama"), readchar(_).

pilihan(2) :- clearwindow, write(" Nama : "),readln(Nama), write(" Data Pribadi ",Nama," :\n"),nl, db_open(dbase,"a:pribadi.dat",in_file), bt_open(dbase,"nama",SelNama), cari_nama(Nama,SelNama). pilihan(3) :- write(" Pekerjaan : "),readln(Pkj), write(" Data orang yang mempunyai pekerjaan ",Pkj," :\n"), bt_open(dbase,"pekerjaan",SelPkj), key_first(dbase,SelPkj,Ref), cari_pekerjaan(Pkj,SelPkj,Ref). masukkan_data :- clearwindow,nl, write(" Nama : "),readln(Nama), Nama <> "x",!, write("\n Jalan : "),readln(Jalan), write("\n Kota : "),readln(Kota), write("\n Kode Pos : "),readln(KodePos), write("\n Tgl lahir : "),readln(TglLahir), write("\n pekerjaan : "),readln(Pekerjaan), chain_insertz(dbase,"Pribadi",data,data(Nama ,alamat(Jalan,Kota,Kode_Pos),TglLahir, Pekerjaan),_), key_insert(dbase,SelNama,Nama,Ref), key_insert(dbase,SelPkj,Pekerjaan,Ref), masukkan_data(SelNama,SelPkj). masukkan_data(SelNama,SelPkj) :- bt_close(dbase,SelNama), bt_close(dbase,SelPkj), db_close(dbase).

cari_nama(Nama,SelNama) :- key_search(dbase,SelNama,Nama,Ref), cari_nama(Nama,SelNama) :- key_search(dbase,SelNama,Nama,Ref),!, ref_term(dbase,data,Ref,data(Nama,alamat(Jalan,Kota,Kode_ Pos),TglLahir,Pekerjaan)), writef("\n %-12 %-18 %-8 %-6 %-17 %- 15",Nama,Jalan,Kota,Kode_Pos,TglLahir,Pekerjaan), bt_close(dbase,SelNama), db_close(dbase). cari_nama(_,SelNama) :- write(" \nNama tersebut tidak ada "), cari_pekerjaan(Pekerjaan,SelPkj,Ref) :- trace(on), key_current(dbase,SelPkj,Pkj,_), Pekerjaan = Pkj, writef("\n %-12 %-18 %-8 %-6 %-15 %- 17",Nama,Jalan,Kota,Kode_Pos,TglLahir,Pekerjaan), key_next(dbase,SelPkj,RefBrk),!, cari_pekerjaan(Pekerjaan,SelPkj,RefBrk). cari_pekerjaan(Pekerjaan,SelPkj,_) :- key_next(dbase,SelPkj,RefBrk),!, cari_pekerjaan(Pekerjaan,SelPjk,Refbrk). cari_pekerjaan(_,SelPkj,_) :- bt_close(dbase,SelPkj), db_close(dbase). cari_hapus(Nama,SelNama,SelPkj) :- key_search(dbase,SelNama,Nama,Ref),!, key_delete(dbase,SelNama,Nama,Ref), ref_term(dbase,data,Ref,data(Nama,_,_,Pkj)), key_delete(dbase,SelPkj,Pkj,Ref), term_delete(dbase,"Pribadi",Ref), bt_close(dbase,SelNama), cari_hapus(_,SelNama,SelPkj) :- write(" \n Nama tersebut tidak ada ! "), readchar(_), repeat. repeat :- repeat.