Tugas iv 0317_arie firmandani_1512510445

24
REKAYASA WEB TUGAS Iv NIM :1512510445 NAMA : Arie Firmandani FAKULTAS : Fakultas Teknologi Informasi Prodi : Sistem Informasi

Transcript of Tugas iv 0317_arie firmandani_1512510445

Page 1: Tugas iv  0317_arie firmandani_1512510445

REKAYASA WEBTUGAS Iv

NIM :1512510445NAMA : Arie FirmandaniFAKULTAS : Fakultas Teknologi InformasiProdi : Sistem Informasi

Page 2: Tugas iv  0317_arie firmandani_1512510445

Database

A. PENGERTIAN1. Pengertian database adalah sekumpulan data yang sudah disusun

sedemikan rupa dengan ketentuan atau aturan tertentu yang saling berelasi sehingga memudahkan pengguna dalam mengelolanya juga memudahkan memperoleh informasi. Selain itu adapula yang mendefinisikan database sebagai kumpulan file, tabel, atau arsip yang saling terhubung yang disimpan dalam media elektronik. Database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik untuk memperoleh informasi dari basis data tersebut.

2. Database adalah representasi kumpulan fakta yang saling berhubungan disimpan secara bersama, untuk memenuhi berbagai kebutuhan.

3. Database merupakan sekumpulan informasi yang saling berkaitan pada suatu subjek tertentu untuk tujuan tertentu pula.

4. Database adalah susunan record data operasional lengkap dari suatu organisasi atau perusahaan, yang diorganisir dan disimpan secara terintegrasi dengan menggunakan metode tertentu sehingga mampu memenuhi informasi yang optimal yang dibutuhkan olehpara pengguna.

Page 3: Tugas iv  0317_arie firmandani_1512510445

B. STRUKTUR DATA DAN BASIS DATA (DATABASE)

Telah diketahui bahwa secara fisik data dalam bentuk kumpulan bit dan direkam dengan basis track didalam media penyimpan eksternal. Dalam prakteknya, untuk kemudahan dalam mengakses data, data disusun dalam suatu struktur logis yang menjelaskan bahwa:

1. Kumpulan tabel menyusun basis data,2. Tabel tersusun atas sejumlah record,3. Sebuah record mengandung sejumlah field, dan4. Sebuah field disimpan dalam bentuk kumpulan

bit.

Page 4: Tugas iv  0317_arie firmandani_1512510445

Pengertian masing-masing istilah diatas adalah seperti berikut:

a. Field (medan) menyatakan data terkecil yang memiliki makna. Istilah lain untuk field yaitu elemen data, kolom item, dan atribut. Contoh field yaitu nama seseorang, jumlah barang yang dibeli, dan tanggal lahir seseorang.

b. Record (rekaman) menyatakan kumpulan dari sejumlah elemen data yang saling terkait. Sebagai contoh, nama, alamat, tanggal lahir, dan jenis kelamin dari seseorang menyusun sebuah record. Istilah lain yang juga menyatakan record yaitu tupel dan baris.

c. Tabel menghimpun sejumlah record. Sebagai contoh, data pribadi dari semua pegawai disimpan dalam sebuah tabel.

d. Basis data (database) adalah suatu pengorganisasian sekumpulan data yang saling terkait sehingga memudahkan aktivitas untuk memperoleh informasi. Sebagai contoh, basis data akademis mengandung tabel-tabel yang berhubungan dengan data mahasiswa, data jurusan, data mata kuliah, data pengambilan mata kuliah pada suatu semester, dan nilai yang diperoleh mahasiswa.

Page 5: Tugas iv  0317_arie firmandani_1512510445

C. PERANGKAT UNTUK MEMBUAT DATABASE

Database dapat dibuat dan diolah dengan menggunakan suatu program komputer, yaitu yang biasa disebut dengan software (perangkat lunak).Software yang digunakan untuk mengelola dan memanggil kueri (query) database disebut Database Management System (DBMS) atau jika diterjemahkan kedalam bahasa indonesia berarti “Sistem Manajemen Basis Data”.DBMS terdiri dari dua komponen, yaitu Relational Database Management System (RDBMS) dan Overview of Database Management System (ODBMS). RDBMS meliputi Interface Drivers, SQL Engine, Transaction Engine, Relational Engine, dan Storage Engine. Sedangkan ODBMS meliputi Language Drivers,Query Engine, Transaction Engine, dan Storage Engine.

