Minggu, 30 April 2017

Pemrograman Jaringan-5

Membangun Aplikasi Client-Server 

TCP Sederhana

simpleServer.java

Listing Program


simpleClient.java

Listing Program

Logika Program
Listing program diatas merupakan source code dengan menggunakan bahasa pemrograman java  untuk membangun komunikasi antara client dan server. Penggunaan import java.net.* agar dapat memberikan akses untuk melakukan komunikasi melalui jaringan dan import java.io.* digunakan agar class dapat menggunakan fungsi input (masukkan) dan output (keluaran) pada aplikasi chat sederhana ini.

Pada server,diberikan fungsi serversocket yaitu untuk melakukan pertukaran data antar program,serversocket akan menunggu koneksi yang datang dari client. Ketika ingin menghubungkan client dan server,pastikan port dari masing-masing bernilai sama agar dapat melakukan koneksi.
Pada client, sama halnya dengan server diberikan fungsi clientsocket. Remote port digunakan pada client untuk membuka koneksi pada server.

Ketika server dijalankan dengan kondisi yang benar seperti listing diatas, maka akan tercetak “Aplikasi server hidup...”. Server akan menunggu koneksi dari client agar dapat melakukan komunikasi. Pastikan server harus dijalankan terlebih dahulu sebelum menjalankan program client, karena jika server belum aktif maka akan muncul exception berupa error io yang menandakan server tidak aktif.

Ketika client dijalankan dengan kondisi yang sesuai, maka akan tercetak “Masukkan kata kunci:” dimana kata kunci tersebut harus sesuai dengan  apa yang ada pada listing server. Server hanya dapat mengerti kata “salam” , sehingga jika client mengetikkan “salam” maka server menerima kata tersebut dan mengirimkan kembali kata “salam juga”  dengan os.writeBytes kepada client. Jika client mengetikkan hal lain selain “salam”maka server tetap menerima dan mengirimkan kata “maaf,saya tidak mengerti” dengan fungsi os.writeBytes dimana selain kondisi input “salam” , server akan mengirimkan “maaf,saya tidak mengerti”.

Terdapat fungsi try catch dimana jika tidak sesuai kondisi yaitu saat koneksi server bermasalah atau server yang dituju tidak sesuai,maka akan mencetak "Error writing to server...". Saat melakukan input output stream beserta koneksi maka akan ditangani oleh exception dan memberi pesan "Error writing...."

Output Program



Selasa, 25 April 2017

Pemrograman Jaringan-4

NsLookup.java

Listing Program

Logika Program

Listing program diatas merupakan source code dengan menggunakan bahasa pemrograman java  untuk mendapatkan IP dari penggunaan host name pada komputer. Penggunaan import java.net.* agar dapat memberikan akses pada class untuk melakukan komunikasi melalui jaringan agar dapat mengakses informasi host name.

Terdapat sebuah kondisi yang memiliki args.length = 0 yang artinya akan membaca parameter dimana akan tercetak Pemakaian: java NsLookup. Mengambil informasi host name dimana informasi disimpan pada variabel host.

Terdapat fungsi try catch dimana jika tidak sesuai kondisi yaitu saat pemanggilan hostname tidak sesuai,maka akan mencetak “Unknown host”. Jika sudah benar sesuai dengan kondisi maka ketika host name diketik pada command prompt saat menjalankan program, maka hasilnya akan tercetak IP komputer tersebut yang dipanggil dari byte[] ip = address.getAddress().


Output Program



Pemrograman Jaringan-3

IPtoName.java

Listing Program

Logika Program

Listing program diatas merupakan source code dengan menggunakan bahasa pemrograman java  untuk mendapatkan host name dari pemanggilan IP pada komputer.
Penggunaan import java.net.* agar dapat memberikan akses pada class untuk melakukan komunikasi melalui jaringan agar dapat mengakses IP dari localhost.

Terdapat sebuah kondisi yang memiliki args.length = 0 yang artinya akan membaca parameter dimana akan tercetak Pemakaian: java IptoName. Variabel host akan mencetak nilai string dari host yang didapat berasal dari IP yang dipanggil berdasarkan pemanggilan address = InetAddress.getByName(host). IP yang dieksekusi saat program berjalan akan memberikan host name sesuai dengan IP nya.

Terdapat fungsi try catch dimana jika tidak sesuai dengan kondisi dalam pemanggilan IP maka akan mencetak “Invalid IP – malformed IP”. Jika sudah benar sesuai dengan kondisi maka ketika IP diketik pada command prompt saat menjalankan program, maka hasilnya akan tercetak host name dari komputer.

Output Program



Jumat, 21 April 2017

Pengantar Komputasi Modern-Tugas 2.2

