Monday, December 29, 2014

Stack Java

Unknown | 7:34 PM | Be the first to comment!

Pengertian Stack (Tumpukan)
       Stack (Tumpukan) adalah kumpulan elemen-elemen data yang disimpan dalam satu lajur linear. Kumpulan elemen-elemen data hanya boleh diakses pada satu lokasi saja yaitu posisi ATAS (TOP) tumpukan. Tumpukan digunakan dalam algoritma pengimbas (parsing), algoritma penilaian (evaluation) dan algoritma penjajahan balik (backtrack). Elemen-elemen di dalam tumpukan dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur.
          Stack adalah suatu tumpukan dari benda. Konsep utamanya adalah LIFO (Last In First Out), benda yang terakhir masuk dalam stack akan menjadi benda pertama yang dikeluarkan dari stack. Tumpukan disebut juga “Push Down Stack” yaitu penambahan elemen baru (PUSH)ndan penghapusan elemen dari tumpukann(POP). Contoh pada PDA (Push Down Automaton). Sistem pada pengaksesan pada tumpukan menggunakn system LIFO (Last In First Out), artinya elemen yang terakhir masuk itu yang akan pertama dikeluarkan dari tumpukan (Stack). Ilustrasi tumpukan (Stack) dapat digambarkan seperti tumpukan CD atau tumpukan sate. Stack merupakan suatu susunan koleksi data dimana dapat ditambahkan dan dihapus selalu dilakukan pada bagian akhir data, yang disebut dengan Top Of Stack.
          Sebelum struktur data tumpukan ini bisa digunakan, harus dideklarasikan dahulu dalam kamus data. Ada beberapa cara pendeklarasian struktur data ini, salah satunya dengan menggunakan tata susunan linear (larik) dan sebuah variable, yang dikemas dalam tipe data record. Stack (tumpukan) adalah struktur data bertipe record yang terdiri dari field elemen, bertipe larik/array dengan indek dari 1 sampai dengan MaksTum (Maksimum Tumpukan), atas, bertipe interger berkisar dari 0 (saat kosong) sampai dengan MaksTum (Maksimum Tumpukan).
B. Operasi – operasi pada Stack (Tumpukan)
Operasi yang sering diterapkan pada struktur data Stack (Tumpukan) adalah Push dan Pop. Operasi – operasi yang dapat diterapkan adalah sebagai berikut :
1. Push : digunakan untuk menembah item pada Stack pada Tumpukan paling atas.
2. Pop : digunakan untuk mengambil item pada Stack pada Tumpukan paling atas.
3. Clear : digunakan untuk mengosongkan Stack.
4. Create Stack : membuat Tumpukan baru S, dengan jumlah elemen kosong.
5. MakeNull : mengosongkan Tumpukan S, jika ada elemen maka semua elemen dihapus.
6. IsEmpty : fungsi yang digunakan untuk mengecek apakah Stack sudah kosong.
7. Isfull : fungsi yang digunakan untuk mengecek apakah Stack sudah penuh.
           Pada proses Push, Tumpukan (Stack) harus diperiksa apakah jumlah elemen sudah mencapai masimum atau tidak. Jika sudah mencapai maksimum maka OVERFLOW, artinya Tumpukan penuh tidak ada elemen yang dapat dimasukkan ke dalam Tumpukan. Sedangkan pada proses Pop, Tumpukan harus diperiksa apakah ada elemen yang hendak dikeluarkan atau tidak. Jika tidak ada maka UNDERFLOW, artinya tumpukan kosong tidak ada elemen yang dapat diambil.
