tugas[4] 0317-[tryanita]-[1411511676]

22
REKAYASA WEB TUGAS 4 NIM : 1411511676 NAMA : TRYANITA TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI

Upload: trya-nita

Post on 12-Apr-2017

26 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Tugas[4]  0317-[tryanita]-[1411511676]

REKAYASA WEBTUGAS 4

NIM : 1411511676NAMA : TRYANITA

TEKNIK INFORMATIKAFAKULTAS TEKNOLOGI INFORMASI

Page 2: Tugas[4]  0317-[tryanita]-[1411511676]

1. DATABASEPengertian Basis data (database) adalah kumpulan data yang disimpan secara sistematis di dalam komputer yang dapat diolah atau dimanipulasi menggunakan perangkat lunak (program aplikasi) untuk menghasilkan informasi. Pendefinisian basis data meliputi spesifikasi berupa tipe data, struktur data dan juga batasan-batasan pada data yang akan disimpan. Basis data merupakan aspek yang sangat penting dalam sistem informasi karena berfungsi sebagai gudang penyimpanan data yang akan diolah lebih lanjut. Basis data menjadi penting karena dapat mengorganisasi data, menghidari duplikasi data, menghindari hubungan antar data yang tidak jelas dan juga update yang rumit.

Proses memasukkan dan mengambil data ke dan dari media penyimpanan data memerlukan perangkat lunak yang disebut dengan sistem manajemen basis data (database management system | DBMS). DBMS merupakan sistem perangkat lunak yang memungkinkan pengguna basis data (database user) untuk memelihara, mengontrol dan mengakses data secara praktis dan efisien. Dengan kata lain, semua akses ke basis data akan ditangani oleh DBMS. DBMS ini menjadi lapisan yang menghubungkan basis data dengan program aplikasi untuk memastikan bahwa basis data tetap terorganisasi secara konsisten dan dapat diakses dengan mudah.

Page 3: Tugas[4]  0317-[tryanita]-[1411511676]

Ada beberapa fungsi yang harus ditangani DBMS seperti mengolah pendefinisian data, menangani permintaan pengguna untuk mengakses data, memeriksa sekuriti dan integriti data yang didefinisikan oleh DBA (Database Administrator), menangani kegagalan dalam pengaksesan data yang disebabkan oleh kerusakan sistem maupun media penyimpanan (disk) dan juga menangani unjuk kerja semua fungsi secara efisien.

Tujuan utama DBMS adalah untuk memberikan tinjauan abstrak data kepada pengguna. Jadi sistem menyembunyikan informasi tentang bagaimana data disimpan, dipelihara dan juga bisa diakses secara efisien. Pertimbangan efisien di sini adalah rancangan struktur data yang kompleks tetapi masih bisa digunakan oleh pengguna awam tanpa mengetahui kompleksitas strukturnya.

Page 4: Tugas[4]  0317-[tryanita]-[1411511676]

Pembagian basis data menurut jenisnyaBasis data flat-file. Basis data ini ideal untuk data berukuran kecil dan dapat dirubah dengan mudah. Pada dasarnya, basis data flat-file tersusun dari sekumpulan string dalam satu atau lebih file yang dapat diurai untuk mendapatkan informasi yang disimpan. Basis data flat-file cocok untuk menyimpan daftar atau data yang sederhana dan dalam jumlah kecil. Basis data flat-file akan menjadi sangat rumit apabila digunakan untuk menyimpan data dengan struktur kompleks walaupun dimungkinkan pula untuk itu. Beberapa kendala dalam menggunakan basis data jenis ini adalah rentan pada korupsi data karena tidak adanya penguncian yang melekat ketika data digunakan atau dimodifikasi dan juga adanya duplikasi data yang mungkin sulit dihindari. Salah satu tipe basis data flat-file adalah file CSV yang menggunakan pemisah koma untuk setiap nilainya.

