Translate

Minggu, 17 Juli 2016

Tugas Pemrograman Jaringan 2 - 4IA19



Get IP
Berikut akan dijelaskan program untuk menampilkan ip address host komputer melalui program java. Program tersebut dapat di running melalui command prompt dengan meng compilenya terlebih dahulu menggunakan perintah javac nama_file.java kemudian ketik java nama_file.

Listring Program
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
Pertama dimulai dengan memanggil library atau paket yamg membuat suatu program ini dapat melalukan aktivitas ataupun komunikasi melalui jaringan sehingga proses pencarian alamat ip dari suatu host komputer dapat dilakukan yaitu menggunakan library “java.net.*:. Selanjutnya dibuatlah kelas dari program tersebut dengan nama getIP yang di dalamnya terdiri dari beberapa perintah untuk melakukan pencarian serta pencetakan alamat ip tersebut. Proses pencetakan alamat ip ini dilakukan melalui perulang for dengan kondisi bahwa perulangan dilakukan sebanyak 0 sampai tidak lebih dari panjang pada nilai yang terdapat pada variabel ip. Jika variabel I lebih dari 0 maka alamat ip akan tercetak. Variabel array ip di dapat melalui nilai pada variabel host yang di dapatkan alamatnya melalui perintah getAddress.

Output
 
Get Name
Berikut akan dijelaskan program untuk menampilkan nama dari host komputer melalui program java. Program tersebut dapat di running melalui command prompt dengan meng compilenya terlebih dahulu menggunakan perintah javac nama_file.java kemudian ketik java nama_file.

Listing Program
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
Listing di atas merupakan proses untuk menampilkan nama dari komputer host dalam sutu jaringan. Untuk dapat melakukan proses tersebut, pertama dilakukan pemanggilan library java.net.* yaitu dengan melakukan import kedalam program tersebut. Dengan adanya library tersebut, membuat program dapat melakukan aktivitas pencarian nama dari host komputer. Selanjutnya dibuatlah class yang di dalamnya berlangsung proses-proses bagaimana pencarian tersebut dan pencetakan di lakukan yaitu dengan nama class getName. Pencarian nama host diperlukan yang namanya perintah inetAddress dengan membuat variabelnya dengan nama host yang di definisikan dengan nilai null. Melalui variabel host tersebutlah nantinya di dapat melalui perintah “getHostName()” yaitu memanggil nama host dari nilai variabel tersebut yang nantinya akan dicetak.

Output

IP to Name
Berikut akan dijelaskan program untuk menampilkan nama dari ip address host komputer melalui program java. Program tersebut dapat di running melalui command prompt dengan meng compilenya terlebih dahulu menggunakan perintah javac nama_file.java kemudian ketik java nama_file.

Listing Program
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
Proses pertama dimulai dengan mengimport library java.net.* untuk dapat melakukan sambungan atau aktivitas dalam suatu jaringan. Selanjutnya dibuatlah class dengan nama IPtoName yang bersifat public yang membuatnya dapat di akses di luar class. Pencarian imulai dengan menentukan kondisi dari string pada variabel host. Jika sama dengan maka ia akan mencetak nama dari ip address tersebut namun jika tidak ia akan mengecek ke statement catch untuk menangani kesalahan. Nama dari ip address tercetak melalui perintah “System.out.println(address.getHostName())”

Output
 
Nslookup
Berikut akan dijelaskan program untuk menampilkan ip address dengan nama host komputer melalui program java. Program tersebut dapat di running melalui command prompt dengan meng compilenya terlebih dahulu menggunakan perintah javac nama_file.java kemudian ketik java nama_file.

Listing Program
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
Proses pertama dimulai dengan mengimport library java.net.* untuk dapat melakukan sambungan atau aktivitas dalam suatu jaringan. Selanjutnya dibuatlah class dengan nama NsLookup yang bersifat public yang membuatnya dapat di akses di luar class.  Proses pertama dimulai dengan pembuatan variabel host dengan tipe data string yang di definisikan engan nilai pada variabel array “args[0]”. Jika kondisi nilai pada variabel tersebut sama dengan 0 maka proses pencetakan nama host akan di lakukan dan proses pencarian berakhir serta pencetakan alamat ip melalui variabel ip dengan mengambil nilai dari variabel address melalui perintah “getAddress” akan di lakukan jika kondisi nilai pada variabel I lebih dari 0. Jika terjadi kesalahan program akan beralih ke statement catch dan melakuan pencetakan yang menyatakan host tidak terdeteksi.

Output

Client-Server
Berikut akan dijelaskan program untuk membuat program komunikasi jaringan antara client dan server melalui program java. Program tersebut dapat di running melalui command prompt dengan meng compilenya terlebih dahulu menggunakan perintah javac nama_file.java kemudian ketik java nama_file.

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

Listing Program Client
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
Lisitng di atas menjelaskan proses komunikasi program antar server dengan klien dalam suatu jaringan. Program dimulai dengan penimport an library java.io.* agar klien dan server dapat saling berkomunikasi yaitu proses input dan output. Selanjutnya adalah import library java.net.* untuk dapat melakukan sambungan atau aktivitas dalam suatu jaringan. Class pada program ini bernama simpleServer yang di dalamnya berlangsung proses jalannya komunikasi antara server dengan klien. Komunikasi di lakukan melalui port 5000 yang di simpan ke dalam variabel TESTPORT. Program akan melalukukan pemeriksaan pada port tersebut apakah program server sudah tersambung atau belum melalui statement try. Jika tersambung program akan mencetak keterangan yang menyatakan bahwa program server telah aktif. Proses penerimaan input dari klien di tampung melalui variabel line pada program server yang nantinya pesan masuk dalam variabel tersebut akan di panggil dan di cetak menggunakan perintah “System.out.println("Terima : " + line);”. Begitu juga dengan program klien proses input dilakukan melalui variabel userInput serta pencetakan pesan yang dikirim melalui variabel output.
Output