C. Macam – macam Stack
1. Stack dengan Array
Sesuai dengan sifat stack, pengambilan atau penghapusan elemen dalam stack harus dimulai dari elemen teratas.
2. Double Stack dengan Array
Metode ini adalah teknik khusus yang dikembangkan untuk menghemat pemakaian memori dalam pembuatan dua stack dengan array. Intinya adalah penggunaan hanya sebuah array untuk menampung dua stack.
Ilustrasi Stack pada saat Inisialisasi
Ilustrasi Stack pada saat full
Contohnya :
Class Tumpukan
{
private int ukuran;
private long[] tumpukan;
private int top;
public Tumpukan(int s)
{
ukuran = s;
tumpukan = new long[ukuran];
top = -1;
}
public void push(long j)
{
tumpukan[++top] = j;
}
public long pop()
{
return tumpukan[top--];
}
public long peek()
{
return tumpukan[top];
}
public boolean isEmpty()
{
return (top == -1);
}
public boolean isFull()
{
return (top == ukuran-1);
}
public void baca()
{
int i = top;
while( i>=0 )
{
System.out.print(tumpukan[i]);
System.out.print(" ");
i--;
}
System.out.println(" ");
}
}
class ApliStack
{
public static void main(String[] args)
{
Tumpukan stack = new Tumpukan(10);
stack.push(56);
stack.baca();
stack.push(45);
stack.baca();
stack.push(67);
stack.baca();
stack.push(83);
while( !stack.isEmpty() )
{
long nilai = stack.pop();
System.out.print(nilai);
System.out.print(" ");
}
System.out.println(" ");
}
}






-perbedaan ubuntu dengan windows
 
Read more ...

Friday, December 26, 2014

Perbedaan Antara Ubuntu dan Windows

Unknown | 7:31 PM | Be the first to comment!

Ubuntu adalah sebuah software yang berbasis Open Source atau terbuka dapat di kembangkan dan dibentuk dengan kemampuan yang kita miliki contoh dari perkembangan linux yang terjadi pada Negara Indonesia Adalah OS Garuda.
Perkembangan dari sebuah OS Linux Ubuntu mungkin di antara kalian sobat blogger sudah ada yang tau. dan apakah kalian sudah ada yang memakainya pada laptop atau komputer PC anda mungkin ada dan hanya sedikit yang menggunakan Linux karena banyak orang mengatakan linux itu sulit , namun kenyataannya OS Linux dan Windows tidak jauh berbeda.

dan kenapa saya bilang tidak jauh berbeda karna pada Windows anda mengolah pekerjaan kantor dengan menggunakan Microsoft Office dan sedangkan pada Linux anda menggunakan Software Open Office yang tidak jauh berbeda dengan Microsoft Office namun apakah anda masih binggung menggunakannya.

Ms Word memiliki Kelebihan :
  • Desain sudah memakai icon yang mudah untuk dimengerti
  • Tampilan lebih bagus
  • lebih Evisien
dan Ms. Word Juga memiliki Kelemahan :
  • Lebih memerlukan besar RAM 
  • Sedikit Lebih berat dalam Starting atau awal program di jalankan
Sedangkan Open Office memiliki kelebihan seperti :


  1. Lebih ringan saat startup 
  2. desain simpel 
  3. tidak mementingkan RAM yang terlalu besar
  4. ukuran File lebih kecil
  5. dan dapat membuat sebuah PDF dan jika Ms.office dia hanya bisa dengan versi 2010 saja
sedangkan Kelemahannya :
  1. sedikit sulit dimegerti karna desain masih berbentuk seperti Office 2003
  2. tampilan sedikit kaku dan clasic.
     Linux Ubuntu versi 11.04 Beta Memiliki kelebihan sebagai berikut :
  • Tidak memerlukan kapasitas yang terlalu besar
  • Kecepatan RAM di kalikan 2x 
  • Lebih Ringan dalam Booting
  • Instalasi dapat menggunakan bahasa indonesia
  • Cara Instalasi mudah
  • Kebanyakan Program Aplikasi Dari Linux Berbasis Opensorce dan Free
sedangkan kelemahannya adalah :
  • tidak Kompatibel dengan Sistem Windows 
  • Cara instalasi dari luar sangat sulit
Sedangkan Windows 7 memiliki kelebihan seperti :
  1. desktop berbentu Aero Transparan 
  2. lebih Bagus dalam tampilan
  3. Elegan
  4. Instalasi Cepat
