Sabtu, 06 Juli 2019

Quantum Gates


Latar Belakang
Komputer kuantum adalah salah satu komputer yang belum sama sekali ada di dunia ini. Karena komputer ini sangat mustahil di ciptakan. Tapi mungkin saja ini bisa tercipta. Jika dikatakan, komputer kuantum hanya butuh waktu 20 menit untuk mengerjakan sebuah proses yang butuh waktu 1025 tahun pada komputer saat ini. Hal inilah yang membuat para ilmuwan begitu tertarik untuk mengembangkan kemungkinan terbentuknya komputer kuantum. Meskipun hingga saat ini belum tercipta sebuah komputer kuantum, kemajuan ke arah sana terus berlangsung. Bahkan yang menarik, ternyata perkembangan komputer kuantum juga mengikuti apa yang dikatakan oleh Gordan Moore sang Genius IBM “Kemampuan Prosesor akan meningkat dua kali lipat dalam jangka waktu 18 bulan”. Jika hal ini benar, para ilmuwan akan dapat membangun sebuah komputer kuantum hanya dalam waktu lima tahun ke depan. Setidaknya, begitulah yang dikatakan oleh Raymond Laflamme, ilmuwan dari Massachusetts Institute of Technology (MIT), Amerika Serikat.

Prinsip dasar komputer kuantum adalah bahwa sifat kuantum dari partikel dapat digunakan untuk mewakili data dan struktur data, dan bahwa mekanika kuantum dapat digunakan untuk melakukan operasi dengan data ini dan teknologi ini adalah salah satu hasil dari “applied Physic”(fisika terapan). Untuk itu artikel ini akan menjelaskan tentang apa itu komputer kuantum secara keseluruhan.
Quantum Computation (komputer kuantum) merupakan suatu alat hitung yang menggunakan sebuah fenomena mekanika kuantum, misalnya superposisi dan keterkaitan, untuk melakukan operasi data. Dalam komputasi klasik, jumlah data dihitung dengan bit; dalam komputer kuantum, hal ini dilakukan dengan qubit. Sehebat-hebatnya komputer konvensional, dia selalu bekerja dengan bits, angka biner yang hanya bisa 1 atau 0. Quantum Computer bisa lepas dari restriksi ini, karena bisa berada dalam keadaan superposisi 1 dan 0 pada saat yang sama. Angka ini dinamai qubits (quantum bits, tentunya) yang bisa 1, bisa 0 atau bisa berada di antara 1 dan 0 – ingat, ini bukan berarti 0,6; melainkan 60% probabilitas A dan 40% probabilitas B.

Metode
Quantum Gates / Gerbang Quantum merupakan sebuah aturan logika / gerbang logika yang berlaku pada quantum computing. Prinsip kerja dari quantum gates hampir sama dengan gerbang logika pada komputer digital. Jika pada komputer digital terdapat beberapa operasi logika seperti AND, OR, NOT, pada quantum computing gerbang quantum terdiri dari beberapa bilangan qubits, sehingga quantum gates lebih susah untuk dihitung daripada gerang logika pada komputer digital.

Analisa
Quantum Gates adalah sebuah gerbang kuantum yang dimana berfungsi mengoperasikan bit yang terdiri dari 0 dan 1 menjadi qubits. dengan demikian Quantum gates mempercepat banyaknya perhitungan bit pada waktu bersamaan. Quantum Gates adalah blok bangunan sirkuit kuantum, seperti klasik gerbang logika yang untuk sirkuit digital konvensional.

Quantum Gates / Gerbang Quantum merupakan sebuah aturan logika / gerbang logika yang berlaku pada quantum computing. Prinsip kerja dari quantum gates hampir sama dengan gerbang logika pada komputer digital. Jika pada komputer digital terdapat beberapa operasi logika seperti AND, OR, NOT, pada quantum computing gerbang quantum terdiri dari beberapa bilangan qubits, sehingga quantum gates lebih susah untuk dihitung daripada gerang logika pada komputer digital.

