Rabu, 05 November 2014

E-TICKETING KERETA API

Tugas dari dosen Sistem Basis Data, membuat E-TICKETING KERETA API ...


Pertama beli tiket kereta api dulu yaa ..
Bisa online bisa juga datang ke stasiun Kereta Api terdekat
kalau pembelian online ke situs www.kereta-api.co.id

Info Jadwal Dan Reservasi diisi sesuai keberangkatan, sudah keisi klik tampilkan  :)
Dan akan tampil gambar seperti dibawah


Klik lanjutkan, maka akan tampil gambar seperti ini, kemudian isi data sesuai pesanan tiket anda dan identitas pemesan tiket. kemuadia klik selanjutnya


Muncul gambar dibawah, klik selanjutnya
Ini final dari pemesanan tiket online, klik selanjutnya
Jeng Jreng Jeng, akan keluar seperti ini. print untuk bukti pemesanan melalui ATM

Okay pembelian tiket sudah selesai, dan kemudian saya akan membuat flowchart dari langkah-langkah dari pemesan tiket :

ERD

Dari ERD diatas kita dapat membuat SQL nya sebagai berikut
SQL e-ticketing kereta api











Continue Reading...

Sabtu, 31 Mei 2014

BASIS DATA

  Lectured by : Budi Laksono Putro  (budi.staf.upi.edu)

PENGENALAN BASIS DATA, ENTITY RELATIONSHIP MODEL
KONVERSI ER KE BASIS DATA REALATIONAL, NORMALISASI


  PENGENALAN BASIS DATA

          Dalam kehidupan sehari-hari kita dikampus atau di masyarakat sering sekali kita membahas data dan informasi. Informasi merupakan kumpulan data yang tersetruktur pada sebuah sistem yang dikenal sebagai basis data (database).
1.1            Data dan Informasi
·        Data,  adalah representasi fakta dunia nyata. Respresentasinya bisa dalam bentuk Suara, video, dan lain-lain. Fakta dunia nyata dapat berupa kejadian, aktivitas, perasaan dan semua yang berhubungan tentan dunia nya
·        Informasi, adalah data yang sudah dikelola dalam bentuk tertentu untuk memberi makna bagi yang menerimanya.
Kualitas data dan informas dapat dipengaruhi oleh hal-hal sebagai
berikut:
·        Benar mempresentasikan dunia nyata
·        Tepat waktu
·        Tepat penggunaan

1.2            Terminologi dan Konsep Basis Data
          Basis, adalah tempat berkumpul. Data, adalah fakta yang mewakili objek, dalam bentuk angka, huruf, simbol, teks gambar, bunyi, atau kombinasinya. Objeknya seperti manusia, barang, keadaan, dan lain-lain.
Dan dapat disimpulkan Basis Data adalah kumpulan data yang saling berhubungan yang tersimpan secara bersama tanpa ada penumpukan, bertujuan untuk memenuhi berbagai tujuan.
Tujuan dibangunnya basis data adalah sebagai berikut:
·        Kecepatan & kemudahan
·        Menghemat ruang penyimpanan
·        Keakuratan
·        Ketersediaan
·        Kelengkapan
·        Keamanan
·        Pemakaian bersama
1.3            Perkembangan Basis Data
          Diagram dibawah ini merupakan perkembangan basis data


1.4            Sistem Basis Data
        Sitem Basis Data, adalah sistem yang terdiri dari file-file yang saling berhubungan dan dikelola oleh sistem manajemen basis data.
Sistem Manajemen Basis Data (Database Management System, DBMS) , adalah perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data, yang memiliki karakteristik sebaai berikut :
·        Software program
·        Supplemets operating sistem
·        Manages data
·        Queries data and generates reports
·        Data security
         
       Tujuan dari sistem basis data adalah untuk menyediakan fasilitas untuk view data secara abstrak bagi penggunanya. Sistem yang menyimpan dan mengelola data tersebut hanya diketahui oles sitem itu sendiri.