sedangkan kelemahan :
  1. memerlukan ruang yang besar 
  2. sedikit berat
  3. dan harus sering-sering melihat atau mengatur Startupnya agar kecepatan Stabil.
Read more ...

Wednesday, December 24, 2014

Memonitor kerja jaringan

Unknown | 7:47 PM | Be the first to comment!


          Untuk memantau kerja jaringan pada sistem oprasi linux dapat mengguanakan Nagios.Nagios merupakan aplikasi monitoring sistem dan jaringan berbasis Open source dan Free.Nagios dapat memonitor perangkat jaringan misalnya saja router,switch,ataupun server-server yang menjalankan sistem operasi linux,Windows,Novell netware dan lainya.Nagios juga dapat digunakan untuk memonitoring semua perangkat yang terhubung dengan server, Misalnya penggunaan CPU,memori,hard disk,dan status sebuah aplikasi melalui protokol jaringan seperti SSH dan SNMP.

          Fitur-fitur Yang ada pada Nagios antara lain :
1.    Dapat memberikan layanan jaringan misalnya saja HTTP,SMTP,POP# dan PING.
2.    Dapat memonitor penggunaan CPU,disk dan memori.
3.    Pada Nagios terdapat desain Plug-in yang sederhana.
4.    Mampu memberikan dukungan untuk notifikasi melalui e-mail atau pager.
5.    Dapat melakukan proses monitoring host secara redundant
6.    Dapat melakukan rotasi file secara otomatis.
Read more ...

Saturday, December 20, 2014

Menghubungkan netbeans dengan My SQL

Unknown | 5:14 AM | Be the first to comment!
Biasanya di netbeans sudah ada My Sql connectornya coba aja di lihat Caranya

1.Buka netbeanya dulu versi 6.9 atau 8.0
2.Kalau dah terbuka Clik Services
3.Clik Databases
4.Click driver dan cek apakah dah ada MySQL (Connector/J driver)
    Kalau belum ada bisa download dulu.
5.Kalau dah ada MySQL (Connector/J driver) tinggal clik kanan lalu clik conect using

Jadinya kayak ini
isi Databasenya sesuai nama Databases yang ada di MYSQL untuk username dan pasword bisa di ubah sesuai keinginan.kalau sudah tingga kita next dan finish.

kalau cara yang di atas sudah betul maka tinggal koneksikan databases nya ke project yang dibuat caranya

Clik project yang dibuat lalu disitukan ada libraries,clik kanan librariesya dan clic add library lalu cari dan pilih MySQL JDBC Driver

Nah,sekarang tinggal koneksi ke aplikasi yang kita buat
- import dulu " import java.sql.*;"
-lalu masukkan Script di bawah ini
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
       try
       {
       String nomor=txnomor.getText();
       String nama=txnama.getText();
       String alamat=txalamat.getText();
       String email=txemail.getText();
Class.forName("com.mysql.jdbc.Driver");
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/nama databases","nama username","pasword jika ada");
            Statement statement=(Statement) connection.createStatement();
            String sql="insert into nama 'tabel yang kita buat di database' values ('"+nomor+"','"+nama+"','"+alamat+"','"+email+"');";
            statement.executeUpdate(sql);
            statement.close();
            connection.close();
            JOptionPane.showMessageDialog(null,"Data telah tersimpan");
             txnomor.setText("");
            txnama.setText("");
            txalamat.setText("");
            txemail.setText("");
            txnomor.requestFocus();
     
       }
       catch(Exception ex)
       {
       System.out.println("Error:"+ex);
       JOptionPane.showMessageDialog(null,"Error:"+"Data belum telah tersimpan");
       }
    }    

Read more ...

Thursday, December 18, 2014

Cara Penggabungan SUB QUERY DAN QUERY ANTAR TABEL

Unknown | 8:30 PM | Be the first to comment!