Quantum Logic Gates, Prosedur berikut menunjukkan bagaimana cara untuk membuat sirkuit reversibel yang mensimulasikan dan sirkuit ireversibel sementara untuk membuat penghematan yang besar dalam jumlah ancillae yang digunakan.

·                     Pertama mensimulasikan gerbang di babak pertama tingkat.
·                     Jauhkan hasil gerbang di tingkat d / 2 secara terpisah.
·                     Bersihkan bit ancillae.
·                     Gunakan mereka untuk mensimulasikan gerbang di babak kedua tingkat.
·                     Setelah menghitung output, membersihkan bit ancillae.
·                     Bersihkan hasil tingkat d / 2.

Sekarang kita telah melihat gerbang reversibel ireversibel klasik dan klasik, memiliki konteks yang lebih baik untuk menghargai fungsi dari gerbang kuantum. Sama seperti setiap perhitungan klasik dapat dipecah menjadi urutan klasik gerbang logika yang bertindak hanya pada bit klasik pada satu waktu, sehingga juga bisa setiap kuantum perhitungan dapat dipecah menjadi urutan gerbang logika kuantum yang bekerja pada hanya beberapa qubit pada suatu waktu. Perbedaan utama adalah bahwa gerbang logika klasik memanipulasi nilai bit klasik, 0 atau 1, gerbang kuantum dapat sewenang-wenang memanipulasi nilai kuantum multi-partite termasuk superposisi dari komputasi dasar yang juga dilibatkan. Jadi gerbang logika kuantum perhitungannya jauh lebih bervariasi daripada gerbang logika perhitungan klasik.

Untuk memanipulasi sebuah qubit, maka menggunakan Quantum Gates (Gerbang Kuantum). Cara kerjanya yaitu sebuah gerbang kuantum bekerja mirip dengan gerbang logika klasik. Gerbang logika klasik mengambil bit sebagai input, mengevaluasi dan memproses input dan menghasilkan bit baru sebagai output.




Tidak seperti banyak gerbang logika klasik, logika kuantum gerbang reversibel . Namun, adalah mungkin untuk melakukan komputasi klasik menggunakan gerbang hanya reversibel. Sebagai contoh, reversibel gerbang Toffoli dapat melaksanakan semua fungsi Boolean. Gerbang ini memiliki setara kuantum langsung, menunjukkan bahwa sirkuit kuantum dapat melakukan semua operasi yang dilakukan oleh sirkuit klasik.

Quantum gerbang logika yang diwakili oleh matriks kesatuan . Gerbang kuantum yang paling umum beroperasi pada ruang satu atau dua qubit, seperti biasa klasik gerbang logika beroperasi pada satu atau dua bit. Ini berarti bahwa sebagai matriks, gerbang kuantum dapat dijelaskan oleh 2 × 2 atau 4 × 4 matriks kesatuan.

Kesimpulan
Quantum Gates (Gerbang kuantum) adalah sebuah proses operasi logika dalam komputer kuantum. Gerbang kuantum sejajar dengan operasi logika komputer digital pada umumnya, yaitu AND,OR,XOR dsb. Prinsip kerja dari quantum gates hampir sama dengan gerbang logika pada komputer digital hanya saja proses dalam perhitungan menggunakan qubitnya yang berbeda dan berpengaruh pada komputasi quantum. Apabila pada komputer digital biasa AND bisa di representasikan dengan bit 1 berbeda dengan AND pada Quantum Gates yang direpresentasikan oleh qubit dalam pengoprasiannya. pada quantum computing gerbang quantum terdiri dari beberapa bilangan qubit, sehingga quantum lebih sulit untuk dihitung daripada gerbang logika pada komputer digital. Sebuah contoh dari implementasi qubit untuk komputer kuantum bisa mulai dengan menggunakan partikel dengan dua putaran menyatakan: “down” dan “up.

Referensi

Jumat, 21 Juni 2019

Distributed Processing


