Sunday, June 4, 2017

Cara mengetahui IP address dan Nama (dengan IPtoName)

jika pada postingan sebelumnya terdapat script NsLookup yang fungsinya adalah menampilkan IP Address dengan memasukkan Nama host, kalo ini adalah script IPtoName yang digunakan menampilkan nama host dengan memasukkan IP address.

cara melihat nama host atau nama komputer pribadi dengan menggunakan script IPtoName.
yang pertama harus dilakukan adalah pastikan bahwa java sudah terinstal dan sudah di path pada komputer anda.
lalu ketikkan script di bawah ini dengan notepad/notepad++. simpan dengan nama IPtoName.java

script IPtoName.java

lalu buka command prompt dengan cara masuk ke Run (Logo Windows + R), kemudian ketikkan CMD, dan klik OK. terlihat seperti gambar di bawah ini :


lalu jalankan program di cmd dengan cara ketik "javac IPtoName,java" lalu "java IPtoName". Llau masukkan secara manual IP address komputer kita lalu enter.

Penjelasan Script Program :

1. Pada baris pertama terdapat perintah "import java.net.*;" ini adalah package java yang berfungsi untuk mendukung program/socket jaringan pada java.
2. pada baris kedua terdapat syntax "public class NsLooup {" adalah nama class dan script ini harus disimpan dengan nama yang sama dengan classnya.
3. Pada baris ke 4-7 terdapat perintah "if (args.length == 0) {
System.out.println("Pemakaian: java NsLookup <hostname>");
System.exit(0);
}" Perintah ini adalah sebuah percabangan dimana jika nilai dari args.lengthnya adalah 0 maka program akan mencetak kata-kata yang berada di dalam tanda kutip dan jika nilai args.length tidak bernilai 0 maka program akan berhenti.
4."address = InetAddress.getByName(host);" fungsinya untuk mendapatkan nama dari komputer kita. Perintah ini untuk mencoba mencari tahu hostname dari IP Address yang telah di input manual.

Cara mengetahui IP address (dengan NsLookup)

untuk mendapatkan IP Address dengan menggunakan script java,salah satu cara yang bisa dilakukan adalah menggunakan nama dari komputer yang kita gunakan.

cara melihat nama IP address dengan menggunakan kodingan NsLooup adalah sebagai berikut :
yang pertama harus dilakukan adalah pastikan bahwa java sudah terinstal dan sudah di path pada komputer anda.
lalu ketikkan script di bawah ini dengan notepad/notepad++. simpan dengan nama NsLookup.java

NsLookup.java
lalu buka command prompt dengan cara masuk ke Run (Logo Windows + R), kemudian ketikkan CMD, dan klik OK. terlihat seperti gambar di bawah ini :


lalu jalankan program di cmd dengan cara ketik "javac NsLooup,java" lalu "java NsLookup". maka IP Address komputer kita akan di tampilkan.


Penjelasan Script Program :

1. Pada baris pertama terdapat perintah "import java.net.*;" ini adalah package java yang berfungsi untuk mendukung program/socket jaringan pada java.
2. pada baris kedua terdapat syntax "public class IPtoName {" adalah nama class dan script ini harus disimpan dengan nama yang sama dengan classnya.
3. Pada baris ke 4-7 terdapat perintah "if (args.length == 0) {
System.out.println("Pemakaian: java IPtoName <IP address>");
System.exit(0);
}" Perintah ini adalah sebuah percabangan dimana jika nilai dari args.lengthnya adalah 0 maka program akan mencetak kata-kata yang berada di dalam tanda kutip. kita harus terlebih dulu tau hostname dari komputer yang kita gunakan dan jika nilai args.length tidak bernilai 0 maka program akan berhenti.
4. pada baris ke-16 terapat perintah "byte[] ip = address.getAddress();" yang fungsinya untuk mendapatkan IP Address dari komputer yang kita gunakan.
5."address = InetAddress.getByName(host);" fungsinya untuk mendapatkan nama dari komputer kita. Perintah ini untuk mencoba mencari tahu IP Address dari host name yang telah di input manual.
6. yang terakhir terdapat syntax "if (i > 0) System.out.print(".");
System.out.print((ip[i]) & 0xff);
}
System.out.println();" perintah ini adalah kondisi dimana bila nilai I lebih besar dari 0 maka program akan mencetak "Unknown host" dengan perintah "System.out.println();"  untuk mencatak

