Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tugas 4 0317-imelda felicia-1412510545

346 views

Published on

TUGAS 4 REKWEB

Published in: Software
  • Be the first to comment

  • Be the first to like this

Tugas 4 0317-imelda felicia-1412510545

  1. 1. 1. Apa yang anda ketahui menganai database?Jelaskan!
  2. 2. Sebelum memulai mendesain dan membangun database dengan menggunakan program aplikasi database Ms. Access, terlebih dahulu kita harus lebih mengenal lagi apa yang dimaksud dengan database.  Database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik untuk memperoleh informasi dari basis data tersebut.  Database adalah representasi kumpulan fakta yang saling berhubungan disimpan secara bersama, untuk memenuhi berbagai kebutuhan.  Database merupakan sekumpulan informasi yang saling berkaitan pada suatu subjek tertentu untuk tujuan tertentu pula.  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.
  3. 3. Pangkalan data atau basis data (bahasa Inggris: database), atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi. Istilah "basis data" berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai basis data komputer. Catatan yang mirip dengan basis data sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis. Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel.
  4. 4. 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, dan 4. Sebuah field disimpan dalam bentuk kumpulan bit.
  5. 5. 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.
  6. 6. 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.
  7. 7. 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.
  8. 8. Tipe Database Terdapat 12 tipe database, antara lain Operational database, Analyticaldatabase, Data warehouse, Distributed database, End-user database, External data base, Hypermedia databases on the web, Navigational database, In-memory data bases, Document-oriented databases, Real- time databases, dan RelationalDatabase. 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 ketidak konsistenan data
  9. 9. 2. Apakah perbedaan Relational database dengan Unrelational database(NoSql)?Jelaskan dan berikan contohnya?
  10. 10. Database Relasional sebenarnya adalah suatu konsep penyimpanan data terstruktur, sebelum konsep database relasional muncul sudah ada uda model database yaitu network database dan hierarchie database . Teori database relasional di kemukakan pertamakali oleh Dr. E.F. Codd. Dr.Edgar Frank Codd adalah pengemuka pertama kali teori database relasional. Dalam database relasional, data disimpan dalam bentuk relasi atau tabel dua dimensi, dan antara tabel satu dengan tabel lainnya terdapat hubungan atau relationship sehingga dapat di simpulkan, database adalah kumpulan dari sejumlah tabel yang saling hubungan atau saling keterkaitan. Kumpulan dari data yang diorganisasikan sebagai tabel tadi disimpan dalam bentuk data elektronik di dalam harddisk komputer dan dikelompokan secara logis berdasarkan schema user. Baca juga tentang Schema user. Untuk membuat struktur tabel, mengisi data ke tabel, memperbarui data dan menghapus data dari tabel diperlukan software. Perangkat lunak yang digunakan membuat tabel, isi data, ubah data, dan hapus data disebut Relational Database Management System atau yang biasa di singkat dengan RDBMS. Sedangkan perintah yang digunakan untuk membuat tabel, mengisi tabel, mengubah tabel, dan menghapus data disebut perintah SQL (Baca : Sequel) yang merupakan singkatan dari Structure Query Language. Jadi, setiap aplikasi perangkat lunak RDBMS pasti bisa dipakai untuk menjalankan perintah SQL. Sebenarnya fungsi RDBMS bukan cuma untuk buat tabel, isi data, ubah data dan hapus data. Untuk manajemen data dalam skala yang besar dan agar bisa mendukung proses bisnis yang kontinyu atau terus menerus dan real time suatu Relational Database Management System dituntut untuk mempunyai kemampuan manajemen user dan keamanan data yang terjamin, mencadangkan data dan mengembalikan data serta kemampuan lainnya yang berkaitan dengan kecepatan pemrosesan data. Sebuah aplikasi perangkat lunak RDBMS yang ada di pasaran saat ini dan paling sering digunakan adalah Oracle Database yang di keluarkan oleh Oracle Corporation.
  11. 11. Unrelational database(NoSql) NoSQL adalah sebuah konsep mengenai penyimpanan data non- relasional. Berbeda dengan model basis data relasional yang selama ini digunakan, NoSQL menggunakan beberapa metode yang berbeda-beda ( Wikipedia ). Metode ini bergantung dari jenis database yang digunakan. Karena NoSQL sendiri merupakan konsep database, dan pada implementasinya, banyak jenis-jenis dari NoSQL ini. NoSQL sangat berguna pada data-data yang terus-menerus berkembang, dimana data tersebut sangat kompleks sehingga sebuah database relational tidak lagi bisa mengakomodir. Salah satu bentuknya adalah ketika suatu data saling berhubungan satu sama lain, maka akan muncul proses duplikasi data. Dimana data saling memanggil ke beberapa permintaan, tambahan data baru, perubahan data, dan lain- lain dengan key yang sama. Karena faktor hubungan antar data yang sama terjadi terus-menerus, mendorong faktor redudansi data, data menjadi berlipat-lipat, dan pada akhirnya akan menyebabkan crash pada database berkonsep RDBMS. Harus ada cara lain untuk menanggulangi masalah ini, dan NoSQL lah solusinya. NoSQL menyederhanakan proses yang terjadi dalam sistem basis data relasional. Dimana hal-hal yang menyebabkan redudansi, dihilangkan sehingga trafik server akan seimbang. Penyederhanaan proses ini memungkinkan data direplikasi di banyak server secara mudah dan menjamin ketersediaan data.
  12. 12. Contoh nyata penjelasan diatas bisa teman-teman lihat pada situs jejaring sosial, FACEBOOK.COM. Pernahkah berfikir sebesar apa server penyimpanan facebook dengan anggota ribuan orang tersebut ?. Apabila teman-teman alim, mungkin tidak jadi masalah, tapi bagaimana jika ada yang narsis lalu sering upload foto setiap hari ?, bagaimana kalau setengah dari member facebook adalah orang-orang yang narsis ?, berapa besar ukuran yang dibutuhkan facebook pada servernya ? Setelah mengerti apa itu NoSQL, Sekarang saatnya mengenal database NoSQL. Dalam NoSQL, terdapat berbagai macam bentuk database dengan schema dan konsepnya sendiri. Sama halnya dengan database SQL yang seperti teman-teman kenal seperti MySQL, SQL Server, Oracle, PostgreSQL, dan lain-lain. Dalam NoSQL, terdapat MongoDB, CouchDB, Riak, dan lain-lain. Ane akan bahas beberapa database NoSQL.
  13. 13. Mengenal MongoDB MongoDB merupakan sebuah sistem basis data yang berbasis dokumen (Document Oriented Database). Konsep ini sangat membingungkan kalo kita terbiasa dengan RDMS.MongoDB tidak ada yang namanya tabel, kolom dan baris. Dalam MongoDB yang ada hanyalah koleksi (collection – bisa dianggap Table) dan dokumen (document – bisa dianggap row). Koleksi dalam MongoDB bisa kita anggap sebuah Folder (Directory) dan Dokumen bisa kita anggap berkas (File) dalam Folder (Koleksi) tersebut. Pada MongoDb kita tidak mengenal istilah RELASI karena kita befikir dalam kerangka dokumen. semua yang kita butuhkan diletakkan didalam sebuah dokumen. KELEBIHAN MongoDB MongoDB merupakan sistem basis data yang menggunakan konsep key- value, artinya setiap dokumen dalam MongoDB pasti memiliki key. Hal ini berbeda dalam RDMBS yang kita bisa tidak menggunakan primary key ketika membuat sebuah tabel. Sehingga walaupun kita membuat sebuah dokumen tanpa menggunakan primary key, tapi secara otomatis MongoDB memberinya sebuah key. Penggunaan konsep key-value sangat berperan penting, karena hal ini membuat MongoDB menjadi sistem basis data yang sangat cepat jika dibandingkan dengan non key-value seperti RDBMS.
  14. 14. MongoDB mendukung replikasi, selain itu konfigurasi replikasi pada MongoDB sangatlah mudah jika dibandingkan sistem basis data RDBMS (IMHO). Hal ini membuat pemilik sistem yang memiliki traffic membaca tinggi (seperti portal berita, forum dan blog) akan sangat terbantu ketika sistemnya akan menggunakan replikasi. Selain replikasi, MongoDB juga mendukung sharding. Jika Anda pernah melakukan sharding di RDBMS yang sangat berdarah-darah , maka akan sangat kagum dengan sharding di MongoDB. Kapan kita menggunakan sharding? Saat Anda memiliki website yang sudah sangat besar jumlah penggunanya, datanya mencapat jutaan giga byte. Anda dapat menggunakan sharding, misal membasis basis data Anda menjadi per regional. Salah satu kelebihan MongoDB lainnya adalah, MongoDB mendukung model pemrograman MapReduce, sebuah konsep yang sangat fenomenal yang pernah dikeluarkan oleh Google dan saat ini banyak diimplementasikan seperti pada Apache Hadoop. MongoDB memiliki banyak sekali kelebihan yang diantaranya, yaitu: 1. Sangat bagus untuk data list produk, karena MongoDB bisa melakukan searching lebih cepat ketimbang MySql 2. Kita tidak perlu membuat struktur tabel, kita hanya perlu melakukan proses insert maka MongoDB akan otomatis membuatkan struktur tabelnya 3. Proses CRUD (Create, Update, Delete) terasa sangat ringan (waktu saya mencobanya menggunakan PHP)
  15. 15. Bahasa MongoDb MongoDB tidak menggunakan bahasa yang biasa digunakan RDBMS (SQL atau PL/SQL). MongoDB menggunakan bahasa BSON, dimana BSON merupakan singkatan dari Binary JSON. Jika Anda terbiasa menggunakan JavaScript, pasti tidak akan terlalu sulit menggunakan MongoDB. Berikut ini contohnya (http://www.mongodb.org/) { "nama" : "randi", "alamat" : { "jalan" : "Taman Harapan Baru", "kota" : "Bekasi“, "status" : "Mahasiswa“ } }
  16. 16. Mengenal Cassandra Apache adalah sebuah aplikasi database berbasis Bigtabel’s Data. Dikutip dari situs resminya, Database Apache Cassandra adalah pilihan yang tepat ketika Anda membutuhkan skalabilitas dan ketersediaan tinggi tanpa mengorbankan kinerja. Skalabilitas linear dan terbukti toleransi kesalahan pada perangkat keras komoditas atau infrastruktur cloud membuatnya menjadi platform yang sempurna untuk misi- data penting. Dukungan Cassandra untuk mereplikasi di beberapa pusat data yang terbaik di kelasnya, memberikan latency rendah untuk pengguna Anda dan ketenangan pikiran mengetahui bahwa Anda dapat bertahan hidup padam daerah. ColumnFamily Cassandra data model menawarkan kenyamanan indeks kolom dengan kinerja log-terstruktur update, dukungan yang kuat untuk pandangan terwujud, dan kuat built-in caching. Cassandra Dikembangkan oleh APACHE. Aplikasi Inilah yang digunakan facebook untuk penyimpanan miliayaran data hingga saat ini. (http://cassandra.apache.org/)
  17. 17. Mengenal CouchDB adalah Sama seperti Cassandara, CouchDB juga dikembangkan oleh APACHE. Dikutip dari situs resminya, CouchDB adalah database yang benar-benar merangkul web. Menyimpan data Anda dengan dokumen JSON. Mengakses dokumen Anda dengan browser web Anda, melalui HTTP. Query, menggabungkan, dan mengubah dokumen Anda dengan JavaScript. CouchDB bekerja dengan baik dengan web modern dan aplikasi mobile. Anda bahkan dapat melayani aplikasi web langsung dari CouchDB. Dan Anda dapat mendistribusikan data Anda, atau aplikasi Anda, efisien menggunakan replikasi tambahan CouchDB itu. CouchDB mendukung master-master setup dengan deteksi konflik otomatis. CouchDB hadir dengan serangkaian fitur, seperti on-the-fly transformasi dokumen dan real-time pemberitahuan perubahan, yang membuat web app pengembangan mudah. Bahkan datang dengan mudah untuk menggunakan konsol web administrasi. Anda menebak itu, disajikan langsung dari CouchDB! Kami peduli banyak tentang skala didistribusikan. CouchDB sangat tersedia dan partisi toleran, tetapi juga akhirnya konsisten. Dan kita peduli banyak tentang data Anda. CouchDB memiliki mesin fault-tolerant penyimpanan yang menempatkan keamanan data Anda terlebih dahulu. (http://couchdb.apache.org/)
  18. 18. 3. Jelaskan konsep ORM(Object Relational Model) pada database!
  19. 19. 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.
  20. 20. 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).
  21. 21. 4. Apakah laravel mendukung ORM?jika iya berikan contohnya !
  22. 22. 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'; }
  23. 23. 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>';
  24. 24. 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] => )
  25. 25. 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: <?php class Post extends Eloquent { protected $table = 'post'; public $newAttribute = 'new attribute'; public function url() { return 'http:://www.domain.com/post/' . $this- >id; } }
  26. 26. 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();
  27. 27. Insert, Update, Delete Untuk menambahkan record baru ke database, caranya cukup sederhana: 1. Buat obyek baru 2. Set atribut-atributnya 3. 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();
  28. 28. Jalankan kode di atas, dan tadaaaa…. error kan? Exception SQLSTATE[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.
  29. 29. 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();
  30. 30. 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();

×