LATAR BELAKANG
Salah satu bentuk perkembangan teknologi informasi adalah adanya perkembangan dalam aspek pelayanan atau pengaksesan data dan pemrosesan data. Perkembangan ini bisa ditandai dengan adanya sebuah metode teknologi, yaitu Distributed Processing (Pemrosesan Terdistribusi).
Distributed Processing adalah kemampuan menjalankan semua proses pengolahan data secara bersama antara komputer yang berfungsi sebagai pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah maka prosesor yang lain akan mengambil alih tugasnya. Dalam proses distribusi sudah mutlak diperlukan perpaduan yang mendalam antara teknologi komputer dan telekomunikasi, karena selain proses yang harus didistribusikan, semua host komputer wajib melayani terminal-terminalnya dalam satu perintah dari komputer pusat.
Penulis akan membandingkan 2 buah jurnal dengan tema parallel computing. Jurnal pertama membahas tentang cara mengklasifikasikan mutu buah tomat, dimana proses klasifikasinya dilakukan dengan dua cara yaitu, secara sekuensial dan parallel. Jurnal kedua membahas tentang implementasi komputasi parallel dengan algoritma genetik.untuk prapemrosesan probabilistic neural network

METODE
Metode pertama mereka menggunakan komputasi parallel pada Jaringan Syaraf Probabilistik (PNN) untuk mengklasifikasi buah tomat, jurnal yang kedua , menggunakan komputasi parallel dengan Algoritma Genetik untuk Prapemrosesan Probabilistic Neural Network pada bunga iris.

ANALISA
Pada jurnal yang pertama Percobaan dilakukan untuk membandingkan kinerja PNN yang dilakukan secara paralel pada dua buah komputer dan kinerja PNN yang dilakukan secara sekuensial pada satu komputer. Kriteria yang digunakan untuk uji analisis adalah akurasi klasifikasi PNN, waktu eksekusi total, peningkatan kecepatan, peningkatan akurasi, dan efisiensi. Percobaan dilakukan menggunakan program komputasi paralel dengan PNN hasil penelitian sebelumnya. Tomat yang digunakan adalah varietas Permata yang dikelompokkan menjadi tiga kelas dan masing-masing kelas diambil parameter bobot (gram), panjang (cm) dan lebar (cm). Proses pelatihan dilakukan dengan rasio antara jumlah data yang digunakan untuk pelatihan dan data yang digunakan sebagai contoh masukan (validasi) divariasikan sebanyak 9 mode. Masing-masing mode pelatihan dilakukan 10 kali pengulangan. Dengan dua macam populasi Algoritma Genetik yang digunakan, total percobaan yang dilakukan adalah 360 percobaan. Dari percobaan didapatkan hasil bahwa akurasi klasifikasi komputasi paralel dan komputasi sekuensial tidak terlalu berbeda dan terpusat pada kisaran rata-rata 89.2%. Peningkatan akurasi komputasi paralel juga relatif sama dengan pola sebaran bernilai 100%. Artinya akurasi klasifikasi dengan komputasi paralel meningkat 1 kali lipat dari komputasi sekuensial. Dengan demikian tidak terjadi perubahan berarti terhadap akurasi klasifiaksi. Pada aplikasi klasifikasi dengan komputasi paralel, waktu total (waktu pelatihan dan waktu klasifikasi) rata-rata adalah 439.57 detik, lebih kecil daripada komputasi sekuensial yang rata-rata sebesar 548.66 detik. Hal ini menyebabkan terjadinya peningkatan kecepatan komputasi paralel yang rata-rata sebesar 128.857%. Dengan demikian, klasifikasi dengan komputasi paralel pada dua buah komputer lebih cepat sekitar 1.3 kali lipat dibandingkan dengan komputasi sekuensial. Dari hasil tersebut, dapat diambil kesimpulan bahwa penerapan komputasi paralel pada proses klasifikasi tomat telah mempercepat waktu pemrosesan tanpa mengubah nilai akurasi klasifikasi secara signifikan.  Namun penerapan komputasi paralel pada bagian prosesor dari sistem sortasi perlu diimbangi dengan pemilihan teknik/metode yang tepat pada bagian lainnya sehingga peningkatan kecepatan yang dihasilkan menjadi optimal.
Pada jurnal yang kedua menguji dan membandingkan kinerja dari algoritma genetik sekuensial, algoritma genetik paralel mode vektor baris, dan algoritma genetik mode vektor kolom. Penelitian menggunakan basis data bunga iris yang dikembangkan oleh R.A. Fisher. Berbagai kriteria yang digunakan untuk uji analisis adalah akurasi klasifikasi PNN, waktu eksekusi total, rasio kebergantungan mesin, peningkatan kecepatan, dan efisiensi. . Dari percobaan didapatkan kesimpulan bahwa secara umum kinerja algoritma genetik paralel jauh lebih baik apabila dibandingkan dengan algoritma genetik sekuensial. Sedangkan kinerja antara algoritma genetik paralel mode vektor baris dan kinerja algoritma genetik paralel mode vektor kolom tidak terlampau jauh berbeda.