1.5            Model Basis Data
a.     Relational
        Relational dipresentasikan dalam tabel dua dimensi, tabel-tabel tersebut memiliki hubungan yan disebut relasi. Model ini memiliki fleksibilitas dan kecepatan yang tinggi
b.    Hierarchical
        Memiliki struktuk seperti pohon, field memiliki satu buah induk, masing-masing induk memiliki banyak anak. Model ini memiliki kecepatan yang tinggi
c.      Network
        Relationship dibuat menggunakan linked list (pointer). Berbeda dengan model hierarchical satu anak dapat memiliki beberapa induk. Model ini memiliki fleksibilitas yang tinggi.
d.    Object oriented
        Object Oriented Database adalah sebuah sistem database yang menggabungkan semua konsep object oriented seperti pewarisan, abstraksi, enkapsulasi, dll. Model ini dapat berinteraksi dengan baik dengan bahasa pemrograman berorientasi objek seperti java dan C++.
1.6            Basis Data Relasional

Model Relasional merupakan model yang paling sederhana sehingga mudah digunakan dan dipahami oleh pengguna. Model ini menggunakan sekumpulan tabel berdimensi dua ( yang disebut relasi atau tabel ), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut. DBMS yang bermodelkan relasional biasa disebut RDBMS (Relational Data Base Management System). Model database ini dikemukakan pertamakali oleh EF codd, seorang pakar basisdata. Model ini sering disebut juga dengan database relasi.

Tingkatan Data dalam Database Relasi

ENTETY RELATIONSHIP MODEL


           Etenty Relationship, adalah model data konseptual yang tinkat tinggi untuk perancangan basis data. Model data konseptual adalah kumpulan konsep yang mendeskripsikan struktur basis data, trnsaksi pengambilan dan pembarusn basis data.
Komponen-komponen utama model Etenty Relationship (ER) adalah :
1.     Entitas (entity),  entitas memodelkan objek-objek yang berada di perusahaan atau lingkungan
2.     Relationship. Relationship memonelkan koneksi atau hubungan di antara entitas-entitas
3.     Atribut-antribut ( properti-properti).  Memodelkan properti-properti dari entitas dan relationship
4.     Konstrain-konstrain (batasan-batasan) integritas konstrain-konstrain ketentuan validitas
1.1            Entitas (entity) dan Himpuna Entitas (entitas sets)
           Entitas, merupakan individu yang mewakili sesuatu yang
nyata(eksitensinya) dan dapat dibedakan dari sesuatu yang lain.
Entitas adalah objek yang dirasa penting di sistem tersebut, yg bisa berupa :
• Objek Konkrit
Contoh : Orang, Mobil, Buku
• Objek Abstrak
Contoh : Penjualan, Jadwal, Pinjaman, Tabungan
1.2            Atribut
             Tipe-tipe atribut dapat dibedakan.
·        Simple dan composite
Simple, adalah suatu atribut yang tidak bisa dibagi menjdi bagian antribut yang lebih kecil lagi. Contohnya : jenis kelamin.
Composite,adalah antribut yang dapat dibagi menjadi beberapa bagian. Contohnya nama dapat dibagi menjadi nama depan dan nama belakang,



·        Single value dan multivalued
Single value, adalah atribut yang hanya bisa diisi oleh 1 nilai untuk setiap baris data. Contohnya jenis kelamin
Multivalued,adalah atribut yang bisa beberapa nilai tetapi sejenis untuk setiap baris data. Contohnya alamat, nomer telp dan hobi.
·        Derived attribute
Derived attribute, adalah nilai yang didapatkan hasil dari pengelolahan atribut yang lain, contohnya IPK yang didapatkan seorang mahasiswa penjumlahan dari nilai dan dibagi dengan jumlah sks yang diambil mahasiswa tersebut.
1.3            Relasi
Relasi menggambarkan hubungan antara entitas satu dengan entitas yang lainnta sesuai dengan proses bisnisnya.
1.4            Derajat Himpunan Relasi
·        Unary (hanya merelasikan satu entitas)