Page 6: Tugas iv  0317_arie firmandani_1512510445

Sedangkan level dari softwarenya sendiri, terdapat dua level software yang memungkinkan untuk membuat sebuah database antara lain :

High Level Software dan Low Level Software.Yang termasuk di dalam High Level Software, antara lain Microsoft SQL Server, Oracle, Sybase, Interbase, XBase, Firebird, MySQL, PostgreSQL, Microsoft Access, dBase III, Paradox, FoxPro, Visual FoxPro, Arago, Force, Recital, dbFast, dbXL,Quicksilver, Clipper, FlagShip, Harbour, Visual dBase, dan Lotus Smart Suite Approach. Sedangkan yang termasuk di dalam Low Level Software antara lainBtrieve dan Tsunami Record Manager.

Page 7: Tugas iv  0317_arie firmandani_1512510445

D. TIPE DAN CIRI DATABASE

Terdapat 12 tipe database, antara lain :

1. Operational database, 2. Analyticaldatabase, 3. Data warehouse, 4. Distributed database, 5. End-user database, 6. External data base, 7. Hypermedia databases on the web, 8. Navigational database, 9. In-memory data bases, 10. Document-oriented databases, 11. Real-time databases, dan 12. RelationalDatabase.

Prinsip utama Data Base adalah pengaturan data dengan tujuan utama fleksibelitas dan kecepatan pada saat pengambilan data kembaliciri-ciri basis data diantaranya adalah sebagai berikut :

13. Efisiensi meliputi kecepatan, ukuran, dan ketepatan

14. Data dalam jumlah besar.15. Berbagi Pakai (dipakai bersama

sama/Sharebility).16. Mengurangi bahkan menghilangkan

terjadinya duplikasi dan ketidak konsistenan data

Page 8: Tugas iv  0317_arie firmandani_1512510445

PERBEDAAN DATABES RASTIONAL DAN UN RATIONAL

Page 9: Tugas iv  0317_arie firmandani_1512510445

DATABASE RATIONALDatabase relasional adalah koleksi data terstruktur yang

disajikan lewat tabel², dimana tabel² tersebut dapat saling berhubungan (relasi). Tipe ini adalah bentuk basis data yang konvensional. Saat seseorang menyebut kata database, kemungkinan besar orang umum akan membayangkan database relasional (sekumpulan tabel²). contohnya MySQL, PostGreSQL, SqlLite, Microsoft Sql Server, dll.RDBMS (Relasional Database Management System) fokus pada konsep ACID:1. Atomicity: Suatu proses selesai secara menyeluruh/tidak.2. Consistency: Semua proses (transaction) yang terjadi di database harus memiliki state yang jelas. Setiap data yang disimpan harus memenuhi semua constraint, Cascades, dan triggers.3. Isolation: Sebuah proses tidak boleh mempengaruhi proses lain.4. Durability: Proses yang  telah selesai harus bersifat permanen, walau aplikasinya di restart.

Page 10: Tugas iv  0317_arie firmandani_1512510445

Contoh produk DBMS terkenal yang menggunakan model relasional antara lain adalah :1. DB2 (IBM)2. Rdb/VMS (Digital Equipment Corporation)3. Oracle (Oracle Corporation)4. Informix (Informix Corporation)5. Ingres (ASK Group Inc)6. Sybase (Sybase Inc)

Page 11: Tugas iv  0317_arie firmandani_1512510445

DATABASE UNRATIONAL Sedangkan NoSQL adalah tipe penyimpanan data selain yang