KESIMPULAN
Pada Jurnal yang pertama, mereka menggunakan komputasi parallel pada Jaringan Syaraf Probabilistik (PNN) untuk mengklasifikasi buah tomat, jurnal yang kedua , menggunakan komputasi parallel dengan Algoritma Genetik untuk Prapemrosesan Probabilistic Neural Network pada bunga iris.
Kedua jurnal ini menggunakan cara yang sama yaitu dengan menggunakan lebih dari 1 komputer, yaitu jurnal pertama 2 komputer dan jurnal kedua 3 komputer. Jaringan yang digunakan pun berbeda, dimana pada jurnal pertama tidak menggunakan HUB dan yang kedua memakai HUB dab UTP. Hasil yang di dapat pun berbeda, pada jurnal pertama setiap parameter memiliki keunggulan di setiap cara, berbeda dengan jurnal kedua yang memiliki keunggulan di setiap parameter dengan cara komputasi parallel.

REFERENSI




Sabtu, 27 April 2019

No SQL Database


LATAR BELAKANG
NoSQL (singkatan dari Not Only SQL) merupakan tipe database yang sangat jauh berbeda dengan konsep RDBMS ataupun ODBMS. Perbedaan utamanya sendiri yaitu karena pada NoSQL tidak mengenal istilah relation dan tidak menggunakan konsep schema (schema-less), yang berarti pada NoSQL masingmasing tabel berdiri sendiri tanpa tergantung pada tabel lainnya alias independen. Dalam konsep ODBMS dan RDBMS, struktur tabel, seperti tipe data dan ukurannya, harus selalu didefinisikan terlebih dahulu sebelum penyimpanan data, berbeda dengan konsep NoSQL. Dalam konsep NoSQL, data bisa disimpan tanpa perlu mendefinisikan tipe data dan ukurannya terlebih dahulu. Hal ini menyebabkan data menjadi lebih fleksibel bila ada perubahan di masa mendatang. (thePinkFighter, 2011) Inilah kelebihan NoSQL yang disebut dengan high scalability, tidak hanya secara vertikal namun juga horisontal.

KONSEP DASAR NOSQL
Bagian ini akan menjelaskan fitur yang dimiliki oleh basis data NoSQL terutama dalam hal distribusi data dan query dalam beberapa server yang sama. Telah banyak produk basis data NoSQL dengan berbagai keunggulannya masing-masing.
Beberapa diantaranya adalah CouchDB yang memiliki nilai konkruensi dan RESTfull HTTP request, simpleDB yang memiliki kesederhanaan dan fleksibilitas dalam pemeliharaannya, dan Google BigTable yang memiliki kuota yang terbatas.
Eric brewer [2] menyatakan bahwa NoSQL didasarkan pada teori CAP yaitu pemilihan dua dari tiga aspek yang ada yang harus dipenuhi oleh basis data yaitu Consistency, Avaibility, dan Partition-Tolerance.
1)      Consistency Avaibility (CA) berseberangan dengan Partition-Tolerance dan biasanya berhubungan dengan replikasi.
2)      Consistency Partition-Tolerance (CP) berseberangan dengan Avaibility dalam penyimpanan data.
3)      Avaibility Partition-Tolerance sistem mencapai kondisi eventual consistency melalui replikasi dan verifikasi yang konsisten dalam node yang telah terbagi-bagi. Dalam basis data NoSQL penerapan konsep tersebut diterjemahkan dalam empat konsep dasar yaitu Non-Relational, MapReduce, Schema Free, dan Horizontal Scaling.