Basis data relasional. Basis data ini mempunyai struktur yang lebih logis terkait cara penyimpanan. Kata "relasional" berasal dari kenyataan bahwa tabel-tabel yang berada di basis data ini dihubungkan satu dengan lainnya. Basis data relasional menggunakan sekumpulan tabel dua dimensi yang masing-masing tabel tersusun atas baris (tupel) dan kolom (atribut). Untuk membuat hubungan antara dua atau lebih tabel, digunakan key (atribut kunci) yaitu primary key di salah satu tabel dan foreign key di tabel yang lain. Saat ini, basis data relasional menjadi pilihan karena keunggulannya. Program aplikasi untuk mengakses basis data relasional menjadi lebih mudah dibuat dan dikembangkan dibandingkan dengan penggunaan basis data flat-file.

Page 5: Tugas[4]  0317-[tryanita]-[1411511676]

Beberapa kekurangan yang mungkin dirasakan di basis data jenis ini adalah implementasi yang lebih sulit untuk data dalam jumlah besar dengan tingkat kompleksitasnya yang tinggi. Selain itu, proses pencarian informasi juga menjadi lebih lambat karena perlu menghubungkan tabel-tabel terlebih dahulu apabila datanya tersebar di beberapa tabel. Namun, terlepas dari beberapa kekurangannya, basis data relasional telah digunakan secara luas. Saat ini, basis data relasional telah banyak dimanfaatkan oleh perusahaan-perusahaan dari skala kecil, menengah hingga besar. Beberapa basis data ternama yang ada saat ini, baik yang berasal dari sumber terbuka (open source) atau yang komersil, adalah juga basis data relasional.

Page 6: Tugas[4]  0317-[tryanita]-[1411511676]

2. Relational Databaseadalah koleksi data terstruktur yang disajikan lewat tabel-tabel, dimana tabel-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-tabel). 

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 lain4. Durability: Proses yang  telah selesai harus bersifat permanen, walau aplikasinya

di restart.

Page 7: Tugas[4]  0317-[tryanita]-[1411511676]

Contoh Relation Database (SQL).1. MySQLMySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL dapat pengolah database yang banyak digunakan dan biasa digunakan untuk aplikasi web.

2. OracleOracle Database adalah sebuah Sistem Database yang cukup terkenal, Sistem ini telah banyak digunakan oleh perusahaan-perusahaan terkenal. Oracle Databases bersifat komersial dan dikembangkan oleh Oracle Corporation. Oracle terbagi menjadi beberapa varian dengan tujuan dan segmen penggunaan yang bermacam – macam.

Page 8: Tugas[4]  0317-[tryanita]-[1411511676]

3. Microsoft AccessMicrosoft Access dalah sebuah program aplikasi basis data komputer relasional yang ditujukan untuk kalangan rumahan dan perusahaan kecil hingga menengah. Aplikasi ini merupakan anggota dari beberapa aplikasi Microsoft Office. 

4. Microsoft SQL ServerMicrosoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data besar.

Page 9: Tugas[4]  0317-[tryanita]-[1411511676]

5. PostgreSQLPostgreSQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Piranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster, dan lain-lain.

   PostgreSQL adalah sistem database yang kuat untuk urusan relasi, open source. Memiliki lebih dari 15 tahun pengembangan aktif dan sudah terbukti segala rancangan arsitekturnya telah mendapat reputasi tentang kuat, handal, integritas data, dan akurasi data.

6. FirebirdFirebird (FirebirdSQL) adalah sistem manajemen basisdata relasional yang menawarkan fitur-fitur yang terdapat dalam standar ANSI SQL-99 dan SQL-2003. RDBMS ini berjalan baik di Linux, Windows, maupun pada sejumlah platform Unix. Firebird di diarahkan dan di-maintain oleh FirebirdSQL Foundation.

Firebird merupakan turunan dari Interbase versi open source milik Borland. Firebird adalah database open source yang dikembangkan untuk menjawab kebutuhan akan database yang handal namun cukup ringan dan mudah dalam mengoperasikannya.

Page 10: Tugas[4]  0317-[tryanita]-[1411511676]

7. Apache DerbyApache Derby (sebelumnya didistribusikan sebagai IBM Cloudscape) adalah sistem manajemen database relasional (RDBMS) yang dikembangkan oleh Yayasan Software Apache yang dapat tertanam dalam Java program dan digunakan untuk proses transaksi online . Apache Derby dikembangkan sebagai open source proyek di bawah lisensi Apache 2.0 . Oracle mendistribusikan binari yang sama dengan nama Java DB.

