Minggu, 21 Mei 2017

Koneksi server dan client pada java

Kali ini saya akan menjelaskan bagaimana cara server dan client terkoneksi dengan menggunakan bahasa pemrograman java. Berikut Listingnya :

simpleServer.java



simpleClient.java



Logika Program :

Listing diatas Import java.io.*; merupakan singkatan dari Input Output. Input melibatkan masukan data dari peralatan input, sedangkan output akan menampilkan data kepada pengguna. Java mendukung mekanisme input output di dalam package java.io. Public class simpleServer/simpleClient merupakan nama dari class tersebut. Variable atau method yang dideklarasikan dengan perintah static dapat dipanggil langsung tanpa perlu membuat instance dari class tersebut.
pada listingan selanjutnya akan menerapkan 5000 testport untuk server dan 5000 untuk client. "Public static void main (String args []) throws Exception" yang artinya menerangkan kata public, jadi dapat di akses di dalam kelas maupun di luar kelas. dan void artinya kosong atau dia tidak mempunyai nilai balik. Listingan diatas, terdapat bufferedreader untuk membaca kepada user. Setiap kata yang tercetak adalah kata yg diketik client. Jika salah maka akan keluar  dan server akan merusult pada program. pada program server, akan melakukan pengecekan dengan listing checkServer dan memastikan server akan hidup. Setelah itu server akan menunggu inputan pada perintah Line. Jika benar maka akan di jawab "salam juga", jika salah maka akan tercetak "maaf, saya tidak mengerti". Sedangkan pada program client terdapat kata kunci yang akan dihubungkan kepada server. benar atau tidaknya program tergantung pada kata kunci yang dimasukan dan di tampung pada variabel line.

Cara menjalankan program :
Pertama-tama buka terlebih dahulu 2 Command Prompt (CMD) lalu masuk kedalam folder tempat dimana kita menyimpan program tersebut. Setelah itu ketik di CMD "javac simpleServer.java" lakukan hal yang sama pada simpleClient. Setelah berhasil dan program tidak ada yang eror ketik lagi "java simpleServer" lakukan hal yang sama dengan mengetikan "java simpleClient" maka nama host laptop / PC kita akan muncul. berikut Outputnya : 

Output :



Cara menampilkan IP Address menggunakan host name dengan program java.

Kali ini saya akan menjelaskan bagaimana cara menampilkan IP Address Laptop menggunakan  Host Name dengan bahasa pemrograman java. Berikut Listingnya 



Logika Program :

Listingan di atas adalah source code dalam bahasa pemrograman java. "import java.net" adalah library yang kita gunakan untuk menyambungkan ke socket / jaringan. "Public class NsLookup" adalah nama class tersebut yang kita pakai, jika kita ingin menyimpan program tersebut, maka kita harus menyimpannya dengan nama "NsLookup.java". "Public static void main (String args []) throws Exception" yang artinya menerangkan kata public, jadi dapat di akses di dalam kelas maupun di luar kelas. dan void artinya kosong atau dia tidak mempunyai nilai balik."if (args.length == 0)" pada listingan ini digunakan percabangan "IF" dan jika panjang variable tersebut sama dengan nol maka program benar. kemudian listing selanjutnya "address = InetAddress.getByName" adalah untuk mendeklarasikan dengan nilai nul dan akan di hubungkan pada perulangan try-catch untuk mengambil alamat IP tersebut kemudian ditampung dalam address.getAddress. Setelah di tampung, maka akan dicetak dengan perintah "System.out.println((ip[i]) & 0xff);".  dan akan tercetak alamat IP yg diambil dari nama host tersebut.

Cara menjalankan Program :
Pertama-tama buka terlebih dahulu Command Prompt (CMD) lalu masuk kedalam folder tempat dimana kita menyimpan program tersebut. Setelah itu ketik di CMD "javac NsLookup.java" setelah berhasil dan program tidak ada yang eror ketik lagi "java NsLookup" maka nama host laptop / PC kita akan muncul. berikut Outputnya : 
ingat untuk melakukan pengompile yang benar maka kita harus mengetik "java NsLookup USERs"  maka output yang benar akan keluar seperti gambar di bawah ini. 