3.1 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 [13]. 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-relasional dapat menyelesaikan beberapa permasalahan terkait dengan avaibility, dan partition tolerance. Tugas pengecekan konsistensi dan redundansi data diserahkan pada sisi aplikasi, sedangkan basis data non-relational hanya bertugas memanipulasi penyimpanan saja.


3.2 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 [14].
Berikut ini merupakan contoh penggunaan fungsi Map() dan Reduce() yang diambil dari makalah Ricky Ho[16]. Tujuan dari penggunaan MapReduce dalam kasus ini adalah menghitung jumlah distinct path diantara orang-orang yang memiliki koneksi dan akan disarankan ke orang dalam suatu situs pertemanan. Fungsi MapReduce digunakan untuk mencari 10 orang teratas yang saling terkoneksi.
Untuk fungsi Map(), sebuah Cartesian Product dikerjakan untuk semua pasangan teman. Kita juga perlu menghilangkan pasangan yang terkoneksi langsung. Oleh karena itu fungsi Map() juga harus memunculkan pasangan orang yang terkoneksi langsung. Kita perlu mengambil key space sedemikian rupa sehingga semua key dengan pasangan yang sama akan mempunyai pengurangan yang sama. Disisi lain, kita memerlukan pasangan yang berhubungan langsung sebelum pasangan yang mempunyai pemisah.
Pada Fungsi Reduce() semua key yang mencapai reducer yang sama akan diurutkan. Jadi pasangan yang terkoneksi langsung akan ada sebelum pasangan yang tidak terkoneksi. Reducer hanya perlu untuk mengecek jika pasangan pertama merupakan koneksi langsung dan jika iya, maka lanjutnya sisanya.

3.3 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, artinya tidak seperti basis data yang berdasarkan SQL tradisional , NoSQL tidak memiliki tabel, kolom, primary dan foreign key, join, dan relasi.
Dalam pengembangan basis data relasional, developer/database administrator harus berhati-hati dalam menentukan bagaimana tabel saling berelasi dan field yang ada didalam setiap tabel. Karena perubahan skema dalam RDBMS dapat menimbulkan masalah ketergantungan dan integritas, seperti timbulnya kolom null dan relasi kunci yang tidak cocok. Hal ini bukan masalah dalam NoSQL karena adanya penerapan schema-free. Setiap dokumen bertanggung jawab terhadap isinya sendiri, maksutnya null value dapat dihilangkan dalam beberapa baris, dan field baru dapat didefinisikan dalam setiap dokumen secara indpenden [17]. Salah satu produk basis data NoSQL yang menerapkan fitur schema-free adalah Cassandra.

3.4 Horizontal Scaling
Horizontal scaling memungkinkan basis data dijalankan pada beberapa server untuk meningkatkan kemampuan perangkat penyimpanan dan meningkatkan efisiensi waktu [19]. 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 [13].
Horizontal scaling berarti memungkinkan dilakukannya penambahan server dalam satu jaringan dan user tidak sadar jika ada hardware yang diganti dari sisi server (transparent). Ada beberapa teknik partisi yang digunakan dalam basis data untuk melakukan horizontal scaling, salah satunya adalah consistent hashing yang digunakan dalam Cassandra dan Amazon Dynamo.
Kunci dari menerapkan consistent hashing adalah membuat suatu lingkaran atau “ring”. Setiap node dalam sistem yang ditandai dengan random value dalam suatu space yang merepresentasikan posisi dari ring. Suatu kunci item ditandai dengan sebuah node untuk memperoleh posisinya pada ring, kemudian berpindah menuju node selanjutya yang sudah ditandai. Node memerankan peranan penting sebagai koordinator untuk kunci yang akan digunakan dalam route request. Kemudian, setiap node menjadi tanggung jawab dari daerah yang ada di ring diantara noder dan node dalam ring sebelumnya. Pejelasan detail mengenal Dynamo dijelaskan oleh DeCandia dkk.

