Sabtu, 12 Mei 2018

Logika & Output Latihan Pemrograman Jaringan


LOGIKA & OUTPUT LATIHAN PEMROGRAMAN JARINGAN

1.      Latihan Get IP
a.      Listing Program

b.      Logika Program
Listing program tersebut merupakan logika program yang digunakan untuk melihat alamat IP. Terdapat perintah import dari library java.net di awal baris listing program. Kemudian, terdapat pendeklarasian variable pada baris berikutnya yang diberi nama variable host. Tentunya variable host yang telah dibuat akan diberi nilai, fungsi getLocalHost pada baris program diatas adalah untuk memberi nilai pada variable host yang telah dibuat sesuai dengan nama host komputer itu sendiri. Terdapat perintah getAddress yang berfungsi untuk mengambil data IP dari komputer dengan nama host yang telah tersimpan dalam variable host. Terdapat perintah kondisi pengulangan dibaris program berikutnya yaitu for yang didalamnya tedapat perintah kondisi percabangan if apabila i > 0 maka program akan mencetak (“.”). Kemudian program akan mencetak IP berdasarkan elemen per elemen dari IP tersebut.
c.       Output Program


2.      Latihan Get Name
a.      Listing Program

b.      Logika Program
Listing Program tersebut merupakan listing proram yang digunakan untuk menampilkan nama host dari sebuah komputer. Terdapat perintah import dari library java.net di awal baris listing program. Kemudian, terdapat pendeklarasian variable pada baris berikutnya yang diberi nama variable host. Tentunya variable host yang telah dibuat akan diberi nilai, fungsi getLocalHost pada baris program diatas adalah untuk memberi nilai pada variable host yang telah dibuat sesuai dengan nama host komputer itu sendiri.  Kemudian ada perintah mencetak, maka yang akan dicetak oleh program adalah “Nama computer anda + Nama host computer berdasarkan data yang diambil dengan perintah getHostName”.
c.       Output Program


3.      Latihan IP to Name
a.      Listing Program

b.      Logika Program
Listing Program tersebut merupakan listing proram yang digunakan untuk melakukan perubahan IP menjadi nama host dari sebuah komputer. Terdapat perintah import dari library java.net di awal baris listing program. Pada baris selanjutnya membuat class yang diberi nama IPtoName. Terdapat perintah mencetak “Pemakaian: java IPtoName <IP Address>”, kemudian terdapat perintah System.exit maka system akan keluar secara otomatis. Kemudian untuk mengubah IP yang tersimpan pada variable host menggunakan perintah  InetAddress.getByName(host), apabila IP Addres salah maka program mencetak “invalid IP-malformed IP”, dan program akan keluar secara otomatis dengan perintah System.exit. Namun, apabila  IP Address benar, program akan melakukan perintah cetak berdasarkan perintah (address.getHostName()).
c.       Output Program


4.      Latihan NSLookup
a.      Listing Program

b.      Logika Program
Listing Program tersebut digunakan untuk melihat IP address dari Host apabila ada args oleh User. Terdapat perintah import dari library java.net di awal baris listing program. Kondisi pertama pada program ini adalah jika tidak ada args yang dilakukan user maka program akan mencetak “Pemakaian: java NSLookup <hostname>”, kemudian terdapat perintah System.exit maka system akan keluar secara otomatis. Apabila User melakukan args, maka args tersebut akan dimasukan ke variable host. Terdapat variable address yang menyimpan nama berdasarkan data host komputer. Perintah catch digunakan untuk melakukan pencarian IP berdasarkan data atau nilai host, apabila pencarian tidak berhasil maka akan tercetak “Unknown host”. Terdapat variable yang bertipe data array untuk menampung data IP yang telah dicari dengan perintah catch. Terdapat perintah kondisi pengulangan dibaris program berikutnya yaitu for yang didalamnya tedapat perintah kondisi percabangan if apabila i > 0 maka program akan mencetak (“.”). Kemudian program akan mencetak IP berdasarkan elemen per elemen dari IP tersebut.
c.       Output Program

  
5.      Latihan TCP Client-Server Sederhana
a.      Listing Program
TCP Server Sederhana

