1. TUGAS 4
NAMA : WILDAN LATIEF
NIM : 1512500818
MATA KULIAH : REKAYASA WEB
2. DATA BASE
*Data Base (basis data) merupakan kumpulan data yang saling
berhubungan. Hubungan antar data dapat ditunjukan dengan
adanya field/kolom kunci dari tiap file/tabel yang ada. Dalam
satu file atau table terdapat record-record yang sejenis, sama
besar, sama bentuk, yang merupakan satu kumpulan entitas
yang seragam. Satu record (umumnya digambarkan sebagai
baris data) terdiri dari field yang saling berhubungan
menunjukan bahwa field tersebut dalam satu pengertian yang
lengkap dan disimpan dalam satu record.
Adapun Struktur Database adalah:Database
File/Table
Record
Elemen data/FieldDari pengertian diatas dapat disimpulkan
bahwa basis data mempunyai beberapa kriteria penting, yaitu :
1. Bersifat data oriented dan bukan program oriented.
2. Dapat digunakan oleh beberapa program aplikasi tanpa perlu
mengubah basis datanya.
3. Dapat dikembangkan dengan mudah, baik volume maupun
strukturnya.
4. Dapat memenuhi kebutuhan sistem-sistem baru secara
mudah
5. Dapat digunakan dengan cara-cara yang berbeda.
3. PRINSIP UTAMA DATA BASE
• Prinsip utama Data Base adalah
pengaturan data dengan tujuan utama
fleksibelitas dan kecepatan pada saat
pengambilan data kembali. Adapun
ciri-ciri basis data diantaranya adalah
sebagai berikut :
• 1. Efisiensi meliputi kecepatan, ukuran,
dan ketepatan
2. Data dalam jumlah besar.
3. Berbagi Pakai (dipakai bersama
sama/Sharebility).
4. Mengurangi bahkan menghilangkan
terjadinya duplikasi dan
ketidakkonsistenan data.
4. Relational database dengan Unrelational
database(NoSql)• Database 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²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.
5. CONTOH RATIONAL DATABASE
• 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.
6. konsep ORM(Object Relational Model
• ORM merupakan kependekan dari Object Relational Mapping, sebuah teknik
pemrograman yang memetakan sebuah objek dengan database. ORM ini akan
membantu menjadi ‘jembatan’ antara objek yang didefinisikan dalam kode
program dengan database, bagaimana objek itu disimpan, diambil, dihapus dan
sebagainya. Dengan ORM ini, programmer dibantu untuk melakukan aksi-aksi
yang diperlukan terkait komunikasi objek ketika program dijalankan dengan
database seperti menyimpan objek, mengambil data objek dari database
kemudian ditampilkan, menghapus objek, mengubah objek dan sebagainya.
• Sebagai contoh penggunaan adalah ketika ada definisi data berupa person yang
memiliki atribut id dan nama. Di database didefinisikan sebuah tabel dengan
kolom id dan nama. Dengan tanpa menggunakan ORM, untuk menyimpan objek
itu ke database adalah dengan menjalan perintah SQL :
• “INSERT INTO persons (id, nama) values (’1′,’wisnu manupraba’)”.
• Dengan menggunakan ORM, perintah SQL itu akan digantikan dengan fungsi
misalkan save (tergantung fungsi yang disediakan oleh pustaka ORM yang
digunakan), sehingga pemanggilannya adalah :
• Person person = new Person (1, “Wisnu Manupraba”);
• person.insert();
• ORM lah yang akan memetakan fungsi insert() sama dengan perintah SQL
‘INSERT INTO….”.
• Ada banyak pustaka ORM yang tersedia saat ini, di berbagai bahasa. Di Java
misalkan ada Hibernate dan MyIbatis (dulu namanya IBatis). Di PHP, berbagai
framework seperti CakePHP, CodeIgniter, Yii dan sebagainya menyediakan
ORMnya sendiri-sendiri.
7. • Apakan laravel mendukung ORM:
• Ya sangat membantu dan kita dapat
menggunakan fitur yang telah di
sediakan laravel untuk melakukan query
ke data base dengan konsep ORM.
• Cara Penggunaan Database di Laravel
• Di dalam Laravel terdapat 3 cara untuk
berinteraksi dengan database yaitu :
Raw Query
• Query Builder (Fluent Query)
• Eloquent ORM
8. • Metode raw query ini mirip atau memang sama dengan query sql biasa , jadi
mungkin anda sudah biasa menggunakannya.Namun disini kita harus menggunakan
class DB dan di ikuti statement seperti insert, update, delete lihat contoh dibawah ini :
//SELECT $mahasiswa = DB::select('select * from mahasiswa'); foreach($mahasiswa as
$dt){ echo $dt->nama; } //SELECT dengan Parameter $results = DB::select('select * from
mahasiswa where nim = ?', array(1006017)); foreach($mahasiswa as $dt){ echo $dt-
>nama; } //INSERT DB::insert('insert into mahasiswa (nim, nama, alamat, semester)
values (?, ?, ?, ?)', array(1001728, 'Udin', 'Bandung Cicaheum','4')); //UPDATE
DB::update('update users set nama = Agus Mauladig where nim = ?', array('1006017'));
//DELETE DB::delete('delete from mahasiswa'); DB::delete('delete from mahasiswa
where nim = ? ',array('1006017')); //GENERAL STATEMENT DB::statement('drop table
mahasiswa'); Query Builder / Fluent Query
• Dengan query builder code query lebih nyaman dibaca dan lebih mudah karena kita
tidak dikhawatirkan dengan perbedaan penulisan native query yang mungkin ada
perbedaan antara sistem database satu dengan yang lain.
//SELECT $mahasiswa = DB::table('mahasiswa')->get(); foreach ($mahasiswa as $dt) {
echo $dt->nama; } //SELECT DENGAN PARAMETER $mahasiswa =
DB::table('mahasiswa')->where('semester','3')->get(); foreach ($mahasiswa as $dt) { echo
$dt->nama; } //MENAMPILKAN SATU BARIS $mahasiswa = DB::table('mahasiswa')-
>where('semester','3')->first(); echo $mahasiswa->nama; //SELECT KOLOM TERTENTU
$mahasiswa = DB::table('mahasiswa')->select('min', 'nama')->where('id', 1006017)-
>first(); foreach ($mahasiswa as $dt) { echo $dt->nim; echo $dt->nama; } //SELECT SATU
KOLOM $mahasiswa = DB::table('mahasiswa')->orderBy('semester', 'desc')-
>pluck('nama'); foreach ($mahasiswa as $dt) { echo 'namanya adalah :'.$dt->nama; }
//MENAMBAHKAN STATEMENT BERDASARKAN VARIABEL $nama =
DB::table('mahasiswa')->select('nama'); $query = $query->addSelect('semester')->get();
//BANYAK STATEMENT $query = DB::table('mahasiswa') ->where('semester', '>', 1) -
>orWhere('nim', '1006017') ->orderBy('nama', 'asc') ->get(); //MEMBATASI (Offset &
Limit) $users = DB::table('mahasiswa')->skip(2)->take(5)->get(); Eloquent ORM
• menangani SQL Query yang rumit. JIka itu terjadi anda gabungkan saja
dengan metode yang lainya. Kalau saya selalu menggunakan Eloquent
ORM.
9. • Eloquent adalah Sebuah ORM (Object Relational
Mapping) yang dibundling bersama Laravel Framework. ORM ini sangat
sederhana menurut saya tapi justru disitulah nilai lebih dari ORM ini.Setiap model
eloquent yang kita buat akan bertanggung jawab atas satu tabel dalam database.
Misalnya kita telah mempunyai tabel mahasiswa , kita harus membuat model baru
yang bertanggung jawab atas tabel mahasiswa. Sebagai contoh buat file
Mahasiswa.php di app/models definisikan dulu model nya seperti ini
class Mahasiswa extends Eloquent { protected $table = 'mahasiswa'; //nama tabelnya
protected $primaryKey = 'nim'; //Primary Key nya } hal yang harus di perhatikan
diatas dalam eloquent kita harus mengextends Eloquent dan menambahkan nama
tabel.
Setelah itu kita bisa melakukan berbagai macam query dengan memanggil nama Class
di model nya diikuti dengan function seperti contoh dibawah ini :
•
Fungsi Menampilkan
//MENAMPILKAN SEMUA $mahasiswa = Mahasiswa::all(); //MENAMPILKAN
BERDASAR ID $mahasiswa = Mahasiswa::find(1006017); //PARAMETER WHERE
$mahasiswa = Mahasiswa::where('semester','4')->get(); //WHERE DENGAN
AGGREGAT $mahasiswa = Mahasiswa::where('semester','>','2')->get(); Insert, Update ,
Delete
Untuk menambahkan objek baru caranya seperti ini
$mahasiswa = New Mahasiswa; $mahasiswa->nim = '1007012'; $mahasiswa->nama =
'Arief Budiman'; $mahasiswa->alamat = 'Garut Kota Intan'; $mahasiswa->semester =
4; $mahasiswa->save(); Mengupdate objek pada baris/row tertentu berdasarkan
$mahasiswa = Mahasiswa::find(1006017); $mahasiswa->nama = 'Arief Budiman';
$mahasiswa->alamat = 'Garut Kota Intan'; $mahasiswa->semester = 4; $mahasiswa-
>save(); Menghapus baris pada tabel
//DELETE SATU BARUS $mahasiswa = Mahasiswa::find(1006017); $mahasiswa-
>delete(); //DELETE BANYAK BARIS $mahasiswa = Mahasiswa::where('semester','3')-
>delete();
•
KESIMPULAN
Dari 3 metode diatas yang paling direkomendasikan yaitu metode Eloquent ORM
karena lebih mudah, fleksibel dan terorganisir.namun dalam beberapa kasus Eloquent
gagal dalam