Tugas 1 : Pengantar Komputasi Cloud

Pendahuluan Komputasi Cloud


Pengertian Cloud Computing

Cloud computer merupakan sebuah gabungan pemanfaatan teknologi komputer (komputasi) pada jaringan dengan pengembangan berbasis internet yang mempunyai fungsi untuk menjalankan program  melalui komputer yang terkoneksi pada waktu yang sama, perlu diketahui tidak semua computer yang terkoneksi dengan internet menggunakan Cloud Coumputing.

Teknologi komputer berbasis sistem Cloud ini adalah teknologi yang menjadikan internet sebagai pusat server untuk mengelola data dan juga aplikasi pengguna. Kasarnya teknologi Cloud Computing mengizinkan para pengguna untuk menjalankan program tanpa harus instalasi terlebih dahulu.


Manfaat Cloud Computing

Berikut merupakan manfaat yang ada pada teknologi berbasis sistem cloud :

  1. Data Tersimpan di Server Secara Terpusat
    Cloud Computing memungkinkan kita untuk menyimpan segala bentuk data secara terpusat pada server.  Selain itu, pengguna juga tak perlu repot repot lagi menyediakan infrastruktur seperti data center, media penyimpanan/storage dll karena semua telah tersedia secara virtual.
  2. Keamanan Data
    Cloud Computing memberikan keamanan pada data pengguna yang dapat disimpan dengan aman melalui server yang disediakan oleh penyedia layanan seperti jaminan platform teknologi, jaminan ISO, data pribadi.
  3. Fleksibilitas dan Skalabilitas
    Cloud Computing merupakan teknologi yang sangat fleksibel dan dapat diakses dimana dan kapan saja dengan catatan bahwa pengguna terkoneksi dengan internet sehingga memberikan kemudahan untuk aktifitas pengelolaan data. Selain itu, user juga dapat dengan mudah meningkatkan atau mengurangi kapasitas penyimpanan data tanpa perlu membeli peralatan tambahan seperti hard disk atau alat – alat penyimpanan non virtual lainnya.
  4. Investasi Jangka Panjang
    Karena model penyimpanan Cloud Computing ini bersifat virtual, maka pengalokasian biaya untuk membeli alat – alat penyimpanan non virtual akan berkurang.

Cara Kerja Sistem Cloud Computing

Cara Cloud Computing bekerja menggunakan sebuah perantara internet sebagai server dalam mengolah data. Cara ini akan memungkinkan user untuk login ke program untuk menjalankan aplikasi yang dibutuhkan tanpa harus melakukan instalasi pada program terlebih dahulu. Instruksi/perintah dari pengguna akan disimpan secara virtual melalui jaringan internet yang telah terkoneksi pada komputer kemudian perintah – perintah tersebut dilanjutkan ke server aplikasi. Setelah perintah yang telah disimpan secara virtual tersebut  diterima di server aplikasi, kemudian data akan diproses dan pada proses terakhir user akan disajikan dengan sebuah halaman yang telah diperbaharui sesuai dengan instruksi yang diterima sebelumnya.

Contohnya nyata dari pengaplikasian Cloud Computing adalah seperti Yahoo ataupun Gmail. Data yang aplikasi punya pada server disalurkan secara global tanpa harus mendownload/menginstall perangkat lunak tertentu untuk menggunakannya. User hanya memerlukan koneksi internet yang tersambung ke device dan semua data dikelola langsung oleh Yahoo dan juga Google. Software dan juga memori atas data pengguna tidak berada di komputer tetapi terintegrasi secara langsung melalui sistem Cloud menggunakan komputer yang terhubung ke internet.