TCP Client Sederhana

b.      Logika Program
TCP Server Sederhana
Terdapat perintah import dari library java.io dan java.net di awal baris listing program. Pada listing program terdapat pembuatan variable baru dengan nama testport. Untuk mengecek apakah testport berjalan maka program memakai perintah checkserver, apabila berhasil maka program akan melakukan perintah cetak dengan mencetak “Aplikasi server hidup …”. Fungsi Accept() yang terdapat pada ClientSocket digunakan untuk menerima pesan yang akan dikirmkan dari Client. Terdapat pengaturan pesan pada Listing diatas, program hanya akan merespon pesan “salam” dari client dengan respon “salam juga”, apabila pesan yang dikirm client selain dari itu, maka program akan menjawab “maaf, saya tidak mengerti”.
TCP Client Sederhana
Terdapat perintah import dari library java.io dan java.net di awal baris listing program. Pada listing program terdapat pembuatan variable baru dengan nama remote_port dengan tipe data int. Pada blok perintah Try merupakan blok listing yang berfungsi untuk membuka koneksi ke server pasa port variable yang telah dibuat yaitu remote_port. Apabila program mencetak “masukan kata kunci:” maka user diharuskan melakukan inputan untuk mengirim pesan ke server. Kemudian program akan menerima balasan dari server sesuai inputan yang telah dimasukan user client.
c.       Output
TCP Server Sederhana

TCP Client Sederhana










Kamis, 26 April 2018

PARALLELISM CONCEPT


PARALLELISM CONCEPT
UNIVERSITAS GUNADARMA
KELAS : 4IA23
MATA KULIAH : PENGANTAR KOMPUTASI MODERN

DOSEN : LELLY PRANANINGRUM
1.      Pengertian
Paralel Processing adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum, ini adalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa masalah kecil untuk mempercepat proses penyelesaian masalah.

2.      Tujuan
Tujuan dari komputasi paralel adalah meningkatkan kinerja komputer dalam menyelesaikan berbagai masalah. Dengan membagi sebuah masalah besar ke dalam beberapa masalah kecil, membuat kinerja menjadi cepat.

3.      Teori
M.J. Flynn menjabarkan parallel computing ke dalam 4 buah model yaitu SISD, SIMD, MISD dan MIMD. Berikut penjelasannya :
1.  Komputer SISD (Single Instruction stream-Single Data stream)
Adalah Sesuai dengan arti dari SISD sendiri, komputer yang memakai model ini adalah komputer dengan prosesor tunggal dan menjalankan satu instruksi yang dieksekusi secara serial. Yang sering menggunakan model ini adalah komputer konvensional. Contoh komputer yang menggunakan model SISD ini adalah  UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1. Gambarnya bisa di lihat di bawah ini.


2. Komputer SIMD (Single Instruction stream-Multiple Data stream)
Adalah data yang akan dimanipulasi berbeda.Komputer dengan model ini memiliki lebih dari satu prosessor, tetapi hanya mengeksekusi satu instruksi yang sama pada data yang berbeda.  Komputer vector adalah salah satu contoh komputer yang menggunakan model ini. Contoh lainnya adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).



3.  Komputer MISD (Multiple Instruction stream-Single Data stream)
Adalah datanya masih dalam bentuk teori. Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami. Sampai saat ini belum ada komputer yang menggunakan model MISD.




4.  MIMD (Multiple Instruction stream-Multiple Data stream)
Adalah datanya yang paling banyak di gunakan. Komputer ini memiliki lebih dari satu prosesor dan mengeksekusi lebih dari satu instruksi secara paralel. Tipe komputer ini yang paling banyak digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.


Sumber :



Selasa, 17 April 2018