PENGELOMPOKAN DATABASES NOSQL

Secara umum, database noSQL dibagi menurut format penyimpanan dokmentnya . Berikut ini adalah pengelompokan database noSQL berdasarkan model (penyimpanan) datanya
1)      Document Database contohnya MongoDB, seiap satu object data disimpan dalam satu dokumen. Dokumen sendiri bisa terdiri dari key-value, dan value sendiri bisa berupa array atau key-value bertingkat.
2)      Graph, Format penyimpanan data dalam struktur graph. Format ini sering dipakai untuk data yang saling berhubungan seperti jejaring social. Contoh database noSQL dengan format ini adalah Neo4J dan FlockDB. FlockDB dipakai oleh twitter.
3)      Key – Value,  contoh database jenis ini adalah Apache Cassandra.
4)      Object Database. Format database yang disimpan dalam object-object, Object disini sama dengan pengertian object di Pemrograman beroreintasi object, Contoh databasenya adalah Db4o.
5)      Tipe lainnya adalah tabular, tuple store dan berbagai jenis lain yang tidak terlalu populer.
MODEL DATA RELASIONAL NOSQL
NoSQL merupakan basis data non relasional dengan schema-free yang memunculkan pertanyaan bagaimana NoSQL dapat melakukan partisi untuk data yang berukuran besar, melakukan query, replikasi data, dan mendukung adanya konsistensi. Bagian ini berisi penjelasan empat model data NoSQL, yaitu column-oriented, document-oriented, object-oriented dan graph-oriented.
4.1       Column-oriented
Penerepan column-oriented terdapat dalam Casssandra. Cassandra menggunakan distribusi multidimensional map indexed dengan sebuah key. Baris kunci yang sering digunakan dalam Cassandra adalah string dengan panjang 16-36 bytes. Setiap kolom digabungkan menjadi sebuah coloumn families. Wei Kang menerapkan beberapa konsep dalam penerapan column-oriented. Suatu kolom unit atomic dari informasi didukung oleh Cassandra yang diekspresikan dengan nama value.
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. Dalam Cassandra baris dapat dikenali dengan sebuah kunci. 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 teritnggi dari unit informasi yang terdapat dalam Cassandra.
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.
4.2       Document-oriented
Contoh penerapan model data document-oriented terdapat dalam CouchDB yang dibangun oleh IBMTM. 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 CouchDB yang mencakup serangkaian dokumentasi yang berisi beberapa atribut dan nilai dengan masing-masing id yang unik dan metadata. CouchDB tidak pernah melakukan overwrite document, melainkan menambahkan dokumen baru ke basis data bila diperlukan seperti ketika terjadi proses update.
4.3       Object-oriented
Basis data berorientasi objek adalah model basis data dimana informasi direpresentasikan dalam bentuk objek yang digunakan dalam pemrograman berorientasi obyek. OrientDB adalah contoh dari basis data object-oriented. Dokumen OrientDB 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. OrientDB 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).
4.4       Graph-oriented
Basis data grafik (GraphDB) adalah basis data yang menggunakan struktur grafik yang berisi node, edge, dan properti untuk mewakili dan menyimpan informasi. GraphDB diperlukan untuk data grafik yang berskala besar, terutama yang dipergunakan oleh para peneliti biologi jaringan dan situs jaringan sosial, seperti Facebook, dan Twitter. GraphDB memetakan secara langsung objek ke aplikasi dan lebih intuitif untuk menggambarkan data set asosiatif.
Beberapa keuntungan dari GraphDB:
-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.
Keunggulan lain dalam GraphDB adalah biasanya lintasan grafik digunakan sebagai pengganti operasi join yang berpengaruh dalam efisiensi query. GraphDB juga tergantung pada kurangnya schema yang kaku di mana suatu schema dapat selalu diubah dengan mudah pada grafik, karena struktur grafik sendiri cukup fleksibel untuk mewakili perubahan melalui edit edge dan properti. GraphDB juga dapat mendukung semua fitur basis data yang kuat.