Jenis-jenis Cloud Computing

  1. Infrastructure as a Service (IaaS)
    Infrastructure as a Service (IaaS) merupakan layanan Cloud Computing yang dapat menyediakan infrastruktur IT berupa CPU, RAM, storage, bandwith dan konfigurasi lain. Komponen-komponen tersebut digunakan untuk membangun komputer virtual.
  2. Platform as a Service (PaaS)
    Platform as a Service (PaaS) merupakan sebuah service yang menyediakan computing platform. Biasanya PaaS sudah terdapat pada sistem operasi, database, web server dan framework aplikasi agar dapat menjalankan aplikasi yang telah dibuat. Vendor atau perusahaan yang menyediakan layanan yang bertanggung jawab untuk pemeliharaan computing platform nya. Manfaat dari service PaaS ini bagi pengembang adalah mereka bisa fokus pada aplikasi yang mereka buat tanpa memikirkan tentang pemeliharaan dari computing platform karena bagian dari pemeliharaan sudah akan ditanggung oleh penyedia. Contoh penyedia layanan PaaS adalah Amazon Web Service dan Windows Azure.
  3. Software as a Service (SaaS)
    Software as a Service (SaaS) merupakan sebuah layanan Cloud Computing yang dimana kita dapat langsung menggunakan aplikasi yang telah disediakan oleh penyedia. Penyedia layanan mengelola infrastruktur dan platform yang menjalankan aplikasi tersebut.

Nama : Rizqi Kukuh Pambudi
NPM : 59414741

Sumber Materi : 
Ardi, Malvin. Pengertian, Manfaat, Jenis-Jenis dan Contoh Cloud Computing. Dikutip dari situs : https://bfl-definisi.blogspot.co.id/. 14 Maret 2018

Gus, Wak. Cara Kerja  dan Contoh Cloud Computing. Dikutip dari situs : http://pusatteknologi.com/. 14 Maret 2018


Pengantar Grid Computing


Grid Komputing adalah sebuah arsitektur yang mengahasilkan sistem informasi yang berbiaya rendah dan lebih adaptif terhadap perubahan bisnis. Dengan arsitektur ini komponen dari hardware dan software yang modular dan independen akan dapat dikoneksikan dan disatukan untuk memenuhi kebutuhan. Implementasi dari grid computing ajan menghasilkan pusat komputasi data yang tangguh dengan struktur biaya variatif yang disesuaikan dengan kebutuhan. Permasalahan yang bisa diselesaikan dengan arsitektur ini adalah : permaslahan pada aplikasi yang menyebabkan hardware tidak berfungsi maksimal, kasus monolitik (yaitu sistem sulit digunakan karena mahalnya ongkos pengelolaan dan sulitnya dilakukan perubahan pada sistem), informasi yang terpecah-pecah sehingga tidak bisa dimanfaatkan secara maksimal. Komputasi grid memiliki tiga karakteristik penting yaitu:
  1. Pemakaian bersama sumber daya yang terkoordinasi (setara) yang tidak berada di bawah suatu kendali terpusat.
  2. Menggunakan protokol-protokol dan interface yang standar, terbuka dan serbaguna.
  3. Dapat memberikan kualitas layanan (QoS) yang tinggi

Menurut IDC grid computing merupakan generasi kelima dalam komputasi yaitu : host-based computing, remote access, klien/server, multitier, grid computing. Secara singkat grid computing berarti menyatukan seluruh sumberdaya TI yang terpisah secara geografiske dalam sekumpulan layanan yang bisa digunakan secara bersama-sama untuk memenuhi kebutuhan komputing perusahaan, pada pengembangannya hal ini difokuskan untuk meningkatkan kemampuan komputsi, akses data dan kapasitas penyimpanan data. Secara kontinyu metode arsitektur ini menganalisa permintaan terhadap sumberdaya dan mengatur suplai yang di sesuaikan terhapda permintaan tersebut. Dimana data disimpan atau komputer yang akan memproses tidak perlu dipikirkan. Peneyelesaia pmaslaah monolitik dapat diselesaikan dengan mengatur keseimbanga suplai dan sumber daya yang fleksibel. Berikut ini merupakan sumber daya yang dikelola oleh grid computing :

  1. Sumberdaya Infrasturuktur
    Mencakup keseluruhan hardware seperti penyimpanan, prosessor, memori, dan jaringan. Software untuk pengelolaan hardware seperti database, manajemen penyimpanan, manajemen sitem, server aplikasi, dan sistem operasi
  2. Sumberdaya Aplikasi
    Adanya logika bisnis dan arus proses dalam software aplikasi, berupa aplikasi paketatau aplikasi buatan. Ditulis dalam bahasa pemrograman dan merefleksikan tingkat kompleksitas, contohnya software pengambil pesanan dari seseorang pelanggan dan mengirimkan balsan, proses untuk cetak slip gaji dan lainnya.
  3. Sumberdaya informasi
    Informasi cenderung terfragmentasi dalam perusahaan, sehingga sulit untuk memandang bisnis dalam satu kesatuan. Grid computing melihat informasi adalah sumber daya, yang mencakup keseluruhan data pada perusahaan dan menjadikan metadata sebagai data yang bisa bermakna. Data bisa berbentuk struktur, semi-terstruktur, tersimpan di lokasi manapun seperti database maupun sistem file local.