Relasi di atas menggambarkan entitas employee yang berrelasasi dengan entitas employee. Relasi yang terjadi yaitu relasi employee supervison untuk employee (entitas manajer adalah salah satu karyawan juga).
·        Binary (merelasikan 2 entitas)


Relasi di atas merupakan entitas pelangan yang berrelasi dengan entitas pinjaman. Satu pelanggan bisa mempunyai banyak nomer pinjaman, dan satu nomer pinjaman hanya untuk satu pelanggan
·        Ternary (merelasikan 3 entitas)



Relasi di atas menggambarkan entitas employee yang ber-relasi dengan entitas brunch dan entitas job melalui relasi work_on. 1 employee bekerja di sebuah title tertentu dan juga bekerja di sebuah brunch_name tertentu. Ada 3 entitas yang terlibat dari relasi di atas
1.5            kardinalitas relasi
Kardinalias relasi menggambarkan banyaknya jumlah maksimum entitas dapat ber-relasi dengan entitas pada himpunann entitas yang lain. Pada himpunan relasi biner, pemetaan kardinalitas relasi dapat berupa salah satu dari pilihan berikut :
·        satu ke satu
·        satu ke banyak
·        banyak ke satu
·        banyak ke banyak




1.6            Key
key digunakan untuk membedakan satu entitas didalam entitas yang lainnya. Key sebagai satu atau gabungan dari beberapa antribut yang dapat membedakan semua row dalam relasi secara unik. ada 3 macam key, yaitu :
·        Superkey
Superkey, adalah kumpulan antribut yang dapat membedakan setiap baris data dalam sebuah relasi yang unik, contohnya :
o   Nim, nama, alamat, kota
o   Nim, nama, alamat
o   Nim, nama
o   Nim
·        Candidate key
Candidate key, adalah antribut minimal yang dapat membedakan baris data di sebuah relasi secara unik, contohnya :
o   Nim
·        Primary key
Primary key, adalah merupakan salah satu dari candidate key yang terpilih, karena pemilihan primary key :
o   Lebih sering dijadikan acuan
o   Lebih ringkas
o   Jaminan keunikan key lebih baik
Contohnya adalah Nim
1.7            Diagram ER




Notasi yang digunakan di Diagram ER adalah :
Garis : Link yang menghubungkan atara Entitas dengan atribut,
dan entitas dengan relasi atau entitas
Elips dobel : Menunjukkan atribut yang multivalued
Elips dengan garis terputus : Menunjukkan atribut turunan
1.8            Tahapan pembuatan ER diagram
Dapat disimpulkan untuk membuat ER Diagram, dapat mengikuti urutan tahapan berikut:
1. Mengidentifikasikan dan menetapkan seluruh himpunan entity yang akan terlibat.
2. Menentukan atribut-atribut dari setiap entity.
3. Menentukan atribut primary key dari setiap entity.
4. Menentukan relationship antar entity.
5. Menentukan atribut-atribut dari setiap relationship (jika ada).
6. Menentukan Cardinality Rasio.
7. Menentukan Participation Constraint.



KONVERSI ER KE BASIS DATA REALTIONAL

Di bab ini membahas tentang bagaimana dan kapan kita menggunakan week entity,  spesialisai dan agresi dan bagaimana menurunkan konseptual ER kedalam tabel.

3.1     Himpunan Entitas Lemah
Pada Himpunan Entitas Lemah ada 2 yaitu primary key dari entitas kuat yang berelasi dan diskriminator atau  key parsialnya.
3.2     Spesialisasi dan Generalisasi
Spesialisasi dan Genelsisasi merupakan proses desain top-down  dengan mendesain subgrouping didalam himpunan entitas yang berbeda dari himpunan entitas, dan bertujuan memberikan gambaran konseptual tentang perbedaan karakteristik dari himpunan entitas yang hampir serupa dengan konsep sub grouping (pengelompokan).
Subgrouping menjadi himpunan entitas yang levelnya lebih rendah dan memiliki atribut tersendiri yang tidak dimiliki pada level di atsnya.
3.3     Agregasi
Agregasi, adalah enkapsulasi dari entitas yang berelasi (n-n). Terbentuk dari kardinalitas relasi banyak ke banyak. Dan terdapat istilah enkapsulasi dari kedua entitas. Enkapsulasi diperlukan karena kedua himpunan entitas yang ber-relasi merupakan satu kesatuan yang tidak bisa dipisahkan.
3.4     Ringkasan Notasi Simbol di ER





         