TUGAS 1 - QUANTUM GATES, DISTRIBUTED COMPUTATION DALAM CLOUD COMPUTING, PARALLELISM CONCEPT, & MAP REDUCE DAN NOSQL (NOT ONLY SQL)


QUANTUM GATES, DISTRIBUTED COMPUTATION DALAM CLOUD COMPUTING, PARALLELISM CONCEPT, & MAP REDUCE DAN NOSQL (NOT ONLY SQL)

                
ANGGOTA KELOMPOK      :
·        Indra Benyamin S          55414292
·        Ryan Dwi Darmawan    59414876
·        Siswoyo Langgeng         5A414323
·        Yonathan Kevin            5C414456
KELAS                                    : 4IA23
Fakultas                                  : Teknologi Industri
Jurusan                                    : Teknik Informatika
Mata Kuliah                            : Pengantar Komputasi Modern #

          Nama Dosen                            : Lelly Prananingrum


 UNIVERSITAS GUNADARMA
2018




QUANTUM GATES

Komputer kuantum adalah 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. 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.

Quantum gate termasuk sebuah petunjuk yang memiliki cara atau perhitungan dari komputasi kuantum tersebut dan khususnya model rangkaian kuantum perhitungan, sebuah gerbang kuantum (quantum atau gerbang logika) adalah dasar kuantum sirkuit operasi pada sejumlah kecil qubit. Tidak seperti banyak gerbang logika klasik, gerbang logika kuantum yang reversibel. Namun, komputasi klasik dapat dilakukan dengan menggunakan hanya gerbang reversibel. Misalnya, gerbang Toffoli reversibel 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 yang umum gerbang logika klasik beroperasi pada satu atau dua bit. Ini berarti bahwa sebagai matriks, gerbang kuantum dapat dijelaskan oleh 2 × 2 atau 4 × 4 matriks kesatuan.
Toffoli (CCNOT) Gate
Contoh gerbang Toffoli 3Bit 
Gerbang Toffoli, juga gerbang CCNOT atau gerbang Deutsch {\ displaystyle D (\ pi / 2)} {\ displaystyle D (\ pi / 2)}, adalah gerbang 3-bit, yang universal untuk penghitungan klasik. Gerbang Toffoli kuantum adalah gerbang yang sama, ditetapkan untuk 3 qubit. Jika dua bit pertama berada dalam kondisi {\ displaystyle | 1 \ rangle} | 1 \ rangle, ini akan menerapkan Pauli-X (atau TIDAK) pada bit ketiga, jika tidak, tidak akan terjadi apa-apa. Ini adalah contoh gerbang yang dikendalikan. Karena ini adalah analog kuantum dari gerbang klasik, itu sepenuhnya ditentukan oleh tabel kebenarannya.

Fredkin (CSWAP) Gate
Gerbang Fredkin (juga CSWAP atau gerbang cS) adalah gerbang 3-bit yang melakukan swap terkendali. Ini universal untuk perhitungan klasik. Ini memiliki properti yang berguna bahwa angka 0 dan 1 dilestarikan di seluruh, yang dalam model bola biliar berarti jumlah bola yang sama adalah output sebagai input.

Sumber :




DISTRIBUTED COMPUTATION DALAM CLOUD COMPUTING

Pendahuluan
Distributed computation atau komputasi terdistribusi adalah bidang ilmu komputer yang mempelajari sistem terdistribusi. Sistem terdistribusi adalah ilmu yang memecahkan masalah besar dengan memberikan bagian kecil dari masalah untuk banyak komputer untuk memecahkan dan kemudian menggabungkan solusi untuk bagian-bagian menjadi solusi untuk masalah tersebut.
Cloud computing terdiri dari 2 kata, yaitu cloud dan computing. Secara harfiah cloud adalah awan, sedangkan computing adalah komputasi. Untuk makna dari cloud computing itu sendiri adalah penggunaan sumber daya komputasi (hardware dan software) yang diwujudkan dalam bentuk layanan yang bisa diakses melalui jaringan (biasanya internet). Asal kata cloud atau awan ini adalah penggambaran dari internet.
Cloud computing menyediakan sebuah layanan dimana informasinya disimpan di server secara permanen dan disimpan di komputer client secara temporary. Di dalam cloud computing dikenal istilah front-end (desktop-PC) dan back-end (server) yang dimana harus saling terhubung di dalam sebuah jaringan internet. Font-end bertugas dalam pengambilan data dan menjalankan aplikasi dari back-end, sedangkan back-end bertugas sebagai sumber yang diistilahkan dengan cloud.