Nama : Nawang Widyastuti
NPM : 57414875

Sumber Materi :
Pahlevi, Said Mirza. Komputasi Grid dan Pararel. Dikutip dari situs : http://digilib.batan.go.id. 14 Maret 2018

Rahayu,Nur Wijayaning. Arsitektur Grid Computing pada Oracle 10g. Dikutip dari situs : journal.uii.ac.id. 14 Maret 2018

Yasa, Ghufran Ibnu. Keamanan pada Grid Computing. Dikutip dari situs : https://jurnal.ar-raniry.ac.id. 14 Maret 2018


Virtualisasi

https://upload.wikimedia.org/wikipedia/id/3/35/Desktop_virtualization.jpg


Virtualisasi, sepertinya sudah tidak asing bagi yang bekerja di bidang Teknologi Informasi. Istilah yang banyak digunakan untuk melakukan optimasi sistem virtual diatas sesuatu hardware.

Why Virtualize?
“Virtualization means that Applications can use a resource without any concern for where it resides, what the technical interface is, how it has been implemented, which platform it uses, and how much of it is available.”

Rick F. Van der Lans 
in Data Virtualization for Business Intelligence Systems

Virtualisasi adalah sebuah teknologi yang memungkinkan untuk membuat sebuah versi virtual dari sesuatu yang bersifat fisik. Sebagai contohnya yaitu sistem operasi, storage/ penyimpanan data ataupun sumber daya jaringan.

Setelah virtualisasi terdapat istilah Hypervisor, dimana inilah yang menjadi inti dari virtualisasi. Karena terdapat layer/ lapisan yang berpura-pura menjadi sebuah infrastruktur dalam menjalankan virtual machine.

5 Alasan melakukan virtualisasi :

  1. Sharing, penggunaan bersama resource dengan komputasi yang besar. E.g Servers
  2. Isolation, memproteksi dari sistem lain yang digunakan. E.g Virtual Private Newtork
  3. Aggregating, menggabungkan banyak resouce menjadi satu. E.g storage
  4. Dynamics, persiapan terhadap perubahan, alokasi sumber daya, dan lainya. E.g Virtual Machines
  5. Ease of Management, mudah untuk didistribusikan, proses deploy dan testing.

Beberapa keuntungan dari virtualisasi :

  1. Minimize hardware costs
  2. Easy move VMs to other data centers
  3. Consolidate idle workloads
  4. Conserve power
  5. Easier automation (Lower OpEx)
  6. Scalability and Flexibility

Virtualisasi dalam pembagian komputasi :

  1. Storage
    Virtual memory (L1, L2, L3)
    Virtual CD, Virtual Disk (RAID), Cloud Storage
  2. Computing
    Virtual Desktop
    Virtual Server
    Virtual Datacenter
    Vms, Cloud
  3. Networking
    Virtual channels
    Virtual LANs
    Virtual Private Network

Server Virtualization Concepts

Host OS, dijalankan di perangkat keras/ diatas hardware langsung.
Guest OS, dijalankan diatas sistem operasi seperti Windows XP mode di Windows 7.
Hypervisor, software untuk mendukung banyak virtual machines
Type 1 : Berjalan di atas perangkat keras. E.g Xen, VMware ESXi
Type 2 : Berjalan diatas sistem operasi. E.g Ms Virtual Px, Virtualbox VMs
Type 0 : Gabungan antara Type 1 dan Type 2. E.g Linux KVM

Levels of Virtualization



Virtualization Products

  1. Microsoft Virtual PC
  2. Xen
  3. Oracle VM Virtualbox
  4. Microsoft Hyper-V
  5. Linux KVM
  6. User-Mode Linux (UML)
  7. VMware ESX/ESXi

File System for VMs

