nama

nama

Senin, 23 April 2018

NoSQL Database


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 SQL Database, dari namanya saja sudah bisa ditebak bahwa nosql database adalah kebalikan dari sql database. Tidak relational atau tanpa relation. Database nosql atau yang biasa disebut NoSQL database atau cloud database merupakan penyimpanan data / database yang tidak terstruktur.
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.

Dilihat dari cara penyimpanan data saja basis data NoSQL tersebar dari cara penyimpanan:
·         Key-Value based (disimpan dalam bentuk kunci-isi berpasangan)
Kunci-nilai/Key-value (KV) toko menggunakan array asosiatif (juga dikenal sebagai peta atau kamus) sebagai model data fundamental mereka. Dalam model ini, data direpresentasikan sebagai kumpulan pasangan kunci-nilai, sehingga setiap tombol mungkin muncul paling banyak sekali dalam koleksi. Model kunci-nilai adalah salah satu model data non-sepele sederhana, dan model data yang lebih kaya sering diimplementasikan di atas itu. Model kunci-nilai dapat diperluas untuk model memerintahkan yang mempertahankan kunci agar leksikografis. Ekstensi ini sangat kuat, dalam hal ini secara efisien dapat memproses rentang kunci. Toko kunci-nilai dapat menggunakan model konsistensi mulai dari konsistensi akhirnya ke serializability. Beberapa dukungan memesan kunci. Beberapa mempertahankan data dalam memori (RAM), sementara yang lain menggunakan solid-state drive atau disk.


·         Document based (disimpan dalam dokumen-dokumen)
Jenis NoSQL ini merupakan database yang berbasiskan dokumen. Tidak ada tabel, field dan record, yang ada hanyalah koleksi dan dokumen. Koleksi dapat disamakan dengan tabel dan dokumen disamakan dengan field. Berbeda dengan database relasional, pada document oriented database, dokumen dapat memiliki field yang berbeda dengan dokumen lain walaupun berada dalam satu koleksi. Hal ini tidak dapat dilakukan dengan database relasional dimana sebuah record tidak mungkin memiliki field yang berbeda dengan record yang berada dalam satu tabel. Document Oriented digunakan oleh Mongodb, Couchdb, Ravendb, dan lain-lain.
·         Column based (disimpan dalam kolom-kolom)
·         Graph based (disimpan dalam bentuk graf)
Jenis database NoSQL yang menggunakan struktur graph dengan node, edge dan properties untuk menyimpan datanya. Metode ini digunakan oleh Infinite Graph, InfoGrid, Neo4J dan lain-lain.
Karena dari cara penyimpanannya saja sudah beda sudah tentu cara penambahan maupun pengambilan datanya juga berbeda.

Contoh-contoh Aplikasi NoSQL Database
·         MongoDB
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.

·         CouchDB
Apache 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.



·         Cassandra
Cassandra 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.

·         Redis
Lagi-lagi basis 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.

·         Riak
Riak merupakan basis data NoSQL terdistribusi yang menyimpan datanya dalam bentu key-value. Riak menawarkan fitur high availability, fault tolerance, operational simplicaity, dan scalability. 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.

·         Neo4J
Neo4j 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.

·         OrientDB
OrientDB 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.




Kelebihan NoSQL di banding Relasional Database
·         NoSQL bisa menampung data yang terstruktur, semi terstruktur dan tidak terstuktur secara efesien dalam skala besar (big data/cloud).
·         Menggunakan OOP (Object Oriented Programming) dalam pengaksesan atau manipulasi datanya.
·         NoSQL tidak mengenal schema tabel yang kaku dengan format data yang kaku. NoSQL sangat cocok untuk data yang tidak terstruktur, istilah singkat untuk fitur ini adalah Dynamic Schema.
·         Autosharding, istilah sederhananya, jika database noSQL di jalankandi cluster server (multiple server) maka data akan tersebar secara otomatis dan merata keseluruh server.

Kekurangan dari database NoSQL
·         Hostingnya mahal, beberapa layanan di luar negeri mencharge biaya 100-200USD untuk hosting database noSQL. Selain itu, saya belum pernah menemukan hosting Cpanel yang mendukung database MongoDB atau database noSQL lainnya.
·         Perlu waktu untuk belajar. Contohnya ketika anda pindah dari MongoDB ke Cassandra, maka anda harus belajar lagi dari awal, berbeda dengan database RDMS.