Cara melihat nama host (dengan getName)

sebenarnya cara yang lebih mudah adalah menggunakan CMD (Command Prompt) ketikkan perintah "hostname" untuk OS windows.

cara melihat nama host atau nama komputer pribadi dengan menggunakan script java.
yang pertama harus dilakukan adalah pastikan bahwa java sudah terinstal dan sudah di path pada komputer anda.
lalu ketikkan script di bawah ini dengan notepad/notepad++. simpan dengan nama getName.java

script java getName
lalu buka command prompt dengan cara masuk ke Run (Logo Windows + R), kemudian ketikkan CMD, dan klik OK. terlihat seperti gambar di bawah ini :


lalu jalankan program di cmd dengan cara ketik "javac getName,java" lalu "java getName". maka nama hostname komputer kita akan di tampilkan.


Penjelasan Script Program :

1. Pada baris pertama terdapat perintah "import java.net.*;" ini adalah package java yang berfungsi untuk mendukung program/socket jaringan pada java.
2. pada baris kedua terdapat syntax "public class getName {" adalah nama class dan script ini harus disimpan dengan nama yang sama dengan classnya.
3. Pada baris ke-5 terdapat perintah "InetAddress host = null;" digunakan untuk mendeklarasikan InetAddress bernilai null kemudian host akan di dapatkan dari nilai InetAddress. kelas ini dideklarasikan dengan objek baru yaitu host.
4. pada baris ke-6 terapat perintah "host = InetAddress.getLocalHost();" yang fungsinya untuk memanggil fungsi untuk menyimpan hostname dan local adsress.
5. yang terakhir terdapat syntax "System.out.println("Nama komputer Anda: " +
host.getHostName());" perintah ini digunakan untuk mencetak tulisan yang berada di dalam tanda kutip dan +hostname yang telah dipanggil dengan perintah host.getHostName.

Cara mengetahui IP address (dengan getIP)

 Cara menampilkan IP address dengan dengan menggunakan script java.
sebenarnya ada cara yang lebih  mudah melihat IP address melalui CMD (Command Prompt) caranya adalah ketik "ipconfig" untuk OS windows dan "ifconfig" untuk OS linux

cara menampilkan IP addres dengan java script langkah-langkahnya adalah sebagai berikut :
1. install package java di komputer anda
2. path java
3. tulis script di bawah ini di notepad/ notepad++ atau anda bisa juga menjalankan script ini di IDE Netbeans.

script java getIP
4. simpan script dengan nama getIP.java
5. buka comman prompt dan buka folder dimana kita meletakkan script tadi. lalu compile script tadi dengan perintah "javac getIP.java" lalu jalankan program dengan perintah "java getIP".
6. jika program berhasil di jalankan maka akan muncul tampilan seperti di bawah ini :

tampilan cmd
IP komputer saya adalah 10.16.25.96.

Penjelasan Script.
1. pada baris pertama terdapat "import java.net.*;"ini adalah package java yang berfungsi untuk mendukung program/socket jaringan pada java.
2. pada baris kedua terdapat "public class getIP {" ini adalah nama class dan script ini harus disimpan dengan nama yang sama dengan classnya
3. pada baris ke-4 ada host = InetAddress.getLocalHost(); yang fungsinya untuk memanggil kelas InetAddress pada java yang berisi perintah untuk berbagai macam fungsi jaringan. Kelas ini dideklarasikan dengna objek baru yaitu host.
4. pada baris 7-12 terdapat perintah for (int i=0; i<ip.length; i++) { if (i > 0) { System.out.print("."); }System.out.print(ip[i] & 0xff);} yang berfungsi untuk mengambil hostname dan local address lalu diterjemahkan di byte IP ke dalam mode 0xff dan mencetaknya.


Membangun Aplikasi Client-Server TCP Sederhana

kali ini saya akan menyampaikan tutorial untuk membuat aplikasi client-server sederhana dengan menggunakan script java. Jadi mekanismenya seperti ini, setelah kita mengcompile simpleserver.java maka programa akan meminta user untuk memasukkan kata kunci yang telah di deklarasikan, setelah user menginput kata kunci yang benar, server akan menerima dan merespon. Intinya program ini membuat sebuah client dan sebuah server yang bisa saling chating.

untuk membuat program ini pertama ketik dan simpan script berikut di notepad/notepad++