KESIMPULAN

 NoSQL adalah sistem manajemen database non-relasional, pengambilan informasi yang cepat dari database dan portabel . NoSQL pada dasarnya berasal dari sistem database RDB . Database ini  biasanya berinteraksi dengan sistem operasi UNIX . Database NoSQL database adalah mereka yang non - relasional ,open source , didistribusikan di dunia,  serta memiliki kinerja tinggi dengan cara linear yang terukur .
            NoSQL merupakan paradigma baru dalam Sistem Manajemen Basis Data yang memiliki keunggulan dalam hal scalability dan kecepatan dalam pencarian data. Terdapat beberapa teknik pengelolaan data pada NoSQL, document-oriented, columnoriented, graph-oriented, dan object-oriented. MongoDB merupakan salah satu DBMS yang menggunakan teknik pengelolaan data document-oriented. MongoDB tidak menggunakan skema, tabel, dan atribut dalam pengorganisasian basis data, melainkan koleksi, dokumen, dan key-value.
            Karakteristik NoSQL adalah NoSQL tidak menggunakan model data relasional dengan demikian tidak menggunakan bahasa SQL . NoSQL menggunakan volume data yang besar . Dalam lingkungan terdistribusi (data menyebar ke mesin yang berbeda ) , kita menggunakan NoSQL tanpa ketidaksesuaian .  Jika ada kesalahan atau kegagalan ada di setiap mesin , maka dalam hal ini tidak akan ada penghentian pekerjaan . NoSQL adalah database open source, yaitu kode sumbernya tersedia untuk semua orang dan bebas menggunakannya tanpa overhead . Memungkinkan data NoSQL untuk menyimpan dalam catatan yang tidak memiliki apapun skema tetap. NoSQL tidak menggunakan konsep ACID properti .  NoSQL adalah horizontal scalable menyebabkan kinerja tinggi dalam cara linear . Hal ini memiliki struktur yang lebih fleksibel.

SUMBER

Jumat, 29 Maret 2019

1.     Teori Komputasi