Using VMware’s example :
  • All physical disk are clustered in to Pools
  • Each VM has a virtual disk in some pool with extension .vmdk
  • The disk is formatted using Virtual Machine File System (VMFS)
  • Thin Provisioning
  • Thick Provisioning
  • Linked Clone
  • Non-Linked Disk
  • Persistent/Non-Persistent

Nama : Indra Nugraha
NPM : 55414297

Reference :

https://www.cse.wustl.edu/~jain/cse570-13/ftp/m_05srv.pdf

http://cdn.ttgtmedia.com/searchServerVirtualization/downloads/Virtualization_FD_Chapter_1.pdf

https://adhibarfan.wordpress.com/2016/04/21/pengantar-komputasi-cloud/


Distributed Computation dalam Cloud Computing


Pengertian Distribusi Komputasi 

Sistem komputasi terdistribusi adalah seperangkat mesin komputasi yang dihubungkan oleh jaringan untuk mencapai tujuan bersama dalam menjalankan pekerjaan atau aplikasi. Sebuah cluster komputer atau jaringan workstation adalah contoh sistem komputasi terdistribusi.

Pengertian Cloud Computing 

Cloud Computing merupakan suatu model komputasi yang dimana sumber daya seperti daya komputasi, media penyimpanan(storage), jaringan(network), dan software dijalankan sebagai layanan melalui media jaringan, bahkan dapat diakses di tempat manapun selama terkoneksi dengan jaringan internet. Cloud Computing juga mengubah pandangan komputasi dengan menggeser perangkat keras dan biaya kepegawaian dalam mengelola pusat komputasi.

Cloud computing mempunyai tiga tingkatan layanan yang diberikan kepada pengguna, yaitu:
  1. Infrastructure as service, hal ini di dalamnya meliputi Grid untuk virtualized server, storage & network. Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service.
  2. Platform as a service, dalam hal ini memfokuskan pada aplikasi dimana dalam hal ini seorang developer tidak perlu memikirkan hardware dan tetap fokus pada pembuatan aplikasi tanpa harus mengkhawatirkan sistem operasi, infrastructure scaling, load balancing dan lain-lain. Contoh yang sudah mengimplementasikan ini seperti Force.com dan Microsoft Azure investment.
  3. Software as a service: Hal ini berfokus pada aplikasi dengan Web-based interface yang diakses melalui Web Service dan Web 2.0. Contohnya adalah Google Apps, SalesForce.com dan aplikasi jejaring sosial seperti Facebook.


Kelebihan dan kekurangan Cloud Computing 


Kelebihan Cloud Computing:
  1. Menghemat biaya investasi awal untuk pembelian sumber daya.
  2. Bisa menghemat waktu sehingga perusahaan bisa langsung fokus ke profit dan berkembang dengan cepat.
  3. Membuat operasional dan manajemen lebih mudah karena sistem pribadi/perusahaan yang tersambung dalam satu cloud dapat dimonitor dan diatur dengan mudah.
  4. Menjadikan kolaborasi yang terpercaya dan lebih ramping.
  5. Mengehemat biaya operasional pada saat realibilitas ingin ditingkatkan dan kritikal sistem informasi yang dibangun.

Kekurangan Cloud Computing: 
  1. Komputasi awan tidak dapat dilakukan jika tidak dapat terhubung ke Internet.
  2. Apabila koneksi internet yang lambat, maka cloud computing tidak lagi optimal untuk digunakan.
  3. Fitur yang ditawarkan tidak selengkap aplikasi desktop.
  4. Data yang disimpan dalam awan secara umum tidaklah aman karena diperbanyak di beberapa mesin.
  5. Satu Pusat Serangan. Penempatan semua server dalam satu komputer akan menjadikannya sebagai target serangan.

Nama : Ahmad Hari Ramadhan
NPM : 50414562

Sumber Materi :
Febiani , Putri. Distributed Computation dalam Cloud Computing. Dikutip dari situs : http://putrifebiani.blogspot.co.id/2014/05/distributed-computation-dalam-cloud.html >. Diakses 13 Maret 2018.