Maka akan terlihat ip address laptop / pc kita dengan cara memanggil nama host. ingat, java adalah key sensitive jadi harus di perhatikan besar dan kecilnya huruf tersebut.

Cara Menampilkan nama host menggunakan alamat IP Address dengan program java.

Kali ini saya akan menjelaskan bagaimana cara menampilkan Nama Host Laptop menggunakan  IP Address dengan bahasa pemrograman java. Berikut Listingnya :


Logika Program :

Listingan di atas adalah source code dalam bahasa pemrograman java. "import java.net" adalah library yang kita gunakan untuk menyambungkan ke socket / jaringan. "Public class IPtoName" adalah nama class tersebut yang kita pakai, jika kita ingin menyimpan program tersebut, maka kita harus menyimpannya dengan nama "IPtoName.java". "Public static void main (String args []) throws Exception" yang artinya menerangkan kata public, jadi dapat di akses di dalam kelas maupun di luar kelas. dan void artinya kosong atau dia tidak mempunyai nilai balik. "if (args.length == 0)" pada listingan ini digunakan percabangan "IF" dan jika panjang variable tersebut sama dengan nol maka program benar. kemudian listing selanjutnya "address = InetAddress.getByName" adalah untuk mendeklarasikan dengan nilai nul dan akan di hubungkan pada perulangan try-catch untuk mengambil nama host tersebut kemudian ditampung dalam address getByName. Setelah di tampung, maka akan dicetak dengan perintah "System.out.println(address.getHostName{})". 

Cara menjalankan program:
Pertama-tama buka terlebih dahulu Command Prompt (CMD) lalu masuk kedalam folder tempat dimana kita menyimpan program tersebut. Setelah itu ketik di CMD "javac IPtoName.java" setelah berhasil dan program tidak ada yang eror ketik lagi "java IPtoName" maka nama host laptop / PC kita akan muncul. berikut Outputnya : 

Output:


Output diatas belum berjalan dengan benar. kita harus mengomplie ulang dengan cara "java IPtoName IPaddress". Output yang benar maka akan muncul seperti ini :


Maka akan terlihat nama host laptop / pc kita. ingat, java adalah key sensitive jadi harus di perhatikan besar dan kecilnya huruf tersebut.

Cara Menampilkan IP Address dengan Java

Kali ini saya akan menjelaskan bagaimana cara menampilkan IP Address kita di Laptop / Pc dengan menggunakan bahasa pemrograman java. Berikut Listingnya :



Logika Program :


Listingan di atas adalah source code dalam bahasa pemrograman java. "import java.net" adalah library yang kita gunakan untuk menyambungkan ke socket / jaringan. "Public class getIP" adalah nama class tersebut yang kita pakai, jika kita ingin menyimpan program tersebut, maka kita harus menyimpannya dengan nama "getIP.java". "Public static void main (String args []) throws Exception" yang artinya menerangkan kata public, jadi dapat di akses di dalam kelas maupun di luar kelas. dan void artinya kosong atau dia tidak mempunyai nilai balik"InetAddress host = null;" berhubungan dengan sintaks "host = InetAddress.getLocalHost();" karena listing tersebut akan mendeklarasikan dan akan mengambil informasi pada host laptop/pc kita. "byte ip [] = host.getAddress ();" medeklarasikan IP dengan tipe data byte dan memakai array. Dengan listingan diatas dapat dikatakan jika percabangan telah terpenuhi akan dipisahkan oleh simbol titik. 

cara menjalankan program:

Pertama-tama buka terlebih dahulu Command Prompt (CMD) lalu masuk kedalam folder tempat dimana kita menyimpan program tersebut. Setelah itu ketik di CMD "javac getIP.java" setelah berhasil dan program tidak ada yang eror ketik lagi "java getIP" maka nama host laptop / PC kita akan muncul. berikut Outputnya : 