Secara Umum Komputasi bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Komputasi merupakan suatu sub-bidang dari ilmu komputer dan matematika. Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan komputer. Komputasi yang menggunakan komputer inilah yang disebut dengan Komputasi Modern. 
Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Hal ini ialah apa yang disebut dengan teori komputasi, suatu sub-bidang dari ilmu komputer dan matematika. Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan komputer.
Secara umum iIlmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains). Dalam penggunaan praktis, biasanya berupa penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar dalam ilmu.
Bidang ini berbeda dengan ilmu komputer (computer science), yang mengkaji komputasi, komputer dan pemrosesan informasi. Bidang ini juga berbeda dengan teori dan percobaan sebagai bentuk tradisional dari ilmu dan kerja keilmuan. Dalam ilmu alam, pendekatan ilmu komputasi dapat memberikan berbagai pemahaman baru, melalui penerapan model-model matematika dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk menyelesaikan masalah-masalah nyata dalam ilmu tersebut.
Untuk melakukan studi komputasi dengan ketat, ilmuwan komputer bekerja dengan abstraksi matematika dari komputer yang dinamakan model komputasi. Ada beberapa model yang digunakan, namun yang paling umum dipelajari adalah mesin Turing. Sebuah mesin Turing dapat dipikirkan sebagai komputer pribadi meja dengan kapasitas memori yang tak terhingga, namun hanya dapat diakses dalam bagian-bagian terpisah dan diskret. Ilmuwan komputer mempelajari mesin Turing karena mudah dirumuskan, dianalisis dan digunakan untuk pembuktian, dan karena mesin ini mewakili model komputasi yang dianggap sebagai model paling masuk akal yang paling ampuh yang dimungkinkan. Kapasitas memori tidak terbatas mungkin terlihat sebagai sifat yang tidak mungkin terwujudkan, namun setiap permasalahan yang “terputuskan” (decidable) yang dipecahkan oleh mesin Turing selalu hanya akan memerlukan jumlah memori terhingga. Jadi pada dasarnya setiap masalah yang dapat dipecahkan (diputuskan) oleh meisn Turing dapat dipecahkan oleh komputer yang memiliki jumlah memori terbatas.
Komputasi modern adalah sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory, memory disini bisa juga dari memory komputer. Oleh karena pada saat ini kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern. Konsep ini pertama kali digagasi oleh John Von Neumann (1903-1957). Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern. Von Neumann telah menjadi ilmuwan besar abad 21. Von Neumann memberikan berbagai sumbangsih dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer yang di salurkan melalui karya-karyanya . Beliau juga merupakan salah satu ilmuwan yang terkait dalam pembuatan bom atom di Los Alamos pada Perang Dunia II lalu. Kegeniusannya dalam matematika telah terlihat semenjak kecil dengan mampu melakukan pembagian bilangan delapan digit (angka) di dalam kepalanya.
Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan perhitungan yang dilakukan itu meliputi:
1.                 Akurasi (big, Floating point)
2.                 Kecepatan (dalam satuan Hz)
3.                 Problem Volume Besar (Down Sizzing atau pararel)
4.                 Modeling (NN & GA)
5.                 Kompleksitas (Menggunakan Teori big O)

2.      Karakteristik Komputasi Modern

1.                 Komputer-komputer penyedia sumber daya bersifat heterogenous karena terdiri dari berbagai jenis perangkat keras, sistem operasi, serta aplikasi yang terpasang.
2.                 Komputer-komputer terhubung ke jaringan yang luas dengan kapasitas bandwidth yang beragam.
3.                 Komputer maupun jaringan tidak terdedikasi, bisa hidup atau mati sewaktu-waktu tanpa jadwal yang jelas.

3.      Jenis-Jenis Komputasi Modern
Jenis-jenis komputasi modern ada 3 macam, yaitu :
1.                 Mobile Computing atau Komputasi Bergerak Mobile computing (komputasi bergerak) merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel serta mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel.
2.                 Grid Computing Komputasi grid memanfaatkan kekuatan pengolahan idle berbagai unit komputer, dan menggunakan kekuatan proses untuk menghitung satu pekerjaan.
3.                 Cloud Computing atau Komputasi Awan Cloud computing adalah perluasan dari konsep pemrograman berorientasi objek abstraksi. Abstraksi, sebagaimana dijelaskan sebelumnya, menghapus rincian kerja yang kompleks dari visibilitas. 
Adapun perbedaan antara komputasi mobile, komputasi grid dan komputasi cloud, dapat dilihat penjelasannya di bawah ini:
1.                 Komputasi mobile menggunakan teknologi komputer yang bekerja seperti handphone, sedangkan komputasi grid dan cloud menggunakan komputer.
2.                 Biaya untuk tenaga komputasi mobile lebih mahal dibandingkan dengan komputasi grid dan cloud.
3.                 Komputasi mobile tidak membutuhkan tempat dan mudah dibawa kemana-mana, sedangkan grid dan cloud membutuhkan tempat yang khusus.
4.                 Untuk komputasi mobile proses tergantung si pengguna, komputasi grid proses tergantung pengguna mendapatkan server atau tidak, dan komputasi cloud prosesnya membutuhkan jaringan internet sebagai penghubungnya.

4.      Penerapan Komputasi Modern Di Bidang Geografi

Dewasa ini, penerapan komputasi modern telah diterapkan di berbagai bidang, salah satunya adalah bidang geografi. Salah satu contoh website yang menerapkan komputasi modern yaitu http://earth3dmap.com


Sumber :