Hwang, Kai, Geoffrey C. Fox, dan Jack J. Dongara. Distributed and Cloud Computing From Parallel Processing to the Internet of Things. 225 Wyman Street, Waltham, MA 02451, USA.
Linknya di bawah buat download ebooknya 
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwijjJrl5ejZAhUETY8KHTcSCaUQFggtMAA&url=https%3A%2F%2Feniac2017.files.wordpress.com%2F2017%2F03%2Fdistributed-and-cloud-computing.pdf&usg=AOvVaw1ixRK7rjX3KzOzi3SH0TaR


MapReduce dan NoSQL

MapReduce

MapReduce merupakan sebuah model pemrograman yang dirilis oleh Google dengan tujuan untuk memproses data yang berukuran besar yang dipecah menjadi komponen data kecil terdistribusi melalui ribuan komputer yang terhubung secara cluster. MapReduce sering digunakan oleh orang yang terbiasa dengan solusi pengolahan data skala clustering.

MapReduce merupakan pembagian dua proses yaitu proses Map dan proses Reduce. Cara kerja masing – masing proses sama halnya yaitu dengan mendistribusikan data – data yang sudah dibagi ke setiap komputer dalam suatu cluster dengan cara paralel sehingga tidak saling bergantung dengan lainnya. Proses Map bertugas untuk mengumpulkan informasi dari pecahan data yang terdistribusi dalam cluster tersebut dan hasil dari proses Map akan di proses lebih lanjut pada proses Reduce sehingga menghasilkan hasil akhir dimana hasil akhir tersebut akan dikirim ke pengguna. Hasil akhir tersebut berupa file teks yang biasanya disimpan di HDFS secara terdistribusi.

Tahap proses MapReduce

MapReduce memiliki tiga tahap, yaitu tahap map, tahap shuffle, dan tahap reduce.
  1. Tahap Map akan memproses data inputan berupa file yang tersimpan dalam HDFS (hadoop distributed file system) yang merupakan sistem file terdistribusi yang bersifat fault-tolerant dan mendukung pengolahan Big Data. Inputan tersebut selanjutnya diubah menjadi tuple antara key dan value.
  2. Tahap Reduce merupakan tahap gabungan dari tahap shuffle dan tahap reduce, sehingga tetap disebut menjadi tahap reduce. Tahap ini memproses inputan dari hasil proses map, kemudian dilakukan tahap shuffle dan reduce dengan hasil data set yang baru akan disimpan kembali di HDFS.

Keuntungan MapReduce

  1. Scalability
    MapReduce menjadi platform yang terukur karena kemampuan untuk menyimpan dan mendistribusikan data yang besar pada banyak server. Seperti halnya dalam organisasi bisnis, pemrograman MapReduce memungkinkan organisasi bisnis untuk menjalani aplikasi dari sejumlah besar node dengan melibatkan penggunaan ribuan terabyte data.
  2. Solusi Biaya yang Efektif
    Pada sistem manajemen database relasional tradisional, biaya yang besar akan digunakan untuk mencapai skala yang sederajat dengan Hadoop yang hanya untuk memproses data. Adanya pemrograman MapReduce mampu memungkinkan penyimpanan dan pengolahan data dengan cara yang terjangkau dan dapat digunakan di lain waktu, sehingga menghemat biaya yang besar.
  3. Flexibility Pemgrograman MapReduce dapat digunakan karena memiliki akses ke barbagai sumber data dan dapat beroperasi pada jenis data terstruktur maupun tidak terstruktur.
  4. Proses lebih cepat
    Metode penyimpanan sistem file terdistribusi menerapkan sistem pemetaan untuk mencari data dalam cluster dan pengolahan data menggunakan pemrograman MapReduce umumnya berada pada server yang sama, sehingga memungkinkan proses data yang lebih cepat bahkan dengan volume data yang besar dan tidak terstruktur.
  5. Keamanan dan Otentikasi
    Keamanan yang diberikan pemrograman MapReduce adalah bekerja dengan HDFS dan keamanan HBase yang hanya disetujui oleh pengguna untuk beroperasi pada data yang tersimpan dalam sistem.
  6. Proses Paralel
    Cara proses kerja yang dilakukan MapReduce adalah membagi tugas dengan cara eksekusi yang dilakukan secara parallel.
  7. Ketersediaan
    Ketersediaan yang dimaksud adalah ketika terjadi kegagalan pada saat data dikirim ke seluruh jaringan, sehingga mempengaruhi node tertentu, maka akan selalu ada salinan lain yang masih bisa diakses kapan pun. Dengan memiliki kemampuan untuk mengenali kesalahan secara cepat dan memberikan solusi pemulihan dengan cepat dan otomatis, hal inilah yang merupakan salah satu keuntungan yang di dapat jika menggunakan pemrograman MapReduce.
  8. Model Pemrograman Sederhana
    Pemrograman MapReduce didasarkan pada model pemrograman sederhana dan dapat menggunakan Java yang pada dasarnya dapat membantu programmer untuk mengembangkan program MapReduce yang menangani tugas – tugas dengan lebih efisien.