output

Cara Menampilkan Nama Host Pada Laptop/PC menggunakan Java.

Kali ini saya akan menjelaskan bagaimana cara menampilkan nama host kita di Laptop / Pc dengan menggunakan bahasa pemrogramannya. Berikut Listingnya :



Logika Program 

Listingan di atas adalah source code dalam bahasa pemrograman java. "import java.net" adalah library yang kita gunakan untuk menyambungkan ke socket / jaringan. "Public class getName" adalah nama class tersebut yang kita pakai, jika kita ingin menyimpan program tersebut, maka kita harus menyompannya dengan nama "getName".  Selanjutnya adalah sintaks "Public static void main (String args []) throws Exception" yang artinya menerangkan kata public, jadi dapat di akses di dalam kelas maupun di luar kelas. dan void artinya kosong atau dia tidak mempunyai nilai balik. "InetAddress host = null;" berhubungan dengan sintaks "host = InetAddress.getLocalHost();" karena listing tersebut akan mendeklarasikan dan akan mengambil informasi pada host laptop/pc kita. " System.out.println ("nama komputer anda : "+ host.getHostName()): " yang berarti akan mencetak kalimat yang berada didalam tanda kutib tersebut dan akan memanggil host yg sudah di deklarasikan tadi. 

Cara Menjalankan Program

Pertama-tama buka terlebih dahulu Command Prompt (CMD) lalu masuk kedalam folder tempat dimana kita menyimpan program tersebut. Setelah itu ketik di CMD "javac getName.java" setelah berhasil dan program tidak ada yang eror ketik lagi "java getName" maka nama host laptop / PC kita akan muncul. berikut Outputnya :

Output

maka akan terlihat nama host laptop / pc kita. ingat, java adalah key sensitive jadi harus di perhatikan besar dan kecilnya huruf tersebut. 

Selasa, 16 Mei 2017

*Parallel Computation*


ARTIKEL PARALLEL COMPUTATION

PENDAHULUAN

Parallel computing muncul ketika komputer membawa lebih dari satu task secara simultan (bersamaan). Teknik ini dapat memungkinkan komputer bekerja secara lebih cepat dibandingkan dengna melakukannya secara sekaligus, seperti halnya seseorang dengan dua tangan dapat menyelesaikan lebih banyak pekerjaan dengan orang yang hanya menggunakan satu tangan saja. 
dalam bahasa indonesia komputasi bisa diarikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. hal ini ialah apa itu teori komputasi. komputasi paralel itu sendiri yaitu melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. komputasi paralel itu sendiri membutuhkan : 
- Algoritma
- Bahasa Pemrograman
- Compiler 

program komputer paralel lebih susah untuk dibangun dibandingkan dengan program komputer serial, hal ini disebabkan keserempakan menimbulkan masalah yang potensial di dalam membagi pekerjaan menjadi subpekerjaan dan menggabungkan kembali subpekerjaan tersebut menjadi hasil oleh perangkat lunak, diantaranya kondisi berebut (race condition). komunikasi dan sinkronisasi diantara unit pemroses (processing unit) menjadi satu diantara tantangan terbesar untuk menghasilkan program paralel dengan performa yang baik. 


SEJARAH

Pada tahun 1958, peneliti IBM, yang bernama John Cocke dan Daniel Slotnick membahas tentang pemanfaatan paralelisme di dalam komputasi numerik untuk pertama kalinya. Burroughs Coporation memperkenalkan D825 pada tahun 1962, sebuah komputer dengan empat buah prosessor yang mengakses 16 modul memori dengan bantuan skalar bar-silang (cossbar switch).

PENGERTIAN KOMPUTASI PARALEL
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.

Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Tidak berarti dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan diolah secara parallel.


PEMROGRAMAN PARALEL