Tugas Pemrograman Jaringan - 4IA19

 Proxy


Proxy ataiu disebut juga dengan proxy server merupakan suatu program komputer yang bertindak sebagai gateway atau penghubung terhadap dunia internet untuk setiap komputer klien. Proxy server dapat bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari internet atau intranet dan tidak terlihat oleh komputer klien, dalam hal ini user yang berinteraksi dengan internet melalui sebuah proxy server tidak akan mengetahui penanganan request yang di lakukan proxy server tersebut.

Fungsi proxy

  • Connecting Sharing

Sebagai penghubung atau perantara pengambilan data dari suatu alamat IP dan dihantarkan ke alamat IP lainnya ataupun kepada komputer user.

  • Filtering

Terdapat bebrapa proxy yang dilengkapi dengan firewall yang dapat memblokir beberapa atau sebuah alamat IP yang tidak diinginkan, sehingga beberapa website tidak dapat diakses dengan memakai proxy tersebut. Itulah salah satu fungsi dari proxy sebagai filtering.

  • Caching

Proxy juga dilengkapi dengan media penyimpanan data dari suatu web, dari query ataupun permintaan akses user. Misalnya permintaan untuk mengakses suatu web dapat lebih cepat jika telah ada permintaan akses ke suatu web pada pemakai proxy sebelumnya.

Web Server

Server atau Web Server merupakan software atau perangkat lunak yang menyediakan layanan terhadap permintaan atau request dari web client dari dan melalui jalur HTTP atau HTTPS biasanya kita kenal sebagai browser.

FTP Server

FTP (File Transfer Protocol) adalah suatu aturan yang berlaku untuk hubungan antar dua komputer atau lebih dalam tukar-menukar file sebuah jaringan yang menggunakan TCP, bukan UDP.  FTP Server adalah sebuah server yang berfungsi utk memberikan pelayanan menggantikan file di mana server tersebut senantiasa siap memberikan pelayanan FTP seandainya mendapat permintaan (request) dari FTP client.

DNS Server

DNS (Domain Name Server) adalah sebuah aplikasi program yang berfungsi menterjemahkan nama domain ke alamat IP pada jaringan yang menggunakan TCP/IP.  DNS biasa difungsikan kepada penerapan yg membuka ke Internet seperti situs browser atau e-mail, di mana DNS menolong memetakan host name satu buah computer ke IP address. DNS akan disamakan fungsinya dgn buku telpon. Di Mana tiap-tiap pc di jaringan Internet mempunyai host name (nama pc) & Internet Protocol (IP) address.

Mail Server

Server yang memungkinkan pengguna (user) untuk dapat mengirim dan menerima surat elektronik atau e-mail satu sama lain dalam stu jaringan atau dengan internet. Mail server menggunakan arsiktektur client-server dalam pengaksesannya, dimana ada pihak yang menjadi client dan pihak lainnya sebagai server.

Rabu, 15 Juni 2016

Tugas Softskill_Pengantar Komputasi Modern_Parallel Computation

PARALLEL COMPUTATION

Parallel Computation atau komputasi parallel merupakan teknik pengeksekusian program secara parallel atau bersamaan baik dalam satu prosessor atau lebih pada sebuah komputer. Hal ini diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak.

Parallelism Concept

Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.

Distributed Processing

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. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi (distributed computing).

Architectural Parallel Computer

1.      SISD
Yang merupakan singkatan dari 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
Yang merupakan singkatan dari 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
Yang merupakan singkatan dari 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

Yang merupakan singkatan dari 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.

Tugas Softskill_Pengantar Komputasi Modern_Quantum Computation


Quantum Komputation
Quantum computer adalah konputer yang proses komputasinya di atas computer konvensional.  Quantum computer berkumputasi lebih cepat dari pada computer konvensional karena pada dasarnya quantum computer memproses secara parallel. Teori quantum adalah teori tidak ada sesuatu yang pasti, jadi sesuatu tidak bias dikatakan pasti berada di suatu tempat melainkan hanya probabilitas. Karena sifat yang seperti ini merupakan kelebihan dari kuantum computer.

Entanglement
Menghapuskan jarak diantara 2 partikel yang berdiri sendiri sehingga dapat terhubung. konsep quantum entanglement sendiri mendapatkan kritikan dari ilmuwan Albert Enstein yang tidak mempercayai bahwa quantum particle dapat mempengaruhi particle lainnya melebihi kecepatan cahaya atau dapat dikatakn susuatu yang “spooky action at a distance”.

Pengoperasian data qubits
Jika pada computer konvensional selalu bekerja dengan bits 0 dan 1 sedangkan quantum computer bisa lepas dari restriksi ini yaitu bisa 1, bisa 0, atau bisa diantara 1 dan 0. Ini disebut quantum bits atau kubits

Quantum gates
Quantum Gates memberikan prosedur suatu cara untuk membuat sirkuit reversible yang mensimulasikan dan sirkuit ireversibel sementara untuk membuat penghematan yang besar dan jumlah ancilae yang digunakan. Perbedaan utama adalah bahwa gerbang logika klasik memanipulasi nilai bit klasik, 0 atau 1, gerbang kuantum dapat sewenang-wenang memanipulasi nilai kuantum multi-partite termasuk superposisi dari komputasi dasar yang juga dilibatkan.

Algoritma shor

Melalui adanya algoritma shor suatu computer quantum dapat mensimulasikan proses yang tidak dapat dilakukan oleh computer konvensional.