JOIN
Untuk menampilkan record dari suatu tabel dengan tabel lainnya menggunakan pernyataan JOIN. Fungsinya menghubungkan tabel-tabel dalam database agar didapat informasi yang lebih luas.

PENGGABUNGAN SEDERHANA (EQUI JOIN)
Equi Join adalah penggabungan antartabel dengan menggunakan operator sama dengan(=) dan memiliki fungsi untuk membandingkan satu kolom pada satu tabel dengan kolom lain yang berada pada tabel lain.
Ada 4 Equi Join :
    • Inner Join : dipilih semua data yang sama dari kedua tabel
    • Left Join : dipilih semua data inner join ditambah dengan data dari tabel yang tidak terdapat pada tabel kedua
    • Right Join : dipilih semua data inner join ditambah dengan data tabel kedua yang tidak terdapat pada tabel kedua
    • Full Outer : dipilih dari penggabungan antar Left Join dengan Right Join

Contoh Innner Join:
SELECT TANGGALORDER, NAMA, JUMLAH FROM ORDER INNER JOIN BARANG ON ORDERS.BARANG=BARANG.KODE

Contoh Left Join:
SELECT ORDER, TANGGALORDER, BARANG.NAMA, ORDERS.JUMLAH FROM ORDERS LEFT JOIN BARANG ON ORDERS.BARANG=BARANG.KODE

Contoh Right Join:
SELECT ORDER, TANGGALORDER, BARANG.NAMA, ORDERS.JUMLAH FROM ORDERS RIGHT JOIN BARANG ON ORDERS.BARANG=BARANG.KODE
Read more ...

Tuesday, December 16, 2014

KLASIFIKASI SISTEM TEKNOLOGI INFORMASI

Unknown | 7:27 PM | Be the first to comment!
MENURUT FUNGSI SISTEM: Berdasarkan fungsi sitem, sistem teknologi informasi dibedakan menjadi:
Embedded IT System: sistem teknologi informasi yang melekat pada produk lain.(VCR, Lift)
Dedicated IT sistem: Teknologi informasi yang dirancang untukmelakukan tugas-tugas khusus. (ATM)
General Purpose IT System adalah sistem teknologi informasi yang dapat digunakan untuk melakukan aktifitas yang bersifat umum. (PC)
       
MENURUT UKURAN:
    Ukuran dalam pengklasifikasian sistem teknologi informasi tidakharus berupa ukuran fisik tetapi ukuran informasi yang ditampung (kecepatan proses dan jumlah orang yang menggunakan secara bersamaan). Kelompok tersebut adalah:
    a.  Mikrokomputer
Dikenal dg PC atau Komputer pribadi
Dibedakan menjadi desktop PC, tower PC, laptop, notebook, palmtop, dan PDA.
    b. Workstation
Adalah jenis komputer yang lebih ampuh daripada kebanyakan PC.
Pada awalnya workstation dirancang untukmemenuhi aplikasi perancangan berbasis grafis tetapi belakangan juga banyak dipakai sebagai server dalam client/server
Perusahaan komputer yang menjadi pemain utama dalam produksi workstation  adalah DEC, IBM, dan Sun Microsystem.
    c. Minikomputer
Sistem Mindrage biasa digunakan pada perusahaan2 berskala menengah sebagai server
    d. Mainframe
Jenis komputer yang digunakan pada perusahaan2 perskala besar untuk menangani pemrosesan data dengan volume yang sangat besar.
IBM System/360 merupakan mainframe yang pertama, dibuat tahun 1964. Digunakan pada computer History Museum California. Mampu melakukan perhitungan sampai 1 juta instukri per detik.
    e. Superkomputer
Adalah jenis komputer yang mempunyai kecepatan proses paling hebat.
Biasanya digunakan untukaplikasi yang melibatkan perhitungan yang kompleks (peramalan cuaca dan perancangan roket)
Superkomputer yang terkenal Cray (cray research, inc) IBM ASCII White yang digunakan untukmelakukan simulasi pengujian nuklir pada Departement Energi AS 

    
Read more ...