Quantum Computation
sumber : Google

Pengertian Quantum Computation
Komputer kuantum (Quantum Computation) 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.

Karakteristik Quantum Computation
sumber : Google

  • Satu-satunya cara adalah menebak dan mengecek jawabannya berkali-kali
  • Terdapat n jumlah jawaban yang mungkin
  • Setiap kemungkinan jawaban membutuhkan waktu yang sama untuk mengeceknya
  • Tidak ada petunjuk jawaban mana yang kemungkinan benarnya lebih besar: memberi jawaban dengan asal tidak berbeda dengan mengeceknya dengan urutan tertentu.

Algoritma Quantum Computation
Algortima Shor 
sumber : Google

Sebuah algoritma kuantum yang efisien bisa menguraikan pada pengali jumlah besar. Algortima ini merupakan pusat pada sistem yang menggunakan teori bilangan untuk memperkirakan periodisitas dari urutan nomor. Ditemukan oleh Peter Shor. Algortima ini di perbaharui oleh Lov Grover dari Bell Labs pada tahun 1996, dengan algoritma yang sangat cepat dan terbukti menjadi yang tercepat mungkin untuk mencari melalui database tidak terstruktur. Algoritma ini sangat efisien.

Algoritma Grover
sumber : Google

Sebuah algoritma kuantum untuk mencari database disortir dengan entri N di O ( N1 / 2 ) waktu dan menggunakan O ( log N ) ruang penyimpanan (lihat notasi O besar ) . Dirumuskan pada tahun 1996 . Algoritma Grover adalah probabilistik dalam arti bahwa ia memberikan jawaban yang benar dengan probabilitas tinggi.

Algoritma Deutsch-Jozsa 
sumber : Google

Menentukan apakah fungsi f adalah baik konstan (0 pada semua input atau 1 pada semua input) atau seimbang (mengembalikan 1 untuk setengah dari domain input dan 0 untuk setengah lainnya). 

Algoritma Simon 
sumber : Google

Memecahkan masalah black-box secara eksponensial lebih cepat daripada algoritma klasik, termasuk dibatasi-kesalahan algoritma probabilistik.


Perbedaan Quantum Computation dengan Komputer Klasik
sumber : Google

Memori komputer klasik merupakan string dari 0s dan 1s, dan ia mampu melakukan perhitungan hanya pada sekumpulan bilangan secara simultan. Memori komputer kuantum merupakan sebuah keadaan kuantum yang merupakan superposisi dari bilangan-bilangan yang berbeda. Sebuah komputer kuantum dapat melakukan perhitungan klasik reversible secara bebas pada semua bilangan secara bersamaan. Pelaksanaan sebuah komputasi pada bilangan yang berbeda pada saat yang sama dan kemudian penginterferesian semua hasil untuk mendapatkan satu jawaban, menjadikan sebuah komputer kuantum jauh lebih kuat daripada komputer klasik (West, 2000).
Sepanjang sejarah komputasi, bit tetap merupakan unit komputasi dasar informasi. Mekanika kuantum memungkinkan pengkodean informasi dalam bit kuantum (qubit). Tidak seperti bit klasik, yang hanya bisa menyimpan nilai.




Sumber Referensi:
http://er1k_physics-fst12.web.unair.ac.id/artikel_detail-116697-kuliah%20prokom-QUANTUM%20COMPUTING.html

Kamis, 20 April 2017

Pengantar Komputasi Modern-Tugas 2.1

Mobile Computing

sumber: Google


Pengertian Mobile Computing

Komputasi bergerak (mobile computing) merupakan teknologi yang digunakan untuk interaksi antara manusia dan komputer yang mengizinkan pengguna untuk mengakses informasi dari peralatan portabel , memungkinkan transmisi data suara dan video melalui komputer atau perangkat serta mendukung komunikasi.

Klasifikasi Mobile Computing

Personal Digital Assistant (PDA)
sumber: Google

PDA merupakan perluasan dari PC yang mampu berbagi informasi dengan sistem komputer melalui proses atau jasa dikenal sebagai sinkronisasi. Penggunaan koneksi inframerah dan Bluetooth memungkinkan perangkat ini untuk selalu disinkronisasi.

PC tablet dan iPads
sumber: Google

Perangkat selular ini lebih besar dari ponsel atau PDA dan terintegrasi ke layar sentuh dan dioperasikan menggunakan sentuhan gerakan sensitif pada layar. Mereka sering dikendalikan oleh pena atau dengan sentuhan jari. Mereka biasanya dalam bentuk batu tulis dan ringan. Contohnya, iPads, Galaxy Tab, Playbooks Blackberry dll.

Smartphone
sumber: Google

