Rabu, 09 Mei 2018



1.      getIP

import java.net.*;
public class getIP {
public static void main(String args[]) throws Exception {
InetAddress host = null;
host = InetAddress.getLocalHost();
byte ip[] = host.getAddress();
for (int i=0; i<ip.length; i++) {
if (i > 0) {
System.out.print(".");
}
System.out.print(ip[i] & 0xff);
}
System.out.println();
}
}

LOGIKA PROGRAM

Program getIP ini akan memanggil kelas inetAddress yang berisi perintah untuk berbagai fungsi jaringan, pada kelas ini dideklarasikan dengan objek baru yaitu host yang bernilai null. Selanjutnya program akan diberikan hak akses local host dari komputer, yang kemudian akan diproses sehingga mendapatkan alamat IP yang berasal dari host address.

Hasilnya :






2.      getName

import java.net.*;
public class getName {
public static void main(String args[]) throws Exception {
InetAddress host = null;
host = InetAddress.getLocalHost();
System.out.println("Nama komputer Anda: " +
host.getHostName());
}
}


LOGIKA PROGRAM

Program getName diatas berisi kelas yang akan mengizinkan perintah untuk berkomunikasi melalui jaringan. Kemudian akan memanggil kelas sebagai fungsi untuk pengambilan alamat IP pada suatu komputer yang bernilai null. Dan pada perintah getHostName ini digunakan untuk mendapatkan nama host pada komputer kita sendiri.


Hasilnya :






3.      IPtoName

import java.net.*;
public class IPtoName {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: java IPtoName <IP address>");
System.exit(0);
}
String host = args[0];
InetAddress address = null;
try {
address = InetAddress.getByName(host);
} catch (UnknownHostException e) {
System.out.println("invalid IP - malformed IP");
System.exit(0);
}
System.out.println(address.getHostName());
}
}


LOGIKA PROGRAM

Program ini akan mendeklarasikan fungsi library pada java.net. kemudian program akan masuk pada kondisi dimana args.length sama dengan nilai null. Selanjutnya diberikan nilai host yang akan ditampung dalam bentuk array, lalu program akan melakukan pengujian lewat informasi host dari IP yang diinput oleh user dengan perintah getbyname. Jika percobaan pada baris program sebelumnya gagal, maka akan ditampilkan sebuah error "invalid IP - malformed IP" yang berarti IP yang dimasukkan bukanlah suatu host. Dan pada baris terakhir untuk menampilkan nama host sesuai dengan host object addressnya.


Hasilnya :





4.      NsLookup

import java.net.*;
public class NsLookup {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: java NsLookup <hostname>");
System.exit(0);
}
String host = args[0];
InetAddress address = null;
try {address = InetAddress.getByName(host);
} catch(UnknownHostException e) {
System.out.println("Unknown host");
System.exit(0);
}
byte[] ip = address.getAddress();
for (int i=0; i<ip.length; i++) {
if (i > 0) System.out.print(".");
System.out.print((ip[i]) & 0xff);
}
System.out.println();
}
}

LOGIKA PROGRAM

Program diatas merupakan pendeklarasian package java yang digunakan untuk memanggil fungsi. Kemudian terdapat sebuah percabangan untuk mengantisipai jika user tidak memasukkan nama perangkatnya maka program akan berhenti. Lalu perintah akan mendeklarasikan variabel address sebagai variabel untuk memanggil fungsi InetAddress dengan nilai null. Terdapat kondisi try dimana digunakan untuk mendapatkan nama komputer yang IP nya sudah dimasukkan oleh user, dan pada kondisi kedua untuk menghandle error yang berhubungan dengan host. Perintah selanjutnya yaitu untuk mendapatkan alamat IP pada perangkat masing – masing kelas  yg akan disimpan kedalam variabel array. Bagian terakhir kondisi perulangan yang berfungsi untuk mencetak alamat IP perangkat, dimana program akan terus mengulang selama nilai i masih kurang dari nilai panjang kelas IP dan nilai tersebut akan diiterasikan.


Hasilnya :





5.      Client – Server TCP

a.      simpleServer

import java.io.*;
import java.net.*;
public class simpleServer {
public final static int TESTPORT = 5000;
public static void main(String args[]) {
ServerSocket checkServer = null;
String line;
BufferedReader is = null;
DataOutputStream os = null;
Socket clientSocket = null;
try {
checkServer = new ServerSocket(TESTPORT);
System.out.println("Aplikasi Server hidup ...");
} catch (IOException e) {
System.out.println(e);
}
try {
clientSocket = checkServer.accept();
is = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
os = new DataOutputStream(clientSocket.getOutputStream());
} catch (Exception ei) {
ei.printStackTrace();
}
try {
line = is.readLine();
System.out.println("Terima : " + line);
if (line.compareTo("salam") == 0) {
os.writeBytes("salam juga");
} else {
os.writeBytes("Maaf, saya tidak mengerti");
}
} catch (IOException e) {
System.out.println(e);
}
try {
os.close();
is.close();
clientSocket.close();
} catch (IOException ic) {
ic.printStackTrace();
}
}
}


LOGIKA PROGRAM

Pada saat program dijalankan, program akan mengecek jika port 5000 sedang digunakan atau tidak. Kemudian terdapat kondisi try yang memiliki server socket untuk mengirim response, jika status pada serversocket bernilai null maka program akan menghasilkan aplikasi server hidup. Lalu pada baris program try berikutnya berfungsi untuk menerima permintaan client dengan clientsocket. Try selanjutnya akan membandingkan dengan pesan yang diterima jika salam maka server akan menulis salam juga, lalu jika pesan lainnya yang diterima server akan mengirimkan maaf, saya tidak mengerti. Dan pada baris program terakhir untuk menutup koneksi yang sedang berjalan.

b.      simpleClient

import java.io.*;
import java.net.*;
public class simpleClient {
public final static int REMOTE_PORT = 5000;
public static void main(String args[]) throws Exception {
Socket cl = null;
BufferedReader is = null;
DataOutputStream os = null;
BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
String userInput = null;
String output = null;
// Membuka koneksi ke server pada port REMOTE_PORT
try {
cl = new Socket(args[0], REMOTE_PORT);
is = new BufferedReader(new
InputStreamReader(cl.getInputStream()));
os = new DataOutputStream(cl.getOutputStream());
} catch(UnknownHostException e1) {
System.out.println("Unknown Host: " + e1);
} catch (IOException e2) {
System.out.println("Erorr io: " + e2);
}
// Menulis ke server
try {
System.out.print("Masukkan kata kunci: ");
userInput = stdin.readLine();
os.writeBytes(userInput + "\n");
} catch (IOException ex) {
System.out.println("Error writing to server..." + ex);
}
// Menerima tanggapan dari server
try {
output = is.readLine();
System.out.println("Dari server: " + output);
} catch (IOException e) {
e.printStackTrace();
}
// close input stream, output stream dan koneksi
try {
is.close();
os.close();
cl.close();
} catch (IOException x) {
System.out.println("Error writing...." + x);
}
}
}

LOGIKA PROGRAM


Program ini merupakan program client untuk mengirim pesan atau permintaan data ke server. Pertama program akan meminta memasukkan kata kunci, dan disini kata kuncinya telah ditentukan yaitu salam. Namun jika user memasukkan kata kunci yang lain maka client akan mendapatkan data dari server yaitu maaf, saya tidak mengerti. kemudian terdapat sisi server dan client, bagian server untuk mendeteksi adanya permintaan koneksi dari client, dan pada bagian client berfungsi untuk membuat inisialisasi koneksi ke welcoming socket milik server. Selanjutnya ada connection socket yang digunakan untuk berinteraksi satu sama lain untuk mengirim dan menerima data. 

Senin, 23 April 2018


DISTRIBUTED PROCESSING

-Andi Sugandi

Distributed Processing yaitu mengerjakan semua proses pengolahan data secara bersama antara komputer 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 yang lain akan mengambil alih tugasnya.

Tujuan lain yang ingin dicapai dalam komputasi terdistribusi adalah transparansi. Kenyataan bahwa sumber daya yang dipakai oleh pengguna sistem terdistribusi berada pada lokasi fisik yang terpisah, tidak perlu diketahui oleh pengguna tersebut.

Transparansi ini memungkinkan pengguna sistem terdistribusi untuk melihat sumber daya yang terpisah tersebut seolah-olah sebagai satu sistem komputer tunggal, seperti yang biasa digunakannya. Dalam prosesnya setiap komputer berinteraksi satu sama lain untuk mencapai tujuan bersama.

A.    Distributed data processing
Merupakan sekumpulan peralatan pemrosesan yang saling terhubung melalui jaringan yang mengerjakan tugas-tugas tertentu.
Pemrosesan terdistribusi dapat dikelompokan berdasarkan beberapa kriteria :
1.      Struktur antar hubungan
2.      Kesaling tergantungan komponen-komponen.
3.      Keselarasan antar komponen.

B.     Distributed database system
Merupakan sekumpulan database yang saling terhubung secara logical dan secara fisik terdistribusi pada berbagai tempat melalui jaringan computer.

Sistem yang mengelola database terdistribusi dan menyediakan mekanisme agar distribusi transparent adalah distributed database management system (DDBMS).

Ciri – ciri Distributed database system :
1.  Data disimpan pada sejumlah tempat. Setiap tempat secara logic terdiri dari processor tunggal.
2.     Processor pada tempat yang berbeda tersebut dihubungkan dengan jaringan computer.
3.     Bukan sekumpulan file yang berada pada berbagai tempat tetapi merupakan database pada berbagai tempat.
4.   Setiap tempat mempunyai kemampuan untuk mandiri memproses permintaan user yang membutuhkan akses kedata ditempat tersebut, dan juga mampu untuk memproses data yang tersimpan di tempat lain

Keuntungan dan Kelemahan Distributed database system
Ø  Keuntungan :
1.      Pengelolaan secara transparan data terdistribusi dan replicated.
2.      Meningkatkan ketersediaan data
3.      Meningkatkan kehandalan
4.      Memudahkan pengembangan system

Ø  Kelemahan :
1.      Kompleksitas manajemen
2.      Control integritas lebih sulit
3.      Biaya pengembangan
4.      Menambahkan kebutuhan penyimpanan
5.      Menambah biaya pelatihan.

Minggu, 15 April 2018


TUGAS SOFTSKILL
KELOMPOK - INDIVIDU

















DAFTAR ANGGOTA 

Andi Sugandi
Febrizky Ramadhani
Nur Septa Adisaya
Syaiful Fajripama







DISTRIBUTED PROCESSING

-Andi Sugandi

Distributed Processing yaitu mengerjakan semua proses pengolahan data secara bersama antara komputer 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 yang lain akan mengambil alih tugasnya.

Tujuan lain yang ingin dicapai dalam komputasi terdistribusi adalah transparansi. Kenyataan bahwa sumber daya yang dipakai oleh pengguna sistem terdistribusi berada pada lokasi fisik yang terpisah, tidak perlu diketahui oleh pengguna tersebut.

Transparansi ini memungkinkan pengguna sistem terdistribusi untuk melihat sumber daya yang terpisah tersebut seolah-olah sebagai satu sistem komputer tunggal, seperti yang biasa digunakannya. Dalam prosesnya setiap komputer berinteraksi satu sama lain untuk mencapai tujuan bersama.

A.    Distributed data processing
Merupakan sekumpulan peralatan pemrosesan yang saling terhubung melalui jaringan yang mengerjakan tugas-tugas tertentu.
Pemrosesan terdistribusi dapat dikelompokan berdasarkan beberapa kriteria :
1.      Struktur antar hubungan
2.      Kesaling tergantungan komponen-komponen.
3.      Keselarasan antar komponen.

B.     Distributed database system
Merupakan sekumpulan database yang saling terhubung secara logical dan secara fisik terdistribusi pada berbagai tempat melalui jaringan computer.

Sistem yang mengelola database terdistribusi dan menyediakan mekanisme agar distribusi transparent adalah distributed database management system (DDBMS).

Ciri – ciri Distributed database system :
1.  Data disimpan pada sejumlah tempat. Setiap tempat secara logic terdiri dari processor tunggal.
2.     Processor pada tempat yang berbeda tersebut dihubungkan dengan jaringan computer.
3.     Bukan sekumpulan file yang berada pada berbagai tempat tetapi merupakan database pada berbagai tempat.
4.   Setiap tempat mempunyai kemampuan untuk mandiri memproses permintaan user yang membutuhkan akses kedata ditempat tersebut, dan juga mampu untuk memproses data yang tersimpan di tempat lain

Keuntungan dan Kelemahan Distributed database system
Ø  Keuntungan :
1.      Pengelolaan secara transparan data terdistribusi dan replicated.
2.      Meningkatkan ketersediaan data
3.      Meningkatkan kehandalan
4.      Memudahkan pengembangan system

Ø  Kelemahan :
1.      Kompleksitas manajemen
2.      Control integritas lebih sulit
3.      Biaya pengembangan
4.      Menambahkan kebutuhan penyimpanan
5.      Menambah biaya pelatihan.






ALGORITMA SHOR

-Febrizky Ramadani

Algoritma Shor merupakan algoritma kuantum yang ditemukan oleh Peter Shor pada tahun 1995. Algoritma ini pada dasarnya adalah bagaimana cara menghitung faktorisasi dari bilangan yang besar.

Algoritma Shor adalah algoritma yang ditemukan oleh Peter Shor pada tahun 1995. Dengan menggunakan algoritma ini, sebuah komputer kuantum dapat memecahkan sebuah kode rahasia yang saat ini secara umum digunakan untuk mengamankan pengiriman data. Kode yang disebut kode RSA ini, jika disandikan melalui kode RSA, data yang dikirimkan akan aman karena kode RSA tidak dapat dipecahkan dalam waktu yang singkat. Selain itu, pemecahan kode RSA membutuhkan kerja ribuan komputer secara paralel sehingga kerja pemecahan ini tidaklah efektif.

Efisiensi algoritma Shor adalah karena efisiensi kuantum Transformasi Fourier , dan modular eksponensial. Jika sebuah komputer kuantum dengan jumlah yang memadai qubit dapat beroperasi tanpa mengalah kebisingan dan fenomena interferensi kuantum lainnya, algoritma Shor dapat digunakan untuk memecahkan kriptografi kunci publik skema seperti banyak digunakan skema RSA. Algoritma Shor terdiri dari dua bagian:
– Penurunan yang bisa dilakukan pada komputer klasik, dari masalah anjak untuk masalah ketertiban -temuan.
– Sebuah algoritma kuantum untuk memecahkan masalah order-temuan.

Hambatan runtime dari algoritma Shor adalah kuantum eksponensial modular yang jauh lebih lambat dibandingkan dengan kuantum Transformasi Fourier dan pre-/post-processing klasik. Ada beberapa pendekatan untuk membangun dan mengoptimalkan sirkuit untuk eksponensial modular. Yang paling sederhana dan saat ini yaitu pendekatan paling praktis adalah dengan menggunakan meniru sirkuit aritmatika konvensional dengan gerbang reversibel , dimulai dengan penambah ripple-carry. Sirkuit Reversible biasanya menggunakan nilai pada urutan n ^ 3, gerbang untuk n qubit. Teknik alternatif asimtotik meningkatkan jumlah gerbang dengan menggunakan kuantum transformasi Fourier , tetapi tidak kompetitif dengan kurang dari 600 qubit karena konstanta tinggi.

Sebagai contoh  Algoritma Shor yang paling sederhana adalah menemukan faktor-faktor untuk  bilangan  15,  di mana membutuhkan sebuah komputer kuantum dengan tujuh qubit.  Para  ahli  kimia mendesain dan menciptakan sebuah molekul yang memiliki tujuh putaran nukleus. Nukleus dari lima atom fluorin dan dua atom karbon yang dapat berinteraksi satu dengan yang lain sebagai qubit, dapat diprogram dengan menggunakan denyut-denyut  frekuensi radio dan dapat dideteksi melalui peralatan resonansi  magnetis nuklir (nuclear magnetic resonance, atau NMR) yang mirip dengan yang banyak digunakan di rumah-rumah sakit dan laboratorium-laboratorium kimia.







NoSQL DATABASE

-Nur Septa Adiyasa

1.   Pengertian 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 basis data SQL dimana meskipun berbeda-beda pembuat namun cara kerja maupun cara penggunaannya relatif sama. Contohnya sama-sama menggunakan tabel yang dihubungkan oleh relasi-relasi, manipulasi data dengan bahasa SQL, dsb. Basis data NoSQL bisa sangat berbeda satu sama lain. 

2.   Pengelompokan Database NoSQL

Secara umum, database NoSQL dibagi menurut format penyimpanan dokmentnya . Berikut ini adalah pengelompokan database NoSQL berdasarkan model (penyimpanan) datanya.
1.      Key-Value based (disimpan dalam bentuk kunci-isi berpasangan)
Data disimpan dalam bentuk key value data array. Contoh database jenis ini adalah Apache Cassandra.
2.      Document based (disimpan dalam dokumen-dokumen)
Setiap suatu objek data disimpan dalam satu dokumen2 sendiribisa terdiri dari key value,dan value sendiri bisa berupa array atau key value bertingkat. 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.
3.      Object based (disimpan dalam bentuk objek)
Data disimpan dalam bentuk objek2. Contoh : DB40
4.      Graph based (disimpan dalam bentuk graf)
Data disimpan dalam bentuk graph dan biasanya sering dipakai untuk jenis aplikasi sosial media.Contoh database noSQL dengan format ini adalah Neo4J dan FlockDB. FlockDB dipakai oleh twitter.

3.    Jenis Basis Data NoSQL

1.      MongoDB
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. MongoDB merupakan basis data NoSQL yang document based. Ia menyimpan data-datanya dalam suatu dokumen JSON yang disebut BSON (Binary JSON).

Dikembangkan sejak tahun 2009, mongoDB sekarang telah mendukung hampir semua bahasa pemrograman untuk dapat berinteraksi dengan mongoDB. Tak hanya bahasa pemrograman, beragam framework terkenal pun sudah dapat menggunakan mongoDB untuk menyimpan datanya sehingga kita tidak akan kesulitan untuk mengintegrasikan aplikasi yang kita buat dengan basis data ini.

2.      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. Basis data ini juga merupakan proyek open source serta dikembangkan dalam bahasa pemrograman Erlang oleh karena itu kita bisa ikut berkontribusi dalam pengembangan CouchDB agar basis data ini lebih baik.

3.      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. Kemampuan Cassandra dalam menyimpan data dengan jumlah yang sangat besar tidak diragukan lagi, puluhan perusahaan besar telah mempercayakan Cassandra sebagai salah satu penunjang kerja mereka diantaranya:
1.       Facebook
2.       Digg
3.       IBM
4.       Reddit
5.       Rackspace
6.       CERN
7.       Apple
8.       Twitter
Cassandra juga merupakan aplikasi open source yang ditulis dalam bahasa Java dengan lisensi Apache License 2.0. Untuk memproses datanya, Cassandra menggunakan bahasa sendiri yang mirip dengan SQL yaitu Cassandra Query Language (CQL).

4.      Redis
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.
Redis mendukung banyak bahasa pemrograman seperti ActionScript, C/C++, C#, Clojure, Common LIsp, Dart, Erlang, Go, Haskell, Haxe, Io, Java, JavaScript (Node.js), Lua, Objective-C, Perl, PHP, Pure Data, Python, R, Ruby, Scala, Smalltalk, dan Tcl.