Pembahasan
Distributed Computation


Distributed computation atau komputasi terdistribusi merupakan bidang ilmu komputer yang mempelajari sistem terdistribusi. Sebuah sistem terdistribusi terdiri dari beberapa komputer otonom yang berkomunikasi melalui jaringan komputer. Distributed computation mengacu pada penggunaan sistem terdistribusi untuk memecahkan masalah komputasi. Dalam distributed computation, masalah dibagi menjadi banyak tugas, masing-masing yang diselesaikan oleh satu komputer. Tujuan dari distributed computation adalah menyatukan kemampuan dari sumber daya (sumber komputasi atau sumber informasi) yang terpisah secara fisik, ke dalam suatu sistem gabungan yang terkoordinasi dengan kapasitas yang jauh dari kapasitas individual komponen-komponennya.
Cloud Computing

Cloud computing adalah pemanfaatan teknologi komputer yang berasal dari penggabungan antara virtualisasi dan grid computing. Virtualisasi merupakan sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara sistem lain berinteraksi dengan sumber daya tersebut. Sedangkan komputasi grid adalah penggunaan sumber daya yang melibatkan banyak komputer, digunakan untuk memecahkan persoalan komputasi dalam skala besar yang terdistribusi, menjalankan sistem yang terkoordinasi terhadap sumber daya komputasi yang tidak berada di bawah suatu kendali terpusat.
Kelebihan Cloud Computing

·         Membuat operasional dan manajemen lebih mudah karena sistem pribadi/perusahaan yang tersambung dalam satu cloud dapat dimonitor dan diatur dengan mudah.
·         Lebih efisien karena menggunakan anggaran rendah untuk resource nya.
·         Menghemat waktu sehingga perusahaan bisa langsung fokus ke profit dan berkembang dengan cepat.

Kekurangan Cloud Computing 
·         Komputasi awan tidak dapat dilakukan jika tidak dapat terhubung ke Internet.
·         Apabila koneksi internet yang lambat, maka cloud computing tidak lagi optimal untuk digunakan.
·         Data yang disimpan dalam awan secara umum tidaklah aman karena diperbanyak di beberapa mesin.
Distributed Computation dalam Cloud Computing
Kegiatan ini merupakan kumpulan beberapa komputer yang terhubung untuk melakukan pendistribusian, seperti mengirim dan menerima data serta melakukan interaksi lain antar komputer yang dimana membutuhkan sebuah jaringan agar komputer satu dan lainnya bisa saling terhubung dan melakukan interaksi. Hal ini semua dilakukan dengan cloud computing yang seperti diketahui memberikan layanan dimana informasinya disimpan di server secara permanen dan disimpan di komputer secara temporary.

Komputasi terdistribusi merupakan salah satu tujuan dari cloud computing, karena menawarkan pengaksesan sumber daya secara paralel, para pengguna juga bisa memanfaatkannya secara bersamaan (tidak harus menunggu dalam antrian untuk mendapatkan pelayanan), terdiri dari banyak sistem sehingga jika salah satu sistem rusak, sistem lain tidak akan terpengaruh, dapat menghemat biaya operasional karena tidak membutuhkan sumber daya.

Distribusi komputasi ini memiliki definisi mempelajari penggunaan terkoordinasi dari komputer secara fisik terpisah atau terdistribusi. Pada distributed computing ini, program dipisah menjadi beberapa bagian yang dijalankan secara bersamaan pada banyak komputer yang terhubung melalui jaringan internet.