SimpleServer.java
pada listing SimpleServer.java di atas  merupakan program server yang digunakan untuk melayani yang diminta oleh client. Saat Program dijalankan berhasil maka akan muncul kalimat "Aplikasi server hidup".
Java.io merupakan singkatan dari Input Output yang melibatkan masukan dari peralatan input (nantinya program akan meminta kata kunci dan user harus menginput secara manual) ,sedangkan output akan menampilkan data kepada user.

SimpleClient.java


Listing program SimpleClient.java merupakan program client untuk mengirim pesan atau meminta data kepada server. program SimpleClient akan meminta masukan kata kunci yang sebelumnya telah di deklarasikan. Kata kunci disini adalah Assalamualaikum dan jika user salah memasukkan kata kunci maka program akan menampilkan kalimat "maaf,saya tidak mengerti"

*untuk menjalankan program, script SimpleServer harus terlebih dulu di eksekusi.
komputer client dapat membaca data yang dikirim oleh server dari client socketnya lalu program akan menampilkannya di monitor,setelah itu client dapat mengirimkan inputan kepada server lalu server membaca pesan yang dikirim oleh client.

Berikut adalah cara menjalankan programnnya :

pertama yang harus dilakukan adalah pastikan bahwa java sudah terinstal dan sudah di path pada komputer anda lalu buka command prompt dengan cara masuk ke Run (Logo Windows + R), kemudian ketikkan CMD, dan klik OK. terlihat seperti gambar di bawah ini :


lalu lihat gambar tampilan cmd di bawah ini :
Output SimpleServer.java

Output SimpleClient.java

Sunday, May 21, 2017

PARALLEL COMPUTATION #PKM



Komputasi Paralel.

paralel dalam Kamus Besar Bahasa Indonesia artinya sejajar.
dari arti paralel tersebut dapat ditarik kesimpulan bahwa komputasi paralel adalah proses yang menjalankan perintah yang sama atau sejajar secara bersama-sama.

sedangkan menurut buku Pemrograman Paralel karya Barry Wilkinson dan Michael Allen,
komputasi paralel adalah komputasi yang dapat di bagi kedalam sejumlah bagian yang masing-masing bisa berdiri sendiri.
Tiap-tiap bagian tersebut dapat dieksekusi oleh prosesor yang terpisah. Kompitasi paralel bisanya dibutuhkan saat kapasitas yang di perlukan sangat besat, contohnya pada insdutri medis dan insustri keuangan. Untuk membuat komputasi paralel yang dibutuhkan adalah infrastruktur mesin paralel yang tersiri dari banyak komputer-komputer yang dihubungkan secara paralel, sehingga mampu menyelesaikan masalah-masalah.


Apa itu Komputer Paralel

 Kompuutasi Paralel Ideal
komputasi paralel ideal adalah salah satu dari pemrograman paralel yang dapat dibagi segera kedalam bagian yang sepenuhnya independen, yang dapat di eksekusi secara bersamaan.
gambaran itu disebut Embarassingly Paralel (Istilah ini disebutkan oleh Geoffrey Fox; Wilson, 2995) atau mungkin lebih tepat disebut naturally parallel (Paralel alami).

Gambar Komputasi yang tidak terhubung ( Embarassingly Paralel Problem)
sumber : buku "Pemrograman Paralel"

 Perbedaan Komputasi Tunggal dan Paralel
komputasi tunggal menggunakan 1 buah processor untuk mengolah kegiatan komputasi sedangkan komputasi paralel menggunakan beberapa processor. Ada 4 buah model komputasi yang digunakan yaitu :

Komputer SISD ( Single Instruction Single Data )

SISD adalah satu-satunya model komputasi yang menggunakan arsitektur Von Neumann. Model ini hanya menggunakan 1 Processor saja sehingga di masukkan kedalam golongan komputasi tunggal. Contoh komputer yang menggunakan model Komputasi ini adalah UNIVAC1, IBM 360, CDC 7600, CRAY 1 dan PDP1.
UNIVAC 1 ( Universal Automatic Computer 1 )
Sumber : Geekshive.com

SIMD ( Single Instruction Multiple Data )


SIMD menggunakan banyak processor dengan instruksi yang sama.
 contoh untuk mencari angka 15 dari deretan angka yang terdiri dari 50 angka dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan perintah/algoritma yang sama, tapi data yang di proses berbeda. Misal processor 1 mengolah data dari urutan pertama hingga urutan ke-10, processor kedua mengolah data dari urutan ke 22 hingga ke 20 begitu seterusnya dengan processor lain.Contoh komputer yang menggunakan model SIMD adalah ILLIAC V, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan cell Processor (GPU).