Thursday, December 11, 2014

Kolerasi sub Query Basis Data

Unknown | 7:16 PM | Be the first to comment!

Korelasi sub-query Ketika sub-query dijalankan untuk setiap baris dari tabel induk , bukan sekali ( seperti yang ditunjukkan pada contoh di atas ) maka sub-query disebut sebagai berkorelasi sub - query. Sebagai contoh: database Fundamental 134 SELECT dept , nama , tanda
DARI final_result sebuah tanda MANA =
(
SELECT max ( tanda ) DARI MANA final_result dept = a.dept
)
Pernyataan di atas mencari daftar siswa dengan departemen mereka , yang telah diberikan tanda maksimal di setiap departemen . Untuk setiap baris di meja KIRI , sub-query menemukan max ( tanda ) untuk departemen dari baris saat ini dan jika nilai-nilai dari tanda pada baris saat ini adalah sama dengan sub-query set hasil , maka akan ditambahkan ke hasil permintaan luar ditetapkan .
5.7.4 Sub - query FROM Klausul A sub-query dapat digunakan dalam klausa FROM juga, seperti yang ditunjukkan dalam contoh berikut: SELECT dept , max_marks , min_marks , avg_marks
DARI
(
SELECT dept ,
max ( tanda ) sebagai max_marks ,
min ( tanda ) sebagai min_marks ,
avg ( tanda ) sebagai avg_marks
FROM GROUP BY final_result dept
)
WHERE ( max_marks - min_marks ) > 50 dan avg_marks < 50
Permintaan atas menggunakan sub-query dalam klausa FROM . The sub-query kembali maksimum , minimum dan rata-rata nilai untuk masing-masing departemen . Permintaan luar menggunakan data ini dan menyaring data lebih lanjut dengan menambahkan kondisi filter di klausa WHERE dari permintaan luar .
Read more ...

Wednesday, December 10, 2014

Program jahat pada komputer

Unknown | 7:47 PM | Be the first to comment!
  • Bacteria
          Pogram yang mengkonsumsi sumber daya sistem dengan mereplikasi dirinya sendiri. Bacteria tidak secara eksplisit merusak file. Tujuan program ini hanya satu yaitu mereplikasi dirinya. Program bacteria yang sederhana bisa hanya mengeksekusi dua kopian dirinya secara simultan pada sistem multiprogramming atau menciptakan dua file baru, masing-masing adalah kopian file program bacteria. Kedua kopian ini kemudian mengkopi dua kali, dan seterusnya.
  • Logic bomb
         Logik yang ditempelkan pada program komputer agar memeriksa suatu kumpulan kondisi di sistem. Ketika kondisi-kondisi yang dimaksud ditemui, logik mengeksekusi suatu fungsi yang menghasilkan aksi-aksi tak diotorisasi. Salah satu program jahat yang ditempelkan pada program komputer agar memeriksa suatu kumpulan kondisi di sistem. Ketika kondisi-kondisi yang dimaksud ditemui, logik mengeksekusi suatu fungsi yang menghasilkan aksi-aksi tak diotorisasi.