Kesimpulan
Cloud computing sangat berguna pada saat ini yang berfungsi untuk menyimpan data pada internet. Di dalam cloud computing terdapat distributed computation, dimana interaksi yang dilakukan antar komputer seperti mengirim dan menerima data menggunakan jaringan komputer hingga pengaksesan sumber daya bisa dilakukan secara paralel dan bisa dimanfaatkan dalam waktu yang bersamaan.


Sumber






PARALLELISM CONCEPT
1.      Pengertian
Paralel Processing adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum, ini adalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa masalah kecil untuk mempercepat proses penyelesaian masalah.

2.      Tujuan
Tujuan dari komputasi paralel adalah meningkatkan kinerja komputer dalam menyelesaikan berbagai masalah. Dengan membagi sebuah masalah besar ke dalam beberapa masalah kecil, membuat kinerja menjadi cepat.

3.      Teori
M.J. Flynn menjabarkan parallel computing ke dalam 4 buah model yaitu SISD, SIMD, MISD dan MIMD. Berikut penjelasannya :
1.  Komputer SISD (Single Instruction stream-Single Data stream)
Adalah Sesuai dengan arti dari SISD sendiri, komputer yang memakai model ini adalah komputer dengan prosesor tunggal dan menjalankan satu instruksi yang dieksekusi secara serial. Yang sering menggunakan model ini adalah komputer konvensional. Contoh komputer yang menggunakan model SISD ini adalah  UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1. Gambarnya bisa di lihat di bawah ini.


2. Komputer SIMD (Single Instruction stream-Multiple Data stream)
Adalah data yang akan dimanipulasi berbeda.Komputer dengan model ini memiliki lebih dari satu prosessor, tetapi hanya mengeksekusi satu instruksi yang sama pada data yang berbeda.  Komputer vector adalah salah satu contoh komputer yang menggunakan model ini. Contoh lainnya adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).




3.  Komputer MISD (Multiple Instruction stream-Single Data stream)
Adalah datanya masih dalam bentuk teori. Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami. Sampai saat ini belum ada komputer yang menggunakan model MISD.



4.  MIMD (Multiple Instruction stream-Multiple Data stream)
Adalah datanya yang paling banyak di gunakan. Komputer ini memiliki lebih dari satu prosesor dan mengeksekusi lebih dari satu instruksi secara paralel. Tipe komputer ini yang paling banyak digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.


Sumber :







MAP REDUCE DAN NOSQL (NOT ONLY SQL)
Map Reduce danNoSQL (Not Only SQL) adalah sebuah pemogramaan framework guna untuk membantu user mengembangankan sebuah data yang ukuran besar dapat terdistribusi satu sama lain.
·      MapReduce
MapReduce adalah model pemrogramana rilisan Google yang ditujukan untuk memproses data berukuran raksasa secara terdistribusi dan parallel dalam cluster yang terdiri atas ribuan komputer. Dalam memproses data, MapReduce dibagi menjadi 2 proses utama, yaitu Map dan Reduce.
Proses Map bertugas utnuk mengumpulkan informasi dari potongan-potongan data yang terditribusi dalam tiap komputer dalam cluster (kelompok komputer yang saling terhubung). Hasilnya deserahkan kepada proses Reduce untuk diproses lebih lanjut. Hasil proses Reduce merupakan hasil akhir yang dikirim ke pengguna.
Salah satu contoh penerapan nyata map-reduce ini dalam suatu produk adalah yang dilakukan Google. Dengan inspirasi dari functional programming map dan reduce Google bisa menghasilkan filesystem distributed yang sangat scalable, Google Big Table.
Dan juga terinspirasi dari Google, pada ranah open source terlihat percepatan pengembangan framework lainnya yang juga bersifat terdistribusi dan menggunakan konsep yang sama, project open source tersebut bernama Apache Hadoop.
Desain dan Struktur MapReduce
Mungkin terkesan sangat ribet, untuk memproses sebuah data raksasa, data itu harus dipotong-potong kemudian dibagi-bagikan ke tiap komputer dalam suatu cluster. Lalu proses Map dan proses Reduce pun harus dibagi-bagikan ke tiap komputer dan dijalankan secara paralel. Terus hasil akhirnya juga disimpan secara terdistribusi. Benar-benar terkesan merepotkan.
Beruntunglah, MapReduce telah didesain sangat sederhana alias simple. Untuk menggunakan MapReduce, seorang programer cukup membuat dua program yaitu program yang memuat kalkulasi atau prosedur yang akan dilakukan oleh proses Map dan Reduce. Jadi tidak perlu pusing memikirkan bagaimana memotong-motong data untuk dibagi-bagikan kepada tiap komputer, dan memprosesnya secara paralel kemudian mengumpulkannya kembali. Semua proses ini akan dikerjakan secara otomatis oleh MapReduce yang dijalankan diatas Google File System.