Smartphone memiliki kemampuan untuk menjalankan beberapa program secara bersamaan. ponsel ini termasuk layar resolusi tinggi sentuh, web browser yang dapat mengakses dan benar menampilkan halaman web standar daripada situs hanya dioptimalkan untuk seluler, dan akses data kecepatan tinggi melalui Wi-Fi dan broadband seluler kecepatan tinggi.
Sistem yang paling umum ponsel Operasi (OS) yang digunakan oleh smartphone modern termasuk Google Android, iOS Apple, Nokia Symbian, RIM BlackBerry OS, Samsung Bada, Microsoft Windows Phone, dan tertanam distribusi Linux seperti Maemo dan MeeGo.


Kelebihan Mobile Computing
sumber: Google

·        Aplikasi yang luas / bisa di pakai dimanapun dan kapanpun
·        Bergerak/berpidah lokasi secara bebas
·        Bebas berpindah jaringan

Kekurangan Mobile Computing
sumber: Google

·        Minimnya bandwith
·        Bergantung pada daya tahan baterai (energi)
·        Gangguan Transmisi
·        Potensi terjadinya kecelakaan

Jenis-jenis Aplikasi Mobile Computing
sumber: Google

1. Aplikasi Native
Aplikasi ini di buat dan ditanam (install) langsung didalam device/gadget baik untuk platform aplikasi mobile android ataupun aplikasi mobile iOS, aplikasi mobile ini menggunakan bahasa pemrograman yang selayaknya digunakan untuk membuat aplikasi tersebut. Misalnya, untuk membuat aplikasi Android menggunakan Java dan SDK milik Android, aplikasi iOS menggunakan Objective-C dan SDK iOS, demikian juga untuk aplikasi-aplikasi mobile untuk platform lainnya.

2. Aplikasi web
Aplikasi mobile dibuat dan dikembangkan dengan menggunakan bahasa pemrograman berbasis web, aplikasi mobile jenis web ini dijalankan menggunakan browser yang ada di handphone atau device/gadget, menggunakan bahasa pemrograman html5, php, ataupun ASP beserta dengan beberapa komponen pendukungnya, misalkan database, css, javascript, dll, serta penyimpanan data langsung ke database server.

3. Aplikasi Hibrid
Aplikasi mobile yang dibuat dan ditanam (install) langsung didalam device, menggunakan bahasa pemrograman website ( HTML5 dan PHP) yang digabung dengan bahasa pemrograman yang selayaknya digunakan utuk membuat aplikasi pada device yang dituju. Hybrid apps menggabungkan aplikasi mobile jenis native dengan aplikasi mobile jenis web dan dibundle menjadi 1 package dan diinstall di device/gadget atau bisa langsung diunggah ke toko aplikasi mobile sesuai dengan platformnya.

4. Games
Aplikasi game berbasis mobile yang dikembangkan untuk suatu platform tertentu baik yang berbasis android ataupun berbasis iOS, jenis aplikasi game ini bisa berupa aplikasi mobile native, atau dengan menggunakan pemrograman web dengan basis HTML5 dan PHP, atau bisa juga jenis aplikasi mobile hybrid.








Sumber Referensi:

Pemrograman Jaringan-2

getName.java

Listing Program
Logika Program

Listing program diatas merupakan source code dengan menggunakan bahasa pemrograman java  untuk mendapatkan host name dari komputer.
Penggunaan import java.net.* agar dapat memberikan akses pada class untuk melakukan komunikasi melalui jaringan agar dapat mengakses informasi host name.
Mendeklarasikan isi dari class getName, yaitu InetAddress host dengan nilai null.
Mengambil informasi host name menggunakan method getLocalHost dimana informasi disimpan pada variabel host.
Informasi host name dicetak dan akan tampil berupa nama host pada komputer dengan memanggil host.getHostName().

Output Program


Pemrograman Jaringan-1

getIP.java

Listing Program



Logika Program

Listing program diatas merupakan source code dengan menggunakan bahasa pemrograman java  untuk mendapatkan IP address pada localhost.
Penggunaan import java.net.* agar dapat memberikan akses pada class untuk melakukan komunikasi melalui jaringan agar dapat mengakses IP pada komputer. 
Mendeklarasikan isi dari class getIP, yaitu InetAddress host dengan nilai null.
Mengambil informasi alamat IP menggunakan method getLocalHost, informasi didapatkan dari localhost pada komputer. Informasi tersebut disimpan InetAddress.getLocalHost()
Menyimpan nilai dari alamat IP yang sudah didapatkan dengan menggunakan array dan tipe data byte dimana menggunakan kondisi perulangan yang hasilnya nanti akan berupa desimal. Setelah itu IP dicetak dan akan tampil alamat IP sesuai dengan localhost.

Output Program