berwujud tabular (tabel²), NoSQL tidak mengikuti prinsip (ACID) RDBMS sepenuhnya. Lalu kalau bukan ACID, apakah prinsip utama NoSQL ?NoSQL, menurut Eric Brewer menganut prinsip BASE:1. Basic Availability: Setiap request sekedar mendapat garansi “response”: Sukses/Gagal.2. Soft State: State NoSQL bisa berubah secara dinamis tanpa input manual untuk meyakinkan eventual consistency.3. Eventual Consistency: Untuk “sementara” waktu NoSQL mungkin tidak konsisten (Akan diabahas kemudian maksud & contohnya).NoSQL bukan berarti “No SQL” atau “bukan SQL”/tidak mendukung bahasa Query, tapi “Not-Only SQL”. Masudnya database NoSQL tetap memiliki (support) ‘semacam’ bahasa Query, namun dalam bentuk (terminology yang berbeda). Beberapa literature bahkan tidak menggolongkan NoSQL sebagai suatu bentuk database.  NoSQL bisa berupa Document (e.g. MongoDB), Key-Value (e.g. CouchDB), Graph (e.g. Neo4J), dsb.

Page 12: Tugas iv  0317_arie firmandani_1512510445

Contoh produk DBMS terkenal yang menggunakan model UNRATIONAL antara lain adalah :

Cassandra, CouchDB, MongoDB, HBase, MemCache, Neo4j, & Redis) 

Page 13: Tugas iv  0317_arie firmandani_1512510445

Kesimpulan:NoSQL dan SQL database memiliki +/-

masing².Keduanya saling melengkapi dan bukannya

menggantikan.NoSQL lebih cocok untuk data yang

memiliki volume & velocity besar serta variety yang beragam.

NoSQL secara umum bukanlah analytic engine seperti Hadoop.

Perpaduan penggunaan database NoSQL dan SQL yang tepat tidak hanya akan meningkatkan performa, namun juga meng-optimalkan biaya (cost) infrastruktur.

Page 14: Tugas iv  0317_arie firmandani_1512510445

A. PENGERTIANORM (Object Relational Mapping)adalah

suatu metode/teknik pemrograman yang digunakan untuk mengkonversi data dari lingkungan bahasa pemrograman berorientasi objek (OOP) dengan lingkungan database relasional. Seperti kita ketahui, dalam aplikasi enterprise kedua lingkungan tersebut berada pada sistem yang berbeda, yaitu OOP berada pada sisi pemrograman aplikasi, sedangkan database relasional berada pada sisi sistem database. Misi utama dari ORM ini adalah menjembatani kedua sistem yang berbeda tersebut.

ORM (Object Relational Mapping)

Page 15: Tugas iv  0317_arie firmandani_1512510445

ORM memiliki kemampuan untuk menciptakan objek database virtual, yaitu suatu model database yang di representasikan kedalam sebuah objek pada bahasa pemrograman OOP. Berikut ini adalah beberapa kelebihan yang dimiliki ORM, yaitu:

Mempercepat pengembangan program. Contohnya, mengurangi perulangan kode query, memudahkan pemakaian karena tabel-tabel ter-representasikan dalam bentuk objek

Membuat akses data menjadi lebih abstrak dan portable. Hal ini dikarenakan ORM menghandle pen-generate-an syntax SQL berdasarkan vendor database-nya.

Mensupport pengkapsulan business rule pada lapisan Data Access.

Mengenerate boilerplate code (unit kode yang reusable) untuk fungsi dasar CRUD (Create,Read,Update,Delete).

B. KELEBIHAN ORM

Page 16: Tugas iv  0317_arie firmandani_1512510445

LARAVEL MENDUKUNG ORM

Bagaimana jika kita ingin mengganti stdClass dengan Kelas buatan sendiri, apakah bisa?Nah, itulah salah satu peran ORM (Object Relational Mapper), yaitu memetakan hasil query dari database ke dalam bentuk obyek yang sudah kita definisikan sebelumnya. Bentuk yang sudah kita definisikan sebelumnya ini biasa disebut dengan Model (M dari MVC).Mengambil contoh tabel post di atas, kita ingin agar hasil query dari tabel tersebut dipetakan menjadi obyek model Post. Untuk itu kita harus definisikan dulu model Post. Buat sebuah file baru app/models/Post.php:<?php class Post extends Eloquent { protected $table = 'post'; }

Page 17: Tugas iv  0317_arie firmandani_1512510445

Setiap model yang kita bikin harus meng-extends kelas Eloquent bawaan laravel. Eloquent sendiri artinya kurang lebih Selanjutnya kita bisa melakukan berbagai macam query melalui ORM.Mendapatkan semua row:$posts = Post::all();

