Halaman

Minggu, 21 Juni 2015

Grid Computing

Pengertian Grid Computing

Grid computing sebenarnya merupakan sebuah aplikasi pengembangan dari jaringan komputer (network). Hanya saja, tidak seperti jaringan komputer konvensional yang berfokus pada komunikasi antar pirati, aplikasi pada grid computing dirancang untuk memanfaatkan sumber daya pada terminal dalam jaringannya. Grid computing biasanya diterapkan untuk menjalankan sebuah fungsi yang terlalu kompleks atau terlalu intensif untuk dikerjakan oleh satu sistem tunggal.

Definisi Grid Computing menurut beberapa sumber, yaitu:
  • Komputasi Grid adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar (http://id.wikipedia.org)
  • Komputasi grid adalah infrastruktur perangkat keras dan perangkat lunak yang dapat menyediakan akses yang bisa diandalkan, konsisten, tahan lama dan tidak mahal terhadap kemampuan komputasi mutakhir yang tersedia. (The Grid 2: Blue Print for a New Computing Infrastructure yang ditulis oleh Ian Foster dan Carl Kesselman) 
  • Grid computing merupakan sebuah sistem komputasi terdistribusi, yang memungkinkan seluruh sumber daya dalam jaringan, seperti pemrosesan, bandwidth jaringan, dan kapasitas media penyimpan, membentuk sebuah sistem tunggal secara virtual. (http://ismetsaja.wordpress.com) 
Latar Belakang

Perkembangan kecepatan prosesor berkembang sesuai dengan Hukum Moore, meskipun demikian bandwith jaringan komputer berkembang jauh lebih pesat. Semakin cepatnya jalur komunikasi ini membuka peluang untuk menggabungkan kekuatan komputasi dari sumber-sumber komputasi yang terpisah. Perkembangan ini memungkinkan skala komputasi terdistribusi ditingkatkan lebih jauh lagi secara geografis, melintasi batas-batas domain administrasi yang sudah ada.

Pesatnya perkembangan teknologi komputer di negara-negara maju, membuat para penelitinya semakin haus akan tenaga komputasi yang dapat menjawab tantangan dan permasalahan yang mereka hadapi. Walaupun sudah memiliki supercomputer dengan kapasitas yang sangat tinggi , apa yang sudah ada ini pun dirasa tetap kurang, karena mereka berusaha memecahkan permasalahan yang lebih besar lagi. Setelah semua komputer yg dimiliki seorang "peneliti haus tenaga komputasi" dipergunakan habis-habisan untuk memecahkan masalahnya, setelah berbagai cara untuk memecahkan masalah dicoba, dan dipilih yang paling efisien, tapi tetap masalahnya belum bisa dipecahkan juga, apa yang harus dia lakukan? Komputasi grid adalah salah satu jawaban dari pertanyaan ini.

Struktur Grid Computing

Grid computing merupakan sistem komputer dengan sumber daya yang dikelola dan dikendalikan secara lokal. Dimana sumber daya ini berbeda dalam hal kebijakan dan mekanisme yaitu mencakup sumber daya komputasi yang dikelola oleh sistem batch berbeda, sistem storage berbeda pada node berbeda. Kebijakan berbeda dipercayakan kepada user yang sama pada sumber daya berbeda pada Grid. Grid computing memiliki sifat alami dinamis artinya Sumber daya dan pengguna dapat sering berubah.

Grid computing dibangun dengan cara menggabungkan seluruh sistem komputasi grid yang ada di institusi-institusi penelitian menjadi sebuah kesatuan. Pengaturan hardwaredan software pada masing-masing sistem di tingkat institusi kemungkinan berbeda, namun dengan menjalankan teknologi Grid computing dengan menggabungkan simpul-simpul penghubung dari masing-masing sistem, maka akan terbentuk sebah kesatuan sumber daya komputasi grid. Dengan ini berarti pengguna pada suatu institusi dapat memanfaatkan sumber daya komputasi yang berada di luar institusinya. Salah satu syarat dari pembentukan grid computing adalah adanya suatu backbone jaringan berkapasitas besar untuk menghubungkan simpul-simpul penghubung.

Karakteristik Sistem

Ian Foster menjelaskan ada 3 karakteristik atau ciri utama dari suatu sistem grid, yaitu : 
  • Tidak ada kontrol terhadap resource yang controlized.
  • Memiliki kesamaan standar protokol, misal TCP/IP.
  • Memberikan layanan yang canggih (non trivial QoS) .
Tiga hal yang di-sharing dalam sebuah sistem grid, antara lain : Resource, Network dan Proses. Kegunaan atau layanan dari sistem grid sendiri adalah untuk melakukan high through put computing dibidang penelitian, ataupun proses komputasi lain yang memerlukan banyak resource komputer.

Konsep dan Cara Kerja Grid Computing

Secara singkat, grid computing berarti menyatukan seluruh sumberdaya TI ke dalam sekumpulan layanan yang bisa digunakan secara bersama-sama untuk memenuhi kebutuhan komputing perusahaan. Infrastruktur gridcomputing secara kontinyu menganalisa permintaan terhadap sumberdaya dan mengatur suplai untuk disesuaikan terhadap permintaan tersebut. Dimana data disimpan atau computer mana yang memproses permintaan tidak perlu dipikirkan. Sebagaimana arus listrik; untuk memanfaatkannya, tempat pembangkit atau bagaimana pengabelan jaringan listrik tidak perlu diketahui. Dalam menyelesaikan masalah system monolitik dan sumberdaya yang terfragmentasi, grid computing bertujuan menciptakan keseimbangan antara pengaturan suplai sumberdaya dan kontrol yang fleksibel. Sumberdaya TI yang dikelola dalam grid mencakup:

Konsep Grid Computing

  1. 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.
  2. Sumberdaya Aplikasi : 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.
  3. 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 local.
Prinsip Kerja Grid Computing 

Dua prinsip kerja utama grid computing yang membedakannya dari arsitektur komputasi yang lain, semisal mainframe, klien-server, atau multi-tier yaitu:

  1. 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.
  2. 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.

Jenis-jenis Grid Computing

Jenis-jenis atau komponen-komponen grid computing adalah:

  1. 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.
  2. 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.
  3. MDS (Monitoring and Discovery Service) : 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.
  4. 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. 
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.
  • Organisasi virtual sebagai hasil kolaborasi memberikan beberapa keuntungan lebih lanjut, di antarnya :
    • Sumber daya dan orang-orang yang tersebar. 
    • Dihubungkan oleh jaringan, melintasi domain-domain admin. 
    • Berbagi sumber daya, tujuan bersama.
    • Dinamis.
    • Fault-tolerant, dan tidak ada batas-batas geografis. 
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 :

  1. 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. 
  2. Masih sedikitnya sumber daya manusia yang kompeten dalam mengelola grid computing.
  3. Kurangnya pengetahuan yang mencukupi bagi teknisi IT maupun user non teknisi mengenai manfaat dari grid computing itu sendiri. 
Dengan adanya beberapa manfaat dan hambatan mengenai tersedianya grid computing di Indonesia, maka harus ada solusi yang berfungsi untuk mewujudkan manfaat dan menghilangkan hambatan yang muncul tersebut. Solusi itu antara lain adalah sebagai berikut : 

  1. Memberikan sosialisasi pada instansi pendidikan maupun institusi non pendidikan mengenai manfaat serta biaya dengan menggunakan sistem komputasi grid. 
  2. Kerjasama riset dan pengembangan antara departement dalam suatu perguruan tinggi dan industri. 
  3. Diberikannya mata kuliah tentang grid computing sehingga dapat menghasilkan generasi yang menguasai teknologi ini. 
  4. Adanya pengembangan aplikasi yang relevan dengan grid computing.

Sabtu, 13 Juni 2015

Tutorial Menginstall Web Server pada windows 7 menggunakan XAMPP



Berikut ini adalah tutorial entang langkah-langkah cara instalasi Web Server di Microsoft Windows 7 menggunakan XAMPP yang nantinya dengan mengetahui cara instalasi ini kita dapat belajar untuk kelanjutannya membuat Moodle, e-tutor dan Website e-learning lainnya untuk keperluan Pembelajaran tanpa perlu terkoneksi internet dan harus membeli web hosting.

Tentang Elearning

E-learning berasal dari huruf ‘e’ (electronic) dan ‘learning’ (pembelajaran). Dengan demikian E-learning adalah pembelajaran yang menggunakan jasa elektronika. Secara umum definisi E-learning adalah pengiriman materi pembelajaran melalui suatu media elektronik seperti Internet, intranet/extranet, satellite broadcast, audio/video tape, interactive TV, CD-ROM, dan computer-based training (CBT) secara lebih fleksibel demi mendukung dan meningkatkan pengajaran, pembelajaran dan penilaian. Sedangkan secara lebih khusus E-learning didefinisikan sebagai pemanfaatan teknologi internet untuk mendistribusikan materi pembelajaran, sehingga siswa dapat mengakses dari mana saja.

Tentang Web Server

Web server merupakan suatu server yang memberikan service (layanan) kepada klien yang meminta informasi berkaitan dengan web. Web server sendiri terdiri dari dua komponen. yang pertama adalah komputer itu sendiri dan software web server yang dipakainya. jadi dapat diambil kesimpulan mesin(komputer) apapun bisa saja menjadi web server asalkan software web server tersedia di mesin(komputer) itu. salah satu software web server yang tersedia adalah Apache, tapi selain itu masih banyak lagi web server lainnya seperti ISS, Xitami, dll. 

XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server,MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman web yang dinamis. Untuk mendapatkanya dapat mendownload langsung dari web resminya.

Langkah - Langkah

Download terlebih dahulu aplikasi Web Server dalam hal ini adalah XAMPP untuk windows di situs resminya DISINI.

Install Aplikasi XAMPP mengikuti petunjuk instalasi berikut ini:


Pilih English kemudian Klik OK.


Jika UAC di windows 7 anda aktif akan muncul pesan peringatan seperti gambar diatas. 
Nonaktifkan UAC komputer anda dan Klik OK.


Klik Next Untuk Melanjutkan.


Secara default apliaksi xampp terinstal di direktori c:\xampp klik browse dan pilih lokasi install jika anda ingin mengubah lokasi penginstalan dan klik OK, jika tidak langsung klik Tombol OK.


Klik Install untuk melanjutkan Proses installasi. Jika anda ingin menginstal Apace, MySQL dan FTP Server Fiezilla sebagai Service, pastikan anda mencentang ketiganya atau anda dapat mengabaikannnya.


Proses Instalasi / Extract Apikasi XAMPP.


Jika Proses Instalasi telah selesai, akan muncul jendela command prompt.


Klik Finish untuk mengakhiri proses instalasi XAMPP. 


Selajutnya adalah anda akan dihadapkan dengan kotak dialog Ucapan selamat bahwa anda telah sukses melakukan instalasi XAMPP Klik YES untuk mengaktifkan Control Panel XAMPP.


Gambar diatas adalah tampilan dari control panel XAMPP. Klik START untuk mengaktifkan Webserver dan Database dalam hal ini adalah Apache dan MySQL Untuk FTP Server, Mercury dan Tomcat kami sengaja tidak kami aktifkan Secara otomatis jika Firewall anda akatif akan memunculkan pesan Windows Security Alert untuk Apache dan MySQL, Klik Allow untuk mengijinkan.




Akhirnya kini proses instalasi Web server di windows 7 anda sudah selesai. Selanjutnya buka browser kesayangan. Ketikan pada address bar http://localhost atau http://127.0.0.1. Jika muncul seperti gambar dibawah ini berarti webserver anda sudah aktif.


Klik English untuk memilih bahasa.


Untuk melihat status klik Status di Menu sebelah Kiri. Selanjutnya mengecek apakah Database sudah aktif, silahkan klik menu phpMyAdmin atau pada address bar ketikan http://127.0.0.1/phpmyadmin/ atau http://localhost/phpmyadmin/. Jika tidak ada kendala, maka akan menampilkan seperti gambar dibawah ini untuk tampilan phpMyAdmin.

Contoh Program Untuk Mengecek IP, Nama Komputer dan Menampilkan Host Name beserta IP Address

Dibawah ini ada beberapa contoh program untuk mengecek ip, nama komputer, mengganti nama komputer dengan ip, menampilkan host name dan ip address, membuat aplikasi client-server TCP sederhana menggunakan bahasa pemrograman java.

Berikut adalah contoh program untuk mendapatkan ip yang sedang digunakan : 



Pertama program akan mengimport java.net. Kemudian kita buat class bernama getIP, selanjutnya kita mendeklarasikan InetAddress host bernilai null kemudian host akan didapatkan dari nilai InetAddress host dan terakhir pada byte ip didapatkan nilai dari hostAddress. Langkah terkahir terdapat suatu perulangan for dimana di bagian ini akan terjadi pada saat variabel i bernilai 0, dan nilai variabel i lebih kecil dari IP jika kondisi ini terpenuhi maka nilai i akan bertambah. Berikut adalah contoh program untuk mendapatkan nama komputer yang sedang dipakai : 


Pertamatama program akan mengimport java.net, lalu kita buat class bernama getName. Selanjutnya kita deklarasikan InetAddress host = null; dan host = InetAddress.getLocalHost(); maksudnya adalah InetAddress host bernilai null dan host didapatkan dari nilai InetAddress pada localhost. Berikut adalah contoh program untuk mengganti nama komputer dengan ip yang sedang digunakan : 



Pertama program akan mengimport java.net dan masuk pada nama class yang dibuat yaitu IPtoName.Untuk program ini terdapat kondisi if dimana jika program nilainya lebih besar sama dengan 0 maka cetak nama pemakai dan IPtoName lalu program akan kembali ke semula dan program akan mendeklarasikkan String host yaitu 0 dan InetAddress address bernilai null. Kemudian program akan mengulang ke bagian address yang terdapat di InetAddress pada host kemudian apabila perulangan tersebut tidak terpenuhi maka akan mencetak invalid IP – malformed ip.

Untuk hasil output ini pada saat menjalankan program masukkan terlebih dulu IPAddress kemudian host name dari komputer. Jika sudah maka jalankan kembali program java tersebut maka host name tersebut akan terganti dengan IP. Dan akan mencetak IP komputer yang lain yaitu 10.189.46.244 denganhost name 10.189.46.244. Berikut ini adalah program untuk menampilkan host name dan ip address pada komputer yang digunakan : 



Pertama program akan mengimport java.net kemudian program akan masuk ke dalam class program yang bernama NsLookup. Pada program utama ini akan mencetak Pemakai : Java NsLookup hostname kemudian aka mendeklarasikan String host adalah 0 dan InetAddress address bernilai null kemudian apabila host tidak dikenal maka akan tampil Unknown host. Untuk bagian listing byte ip nilainya didapat dari address lalu apabila i > 0 dan i.


Aplikasi Client-Server TCP sederhana


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


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


  1. Compile kedua program diatas pada cmd (javac simpleServer.java dan javac simpleClient.java). Jika memakai 1 pc buka 2 cmd, jika tidak bisa membuka 2 cmd sekaligus buka cmd yang lainnya denga run as administrator.
  2. Jalankan server terlebih dahulu, kemudian buka cmd baru untuk menjalankan client. Pada server java simpleServer sedangkan client java simpleClient (nama pc server).
  3. Pada client masukkan masukkan kata kunci “salam” dan coba ketikkan kata apa saja dan juga perhatikan pada server apakah kata tersebut masuk atau tidak. Berikut output jika kata kunci yang dimasukkan benar : 
                            
           Berikut output jika kata kunci yang dimasukkan salah :