Minggu, 12 Juni 2016

Softskill Parallel Concept


"Parallel Concept, Distributed Processing, Architetural Parallel Computer, Pengantar Thread Programming, Pengantar Message Parssing OpenMP, Pengantar Pemrograman CUDA GPU"

Kelompok 4
Abdul Lathiif
Axcel Jadi Driantama
Andika Rahmat Agung
Dinar Dwi Cahya
I Nengah Krisna
Revyan Albar

Berikut merupakan ppt yang dapat di download dari penjelasan yang akan di bahas:

https://drive.google.com/file/d/0B70WzvJUll4xYzJSVDJZblc4WlE/view?usp=sharing

Jumat, 29 April 2016

Membangun Aplikasi Client-Server TCP

Aplikasi Client-Server TCP dengan Java

1. Buat program server terlebih dahulu seperti di bawah ini, simpan dengan nama simpleServer.java:

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();
}
}
}

Pada Listing diatas menjelaskan tentang pembuatan program server pertama dengan mengimport java. io merupakan singkatan dari Input Output. Input melibatkan masukan data dari peralatan input, sedangkan output akan menampilkan data kepada pengguna dan program mengimport java. net paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan pada sisi server.

2. kemudian buat program client, simpan dengan nama simpleClient.java:

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);
}
}
}

3. Logika Program
Pada listing program merupakan kodingan client server dimana :
  • Untuk bisa melakukan koneksi client server, program server harus berjalan terlebih dahulu.
  • Di sisi server disediakan sebuah socket, yang disebut welcoming socket yang fungsinya untuk mendeteksi adanya permintaan koneksi dari sisi client. 
  • Di sisi client terdapat client socket. Jika ingin menghubungi server, maka melalui client socket-nya, client membuat inisialisai koneksi ke welcoming socket milik server, dengan mode three-way handshake. 
  • Setelah welcoming socket menerima inisialisasi koneksi dari client socket, aplikasi server akan membuat connection socket di sisi server. Dengan connection socket ini, client socket dan connection socket berinteraksi satu sama lain untuk mengirim dan menerima data. 
  • Client membaca data yang dikirim oleh server dari client socket-nya. Kemudian menampilkan data tersebut di monitor.
  • Selanjutnya Client membaca inputan dari keyboard, kemudian mengirimkan hasilnya ke server melalui socket-nya. 
  • Server membaca data yang dikirim oleh client di connection socket 
  • Server mengubah data menjadi huruf besar 
  • Server mengirimkan data yang telah diubah menuju client melalui socket-nya. 
  • Client membaca data yang dikirim oleh server dari client socket-nya. Kemudian menampilkan data tersebut di monitor. 
4.  Kompilasi kedua program diatas dengan :
$ javac simpleServer.java
$ javac simpleClient.java

5. Jalankan kedua program tersebut dikomputer anda. Pertama jalankan server, (buka
jendela console shell lebih dulu), dan tunggu koneksi client
$ java simpleServer
Untuk menjalankan program client buka jendela console shell baru dan ketikkan.
$ java simpleClient <nama-komputer-server>


Pada aplikasi client, masukkan kata kunci yang diminta, yaitu “salam”. Perhatikan
apa terjadi kemudian di sisi aplikasi Server maupun client. Coba juga Anda
memasukkan kata-kata yang lain maka server akan mengirimkan pesan "maaf, saya tidak mengerti" kepada client.


Kamis, 28 April 2016

GET IP, GET NAME, IPtoName, NsLookup

Cara Mendapatkan GET IP Pada Java

1. Buat file .java pada notepad

2. Ketikan program di bawah ini
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();
          }
}

3. Setelah selesai seperti gambar di bawah ini save dengan nama seperti nama classnya yaitu getip.java

4. Logika Program GETIP
Pertama program mengimport package java.net paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan. kemudian program membuat nama class yang bernama getip. Selanjutnya deklarasikan InetAddress host bernilai null dan deklarasi host bernilai
InetAddress.getLocalHost();  didapatkan dari nilai InetAddress pada localhost. Selanjutnya program akan mencetak Ip komputer dengan memanggil nilai variable host.getAddress();.

5. Kemudian compile pada cmd sehingga akan tampil ip yang digunakan

Cara Mendapatkan GET Name Pada Java

1. Buat file .java pada notepad. program ini untuk mengetahui nama dari komputer yang digunakan.

2. Ketikan program di bawah ini
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());
         }
}

3. Setelah selesai seperti gambar di bawah ini save dengan nama seperti nama classnya yaitu getName.java

4. Logika Program GETNAME
Pertama program mengimport package java.net paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan. kemudian program membuat nama class yang bernama getName. Selanjutnya deklarasikan InetAddress host bernilai null dan deklarasi host bernilai
InetAddress.getLocalHost(); Selanjutnya program akan mencetak Nama Komputer Anda dengan memanggil nilai variable host.getHostName();.

5. Kemudian compile pada cmd sehingga akan tampil nama komputer  yang digunakan

Cara Mendapatkan IPtoName
1. Buat file .java pada notepad program ini untuk menemukan nama dengan ip

2. Ketikan program di bawah ini
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());
}
}

3. Setelah selesai seperti gambar di bawah ini save dengan nama seperti nama classnya yaitu IPtoName.java

4. Logika Program
Mengimport package java.net paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan. Kemudian kita buat class bernama IPtoName, selanjutnya program ini terdapat kondisi if dimana jika panjang string host sama dengan 0 maka cetak nama pemakai dan IPtoNamelalu program akan kembali ke semula. Program akan mendeklarasikkan String host yaitu 0 dan InetAddress address bernilai null. Kemudian terdapat perintah try dan catch yang digunakan untuk menangkap kesalahan didalam program, pada perintah try ini akan mencoba memanggil nama host kemudian disimpan didalam variabel address, jika terdapat kesalahan maka program akan mencetak invalid IP – malformed ip, jika program tidak terjadi kesalahan maka program akan mencetak nilai nama address host.

5. Kemudian compile pada cmd sehingga akan tampil nama komputer

Cara Mendapatkan IP Dengan HostName (NsLook)

1. Buat file .java pada notepad

2. Ketikan program di bawah ini
import java.net.*;
public class NsLookup {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: <namahost>");
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();
}
}

3.Setelah selesai seperti gambar di bawah ini save dengan nama seperti nama classnya yaitu Nslookup.java

4.Logika Program NsLookup
Pertama program akan mengimport package java.net paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan. kemudian buat class program yang bernama NsLookup. Pada program ini jika panjang karakter string args sama dengan 0 maka akan mencetak Pemakai : Java NsLookup hostname. Kemudian mendeklarasikan String host adalah 0 dan InetAddress address bernilai null.
Kemudian terdapat perintah try dan catch yang digunakan untuk menangkap kesalahan didalam program, pada perintah try ini akan mencoba memanggil nama host kemudian disimpan didalam variabel address, jika terdapat kesalahan maka program akan mencetak unknown host, jika program tidak terjadi kesalahan terdapat perintah perulangan for, didalam perulangan ini terdapat perintah percabangan if, jika nilai variabel i lebih ebsar dari 0 maka program akan mecetak nilai ip dengan memanggil nilai dari variabel ip[i]

5.Kemudian compile pada cmd sehingga akan tampil ip dari nama PC

Cara Mendapatkan IP dan Nama IP Pada Java

1. Buat file .java pada notepad

2. Ketikan program di bawah ini
import java.net.*;
public class PROGJAR3
{
public static void main(String[] args)
{
try
{
InetAddress address = InetAddress.getByName("anatonic.com");
System.out.println(address);
InetAddress[] addresses = InetAddress.getAllByName("localhost");
for(int i=0;i<addresses.length;i++)
System.out.println(addresses[i]);
InetAddress mesin = InetAddress.getLocalHost();
System.out.println(mesin);
String lokal = mesin.getHostName();
String ip = mesin.getHostAddress();
System.out.println(lokal);
System.out.println(ip);
}
catch (UnknownHostException uhEx){}
}
}

3. Setelah selesai seperti gambar di bawah ini save dengan nama seperti nama classnya yaitu PROGJAR3.java

4. Logika Program
mengimport java.net untuk mengambil ip. Kemudian kita buat class bernama PROGJAR3, selanjutnya kita mendapatkan InetAddress host dari InetAddress.getByname dan mendapatkan nilai ip dari host name antonic.com. kemudian program akan menampilkan ip dan lokal.

5. Kemudian compile pada cmd sehingga akan tampil nama dan ip komputer


Jumat, 15 April 2016

Pengoprasian Data Qubit, Quantum Gates, Algoritma Shor

Pengoprasian Data Qubit.
Pengoperasian pada Data Qubits adalah dengan kedua nilai yang disimpan pada setiap qubit akan selalu mempengaruhi operasi komputer kuantum. Selain itu, sebuah n qubits sama-sama ber-superposisi dari 0 dan 1, dia berperan untuk mengkodekan 2n nilai. Komputer kuantum dapat menghitung nilai keseluruhannya sekaligus. Keadaan paralel ini memiliki istilah Paralelisme Kuantum. Setiap rangkaian yang tercipta selalu memiliki rangkaian kuantum yang sesuai. Jadi dapat disimpulkan bahwa teknologi yang diterapkan pada komputer kuantum mampu melakukan perhitungan pada semua nilai pada waktu yang hampir sama, dengan waktu yang sama komputer konvensional hanyabisa melakukan perhitungan tunggal.

 Quantum Gates.
Pada saat ini, model sirkuit komputer adalah abstraksi paling berguna dari proses komputasi dan secara luas digunakan dalam industri komputer desain dan konstruksi hardware komputasi praktis. Dalam model sirkuit, ilmuwan komputer menganggap perhitungan apapun setara dengan aksi dari sirkuit yang dibangun dari beberapa jenis gerbang logika Boolean bekerja  pada beberapa biner (yaitu, bit string) masukan. Setiap gerbang logika mengubah bit masukan ke dalam satu atau lebih bit keluaran dalam beberapa mode deterministik menurut definisi dari gerbang. dengan menyusun gerbang dalam grafik sedemikian rupa sehingga output dari gerbang awal akan menjadi input gerbang kemudian, ilmuwan komputer dapat membuktikan bahwa setiap  perhitungan layak dapat dilakukan. 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 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.


  Algoritma Shor.
Algoritma Shor, dinamai matematikawan Peter Shor , adalah algoritma kuantum yaitu merupakan suatu algoritma yang berjalan pada komputer kuantum yang berguna untuk faktorisasi bilangan bulat. Algoritma Shor dirumuskan pada tahun 1994.  Inti dari algoritma ini merupakan bagaimana cara menyelesaikan faktorisasi terhaadap bilanga interger atau bulat yang besar.

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.

Kelemahan dan Kelebihan Algoritma Quantum Shor
Berbeda dengan komputer konvensional yang deterministik, komputer quantum bersifat nondeterministik dan probabilistik, yang berarti suatu algoritma kadang kala dapat berhasil dan kadang kala akan gagal biarpun untuk kondisi yang sama. Hal ini dikarena sifat pengukuran dalam mekanika quantum yang probabilistik. Akibatnya, Algoritma Shor dapat gagal menemukan faktor karena beberapa sebab, diantaranya:
  • Hasil pengukuran dari transformasi quantum fourier dapat berupa 0, membuat langka ke 10 tak mungkin dilakukan.
  • Kadang hasil faktorisasi algoritma akan menghasilkan 1 dan n, yang secara definisi benar tetapi tidak berguna.
  • Bila hasil r ganjil, maka langkah ke 10 tidak dapat dilakukan
Walaupun begitu, probabilitas sukses akan bertambah setiap kali algoritma diulang. Dalam Algoritma Shor yang dimodifikasi dengan penentuan order, probabilitas sukses setelah 2 kali jalan lebih dari 60%, dan probabilitas sukses setelah 4 kali jalan lebih dari 90%.

Sumber:
http://rhaamdamaulana.blogspot.co.id/2015/10/algoritma-shor-algoritma-shor-algoritma.html.
http://crows-haikal.blogspot.co.id/2015/08/quantum-computing-entanglement.html
http://randyap14.blogspot.co.id/2015/12/pengantar-quantum-computation.html?view=magazine

Jumat, 25 Maret 2016

NoSQL Database

Pengertian NoSQL Database
NoSQL singkatan dari Not Only SQL. NoSQL adalah sebuah konsep mengenai penyimpanan data non-relasional. Berbeda dengan model basis data relasional yang selama ini digunakan, NoSQL menggunakan beberapa metode yang berbeda-beda.

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.

Pengelompokan database noSQL

Secara umum, database noSQL dibagi menurut format penyimpanan dokmentnya . Berikut ini adalah pengelompokan database noSQL berdasarkan model (penyimpanan) datanya
  • 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.
  • 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.
  • Key – Value,  contoh database jenis ini adalah Apache Cassandra.
  • Object Database. Format database yang disimpan dalam object-object, Object disini sama dengan pengertian object di Pemrograman beroreintasi object, Contoh databasenya adalah Db4o.
  • Tipe lainnya adalah tabular, tuple store dan berbagai jenis lain yang tidak terlalu populer.
Kelebihan NoSQL di banding Relasional Database

Kelebihan NoSQL
  • NoSQL bisa menampung data yang terstruktur, semi terstruktur dan tidak terstuktur secara efesien dalam skala besar (big data/cloud).
  • Menggunakan OOP 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 NoSQL
  • Hostingnya mahal. beberapa layanan di luar negeri mencharge biaya 100-200USD untuk hosting database noSQL.
  • Sulitnya mencari hosting Cpanel yang mendukung database MongoDB atau database noSQL lainnya.
  • karena bervariasinya produk dan format penyimpanan, berpindah antar satu produk database ke produk 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.
Software Dalam NoSQL
Beberapa database NoSQL:
  • MongoDB
MongoDB merupakan database open source berbasis dokumen (Document-Oriented Database) yang awalnya dibuat dengan bahasa C++.
  • Cassandra Apache
Cassandra Dikembangkan oleh APACHE. Aplikasi Inilah yang digunakan facebook untuk penyimpanan miliayaran data hingga saat ini.
  • CouchDB
CouchDB juga dikembangkan oleh APACHE. CouchDB adalah database yang benar-benar merangkul web. Menyimpan data Anda dengan dokumen JSON.  
  • Dan sebagainya.
Sumber:
http://nosql-database.org/
http://sutanto.org/nosql_vs_sql/
http://komsiikanur.blogspot.co.id/2013/09/nosql.html
http://www.candra.web.id/pengantar-database-nosql-dan-mongodb/
http://blog.randisunarsa.web.id/?p=383

Kamis, 24 Maret 2016

Pengantar Komputasi Grid

Pengertian Grid Computing

Komputasi Grid adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar.
Grid Computing erat kaitannya dengan metode komputasi paralel. Metode ini dapat membagi kerja komputer menjadi beberapa bagian sehingga, tidak memberatkan kerja komputer itu sendiri dan mempercepat kerja komputer.

Sebagai contoh, bila ada suatu perintah untuk mencari satu angka dari 100 angka, komputer tersebut memiliki 10 processor. Dengan adanya komputasi paralel, komputer tersebut dapat memecah kerja menjadi 10 bagian untuk mencari angka tersebut. hal ini tentu saja dapat mempercepat dan memperingan kerja komputer. Tentu saja masalah pembagian kerja komputer tersebut dalam skala kecil. Tapi dari sinilah grid computing dikembangkan. Grid computing semakin dikembangkan dengan adanya jaringan dan internet. Dengan jaringan, kerja komputer terbagi-bagi di satu tempat dan tempat lain, namun pekerjaannya tetap satu atau terhubung.

Grid Computing memanfaatkan kekuatan pengolahan berbagai unit komputer, dan menggunakan kekuatan proses untuk menghitung satu pekerjaan. Pekerjaan itu sendiri dikontrol oleh satu komputer utama, dan dipecah menjadi beberapa tugas yang dapat dilaksanakan secara bersamaan pada komputer yang berbeda. Tugas-tugas ini tidak perlu saling eksklusif, meskipun itu adalah skenario yang ideal. Sebagai tugas lengkap pada berbagai unit komputasi, hasil dikirim kembali ke unit pengendali, yang kemudian collates itu membentuk keluaran kohesif. Satu masalah akan kurangnya sumber daya untuk komputasi tinggi sudah terpenuhi dengan kehadiran grid computing. Namun masalah tidak berhenti di situ saja. Salah satu komponen yang terpenting juga dalam grid computing adalah konektifitas atau jaringan. Tidak akan membentuk sebuah grid computing kalau tidak ada jaringan. Didalam sebuah jaringan, tidak asing lagi dengan penggunaan IP Address. Lebih dari 20 tahun manusia menggunakan IPv4 sebagai protokol jaringan. Namun, jumlah IPv4 yang mencapai 4,3 milyar sudah habis tanggal 15 April 2011. Tentu saja hal ini menjadi kendala bagi pengguna internet, khususnya grid computing ini yang juga membutuhkan IP Address valid untuk konektifitasnya. Muncullah protokol jaringan baru yang merupakan pengganti dari IPv4 yang sudah habis yaitu IPv6. Dengan protokol ini, pengguna internet tidak perlu khawatir lagi akan kebutuhan penggunaan IP Address. Atas dasar itulah pada proyek akhir ini, penulis mengimplementasikan grid computing dengan menggunakan pengalamatan IPv6.

Komponen Grid Computing 

Komponen-komponen grid computing adalah:
  • Gram (Grid Resources Allocation & Management) 
Komponen ini dibuat untuk mengatur seluruh sumberdaya komputasi yang tersedia dalam sebuah sistem komputasi grid. Pengaturan ini termasuk eksekusi program pada seluruh komputer yang tergabung dalam sistem komputasi grid, mulai dari inisiasi, monitoring, sampai dengan penjadwalan dan koordinasi antar proses yang terjadi dalam sistem tersebut. Juga dapat berkoordinasi dengan sistem-sistem pengaturan sumber daya yang telah ada sebelumnya. Dengan mekanisme ini program-program yang telah dibuat sebelumnya tidak perlu dibangun ulang atau bila dimodifikasi, modifikasinya minimum.
  • RFT/GridFTP (Reliable File Transfer/Grid File Transfer Protocol)
Komponen ini dibuat agar pengguna dapat mengakses data yang berukuran besar dari semua simpul komputasi yang telah tergabung dalam sebuah sistem komputasi secara efisien. Hal ini tentu saja berpengaruh karena kinerja komputasi tidak hanya bergantung pada kecepatan komputer yang tergabung dalam mengeksekusi program, tapi juga seberapa cepat data yang dibutuhkan dapat diakses. Data yang diakses juga tidak selalu ada pada komputer yang mengeksekusi.
  • MDS (Monitoring and Discovery Services)
Komponen ini dibuat untuk memonitoring proses komputasi yang sedang dijalankan agar dapat mendeteksi masalah yang timbul dengan segera.  Sedangkan fungsi disovery dibuat agar pengguna mampu mengetahui keberadaan sumber daya komputasi beserta karakteristiknya.
  • GSI (Grid Security Infrastructure)
Komponen ini dibuat untuk mengamankan sistem komputasi grid secara keseluruhan. Komponen ini membedakan teknologi GT4 dengan teknologi-teknologi sebelumnya. Dengan menerapkan mekanisme keamanan yang tergabung dengan komponen-komponen komputasi grid lainnya, sistem ini dapat diakses secara luas tanpa sedikitpun mengurangi tingkat keamanannya. Sistem keamanan ini dibangun dengan segala komponen yang telah diuji, mencakup proteksi data, autentikasi, delegasi dan autorisasi.

Prinsip Kerja Grid Computing

Dua prinsip kerja utama grid computing yang membedakannya dari arsitektur komputasi yang lain, semisal mainframe, klien-server, atau multi-tier: virtualisasi dan provisioning.
  • Virtualisasi
Setiap sumberdaya (semisal komputer, disk, komponen aplikasi dan sumber informasi) dikumpulkan bersama-sama menurut jenisnya, lalu disediakan bagi konsumen (semisal orang atau program software). Virtualisasi berarti meniadakan koneksi secara fisik antara penyedia dan konsumen sumberdaya, dan menyiapkan sumberdaya untuk memenuhi kebutuhan tanpa konsumen mengetahui bagaimana permintaannya bisa terlayani. 
  • Provisioning
Ketika konsumen meminta sumberdaya melalui layer virtualisasi, sumberdaya tertentu di belakang layer didefinisikan untuk memenuhi permintaan tersebut, dan kemudian dialokasikan ke konsumen. Provisioning sebagai bagian dari grid computing berarti bahwa system menentukan bagaimana cara memenuhi kebutuhan konsumen seiring dengan mengoptimasi jalannya sistem secara keseluruhan.

Konsep Grid Computing
  • Sumberdaya Infrastruktur
Mencakup hardware seperti penyimpan, prosesor, memori, dan jaringan; juga software yang didisain untuk mengelola hardware ini, seperti database, manajemen penyimpan, manajemen sistem, server aplikasi dan system operasi.
  • Sumberdaya Aplikasi
Merupakan perwujudan logika bisnis dan arus proses dalam software aplikasi. Sumberdaya yang dimaksud bisa berupa aplikasi paket atau aplikasi buatan, ditulis dalam bahasa pemrograman, dan merefleksikan tingkat kompleksitas. Sebagai contoh, software yang mengambil pesanan dari seorang pelanggan dan mengirimkan balasan, proses yang mencetak slip gaji, dan logika yang menghubungkan telepon dari pelanggan tertentu kepada pihak tertentu pula.
  • Sumberdaya Informasi
Saat ini, informasi cenderung terfragmentasi dalam perusahaan, sehingga sulit untuk memandang bisnis sebagai satu kesatuan. Sebaliknya, grid computing menganggap informasi adalah sumberdaya, mencakup keseluruhan data pada perusahaan dan metadata yang menjadikan data bisa bermakna. Data bias berbentuk terstruktur, semi-terstruktur, atau tidak terstruktur, tersimpan di lokasi manapun, seperti dalam database, sistem file lokal.

Kelemahan Dan Kelebihan Grid Computing

Kelebihan Grid Computing
Beberapa kelebihan dari grid computing adalah:
  • Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle.
  • Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah dapat berjalan lebih cepat dan mencakup domain yang lebih luas.
  • Software dan aplikasi: Pool dari aplikasi dan pustaka standard,  akses terhadap model dan perangkat berbeda, metodologi penelitian yang lebih baik.
  • Data: Akses terhadap sumber data global dan hasil penelitian lebih baik.
  • Ukuran dan kompleksitas dari masalah mengharuskan orang-orang dalam beberapa organisasi berkolaborasi dan berbagi sumber daya komputasi, data dan instrumen sehingga terwujud bentuk organisasi baru yaitu virtual organization. 
Kekurangan Grid Computing
Kekurangan pada grid computing yang lebih ditekankan disini adalah mengenai hambatan yang dialami oleh masyarakat Indonesia dalam mengaplikasikan teknologi grid computing. Hambatan-hambatan tersebut adalah sebagai berikut :
  • Manajemen institusi  yang terlalu birokratis menyebabkan mereka enggan untuk merelakan fasilitas yang dimiliki untuk digunakan secara bersama agar mendapatkan manfaat yang lebih besar bagi masyarakat luas.
  • Masih sedikitnya sumber daya manusia yang  kompeten dalam mengelola grid computing.
  • Kurangnya pengetahuan yang mencukupi bagi teknisi IT maupun user non teknisi mengenai manfaat dari grid computing itu sendiri.
Sumber:
  • Komputasi Grid, Wikipedia Bahasa Indonesia,ensiklopedia bebas. From: http://id.wikipedia.org/wiki/Komputasi_grid, (diakses 24 Maret 2016).
  • IPv6 Forum :: Driving IPv6 Deployment. From :http://www.IPv6forum.com/, (diakses 24 Maret 2016).
  • Grid_computing, From : https://www.academia.edu/5111326/GRID_COMPUTING_PAPER, (diakses 24 Maret 2016).
  • Bart Jacob, Michael Brown, Kentaro Fukui, Nihar Trivedi.2005. “Introduction to Grid Computing” . IBM.
  • Cloud computing dan Grid Computing, From: https://musthopz.wordpress.com/2013/10/10/cloud-computing-dan-grid-computing/ (diakses 24 Maret 2016).

 

Dinar Dwi Cahya Template by Ipietoon Cute Blog Design and Bukit Gambang