8. IBM DB2

IBM DB2 Enterprise Server Edition merupakan sebuah perangkat lunak sistem manajemen basisdata relasional yang dikembangkan oleh IBM. Perangkat lunak tersebut utamanya berjalan pada sistem operasi Unix (sebut saja AIX), Solaris, Linux, IBM i/OS/400, z/OS, dan Microsoft Windows. DB2 juga diketahui digunakan sebagai sistem basis data pada IBM InfoSphere Warehouse edition

Page 11: Tugas[4]  0317-[tryanita]-[1411511676]

3. Unrelational Database(NoSql)NoSql adalah tipe penyimpanan data selain yang berwujud tabular (tabel-tabel), NoSQL tidak mengikuti prinsip (ACID) RDBMS sepenuhnya.

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. 

Page 12: Tugas[4]  0317-[tryanita]-[1411511676]

Sesuai dengan namanya basis data NoSQL adalah jenis basis data yang tidak menggunakan perintah SQL dalam memanipulasi (menyimpan maupun mengambil data) basis data tersebut. Kebanyakan basis data NoSQL digunakan dalam dunia aplikasi web waktu nyata (real-time web app).

Berbeda dengan basis data SQL dimana meskipun berbeda-beda pembuat namun cara kerja maupun cara penggunaannya relatif sama. Contohnya sama-sama menggunakan tabel yang dihubungkan oleh relasi-relasi, manipulasi data dengan bahasa SQL, dsb. Basis data NoSQL bisa sangat berbeda satu sama lain. Dilihat dari cara penyimpanan data saja basis data NoSQL tersebar dari cara penyimpanan:

Key-Value based (disimpan dalam bentuk kunci-isi berpasangan) Document based (disimpan dalam dokumen-dokumen) Column based (disimpan dalam kolom-kolom) Graph based (disimpan dalam bentuk graf)

Karena dari cara penyimpanannya saja sudah beda sudah tentu cara penambahan maupun pengambilan datanya juga berbeda.

Page 13: Tugas[4]  0317-[tryanita]-[1411511676]

Contoh Unelation Database (NoSql).1. MongoDBMongoDB merupakan basis data yang paling populer diantara basis data NoSQL lainnya. Hal ini dikarenakan pemasangan maupun penggunaan mongoDB tidaklah sulit atau merepotkan penggunanya. Selain itu mongoDB juga merupakan salah satu basis data yang open source sehingga pengembangan mongoDB sendiri cukup pesat karena setiap orang bisa berpartisipasi untuk mengembangkannya.

MongoDB merupakan basis data NoSQL yang document based. Ia menyimpan data-datanya dalam suatu dokumen JSON yang disebut BSON (Binary JSON).

Dikembangkan sejak tahun 2009, mongoDB sekarang telah mendukung hampir semua bahasa pemrograman untuk dapat berinteraksi dengan mongoDB. Tak hanya bahasa pemrograman, beragam framework terkenal pun sudah dapat menggunakan mongoDB untuk menyimpan datanya sehingga kita tidak akan kesulitan untuk mengintegrasikan aplikasi yang kita buat dengan basis data ini.

Page 14: Tugas[4]  0317-[tryanita]-[1411511676]

2. CouchDBApache CouchDB, biasa disebut dengan CouchDB saja, merupakan basis data NoSQL yang dikembangkan oleh Apache. CouchDB lebih dulu muncul jauh sebelum mongoDB yaitu pada tahun 2005. CouchDB tidak menyimpan datanya dalam tabel melainkan dalam dokumen seperti halnya mongoDB.

Basis data ini juga merupakan proyek open source serta dikembangkan dalam bahasa pemrograman Erlang oleh karena itu kita bisa ikut berkontribusi dalam pengembangan CouchDB agar basis data ini lebih baik.

3. CassandraCassandra merupakan sebuah sistem penyimpanan data terdistribusi untuk menangani jumlah data yang sangat besar dan terstruktur. Cassandra juga dikembangkan Apache, pengembang yang sama untuk basis data CouchDB.

Page 15: Tugas[4]  0317-[tryanita]-[1411511676]

Kemampuan Cassandra dalam menyimpan data dengan jumlah yang sangat besar tidak diragukan lagi, puluhan perusahaan besar telah mempercayakan Cassandra sebagai salah satu penunjang kerja mereka diantaranya:

Facebook Digg IBM Reddit Rackspace CERN Apple Twitter

Cassandra juga merupakan aplikasi open source yang ditulis dalam bahasa Java dengan lisensi Apache License 2.0.

Untuk memproses datanya, Cassandra menggunakan bahasa sendiri yang mirip dengan SQL yaitu Cassandra Query Language (CQL).

Page 16: Tugas[4]  0317-[tryanita]-[1411511676]

4. RedisBasis data open source, redis merupakan basis data berbasis key-value paling populer menurut situs DB-Engines.com. Redis merupakan singkatan dari REmote DIctionary Server. Basis data ini dikembangkan oleh Salvatore Sanfilippo pada tahun 2009 dan ditulis dalam bahasa C. Redis banyak dipilih karena memiliki fitur in-memory, networked, dan durabilitas tinggi.

Redis mendukung banyak bahasa pemrograman seperti ActionScript, C/C++, C#, Clojure, Common LIsp, Dart, Erlang, Go, Haskell, Haxe, Io, Java, JavaScript (Node.js), Lua, Objective-C, Perl, PHP, Pure Data, Python, R, Ruby, Scala, Smalltalk, dan Tcl.

5. RiakRiak merupakan basis data NoSQL terdistribusi yang menyimpan datanya dalam bentu key-value. Riak menawarkan fitur high availability, fault tolerance, operational simplicaity, danscalability. Riak memiliki dua versi yakni Open source edition dan Enterprise edition. Enterprise edition menawarkan dukungan berbayar intensif dari pengembangnya. Pengguna Open source edition dapat bermigrasi kapan saja ke Enterprise edition jika dibutuhkan.

Page 17: Tugas[4]  0317-[tryanita]-[1411511676]

7. Neo4JNeo4j merupakan basis data NoSQL dengan sistem graf. Apabila berurusan dengan basis data berbasis graf, maka Neo4j lah yang paling dikenal. Neo4j menyimpan relasi antar objek dalam struktur seperti graf, dimana setiap objek merujuk ke objek lainnya secara langsung.

Dalam menambahkan maupun mengambil data, Neo4j memiliki bahasa sendiri yang disebut Cypher.

Neo4j ditulis dalam bahasa Java dengan lisensi GPL V3 oleh Neo Technologies artinya Neo4j termasuk basis data yang open source.

8. OrientDBOrientDB merupakan basis data graf terdistribusi generasi kedua. Basis data ini dibuat dalam bahasa Java oleh Orient Technologies LTD dan dirilis pertama kali tahun 2010. OrientDB diklaim sangat cepat dan mampu menyimpan 220.000 record per detik diperangkat standar.

Page 18: Tugas[4]  0317-[tryanita]-[1411511676]

OrientDB menawrkan dua edisi yakni Community Edition yang tersedia secara gratis dan Enterprise Edition yang merupakan aplikasi komersial dikembangkan oleh tim yang sama yang mengembangkan engine OrientDB.

OrientDB dapat digunakan bersama JavaScript, .NET, node.js, php, Scala, Ruby, Python, C, Clojure, Java, dan Perl.

Page 19: Tugas[4]  0317-[tryanita]-[1411511676]

4.  ORM(Object Relational Model/Mapping)Pengertian ORM (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.

Page 20: Tugas[4]  0317-[tryanita]-[1411511676]

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).

Page 21: Tugas[4]  0317-[tryanita]-[1411511676]

5. Apak Laravel Mendukung ORM?jawabannya Iya, Laravel mendukung penggunaan konsep ORM.Model dapat diakses dengan langsung memanggil class model tersebut dimanapun kita butuhkan. Eloquent merupaka ORM (Object Relational Mapper) yang powerfull untuk manipulasi data. Berikut ini akan saya berikan beberapa contoh fitur Eloquent:1. Buat route test pada file app/routes.php dengan isi sebagai berikut:

{title="app/routes", lang="php", linenos=on}

Page 22: Tugas[4]  0317-[tryanita]-[1411511676]

2. Pada beberapa contoh dibawah, silahkan ubah /* isi sample query */ dengan contoh yang ingin dicoba