Teknik pemrograman komputer yang memungkinkan eksekusi perintah atau operasi secara bersamaan baik dalam komputer dengan satu (prosessor tunggal) ataupun banyak (prosessor ganda dengan mesin paralel) CPU. bahasa pemrograman yang digunakan pada pemrograman paralel : 

1. MPI (Message Passing Interface)
yaitu sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel. kegunaan MPI : 
> menyediakan fungsi-fungsi untuk menukar pesan
> menulis kode paralel secara portable
> mendapatkan performa yang tinggi dalam pemrograman paralel
> menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang
   tidak begitu cocok dengan model data paralel
implementasi MPI :
MPICH (MPI/Chameleon) MPICH2 adalah implementasi Message Passing Interface (MPI), yang merupakan standar spesifikasi library untuk program message-passing, yang diajukan sebagai standar oleh vendor, implementor dan user. 

2. PVM (Parallel Virtual Machine)
suatu standar protokol yang digunakan untuk pemrograman paralel dan terdistribusi, proses pertukaran pesan atau data antar proses adalah dengan mengirimkan pesan melalui media komunikasi. model ini juga dapat diimplementasikan pada bermacam-macam plattform seperti shared memory.  
Distributed Processing
Kata didistribusikan dalam istilah seperti "sistem terdistribusi", "didistribusikan pemrograman", dan "algoritma terdistribusi" awalnya merujuk pada jaringan komputer dimana setiap komputer yang didistribusikan secara fisik dalam beberapa wilayah geografis. Istilah yang saat ini digunakan dalam lebih luas akal, bahkan mengacu pada proses otonom yang dijalankan pada komputer fisik yang sama dan berinteraksi satu sama lain dengan pesan.



MODEL KOMPUTASI PARALEL


  •  Embarasingly Parallel adalah pemrograman paralel yang digunakan pada masalah
   masalah yang bisa diparalelkan tanpa membutuhkan komunikasi satu sama lain.
   Sebenarnya pemrograman ini bisa dibilang sebagai pemrograman paralel yang ideal,
   karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai.
  •  Taksonomi dari model pemrosesan paralel dibuat berdasarkan alur instruksi dan alur data
    yang digunakan:

1. SISD

Single Instruction – Single Data. Komputer jenis ini hanya memiliki satu prosesor ( single processor ). Dimana semua instruksi di eksekusi secara serial ( terurut satu demi satu ) dan memungkinkan adanya overlapping di setiap bagian instruksi dalam pelaksanaan eksekusi. Komputer ini adalah tipe komputer konvensional. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP.

2.  SIMD
Single Instruction – Multiple Data. Komputer jenis ini hanya dapat mengeksekusi satu instruksi dan memiliki lebih dari satu prosesor. Satu eksekusi dilakukan secara paralel pada data yang berbeda pada level lock-step. Komputer vektor adalah salah satu komputer paralel yang menggunakan arsitektur ini. 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
Multiple Instructions – Single Data. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk penelitian. Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami.

4.  MIMD
Multiple Instructions – Multiple Data. Komputer jenis ini dapat mengeksekusi lebih dari satu instruksi secara paralel dengan lebih dari satu prosesor. Tipe komputer ini yang paling banyak digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

JENIS-JENIS KOMPUTASI PARALEL