Cray Y-MP
Sumber : Calit2.net
MISD (  Multiple Instruction Single Data )

MISD menggunakan banyak processor, setiap processor menggunakan instruksi berbeda tapi mengolah data yang sama.
 MISD adalah kebalikan dari SIMD. Contoh kasusnya kita bisa menggunakan contoh kasus pada SIMD tapi cara penyelesaiannya berbeda.
*sampai saat ini belum ada komputer yang menggunakan model MISD*

MIMD (  Multiple Instruction Multiple Data )


MIMD menggunakan banyak processor, setiap processor memiliki instruksi/ perintah yang berbeda dan mengolah data yang berbeda. Saat ini banyak komputer yang menggunakan model MIMD sekaligus menggunakan model SIMD.
contoh komputer yang menggunakan model MIMD adalah IDM POWER5, HP/Compaq Alpha Server, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L
Intel IA32
sumber: chipseetc.com
Illustrasi Komputasi Tunggal
Sumber : Lipi.go.id
Gambar di atas adalah illustrasi dari cara kerja komputasi tunggal, komputasi tunggal menggunakan 1 processor sehingga pemrosesan akan memakan waktu yang lama. Terlebih lagi jika instruksi yang dilakukan dalam jumlah banyak.

Illustrasi Komputasi Paralel
Sumber : Lipi.go.id
dan gambar di atas yaitu komputasi paralel, instruksi akan di bagi menjadi beberapa instruksi sesuai banyaknya processor dan tentunya akan mempercepat kerja komputer dan menghemat waktu.

Tujuan Komputasi Paralel

  1. Meningkatkan Performa Komputasi
  2. Dapat memecahkan masalah yang lebih besar
  3. menghemat waktu
  4. Troughput atau keluaran jadi lebih tinggi.


Penjelasan Tentang Komputasi Paralel


Komputasi Paralel : 
Referensi:

Saturday, April 22, 2017

Quantum Computation #PKM

Pada artikel ini akan dijelaskan mengenai Quantum Computing (Komputer Quantum) mulai dari Pengertian Quantum Computing, Algoritma Quantum Computing dan Implementasi Quantum Computing.



A.  Pengertian Quantum Computing 

Apakah Quantum Computing atau Komputer Quantum itu ?

Secara definisi, komputer quantum adalah komputer yang memanfaatkan fenomena-fenomena dari mekanika quantum, seperti quantum superposition dan quantum entanglement dalam proses komputasi data. 

Komputer quantum dapat jauh lebih cepat dari komputer konvensional pada banyak masalah, salah satunya yaitu masalah yang memiliki sifat berikut:
1. Satu-satunya cara adalah menebak dan mengecek jawabannya berkali-kali
2. Terdapat n jumlah jawaban yang mungkin
3. Setiap kemungkinan jawaban membutuhkan waktu yang sama untuk mengeceknya
4. Tidak ada petunjuk jawaban mana yang kemungkinan benarnya lebih besar: memberi jawaban dengan asal tidak berbeda dengan mengeceknya dengan urutan tertentu. 


Jadi bisa disimpulkan bahwa komputer quantum itu adalah komputer yang lebih canggih dari komputer biasa karena pada komputer quantum telah menggunakan prinsip-prinsip atau metode metode quantum.

B.  Sejarah Komputer Quantum

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. Feynmandari 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 danalgoritma grover.

C.  Algoritma Quantum Computing

Komputer Quantum menggunakan beberapa algoritma, dua buah contoh algoritma nya yaituAlgoritma Shor dan Algoritma Grover. berikut adalah penjelasannya: 

Algoritma Shor
Algoritma Shor merupakan 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 sehingga hanya membutuhkan rata-rata, sekitar akar N persegi  pencarian untuk menemukan hasil yang diinginkan, sebagai lawan pencarian dalam komputasi klasik, yang pada kebutuhan rata-rata N / 2 pencarian. N adalah jumlah total elemen.

Algoritma Shor didasarkan dari sebuah teori bilangan: fungsi F(a) = xamod n adalah feungsi periodik jika x adalah bilangan bulat yang relatif prima dengan n. Dalam Algoritma Shor, n akan menjadi bilangan bulat yang hendak difaktorkan. Pada masalah ini algoritma quantum shor memanfaatkan pararellisme quantum untuk melakukannya hanya dengan satu langkah. Karena F(A) adalah fungsi periodik, maka fungsi ini memiliki sebuah periode r. Diketahui x0mod n = 1, maka xr mod n =1, begitu juga x2r mod n dan seterusnya. 