NoSQL

NoSQL dengan kepanjangan dari “Not Only SQL” merupakan suatu database sederhana berisikan key dan value yang berbeda dengan sistem manajemen database relasional dalam beberapa hal sehingga merupakan konsep penyimpanan data secara non-relasional. Beberapa contoh database seperti Memcache atau yang lebih canggih yaitu non-database relational seperti MongoDB, Cassandra, CouchDB, dan lainnya.

NoSQL juga disebut sebagai sebuah pendekatan untuk pengolahan data dan desain database untuk data terdistribusi dengan set yang sangat besar. NoSQL sangat berguna bagi keperluan perusahaan untuk mengakses dan menganalisis sejumlah besar data terstruktur, karena NoSQL mencakup berbagai teknologi dan arsitektur yang berusaha memecah masalah skala bilitas dan kinerja data yang besar.

Beberapa kelebihan NoSQL sebagai berikut :
  1. NoSQL mampu menampung data terstruktur, semi terstruktur, dan tidak terstruktur dengan efisien dalam skala yang besar.
  2. Pada pengaksesan atau manipulasi data, NoSQL menggunakan metode OOP.
  3. NoSQL tidak mengenal schema tabel dengan format data yang kaku, sehingga NoSQL sangat cocok pada data yang tidak terstruktur.
  4. Adanya istilah autosharding, dimana database NoSQL yang dijalankan pada multiple server maka data tersebut secara otomatis akan tersebar merata keseluruh server.

Adapun kekurangan yang dimiliki NoSQL, seperti :
  1. NoSQL dikenal memiliki hosting yang mahal, sehingga perlu mengeluarkan biaya yang lebih untuk hosting database NoSQL. Jumlah biaya hosting NoSQL pada dua tahun lalu berkisar 100 – 200 USD.
  2. Untuk menggunakan database NoSQL, tidak hanya belajar atau menggunakan satu saja dari beberapa contoh database NoSQL, jika terjadi perpindahan dari satu produk database ke produk NoSQL lainnya maka pengguna harus mempelajari produk NoSQL lainnya dari awal karena setiap produk memiliki variasi dan bentuk format penyimpanan yang berbeda.

Nama : Elfrida Lestari Sinaga
NPM : 53414492

Referensi :
Pasma D, Aprian. 2015. “Cloud Computing, Grid Computing, Virtualisasi, dan NoSQL”. Tersedia : http://zumzeros.blogspot.co.id/2015/03/cloud-computing-grid-computing.html. Diakses : 14 Maret 2018.

Febiani, Putri. 10 Mei 2015. “Map Reduce dan NoSQL”. Tersedia : http://putrifebiani.blogspot.co.id/2014/05/map-reduce-dan-nosql.html. Diakses : 14 Maret 2018.

Firian, Audimas. 25 April 2017. “MapReduce”. Tersedia : http://layarinformatika.blogspot.co.id/2017/04/mapreduce.html. Diakses : 13 Maret 2018.


NoSQL Database

Konsep Dasar NoSQL

Pada bagian ini akan menjelaskan fitur apa saja yang dimiliki oleh basis data NoSQL dan tidak dimiliki oleh RDMBS terutama dalam hal bagaimana cara mendistribusi data dan melakukan query dalam beberapa server yang sama. 