Mendapatkan satu row berdasar primary key:$singlePost = Post::find(1);echo '<pre>';print_r($singlePost);echo '</pre>';

Page 18: Tugas iv  0317_arie firmandani_1512510445

Kode di atas akan menghasilkan:Post Object([table:protected] => post[connection:protected] =>[primaryKey:protected] =>id[perPage:protected] => 15[incrementing] => 1[timestamps] => 1[attributes:protected] => Array([id] => 1[title] => Halo bro[content] => content 1[comment_count] => 2[status] => publish[created] =>)

Page 19: Tugas iv  0317_arie firmandani_1512510445

Coba perhatikan, sekarang kita sudah mendapatkan Post Object, bukan lagi stdClass Object seperti sebelumnya. Itu berarti, jika kita menambahkan atribut atau fungsi apapun di kelas Post yang sudah kita bikin, maka atribut dan fungsi tersebut juga bisa dipanggil oleh obyek-obyek yang dihasilkan dari hasil query.Buka kembali file app/models/Post.php, lalu modifikasi seperti berikut ini:<?phpclass Post extends Eloquent {protected $table = 'post';public $newAttribute = 'new attribute';public function url(){return 'http:://www.domain.com/post/' . $this->id; }}

Page 20: Tugas iv  0317_arie firmandani_1512510445

Maka kita bisa memanggil atribut dan fungsi tersebut seperti berikut ini:$singlePost = Post::find(1);echo $singlePost->newAttribute;// output: 'new attribute‘echo '<br>';echo $singlePost->url(); // output: 'http://www.domain.com/post/1‘

Semua fungsi yang tersedia di Query Builder bisa dipakai untuk melakukan query via ORM.$posts = Post::where('status', 'publish')->get();

Page 21: Tugas iv  0317_arie firmandani_1512510445

Insert, Update, DeleteUntuk menambahkan record baru ke database, caranya cukup sederhana:

1. Buat obyek baru2. Set atribut-atributnya3. Panggil fungsi save()

Mari kita lihat contohnya:$newPost = new Post;$newPost->title = 'Yeah, Laravel emang nge-jazz'; $newPost->content = 'Pharetra Elit Condimentum Ligula Sem';$newPost->status = 'draft';$newPost->save();

Page 22: Tugas iv  0317_arie firmandani_1512510445

Jalankan kode di atas, dan tadaaaa…. error kan?ExceptionSQLSTATE[42S22]: Column not found: 1054 Unknown column 'updated_at' in 'field list' (SQL: insert into `post` (`title`, `content`, `status`, `updated_at`, `created_at`) values (?, ?, ?, ?, ?)) (Bindings: array ( 0 => 'Yeah, Laravel emang nge-jazz', 1 => 'Pharetra Elit Condimentum Ligula Sem', 2 => 'draft', 3 => '2013-10-12 08:03:01', 4 => '2013-10-12 08:03:01', ))Secara default, Eloquent memerlukan dua kolom tambahan untuk setiap tabel, yaitu updated_at dan created_at, yang akan digunakan untuk mencatat waktu insert dan waktu update secara otomatis. Untuk itu, tambahkan kedua kolom tersebut di tabel post Anda, keduanya bertipe datetime.

Page 23: Tugas iv  0317_arie firmandani_1512510445

Jalankan kembali kode di atas, dan cek database Anda:

Record baru sudah ditambahkan, lengkap dengan info tentang kapan record tersebut di-insert.

Untuk melakukan update di row tertentu, caranya juga sangat sederhana:$post = Post::find(1);$post->title = 'New Title‘;$post->save();

Page 24: Tugas iv  0317_arie firmandani_1512510445

Cek kembali table post Anda, perhatikan record dengan id = 1, apakah title-nya berubah? Apakah kolom updated_at sudah terisi secara otomatis?

Sedangkan untuk menghapus row tertentu, Eloquent sudah menyediakan fungsi delete():// menghapus satu row via obyek$post = Post::find(2);$post->delete();

// menghapus banyak row sekaligus Post::where('status', 'draft')->delete();