Algoritma Grover 
Algoritma Grover adalah 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 ) . Lov Grover dirumuskan itu pada tahun 1996 . Dalam model komputasi klasik , mencari database unsorted tidak dapat dilakukan dalam waktu kurang dari waktu linier (jadi hanya mencari melalui setiap item optimal ) .

Algoritma Grover menggambarkan bahwa dalam model kuantum pencarian dapat dilakukan lebih cepat dari ini ; sebenarnya waktu kompleksitas O ( N1 / 2 ) adalah asimtotik tercepat mungkin untuk mencari database unsorted dalam model kuantum linear . Ini menyediakan percepatan kuadrat , seperti algoritma kuantum lainnya , yang dapat memberikan percepatan eksponensial atas rekan-rekan mereka klasik . Namun, bahkan percepatan kuadrat cukup besar ketika N besar .

Seperti banyak algoritma kuantum , algoritma Grover adalah probabilistik dalam arti bahwa ia memberikan jawaban yang benar dengan probabilitas tinggi . Kemungkinan kegagalan dapat dikurangi dengan mengulangi algoritma. ( Sebuah Contoh Bahasa dari algoritma kuantum deterministik adalah algoritma Deutsch - Jozsa , Yang Selalu menghasilkan jawaban Yang BENAR).

D.  Implementasi Quantum Computing

Pada 19 Nov 2013 Lockheed Martin , NASA dan Google semua memiliki satu misi yang sama yaitu mereka semua membuat komputer kuantum sendiri . Komputer kuantum ini adalah superkonduktor chip yang dirancang oleh sistem D - gelombang dan yang dibuat di NASA Jet Propulsion Laboratories. NASA dan Google berbagi sebuah komputer kuantum untuk digunakan di Quantum Artificial Intelligence Lab menggunakan 512 qubit D -Wave Two yang akan digunakan untuk penelitian pembelajaran mesin yang membantu dalam menggunakan jaringan syaraf tiruan untuk mencari set data astronomi planet ekstrasurya dan untuk meningkatkan efisiensi searchs internet dengan menggunakan AI metaheuristik di search engine heuristical.

A.I. seperti metaheuristik dapat menyerupai masalah optimisasi global mirip dengan masalah klasik seperti pedagang keliling, koloni semut atau optimasi swarm, yang dapat menavigasi melalui database seperti labirin . Menggunakan partikel terjerat sebagai qubit , algoritma ini bisa dinavigasi jauh lebih cepat daripada komputer konvensional dan dengan lebih banyak variabel. Dengan menggunakan desentralisasi, segerombolan kuantum AI, dimungkinkan untuk mensimulasikan perilaku muncul juga, seperti Langton itu semut, yang bisa melihat munculnya kecerdasan simulasi berbasis kuantum yang bisa pergi sejauh untuk menciptakan robot selular realistis pada komputer. Penggunaan metaheuristik canggih pada fungsi heuristical lebih rendah dapat melihat simulasi komputer yang dapat memilih sub rutinitas tertentu pada komputer sendiri untuk memecahkan masalah dengan cara yang benar-benar cerdas. Dengan cara ini mesin akan jauh lebih mudah beradaptasi terhadap perubahan data indrawi dan akan mampu berfungsi dengan jauh lebih otomatisasi daripada yang mungkin dengan komputer normal.

Selain itu, dimungkinkan untuk menggunakan metaheuristik untuk melakukan koreksi kesalahan pada perangkat lunak menggunakan jaringan syaraf tiruan dengan membandingkan pemecahan sebuah komputer kuantum dengan perangkat lunak program reguler dari komputer biasa masalah dioptimalkan. Karena komputer biasa tidak kuantum mekanik, mereka harus diprogram klasik. Namun, dengan menggunakan metaheuristik kuantum dimungkinkan untuk melakukan optimasi masalah menggunakan kecerdasan buatan pada sebuah komputer kuantum dan kemudian dibandingkan dengan arsitektur baris perintah dalam software konvensional pada komputer klasik , yang mungkin terlalu rumit untuk memodifikasi atau untuk memeriksa untuk kesalahan menggunakan perangkat lunak insinyur manusia.