Program yang memuat kalkulasi yang akan dilakukan dalam proses Map disebut Fungsi Map, dan yang memuat kalkulasi yang akan dikerjakan oleh proses Reduce disebut Fungsi Reduce. Jadi, seorang programmer yang akan menjalankan MapReduce harus membuat program Fungsi Map dan Fungsi Reduce.
Fungsi Map bertugas untuk membaca input dalam bentuk pasangan Key/Value, lalu menghasilkan output berupa pasangan Key/Value juga. Dengan kata lain tiap Value yang memiliki Key yang sama akan digabungkan dalam satu kelompok. Fungsi Reduce juga menghasilkan output berupa pasangan Key/Value.

·         Pengertian NoSQL
Nosql adalah sebuah memcache dari bagian database sederhana yang berisi key dan value. Database ini bersifat struktur storage dimana sistem databasenya yang berbeda dengan sistem database relasional.
Nosql tidak membutuhkan skema table dan menghindari operasi join dan berkembang secara horizontal. Selain itu NoSQL merupakan suatu bahasan yang jauh dari arti kata yang dibaca. Tidak berarti tanpa sql query. Melainkan bagaimana suatu sql query digunakan seminimal mungkin dalam suatu program database. Dengan memanfaatkan teknologi NoSQL ini, diharapkan mampu mengurangi beban server. Selain itu, hal ini juga memudahkan programmer dalam membuat suatu program dan proses pengembangannya.
Database NoSQL, juga disebut Not Only SQL, adalah sebuah pendekatan untuk pengelolaan data dan desain database yang berguna untuk set yang sangat besar data terdistribusi. NoSQL, yang mencakup berbagai teknologi dan arsitektur, berusaha untuk memecahkan masalah skalabilitas dan kinerja data yang besar yang database relasional tidak dirancang untuk menangani.
NoSQL ini sangat berguna ketika perusahaan perlu untuk mengakses dan menganalisis sejumlah besar data terstruktur atau data yang disimpan dari jarak jauh pada beberapa virtual server di awan.
Berlawanan dengan kesalahpahaman yang disebabkan oleh namanya, NoSQL tidak melarang bahasa query terstruktur (SQL) Meskipun benar bahwa beberapa sistem NoSQL sepenuhnya non-relasional, yang lain hanya menghindari fungsi relasional dipilih seperti skema tabel tetap dan bergabung dengan operasi. Sebagai contoh, daripada menggunakan tabel, database NoSQL mungkin mengatur data menjadi objek, kunci / nilai berpasangan atau tupe.
Kesimpulan
Map Reduce danNoSQL (Not Only SQL) adalah sebuah pemogramaan framework  untuk membantu user mengembangankan sebuah data yang ukuran besar dapat terdistribusi satu sama lain.
Map-Reduce salah satu konsep teknis yang sangat penting di dalam teknologi cloud terutama karena dapat diterapkannya dalam lingkungan distributed computing. Dengan demikian akan menjamin skalabilitas aplikasi kita.
Sumber: