Sabtu, 27 Mei 2017

Pemrograman Jaringan: 5. Membangun Aplikasi Client-Server TCP Sederhana

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

simpleServer.java yang bertindak sebagai server. Server bertugas untuk menerima dan memproses request dari client. Saat program ini dijalankan, maka server akan aktif dengan mencetak "Aplikasi server hidup...". Saat server aktif, server menunggu masukan dari client berupa kata kunci yaitu "salam". Jika client menuliskan kata selain "salam", maka server akan merespon "Maaf, saya tidak mengerti". 



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

Program ini berperan sebagai client. Client memasukkan kata kunci "salam" dan diteruskan ke server. Jika kata kunci cocok, maka server akan merespon "salam juga".


output


Sumber :
http://achsan.staff.gunadarma.ac.id 

Pemrograman Jaringan: 4. NsLookup.java


Program di atas adalah NsLookup.java untuk mengetahui IP Address dengan cara menginput nama host pada saat menjalankan program.


Pada saat user menginput nama host, maka program akan langsung menampilkan IP Address yang dimaksud dengan method getAddress(). Namun apabila host salah atau tidak ada, maka akan mencetak "Unknown Host".

Sumber: 
http://achsan.staff.gunadarma.ac.id 

Pemrograman Jaringan: 3. IPtoName.java


Pada program di atas akan menampilkan nama komputer dari suatu IP Address yang dimasukkan. IP Address yang dimasukkan akan di cek dengan method getHostName() lalu program akan mencetak nama host dari pemilik IP Address tersebut.

Apabila IP Address yang dimasukkan salah atau tidak tersedia, maka komputer akan mencetak "invalid IP - malformed IP".

Sumber:
http://achsan.staff.gunadarma.ac.id 

Pemrograman Jaringan: 2. getName.java


getName.java berfungi untuk mencetak nama dari suatu host.
import java.net.* berfungsi untuk mengimport library yang berhubungan dengan jaringan
lalu definisikan class InetAddress dengan variabel host
lalu host akan menampung ip address dari komputer
kemudian program akan mencetak string dan nama dari host dengan method getHostName()

Sumber :
http://achsan.staff.gunadarma.ac.id/

Pemrograman Jaringan: 1. getIP.java

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

listing di atas adalah program getIP.java.
import java.net berfungsi untuk mendukung pemrograman socket/jaringan, public class dinamai dengan getIP. inetAddress host = null; sebagai pendefinisian variabel, host = InetAddress.getLocalHost(); variabel host menampung sementara IP Address yang didapatkan dari method getLocalHost(), variabel ip dengan tipe data byte array untuk menampung alamat dari host,
terdapat perulangan untuk mencetak IP Address secara dotted decimal.

Sumber:
http://achsan.staff.gunadarma.ac.id

Sabtu, 22 April 2017

Quantum Computation

Quantum Computation

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. Dalam hal ini untuk mengembangkan komputer dengan sistem kuantum diperlukan suatu logika baru yang sesuai dengan prinsip kuantum.

Ide mengenai komputer kuantum ini berasal dari beberapa fisikawan antara lain Charles H. Bennett dari IBM, Paul A. Benioff dari Argonne National Laboratory, Illinois, David Deutsch dari University of Oxford, dan Richard P. Feynman dari California Institute of Technology (Caltech).

Pada awalnya Feynman mengemukakan idenya mengenai sistem kuantum yang juga dapat melakukan proses penghitungan. Fenyman juga mengemukakan bahwa sistem ini bisa menjadi simulator bagi percobaan fisika kuantum.

Selanjutnya para ilmuwan mulai melakukan riset mengenai sistem kuantum tersebut, mereka juga berusaha untuk menemukan logika yang sesuai dengan sistem tersebut. Sampai saat ini telah dikemukaan dua algoritma baru yang bisa digunakan dalam sistem kuantum yaitu algoritma shor dan algoritma grover.

Walaupun komputer kuantum masih dalam pengembangan, telah dilakukan eksperimen dimana operasi komputasi kuantum dilakukan atas sejumlah kecil Qubit. Riset baik secara teoretis maupun praktik terus berlanjut dalam laju yang cepat, dan banyak pemerintah nasional dan agensi pendanaan militer mendukung riset komputer kuantum untuk pengembangannya baik untuk keperluan rakyat maupun masalah keamanan nasional seperti kriptoanalisis.

Telah dipercaya dengan sangat luas, bahwa apabila komputer kuantum dalam skala besar dapat dibuat, maka komputer tersebut dapat menyelesaikan sejumlah masalah lebih cepat daripada komputer biasa. Komputer kuantum berbeda dengan komputer DNA dan komputer klasik berbasis transistor, walaupun mungkin komputer jenis tersebut menggunakan prinsip kuantum mekanik. Sejumlah arsitektur komputasi seperti komputer optik walaupun menggunakan superposisi klasik dari gelombang elektromagnetik, namun tanpa sejumlah sumber kuantum mekanik yang spesifik seperti keterkaitan, maka tak dapat berpotensi memiliki kecepatan komputasi sebagaimana yang dimiliki oleh komputer kuantum.

sumber : 
https://id.wikipedia.org/
        

Mobile Computing

Mobile Computing

Mobile Computing yang dalam pengertiannya adalah menggunakan komputer dimana saja. Jadi kita dapat menggunakan segala fasilitas yang ada pada komputer untuk dapat dibawa kemana saja.

1. Definisi Mobile Computing
Adalah kemampuan teknologi untuk menghadapi perpindahan/pergerakan manusia dalam penggunaan komputer secara praktis. Dari pengertian ini kita dapat menyimpulkan bahwa Mobile Computing saat ini memang sangat dibutuhkan, mengingat kebutuhan penggunaan komputer saat ini pun sangat tinggi, sehingga penggunaan Mobile Computing dapat memudahkan para pemakai komputer dalam melakukan segala aktifitasnya dengan menggunakan komputer.

2. Perkembangan Mobile Computing
Perkembangan Mobile Computing pasti  juga mempengaruhi perkembangan Hardware dari Mobile Computing itu sendiri,  perkembangannya dimulai dari bentuk sampai teknologi Hardware yang ada di dalamnya yang  bertujuan untuk memudahkan sang pemakai.

3. Jenis Mobile Computing
 Mobile Computing yang ada saat ini ada beberapa jenis, diantaranya adalah:

  • Laptop

merupakan komputer portabel, kecil dan dapat dibawa kemana saja dengan sangat mudah yang terintegrasi pada sebuah casing. Berat laptop berkisar dari 1 sampai 6 kilogram tergantung ukurannya, bahan dan spesifikasi. Sumber listrik berasal dari baterai atau A/C adaptor yang dapat digunakan untuk mengisi ulang baterai dan untuk menyalakan laptop itu sendiri. Laptop kegunaannya sama dengan Komputer desktop,yang membedakannya hanya ukuran sehingga memudahkan pemakai untuk membawanya kemana-mana.
  • Wearable Computer

atau komputer yang dipakaikan di tubuh manusia. Contohnya adalah Computer Gletser Ridgeline W200. W200 ini terbuat dari paduan magnesium  bertulang yang memaksimalkan kekuatan dan meminimalkan berat keseluruhan. Pada hanya 10,2 ons dan dibentuk pada kontur lengan, W200 yang mengkombinasikan fitur yang sama dari sebuah komputer standar dengan sebuah perangkat yang memberikan kenyamanan dan ergonomis pergelangan tangan instrumen aus. 
  • PDA(Personal Digital Assistants)

adalah sebuah alat elektronik yang berbasis komputer dan berbentuk kecil serta dapat dibawa kemana-mana. Versi PDA yang lebih canggih dapat digunakan sebagai telepon genggam, akses internet, intranet, atau extranet lewat Wi-Fi atau Jaringan Wireless. Salah satu ciri khas PDA yang paling utama adalah fasilitas layar sentuh
  • SmartPhone

adalah ponsel yang menawarkan kemampuan canggih,  boleh dikata kemampuannya menyerupai kemampuan PC (komputer). Umumnya suatu  ponsel dikatakan sebagai smartphone bila dapat berjalan pada software operating system yang lengkap dan memiliki interface danplatformstandar bagi pengembang aplikasi. Sementara itu ada yang mengatakan smartphone adalah ponsel sederhana dengan fitur canggih seperti kemampuan mengirim dan menerima email, menjelajah internet dan membaca e-book,built in full keyboardatau external USB keyboard, atau memiliki konektor VGA. Dengan kata lain, smartphone adalah miniatur komputer dengan kemampuan ponsel .

Tools Untuk Mobile Computing

Dibawah ini adalah beberapa tools Mobile Computing dan kegunaannya.

1. Java ME, popular untuk game
2. Symbian, general purpose, didukung Nokia
3. Android adalah berbasis Linux
4. iPhone , hanya pada Mac OS X
5. Lazarus, bermanfaat utk porting object Pascal
6. Palm OS, kuat di US

Aplikasi-aplikasi Mobile Computing

1.  Push e-mail
Perkembangan teknologi saat ini sangat pesat sekali, terutama teknologi bergerak atau mobile technology, beberapa tahun yang lalu perangkat mobile seperti ponsel hanya bisa digunakan untuk menelpon dan mengirim sms. Namun saat ini kita bisa menggunakan ponsel untuk berkirim dan menerima e-mail yang dulunya hanya bisa dilakukan dengan komputer, namun hal ini belum sepenuhnya dimanfaatkan oleh pemilik ponsel canggih di Indonesia, mereka hanya memanfaatkan sedikit sekali dari kemampuan ponsel yang dimilikinya, mereka rela membeli ponsel canggih namun dalam prakteknya hanya digunakan untuk nelpon, sms, dan foto-foto, sungguh menggelikan sekali. Padahal jika mereka mampu memanfaatkan kemampuan poselnya dengan maksimal mereka akan memperoleh banyak sekali kemudahan dan manfaat yang didapat.

Ada banyak cara untuk bisa berkirim dan menerima e-mail dari ponsel, kita bisa menggunakan web browser ponsel untuk mengakses e-mail kita, namun tentu saja hal ini tidak efektif karena satiap kita mau mengakses e-mail, kita harus membuka web browser kita dan kita akan kesulitan jika ingin mendownload dan menyimpannya di ponsel. Beberapa vendor ponsel juga menyertakan pengolah e-mail pada produknya namun awalnya kita tidak bisa menerima e-mail secara otomatis, kita harus mengeceknya secara manual untuk bisa mendownload e-mail ke ponsel kita. Namun saat ini kita bisa menerima maupun mengirim e-mail secara real time seperti halnya kita mengirim sms, teknologi yang memungkinkan kita untuk bisa melakukan hal tersebut adalah teknologi push e-mail, yang dulu di Indonesia di populerkan oleh Blackberry buatan RIM. Push e-mail memiliki kemampuan always-on atau menyala terus, dimana e-mail yang masuk akan diteruskan (pushed) kepada e-mail client. Dimana e-mail client tersebut bisa berupa PC atau ponsel kita. Push e-mail sebenarnya sudah ada sejak dahulu dengan menggunakan internet berbasis kabel namun untuk teknologi nirkabelnya baru muncul belakangan ini, yang diperkenalkan oleh blackberry dimana produk ini memadukan antara portable device dan wireless sehinnga terciptalah ungkapan always on.

Dulu jika kita ingin menggunakan teknologi push e-mail kita harus bersedia mengorbankan uang kita yang tidak sedikit untuk menebus ponsel dengan teknologi push e-mail, namun saat ini kita bisa menggunakan ponsel yang hanya mempunyai kemampuan java untuk bisa menggunakan layanan ini. Ada banyak sekali aplikasi berbasis java yang bisa kita gunakan, seperti SEVEN dan mobiqus, namun bila kita menggunakan aplikasi ini baterai kita akan menjadi sangat boros, karena koneksi internet akan selalu menyala untuk bisa melakukan push e-mail.


Meskipun teknologi push e-mail memiliki banyak kelebihan yang mungkin sangat membantu kerja kita, namun teknologi ini juga mempunyai kekurangan, dengan kemampuan always on nya push e-mail akan mengambil semua e-mail yang ada di account e-mail kita dan menyimpannya di ponsel kita, padahal tidak semua e-mail yang masuk kita perlukan. Yang nantinya bisa membuat kapasitas penyimpanan ponsel kita menjadi berkurang bahkan jika e-mail yang kita dapatkan mengandung kode jahat atau virus yang malah akan membuat kita repot nantinya, belum lagi tagihan pulsa kita yang akan membengkak, untuk itu gunakanlah teknologi ini dengan bijak.

2. Blackberry 
Tentunya kita sudah tidak asing lagi mendengar kata-kata blackberry. Blackberry  adalah salah satu dari sekian banyak aplikasi dari mobile computing karena dilihat dari definisinya,mobile computing adalah computer yang dibuat untuk mengatasi masalah perpindahan,atau lebih mudahnya adalah computer yang mudah dibawa kemana-mana dan dapat digunakan untuk berkomunikasi satu sama lain.Salah satu fasilitas yang ada di black berry untuk berkomunikasi antara satu sama lain yaitu blackberry messenger atau yang lebih dikenal BBM.Fasilitas dari blackberry ini menggunakan PIN code dalam berkomunikasi satu sama lain.PIN code ini hanya untuk membedakan antara blackberry satu dengan blackberry yang lain.PIN code ini terdiri dari 8 digit,yang terdiri dari alphabet dan numerik.

Sumber : https://www.scribd.com/