Cara Kerja:
          Logic bomb menempel pada suatu program resmi yang diset meledak ketika kondisi-kondisi tertentu dipenuhi. Contoh kondisi-kondisi untuk memicu logic bomb adalah ada atau tidak adanya file tertentu, hari tertentu dari minggu atau tanggal, atau pemakai menjalankan aplikasi tertentu. Begitu terpicu, bomb mengubah atau menghapus data atau seluruh file, menyebabkan mesin berhenti, atau mengerjakan perusakan lain

  •   Trapdoor 
           Adalah jebakan yang digunakan untuk menjebak administrator agar menjalankan perintah tertentu yang nantinya dengan perintah tersebut penyusup bisa mendapatkan jalan untuk mendapatkan previlege root. Sebagai contoh, seorang user meminta admin untuk menjalankan program yang tidak bisa dijalankan oleh user biasa, dan ketika admin memasukkan password root, password tersebut telah terekam oleh user tersebut karena sebelumnya telah menjalankan program yang mempunyai tampilan login untuk menyadap password.Titik masuk tak terdokumentasi rahasia di satu program untuk memberikan akses tanpa metode-metode otentifikasi normal.

  • Trojan Horse
          Trojan di dalam sistem komputer adalah  suatu program yang tidak diharapkan dan disisipkan tanpa sepengetahuan pemilik komputer. Program ini kemudian dapat diaktifkan dan dikendalikan dari jarak jauh, atau dengan menggunakan timer (pewaktu). Akibatnya, komputer yang disisipi Trojan Horse tersebut dapat dikendalikan dari jarak jauh. Definisi lain mengatakan bahwa Trojan  adalah program apapun yang digunakan untuk melaksanakan suatu fungsi penting dan diharapkan oleh pemakai, namun kode dan fungsi di dalamnya tidak dikenal oleh pemakai. Selanjutnya program melaksanakan fungsi tak dikenal dan dikendalikan dari jarak jauh yang tidak dikehendaki oleh pemakai.

  • Cara Kerja Trojan
           Trojan masuk melalui dua bagian, yaitu bagian client dan server. Ketika korban (tanpa diketahui) menjalankan komputer, kemudian penyerang akan menggunakan client untuk koneksi dengan server dan mulai menggunakan trojan. Protokol TCP/IP adalah jenis protokol yang umum digunakan untuk komunikasi. Trojan dapat bekerja dengan baik dengan jenis protokol ini, tetapi beberapa trojan juga dapat menggunakan protokol UDP dengan baik. Ketika server mulai dijalankan (pada komputer korban), Trojan umumnya mencoba untuk menyembunyikan diri di suatu tempat dalam sistem computer tersebut, kemudian mulai “mendengarkan” di beberapa port untuk melakukan koneksi, memodifikasi registry dan atau menggunakan metode lain yaitu metode autostarting. Hal yang penting untuk diketahui oleh penyerang adalah mengetahui IP address korban untuk  menghubungkan komputernya ke komputer korban. Banyak varian Trojan mempunyai kemampuan mengirimkan IP address korban ke penyerangnya, misalnya media ICQ maupun IRC. Hal ini digunakan bagi korban yang mempunyai IP address dinamis, yang berarti setiap kali menghubungkan ke Internet didapatkan IP address yang berbeda. Untuk pemakai yang memanfaatkan Asymmetric Digital Suscriber Line (ADSL) berarti selalu memakai IP address yang tetap (statis) sehingga mudah diketahui dan mudah untuk dikoneksikan dengan komputer penyerang.

  • Virus
          Virus komputer merupakan program komputer yang dapat menggandakan atau menyalin dirinya sendiri dan menyebar dengan cara menyisipkan salinan dirinya ke dalam program atau dokumen lain. Virus komputer dapat dianalogikan dengan virus biologis yang menyebar dengan cara menyisipkan dirinya sendiri ke sel makhluk hidup. Virus komputer dapat merusak (misalnya dengan merusak data pada dokumen), membuat pengguna komputer merasa terganggu, maupun tidak menimbulkan efek sama sekali.
  • Jenis Virus
  1. Virus File
  2. Virus Boot Sector
  3. Virus E-mail
  4. Virus Multipartite
  5. Virus Polimorfis
  6. Virus Siluman (stealth virus)
  7. Virus Makro
  • WORM
          Worm adalah lubang keamanan atau celah kelemahan pada komputer kita yang memungkinkan komputer kita terinfeksi virus tanpa harus eksekusi suatu file yang umumnya terjadi pada jaringan.Sebuah worm dapat menggandakan dirinya dengan memanfaatkan jaringan (LAN/WAN/Internet) tanpa perlu campur tangan dari user itu sendiri. Worm tidak seperti virus komputer biasa, yang menggandakan dirinya dengan cara menyisipkan program dirinya pada program yang ada dalam komputer tersebut,  Worm merupakan evolusi dari virus komputer. Hanya ada satu cara untuk mengatasi worm yaitu dengan menutup celah keamanan yang terbuka tersebut, dengan cara meng-update patch atau Service Pack dari operating sistem yang digunakan dengan patch atau Service Pack yang paling terbaru.

         Catatan :
    Pada dasarnya program jahat tersebut butuh suatu kondisi untuk mengaktifkannya.biasanya tanpa kita sadari kita sendiri yang mengaktifkannya,yaitu saat kita meng-klik suatu file yang mencurigakan dan file tersebut telah disisipi oleh program jahat.
    Jadi hati-hati saat meng-klik suatu file ya apa lagi di internet..