Eric brewer  menyatakan bahwa NoSQL didasarkan pada teori CAP yaitu pemilihan dua dari tiga aspek yang harus dipenuhi oleh basis data yaitu Consistency, Avaibility, dan Partition-Tolerance. 
  1. Consistency Avaibility (CA), artinya bagaimana suatu sistem dalam keadaan konsisten setelah eksekusi suatu operasi. Sistem terdistribusi biasanya dianggap konsisten jika setelah operasi update beberapa penulis, semua pembaca melihat pembaruannya di beberapa sumber data bersama. 
  2. Consistency Partition- Tolerance (CP) berseberangan dengan Avaiability dalam penyimpanan data. Diartikan sebagai kemampuan sistem untuk terus beroperasi dengan adanya partisi jaringan. Ini terjadi jika dua atau lebih node jaringan muncul yang (sementara atau permanen) tidak dapat terhubung satu sama lain. 
  3. Avaibility Partition-Tolerance, artinya bagaimana sistem dalam kondisi tersedia  yang berarti bahwa sistem harus dirancang dan diimplementasikan dengan cara yang memungkinkannya melanjutkan operasi (misal mengijinkan operasi baca dan tulis) seperti contohnya node dalam cluster crash atau beberapa bagian perangkat keras atau perangkat lunak rusak karena upgrade.

Dalam basis data NoSQL penerapan konsep tersebut diterjemahkan dalam empat konsep dasar yaitu Non-Relational, MapReduce, Schema Free, dan Horizontal Scaling.

Non-Relational

Konsep Non-Relational dalam basis data NoSQL meliputi hirarki, graf, dan basis data berorientasi obyek yang sudah terlebih dahulu ada sejak tahun 1960 sebelum akhirnya basis data relasional muncul pada tahun 1970. Penggunaan basis data non-relational kembali merebak seiring dengan bertambahnya aplikasi berbasis web yang memerlukan banyak penyimpanan data. Meskipun memiliki kelemahan pada konsistensi dan redundansi data, namun basis data non-relational dapat menyelesaikan beberapa permasalahan terkait dengan avaiability, dan partition tolerance. Tugas pengecekan konsistensi dan redundansi data diserahkan pada sisi aplikasi, sedangkan basis data non-relational hanya bertugas memanipulasi penyimpanan saja.



MapReduce

MapReduce merupakan model pemrograman yang diadaptasi dari pemrograman fungsional yang diimplementasikan untuk mengolah dataset yang sangat besar. Tujuan dari MapReduce adalah merancang suatu abstraksi baru yang memungkinkan pengguna untuk membuat antarmuka pemrograman sederhana dan menyembunyikan detail yang rumit dari pararelisasi, fault-tolerance, distribusi data, dan load balancing dalam pustaka pemrogramannya. Hasilnya menunjukkan bahwa penerapan MapReduce dapat menyederhanakan antarmuka pemrograman yang dapat mendukung paralelisasi dan distribusi komputasi skala besar secara otomatis.



Schema-Free

NoSQL dan RDBMS mempunyai perbedaan dalam hal penerapan skema basis data. Dalam basis data relasional, sebuah tabel didesain dengan peraturan skema yang ketat. NoSQL menyimpan data dengan aturan yang lebih longgar. Dalam artian, NoSQL tidak memiliki tabel, kolom, primary dan foreign key, join, dan relasi seperti pada RDBMS. 

Manfaat dalam penggunaan schema-free adalah penghematan dalam media penyimpanan. Dalam basis data relasional, setiap field yang ada dalam tabel harus mempunyai nilai, walaupun nilai itu kosong (null). Model data schema-free artinya setiap baris memungkinkan memiliki nilai sebanyak yang telah didefinisikan dalam tiap fields, dan tidak perlu menggunakan nilai yang memang tidak diperlukan. Kelemahan dalam penggunaan schema-free yaitu menimbulkan lemahnya pendefinisian struktur yang memungkinkan terjadinya penggunaan basis data yang tidak konsisten. 




Horizontal Scaling

Horizontal scaling memungkinkan basis data dijalankan pada beberapa server untuk meningkatkan kemampuan perangkat penyimpanan dan meningkatkan efisiensi waktu. Hal ini memerlukan kemampuan dinamis pemartisian data dalam serangkaian node (seperti storage hosts) dalam suatu cluster server. Kemampuan untuk meningkatkan kemampuan dengan menambahkan beberapa komputer sangatlah penting dilakukan untuk data yang jumlahnya banyak, karena vertical scaling dilakukan dengan meningkatkan kemampuan spesifikasi single server (misalnya penambahan prosesor, memori, dan peralatan penyimpanan) terbatas untuk dilakukan dan lebih mahal. Horizontal scaling berarti memungkinkan dilakukannya penambahan server dalam satu jaringan dan user tidak sadar jika ada hardware yang diganti dari sisi server (transparent).