Berdasarkan tingkatan perangkat keras yang mendukung paralelisme, secara umum komputer-komputer paralel dapat diklasifikasikan:
1. Multicore processing
Merupakan prosesor yang memiliki beberapa unit pengeksekusi. Sebuah prosesor multicore dapat melakukan beberapa instruksi per siklus dari beberapa aliran instruksi.
2. Symmetric multiprocessing
Merupakan sebuah sistem komputer dengan beberapa prosesor yang identik, dapat menggunakan struktur berbagi memori atau memori tersendiri yang saling terhubung melalui bus.
3. Distributed computing
Merupakan sebuah sistem komputer dengan memori terdistribusi, dimana masing-masing elemen pemrosesan dihubungkan oleh jaringan.
4. Cluster computing
Merupakan sekumpulan komputer yang bekerja sama,dihubungkan oleh jaringan, sehingga dapat dipandang sebagai sebuah kesatuan, cluster komputer ini dikoordinasi oleh sebuah komputer induk yang bertugas untuk mendistribusikan pekerjaan kepada masing-masing komputer lainnya.
5. Massive parallel processing
Merupakan sebuah komputer tunggal dengan banyak prosesor yang terhubung dalam sebuah jaringan. Di dalam MPP, tiap CPU mempunyai memory tersendiri, sistem operasi dan aplikasi yang sama. Tiap subsistem berkomunikasi satu dengan yang lainnya melalui interkoneksi berkecepatan tinggi.
6. Grid computing
Merupakan bentuk pemrosesan paralel yang paling terdistribusi. Grid computing memanfaatkan Internet sebagai saluran komunikasi antar komputer untuk menyelesaikan suatu permasalahan.
7. Specialized parallel computer
Komputer paralel yang dikhususkan untuk menyelesaikan tugas khusus.

PENERAPAN KOMPUTASI PARALEL

Penerapan Komputasi Paralel Bisa di terapkan pada Bidang Ilmu Pengetahuan & Teknik komputasi paralel telah dianggap sebagai “high end computing”, dan telah digunakan untuk memodelkan masalah sulit dalam banyak bidang ilmu pengetahuan dan teknik , sebagai contoh di terapakan pada :
  • Ilmu Fisika
  • Bioteknologi
  • Bioscience
  • Pembuatan Pesawat Luar Angkasa pada Bidang Teknik
  • Pembuatan Circuit Untuk Elektronik
Penerapan Komputasi Juga diterapakan pada Industri dan Komersial, aplikasi komersial memberikan kekuatan pendorong sama atau lebih besar dalam pengembangan komputer yang lebih cepat. Aplikasi ini memerlukan pengolahan data dalam jumlah besar dengan cara yang canggih. Sebagai contoh:
  • Web search engines, web based business services
  • Databases, data mining
  • Networked video and multi-media technologies
Batas untuk komputasi serial: alasan baik fisik dan praktis menimbulkan kendala yang signifikan untuk hanya membangun yang lebih cepat komputer serial:
Kecepatan transmisi – kecepatan komputer serial langsung tergantung pada seberapa cepat data dapat bergerak melalui perangkat keras. Mutlak batas adalah kecepatan cahaya (30 cm / nanodetik) dan batas transmisi kawat tembaga (9 cm / nanodetik). Meningkatkan kecepatan memerlukan peningkatan kedekatan elemen pemrosesan.
Limits to miniaturisasi – teknologi prosesor memungkinkan peningkatan jumlah transistor untuk ditempatkan pada sebuah chip. Namun, bahkan dengan komponen molekul atau atom-tingkat, batas akan dicapai pada bagaimana komponen kecil dapat.
Keterbatasan ekonomi – maka semakin mahal untuk membuat satu prosesor yang lebih cepat. Menggunakan sejumlah besar prosesor komoditas cukup cepat untuk mencapai hal yang sama (atau lebih baik) kinerja lebih murah.Arsitektur komputer saat ini semakin mengandalkan perangkat keras tingkat paralelisme untuk meningkatkan kinerja.

Core


Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
Kinerja komputasi dengan menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yang ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer saja. Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan membagi-bagi tugas untuk masing-masing CPU tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk masalah yang besar saja, komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja.

SUMBER :
http://amilbayu.blogspot.co.id/2016/06/tugas-4-artikel-paralel-computation_27.html
https://valkriye.wordpress.com/2013/06/14/pengenalan-sederhana-tentang-komputasi-paralel/
https://www.google.co.id/?gws_rd=cr,ssl&ei=yPwaWaCMIYyEvQSUh5X4Cw#q=artikel+komputasi+paralel