Read more ...

Friday, December 5, 2014

Fungsi,Tujuan dan Normalisasi Database

Unknown | 7:32 AM | Be the first to comment!

Normalisasi database merupakan suatu pendekatan sistematis untuk meminimalkan redundansi data pada suatu database agar database tersebut dapat bekerja dengan optimal. Jika anda seorang database administrator ketika terjadi sesuatu pada database seperti penurunan kinerja, mungkin anda akan ditanya apakah database tersebut telah di normalisasi?

Fungsi Normalisasi Database
Pada ilmu database atau basis data, normalisasi digunakan untuk menghindari terjadinya berbagai anomali data dan tidak konsistensinya data. Ini merupakan funsi secara umum. Dalam beberapa kasus normalisasi ini sangat penting untuk menunjang kinerja database dan memastikan bahwa data dalam database tersebut aman dan tidak terjadi kesalahan jika mendapat perintah SQL terutama DML yaitu update, insert, dan delete.
Perlu diketahui dalam beberapa kasus Normalisasi database terkadang harus diubah menjadi bentuk denormalisasi, terutama untuk data yang telah besar dan membengkak. Denormalisasi ini ditujukan untuk meningkatkan performance dengan meletakkan beberapa field menjadi satu tabel sehingga mudah di tarik. Denormalisasi ini sering digunakan untuk menarik data yang besar dari database.

Tujuan Normalisasi Database
Tujuan normalisasi database adalah untuk menghilangkan dan mengurangi redudansi data dan tujuan yang kedua adalah memastikan dependensi data (Data berada pada tabel yang tepat).
Jika data dalam database tersebut belum di normalisasi maka akan terjadi 3 kemungkinan yang akan merugikan sistem secara keseluruhan.
  1. INSERT Anomali : Situasi dimana tidak memungkinkan memasukkan beberapa jenis data secara langsung di database.
  2. DELETE Anomali: Penghapusan data yang tidak sesuai dengan yang diharapkan, artinya data yang harusnya tidak terhapus mungkin ikut terhapus.
  3. UPDATE Anomali: Situasi dimana nilai yang diubah menyebabkan inkonsistensi database, dalam artian data yang diubah tidak sesuai dengan yang diperintahkan atau yang diinginkan.
Normalisasi Database

  Normalisasi Database terdiri dari banyak bentuk, dalam ilmu basis data ada setidaknya 9 bentuk normalisasi yang ada yaitu 1NF, 2NF, 3NF, EKNF, BCNF, 4NF, 5NF, DKNF, dan 6NF. Namun dalam prakteknya dalam dunia industri bentuk normalisasi ini yang paling sering digunakan ada sekitar 5 bentuk.

Normal Form
Data yang direkam dan dimasukkan secara mentah dalam suatu tabel pada bentuk ini sangat mungkin terjadi inkonsistensi dan anomali data
Contoh Normal Form
Contoh normal form
Pada bentuk ini ada beberapa ciri ciri yang penting, yang pertama adalah akan terjadi anomali dalam insert, update, dan delete. Hal ini menyebabkan beberapa Fungsi DML di MYSQL tidak dapat berjalan dengan baik. Sebagai contoh jika ingin menghapus penerbit maka data judul buku akan ikut terhapus begitu juga jika ingin menghapus peminjam, maka data penerbit dan buku yang harusnya tidak terhapus akan ikut hilang.

First Normal Form (1NF)
Bentuk normal yang pertama atau 1NF mensyaratkan beberapa kondisi dalam sebuah database, berikut adalah fungsi dari bentuk normal pertama ini.
  • Menghilangkan duplikasi kolom dari tabel yang sama.
  • Buat tabel terpisah untuk masing-masing kelompok data terkait dan mengidentifikasi setiap baris dengan kolom yang unik (primary key).
Contoh Normalisasi Database 1NF
Normalisasi Database 1NF
Pada intinya bentuk normalisasi 1NF ini mengelompokkan beberapa tipe data atau kelompok data yang sejenis agar dapat dipisahkan sehingga anomali data dapat di atasi. Contoh adalah ketika kita ingin menghapus, mengupdate, atau menambahkan data peminjam, maka kita tidak bersinggungan dengan data buku atau data penerbit. Sehingga inkonsistensi data dapat mulai di jaga.

Second normal form (2NF)
Syarat untuk menerapkan normalisasi bentuk kedua ini adalah data telah dibentuk dalam 1NF, berikut adalah beberapa fungsi normalisasi 2NF.
  • Menghapus beberapa subset data yang ada pada tabel dan menempatkan mereka pada tabel terpisah.
  • Menciptakan hubungan antara tabel baru dan tabel lama dengan menciptakan foreign key.
  • Tidak ada atribut dalam tabel yang secara fungsional bergantung pada candidate key tabel tersebut.
Contoh normalisasi database bentuk 2NF
Contoh Normalisasi Database 2NF
Contoh di atas kita menggunakan tabel bantuan yaitu tabel transaksi, pada intinya bentu kedua ini adalah tidak boleh ada field yang berhubungan dengan field lainnya secara fungsional. Contoh Judul Buku tergantung dengan id_Buku sehingga dalam bentuk 2NF judul buku dapat di hilangkan karena telah memiliki tabel master tersendiri.

Third Normal Form (3NF)
Normalisasi database dalam bentuk 3NF bertujuan untuk menghilangkan seluruh atribut atau field yang tidak berhubungan dengan primary key. Dengan demikian tidak ada ketergantungan transitif pada setiap kandidat key. Syarat dari bentuk normal ketiga atau 3NF adalah :
  • Memenuhi semua persyaratan dari bentuk normal kedua.
  • Menghapus kolom yang tidak tergantung pada primary key.
Contoh Normalisasi Database Bentuk 3NF
Tidak semua kasus atau tabel dapat kita sesuaikan dengan berbagai bentuk normalisasi ini, untuk contoh 3NF kita akan mengambil contoh dari tabel order.
Normalisasi Database Bentuk 3NF
Pada tabel pertama di atas, apakah semua kolom sepenuhnya tergantung pada primary key? tentu tidak, hanya saja ada satu field yaitu total yang bergantung pada harga dan jumlah, total dapat dihasilkan dengan mengalikan harga dan jumlah. Bentuk 3NF dalam tabel di atas dapat dilakukan dengan membuang field Total.
Bentuk SQL

SELECT ORDERID, HARGA, JUMLAH, TOTAL
FROM ORDER
Menjadi
SELECT ORDERID, HARGA*JUMLAH AS TOTAL
FROM ORDER

BCNF Boyce–Codd normal form
Merupakan sebuah teknik normalisasi database yang sering disebut 3.5NF, memiliki hubungan yang sangat erat dengan bentuk 3NF. Pada dasarnya adalah untuk menghandle anomali dan overlooping yang tidak dapat di handle dalam bentuk 3NF. Normalisasi database bentuk ini tergantung dari kasus yang disediakan, tidak semua tabel wajib di normalisasi dalam bentuk BCNF.

Read more ...
Twitter Delicious Facebook Digg Stumbleupon Favorites More

Search

Photo

Photo
Arif wicaksono. Powered by Blogger.