5.      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.
Erlang ditulis dalam bahasa pemrograman Erlang dengan lisensi Apache License 2.0. Rilis pertama Riak muncul pada tanggal 17 Agustus 2009 (bertepatan dengan 64 tahun Indonesia merdeka). Basho Technologies merupakan perusahaan yang mengembangkan Riak.

6.      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.
Dalam menambahkan maupun mengambil data, Neo4j memiliki bahasa sendiri yang disebut Cypher. Neo4j ditulis dalam bahasa Java dengan lisensi GPL V3 oleh Neo Technologies artinya Neo4j termasuk basis data yang open source.

7.      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.
OrientDB menawrkan dua edisi yakni Community Edition yang tersedia secara gratis dan Enterprise Edition yang merupakan aplikasi komersial dikembangkan oleh tim yang sama yang mengembangkan engine OrientDB.
OrientDB dapat digunakan bersama JavaScript, .NET, node.js, php, Scala, Ruby, Python, C, Clojure, Java, dan Perl.

4.    Kelebihan NoSQL

1.       NoSQL bisa menampung data yang terstruktur, semi terstruktur dan tidak terstuktur secara efesien dalam skala besar (big data/cloud).
2.       Menggunakan OOP dalam pengaksesan atau manipulasi datanya.
3.       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.
4.       Autosharding, istilah sederhananya, jika database noSQL di jalankandi cluster server (multiple server) maka data akan tersebar secara otomatis dan merata keseluruh server.

5.    Kekurangan NoSQL

1.       Membutuhkan storage yang lebih besar
2.        Membutuhkan tenaga yang terampil dalam mengolah data
3.        Licensi perngkat lunak mahal





ARSITEKTUR PARALEL KOMPUTER

-Syaiful Fajripama

Arsitektur Komputer Paralel adalah kumpulan dari para pemroses (alat-alat yang memproses) yang digunakan dalam pemecahan masalah besar. Ini diperlukan karena banyak hal, diantaranya tuntutan aplikasi, trend teknologi, dan ekonomi. Realitas yang terjadi saat ini ada beberapa kasus yang bersangkutan dengan arsitektur parallel komputer, seperti: banyak mikroprosesor yang mendukung multiprosesor, dan server dan workstation berasitektur multiprosesor.

Untuk menggunakan arsitektur komputer parallel dibutuhkan infrastruktur mesin yang mana ada sebuah perangkat lunak (bertindak sebagai middleware) yang menghubungkan banyak komputer melalui jaringan, dan pemrograman parallel untuk merealisasikannya.

Tentunya ini berbeda dengan multitasking, dimana multitasking adalah komputer tunggal mengeksekusi beberapa perintah dalam waktu yang sama, sedangkan komputer parallel komputer bersama-sama memecahkan masalah yang sama. Ada 4 model komputasi yang digunakan, yaitu:

1.      SISD
Single Instruction, Single Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.


2.      SIMD
Single Instruction, Multiple Data. SIMD menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).

3.      MISD
Multiple Instruction, Single Data. MISD menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.

4.      MIMD
Multiple Instruction, Multiple Data. MIMD menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.

Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan kapan kita perlu menggunakan komputasi paralel. Jawabannya adalah karena komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang ketika kita hanya mengolah data dalam jumlah yang kecil, karena data dengan jumlah kecil atau sedikit lebih efektif jika kita menggunakan komputasi tunggal.





REFERENSI

https://andynovawijaya.wordpress.com/tugas/tugas-study-kasus-distributed-accounting/
https://risanputtra.wordpress.com/2016/04/26/774/
https://syifaadeka.wordpress.com/2016/04/29/algoritma-shor/
http://irfandudin.blog.uns.ac.id/2015/12/19/nosql-database/
https://www.codepolitan.com/7-basis-data-nosql-populer
https://www.candra.web.id/pengantar-database-nosql-dan-mongodb/
https://sirajun-nasihin.blogspot.co.id/2016/10/keuntungankelebihannya-dan.html
http://student.blog.dinus.ac.id/ardi/2015/06/10/penjelasan-tentang-arsitektur-komputer-paralel/

Contact us

Nama

Email *

Pesan *