3.5     Skema ER ke Tabel
                   Penurunan skema, untuk mengubah sebuah konsep hubungan entitas dan relasi kedalam bentuk fisik tabel-tabek yang berelasi.
Secara umum penurunan diagram ER ke tabel memiliki aturan sebagai berikut :
·        Setiap Himpunan entitas menjadi tabel (baik himpunan kuat atau lemah)
·        Setiap atribut menjadi kolom ditabel
·        Kardinalitas relasi akan menentukan jumlah tabel yang terbentuk
3.6     Representasi Atribut menjadi Kolom
                   Pada atribut bertipe simple, single dan derived, direpresentasikan sama persis dengan diangram ER. Tetapi untuk atribut komposit dan multivalued mempunyai aturan. Atribut komposit memecah untuk membuat atribut masing-masinnya, contohnya atribut nama dipecah menjadi dua kolom yaitu nama depan dan nama belakang.  Atribut multivalued M dari entitas E direpresentasikan oleh tabel terpisah EM. Gambar berikut menujukan penurunan sebuah atribut multivalued.



3.7     Representasi Himpunan Entitas sebagai Tabel
Himpunan Entitas Kuat, direpresentasikan kedalam tabel dengan kolom sama dengan antribut yang didefinisak di diagram ER.
                            
NIM
Nama
Program_Studi
1206
Merry
Ilmu Komputer
0403
Ellis
Ilmu Komputer
3006
Abidzar
Ilmu Kompute

          Himpunan entitas lemah akan menjadi tabel tersendiri yang didalamnya ada kolom primary key yang merupakan identitas dari himpunan entitas kuat.
         

                   Tabel Mahasiswa
NIM
Nama
Program_Studi
1206
Merry
Programmer
0403
Ellis
Analist
3006
Abidzar
Dokumentor
                  


         
                            
                   Tabel Mengikuti
NIM
Nama
Program_Studi
1206
T01
1.000.000
0403
T02
1.500.000
3006
T03
1.500.000
                  


         




         
3.7.1  Representasi Relasi (Pada kardinalitas N to N)
Relasi dari himpunan banyak ke banyak direpresentasikan kedalam tabel tersendiri dengan primary key dari dua entitas menjadi antribut di tabel relasi. Berikut relasi banyak ke banyak dan contoh penurunan dari tabel :
           

Tabel Mahasiswa
NIM
Nama
Program_Studi
1206
Merry
Programmer
0403
Ellis
Analist
3006
Abidzar
Dokumentor
                  


         

Tabel Mengikuti
NIM
Kode
Program_Studi
1206
IK 330
Basis Data
0403
IK 330
Basis Data
3006
IK 331
Sistem Basis Data
                  


         

Tabel Mata                  
Kode
Program_Studi
SKS
IK 330
Basis Data
2
IK 331
Sistem Basis Data
3



         



3.7.2  Representasi Spesialisasi (IS A)
                   Ada 2 pendekatan dalam menurunkan spesialisasi ke dalam tabel.
          Pendekatan 1
·        Bentuklah tabel untuk level entitas yg lebih tinggi
·        Bentuklah tabel untuk level entitas yg lebih rendah
(*dengan memasukkan primary key pada level yg lebih tinggi ke tabel dengan level yang lebih rendah)
                                   
                                        
Pendekatan 2

·        Bentuklah tabel untuk tiap himpunan entitas dengan semua atribut lokal dan turunan.
·        Bisa jadi tabel pada level tinggi tidak perlu di simpan jika spesialisasi adalah total. Jika diperlukan bisa dibuat view yang menggabungkan tabel-tabel spesialisasi.

NORMALISASI
            Normalisasi, adalah langkah-langkah sestematis untuk menjamin bahwa struktur database memungkinkan untuk general purpose query dan bebas dari insertion, update dan deletion anomalies yang dapat menyebabkan hilangnya integritas data (E.F. Codd, 1970)

Tujuan Normalisasi
          Tujan normalisasi untuk memperbaiki desain tabel yang kurang baik sehingga penyimpanan data menjadi lebih efisiensi dan bebas anomali data.

Update Anomaly
          Anomaly terjadi bila pengubahan pada sejumlah tabel lebih, tetapi tidak semua data diubah, contohnya : Terdapat relasi Mahasiswa yang mengandung data Nama, Alamat, Mt_Kuliah yang menyatakan identitas Mahasiswa dan mata kuliah yang diampu.

Mahasiswa(Nama, Alamat, Mt_Kuliah)
Nama
Alamat
Mt_Kuliah
Anis
Jl. Melati
Matematika
Caca
Jl. Durian
Basis Data
Robby
Jl. Rambutan
Alpro 1
Ramdani
Jl. Jambu
Logif

Seandainya Mahasiswa Anis berpindah alamat ke Jl. Kamboja dan pengubahan hanya dilakukan pada data pertama maka relasi akan menjadi :

Nama
Alamat
Mt_Kuliah
Anis
Jl. Kamboja
Matematika
Caca
Jl. Durian
Basis Data
Robby
Jl. Rambutan
Alpro 1
Ramdani
Jl. Jambu
Logif


Deletion Anomaly
Anomali ini terjadi sekiranya suatu baris/tupel dihapus dan sebagai akibatnya terdapat data lain yang hilang. Dengan contoh kursus tersebut apa yang terjadi jika Nama_Siswa Sigit dihapus, data yang menyatakan bahwa biaya kursus Bhs Perancis 75.000 akan hilang.

Insert Anomaly
Anomali ini terjadi pada saat penambahan hendak dilakukan ternyata ada elemen data yang masih kosong dan ternyata elemen tersebut menjadi kunci. Contohnya, Sebuah relasi kursus berisi tiga atribut yaitu Nama_Siswa, Nama_Kursus dan Biaya Kursus(Nama_Siswa, Nama_Kursus dan Biaya)

Nama_Siswa
Nama_Kursus
Biaya
Ellis
Rangkain Elektronika
50000
Merry
Logif
60000
Ryan
Basis Data
70000
Robby
Alpro
80000


Relasi diatas menyatakan kursus-kursus yang diikuti oleh siswa dan jumlah biayanya. Masalah akan timbul dibuka kursus baru tetapi belum ada siswanya. Misalnya Bhs Inggris dengan biaya 90.000. akibatnya data kursus baru tersebut tidak bisa dicatat.

Konsep Keys
          Konsep tentang key adalah konsep yang penting untuk memahami keterkaitan antar atribut data dalam tabel dan akan sangat berguna dalam proses normalisasi. Dalam setiap tabel, terdapat 3 macam key:
a)    Super key
Super key adalah satu atribut atau gabungan atribut (kolom) pada tabel yang dapat membedakan semua baris secara unik.
b)    Candidate key
Candidate key disebut juga dengan minimal super key, yaitu super key yang tidak mengandung super key yang lain. Setiap candidate key pasti merupakan super key, namun tidak semua super key akan menjadi candidate key.
c)     Primary key
Primary key adalah salah satu candidate key yang dipilih (dengan berbagai pertimbangan) untuk digunakan dalam DBMS. Tiap tabel hanya memiliki 1 primary key, namun primary key tersebut bisa saja dibentuk dari beberapa atribut (kolom).

Funcitional Dependencies
          Functional dependency (FD) atau kebergantungan fungsional adalah constraint atau batasan/ ketentuan antara 2 buah himpunan atribut pada sebuah tabel.  JIka A dan B adalah himpunan atribut dari tabel T, kebergantungan fungsional antara A dan B biasanya dinyatakan dalam notasi notasi A à B. Notasi A à B berarti:
• A menentukan B
• B secara fungsional bergantung kepada A.
A à B jika memenuhi syarat berikut ini : Pada sebuah tabel T, jika ada dua baris data atau lebih dengan nilai atribut A yang sama maka baris-baris data tersebut pasti akan memiliki nilai atribut B yang sama Namun hal ini tidak berlaku sebaliknya.

Bentuk Normal dan Langkah-Langkah Normalisasi
          Bentuk Normal adalah sekumpulan kriteria yang harus dipenuhi oleh sebuah desain tabel untuk mencapai tingkat/level bentuk normal tertentu. Parameter yang biasanya digunakan dalam menentukan kriteria bentuk normal adalah Functional dependency & The Three Keys.

          Bentuk Normal Pertama (1st Normal Form)
          Bentuk normal pertama atau First Normal Form (1st NF) adalah bentuk normal yang memiliki level terendah.
Kriteria 1st NF:
Tidak ada atribut (kolom) pada tabel yang bersifat multi-value Sebuah atribut disebut bersifat multivalue jika dalam sebuah baris data pada kolom tersbut terdapat lebih dari satu nilai. Misalnya kolom telepon yang berisi ‘0813xx, 022xxx’ dan seterusnya.
Tidak memiliki lebih dari satu atribut dengn domain yang sama Sebuah tabel dikatakan memiliki lebih dari satu atribut dengan domain yang sama jika pada tabel tersebut terdapat lebih dari satu kolom yang digunakan untuk menyimpan data yang jenisnya sama. Misalnya kolom telepon1, telepon2, telepon3 dan seterusnya.

Bentuk Normal Ke Dua (2nd Normal Form)
Kriteria 2nd NF:
Memenuhi 1st NF
Desain tabel yang tidak memenuhi syarat 1st NF sudah pasti tidak akan memenuhi syarat 2nd NF
Tidak ada Partial Functional dependency
Partial Functional dependency terjadi bila (B,C) adalah candidate key dan Bà A

Bentuk Normal Ke Tiga (3rd Normal Form) Umumnya jika sebuah tabel telah memenuhi syarat bentuk normal ke tiga (3rd NF) maka tabel tersebut sudah dianggap ‘cukup normal’. Bentuk normal ke 3 adalah bentuk normal yang biasanya menjadi syarat minimum bagi sebuah desan tabel walaupun akan lebih baik jika juga memenuhi BCNF.
Kriteria 3rd NF:
Memenuhi 2nd NF
Desain tabel yang tidak memenuhi syarat 2nd NF sudah pasti tidak akan memenuhi syarat 3rd NF
Tidak ada Transitive Functional dependency
Transitive functional dependency terjadi bila AàB dan BàC

Bentuk Normal Boyce Codd (BC Normal Form)
Boyce Codd Normal Form atau bentuk normal Boyce-Codd adalah bentuk normal yang levelnya di atas 3rd NF. Kriteria BCNF:
Memenuhi 3rd NF
Desain tabel yang tidak memenuhi syarat 3rd NF sudah pasti tidak akan memenuhi syarat BCNF
Untuk semua FD yang terdapat di tabel, ruas kiri dari FD tersebut adalah super key
Jika ada satu saja FD pada tabel dimana ruas kirinya bukan super key maka desain tabel tersebut belum memenuhi syarat BCNF. Solusinya adalah dengan melakukan dekomposisi tabel dan tetap mempertahankan konsistensi data seperti beberapa contoh pada sub bab sebelumnya

Denormalisasi
Denormalisasi adalah proses menggandakan data secara sengaja (sehingga menyebabkan redundansi data) untuk meningkatkan performa database, untuk meningkatkan kecepatan akses data atau memperkecil query cost.


Yang perlu diingat tentang denormalisasi adalah bahwa denormalisasi tidak sama dengan tidak melakukan normalisasi. Denormalisasi dilakukan setelah tabel dalam kondisi ‘cukup normal’ (mencapai level bentuk normal yang dikehendaki).
Continue Reading...
 

Ellis Hidayati Tz'Rum Copyright © 2009 Girlymagz is Designed by Bie Girl Vector by Ipietoon