Perbedaan SQL dengan NoSQL
·         Dalam cara penulisan database mereka. Jika SQL menggunakan relasional sebagai penyambung antara data – data di dalam tabel database mereka. Dan NoSQL tidak menggunakan Relasional sebagai cara mereka untuk menyambungkan antar data mereka. NoSQL menggunakan 4 metode dalam cara mereka untuk menstored data, Key Values stores, Document oriented, Table Oriented, dan terakhir Graph Oriented.
·         NoSQL tidak menggunakan Schema relational, jika di dalam SQL kita harus mendefinisikan table yang akan digunakan. Berbeda dengan SQL, NoSQL tidak perlu untuk mendefinisikan terlebih dahulu Table yang akan digunakan.
·         NoSQL memiliki kemampuan “elastis” yang lebih baik dibandingkan SQL. Untuk menambah jumlah server basis data di dalam NoSQL, lebih mudah karena kita tidak perlu mendapatkan downtime yang terjadi.
·         Integrated Caching, NoSQl memiliki kemampuan untuk mentransformasikan data dengan lebih cepat hal ini dikarenakan NoSQL menggunakan cache-nya di dalam sistem memori.

Contoh Perusahaan Besar yang Menggunakan NoSQL

  • ·         Facebook menggunakan Cassandra
  • ·         Twitter menggunakan FlockDB
  • ·         Linkedlin menggunakan Voldemort
  • ·         Google menggunakan Bigtable
  • ·         Amazon menggunakan Simple DB



Source :







Sabtu, 27 Januari 2018

Cara Konfigurasi web proxy pada mikrotik router


Proxy adalah suatu aplikasi yang menjadi perantara antara client dengan server, sehingga client tidak akan berhubungan langsung dengan server-server yang ada di Internet. Mikrotik memiliki fitur Web proxy yang bisa digunakan sebagai proxy server yang nantinya akan menjadi perantara antara browser user dengan web server di Internet.

Berikut langkah-langkahnya

1. Setting pengaturan IP LAN pada PC menjadi seperti berikut.

Gunakan IP static pada LAN atau menggunakan DHCP pada client juga dapat dilakukan.

2. Masuk ke Winbox, setting port ethernet pada router yang terhubung dengan jaringan internet dengan DHCP Client, kemudian pindah ke menu IP > Addresses lakukan penambahan IP untuk LAN seperti tampilan berikut ini.


3. Lakukan konfigurasi firewall pada NAT dengan Action Masquerade sehingga dapat terkoneksi 
dengan internet

4. Selanjutnya, masuk ke menu IP > Web Proxy, lalu setting Web Proxy seperti berikut.


Lalu centang enable dan isi port dengan 3131, sehingga semua traffic yang melewati port ini akan melewati Web Proxy.

5. kembali ke settingan NAT, buka menu IP > Firewall > NAT. tambahkan konfigurasi NAT sebagai berikut.

Chain yang digunakan dstnat (desination nat) dengan protocol 6 (tcp) dan Dst. Port = 80 dikarenakan kita akan mengakses Web yang default port nya = 80, dan In. Interface LAN1
 Action yang digunakan adalah redirect sehingga semua request yang dilakukan oleh LAN1 akan di redirect ke port 3131

6. Selanjutnya masuk ke menu Web Proxy > Setting > Access, maka akan muncul tampilan seperti berikut, bisa langsung menggunakan layanan Web Proxy ini dengan memblock beberapa situs yang akan diakses dengan cara berikut.

      Isi Dst.Host sesuai dengan nama situs, contoh detik.com > Action deny, berarti selama ada kata detik pada situs yang dituju, maka akan terblock oleh Web Proxy ini, contoh lain sebagai berikut.




     Jika Setting Web Proxy ini dinonakifkan, maka Web yang anda tuju dapat di akses kembali.





Source : 
http://taufiqth13.blogspot.co.id/2015/01/konfigurasi-web-proxy-mikrotik-router.html