Model Data Relasional NoSQL

Bagian ini berisi penjelasan empat model data NoSQL, yaitu column-oriented, document-oriented, object-oriented dan graph-oriented

Column-oriented

Penerepan column-oriented menggunakan distribusi multidimensional map indexed dengan sebuah key. Setiap kolom digabungkan menjadi sebuah column families. Super-column merupakan gabungan dari kolom dengan nama yang umum dan digunakan untuk pemodelan tipe data yang komplek. Baris secara unik mengidentifikasikan data yang terdapat dalam column dan super-column. Column Family merupakan bagian dari suatu unit abstraksi yang berisi baris kunci yang tergabung dalam column dan super column yang memiliki struktur data yang tinggi. Keyspace merupakan level tertinggi dari unit informasi. Kumpulan column families sebenarnya merupakan subordinat dari satu keyspace. Pada intinya model data column-oriented memungkinkan suatu aplikasi secara bebas untuk mengembangkan bagaimana informasi disusun berdasarkan suatu desain schema.



Document-oriented

Basis data yang memiliki model data document-oriented sangat bermanfaat untuk suatu domain yang bentuk masukannya dokumen yang tidak terstruktur seperti web pages, wikis, discussion forums, dan blogs. Data tersimpan dalam basis data yang mencakup serangkaian dokumentasi yang berisi beberapa atribut dan nilai dengan masing-masing id yang unik dan metadata. Basis data ini tidak pernah melakukan overwrite document, melainkan menambahkan dokumen baru ke basis data bila diperlukan seperti ketika terjadi proses update.



Object-oriented

Basis data berorientasi objek adalah model basis data di mana informasi direpresentasikan dalam bentuk objek yang digunakan dalam pemrograman berorientasi obyek. Dokumen yang ada dalam suatu cluster, dapat berupa fisik, logis atau in-memory, yang digunakan untuk menyimpan link ke dalam data. Cluster adalah cara yang sangat umum untuk mengelompokkan record, hal ini merupakan suatu konsep yang tidak ada dalam basis data relasional. Cara ini dapat mengelompokkan semua record pada jenis tertentu, atau dengan nilai-nilai tertentu. Model database ini menggunakan segmen data untuk menyimpan isi record. Segmen data mirip dengan file physical cluster yang menggunakan dua atau lebih file, yaitu satu atau beberapa file dengan ekstensi "oda" (Orient Data) dan hanya satu file dengan ekstensi "odh" (Orient data Holes).



Graph-oriented

Basis data grafik adalah basis data yang menggunakan struktur grafik yang berisi node, edge, dan properti untuk mewakili dan menyimpan informasi. Basis data grafik diperlukan untuk data grafik yang berskala besar. Basis data grafik memetakan secara langsung objek ke aplikasi dan lebih intuitif untuk menggambarkan data set asosiatif. Beberapa keuntungan dari basis data grafik adalah: Intuitive, dimengerti oleh pikiran manusia, yaitu menggambarkan entitas dan hubungan sebagai grafik masalah umum yang akrab dengan manusia; Elemental untuk ilmu komputer, yaitu grafik, terutama grafik pohon (seperti binary-tree, B+ tree, red-black tree) berfungsi sebagai struktur data dasar dalam ilmu komputer dan berbagai masalah (shortest path dan max-flow) dapat diubah dan diselesaikan dengan algoritma grafik; Ubiquitous, yaitu pemodelan ER ke model jejaring sosial selalu dikelilingi oleh grafik baik di komputer ataupun dalam kenyataan.





Nama : Biyanka Pinasthi
NPM : 52414204

Referensi :
http://www.christof-strauch.de/nosqldbs
http://download.portalgaruda.org/article.php?article=113631&val=5187
https://www.upwork.com/hiring/data/sql-vs-nosql-databases-whats-the-difference/
https://blog.trifork.com/wp-content/uploads/2009/08/
http://www.timestored.com/time-series-data/what-is-a-column-oriented-database









SHARE
    Blogger Comment
    Facebook Comment

0 komentar:

Posting Komentar