Rabu, 07 Juni 2017

TUGAS 1 PEMROGRAMAN JARINGAN

Listing Program Get IP

Logika Program
Blok program diatas merupakan blok program tentang pengambilan IP Address. Blok program tersebut menggunakan package import.java.net dengan nama kelas getIP. Nama kelas ini nanti akan dijadikan juga sebagai nama file saat disimpan agar pada saat melakukan compile program java sudah mengetahui file tersebut. Pada blok program ini dideklarasikan variabel host dengan nilai null, kemudian terdapat perintah .getLocalHost(); yang akan digunakan oleh variabel host untuk mengambil nilai IP. Kemudian ada variabel ip yang merupakan memilki array dia akan menyimpan nilai dari variabel host. Maka ketika program di jalankan maka akan muncul Ip Address local yang diberikan oleh ISP atau Ip Address yang dibuat sendiri.
Output Program

Listing Program Get Name

Logika Program
Blok program diatas merupakan blok program tentang pengambilan nama pada user. Package yang digunakan pada blok program ini masih sama seperti blok program sebelumnya, kali ini dengan nama kelas getName. Nama kelas ini nanti akan dijadikan juga sebagai nama file saat disimpan agar pada saat melakukan compile program java sudah mengetahui file tersebut. Pada blok program ini dideklarasikan variabel host dengan nilai null, kemudian terdapat perintah .getLocalHost(); yang akan digunakan oleh variabel host untuk mengambil nilai IP. Maka ketika program di jalankan akan muncul Nama user yang sesuai dengan localhostnya.
Output Program

Listing Program IP to Name

Logika Program
Blok program diatas menjelaskan tentang package import java.net.*; yang didalam package tersebut berisi kelas yang memperbolehkan program berkomunikasi melalui jaringan. Pada blok program ini terdapat juga kondisi dimana jika kondisi benar maka akan mencetak nama user berserta IP Addressnya. Kemudian program masuk ke kondisi try-catch dimana program akan mengecek terjadinya kesalahan jika terjadi kesalahan maka program akan memberikan output kesalahan berupa akan muncul invalid IP – malformed IP.
Output Program

Listing Program NsLookup

Logika Program
Blok program ini hampir sama dengan blok program sebelumnya, menjelaskan tentang package import java.net.*;. Didalam blok program ini juga terdapat kondisi, hanya saja pada blok program ini jika kondisi benar maka akan mencetak IP Addressnya. Setelah itu program melakukan eksekusi try-catch untuk mengecek jika terdapat kesalahan pada program. Jika terjadi kesalahan maka akan muncul invalid IP – malformed IP.
Output Program

Listing Program simpleServer

Logika Program
Blok program diatas merupakan blok program yang menjelaskan tentang package java.io. Package ini digunakan untuk melakukan input output. Blok program ini dijelakan juga tentang package java. Net.* paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan pada sisi server. Jika eksekusi try-catch dapat dijalankan dengan benar maka program ini akan menghidupkan aplikasi servernya, program ini akan mencari kata-kata ‘salam’ sebagai kata kuncinya.
Output Program

Listing Program simpleClient

Logika Program
Blok program diatas merupakan blok program yang menjelaskan tentang package java.io. Package ini digunakan untuk melakukan input output. Blok program ini dijelakan juga tentang package java. Net.* paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan pada sisi server. Program client akan jalan jika program server sudah dirunning terlebih dahulu. Setelah server sudah jalan maka client bisa mengirim pesan ‘salam’. Jika tidak akan muncul tulisan aplikasi server hidup.
Output Program



PARALLEL COMPUTATION

Parallel computation adalah salah satu pemrograman komputer yang memungkinkan untuk melakukan eksekusi perintah secara bersamaan dan berbarengan dalam satu ataupun banyak prosesor di dalam sebuah CPU. Parallel computation sendiri berguna untuk meningkatkan performa komputer karena semakin banyak proses yang bisa dikerjakan secara bersamaan maka akan makin cepat.




Komputasi paralel biasanya diperlukan pada saat terjadinya pengolahan data dalam jumlah besar ( di industri keuangan, bioinformatika, dll ) atau dalam memenuhi proses komputasi yang sangat banyak. Selanjutnya, komputasi paralel ini juga dapat ditemui dalam kasus kalkulasi numerik dalam penyelesaian persamaan matematis di bidang fisika ( fisika komputasi ), kimia ( kimia komputasi ), dll. Dalam menyelesaikan suatu masalah, komputasi paralel memerlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel.

Konsep paralel adalah sebuah kemampuan prosesor untuk melakukan sebuah tugas ataupun banyak tugas secara simultan ataupun bersamaan, dengan kata lain prosesor mampu melakukan satu ataupun banyak tugas dalam satu waktu.
Apa Itu Distributed Processing ?

Pemrosesan terdistribusi merupakan proses pendistribusian pengolahan paralel dalam pemrosesan paralel menggunakan beberapa mesin. Jadi, bisa di bilang kemampuan dari suatu komputer-komputer yang dijalankan secara bersamaan untuk memecahkan suatu masalah dengan proses yang cepat.

Menurut Gustafson proses terdistribusi adalah sebuah komputasi paralel berjalan dengan menggunakan dua atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang digunakan.

Didistribusikan pengolahan paralel menggunakan pemrosesan paralel pada beberapa mesin. Salah satu contoh dari hal ini adalah bagaimana beberapa komunitas memungkinkan pengguna untuk mendaftar dan mendedikasikan komputer mereka sendiri untuk memproses beberapa data set yang diberikan kepada mereka oleh server. Ketika ribuan pengguna mendaftar untuk ini, banyak data dapat diproses dalam jumlah yang sangat singkat.

Contoh dari proses terdistribusi adalah ketika terdapat macam masalah diberikan pada satu master, maka dengan menggunakan komputer paralel masalah terseut akan terpecah menjadi beberapa bagian secara terdistribusi.





Architectural Parallel Computer

Menurut seorang Designer Processor, taksonomi Flynn, Arsitektur Komputer dibagi menjadi 4 baguan, yaitu :

  • SISD  (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.
  • SIMD (Single Instruction, Multiple Data) 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).
  • MISD (Multiple Instruction, Single Data) 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.
  • MIMD (Multiple Instruction, Multiple Data) 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.

Sabtu, 22 April 2017

QUANTUM COMPUTATION



A.   Pengertian  Quantum Computing
Merupakan alat hitung yang menggunakan mekanika kuantum seperti superposisi dan keterkaitan, yang digunakan untuk peng-operasi-an data. Perhitungan jumlah data pada komputasi klasik dihitung dengan bit, sedangkan perhitungan jumlah data pada komputer kuantum 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.

B.   Entaglement
Entanglement atau ketertarikan kuantum adalah salah satu prinsip utama dari fisika kuantum. Entanglement kuantum adalah beberapa partikel terkait dalam sedemikian rupa sehingga pengukuran keadaan kuantum satu partikel menentukan kemungkinan keadaan kuantum dari partikel lainnya.
Secara keseluruhan, superposisi kuantum dan entanglement menciptakan daya komputasi yang sangat ditingkatkan. Dimana 2 bit di komputer biasa dapat menyimpan hanya satu dari empat konfigurasi biner (00,01,10 atau 11) pada waktu tertentu, register 2 qubit dalam sebuah koputer kuantum dapat menyimpan semua empat nomor secara bersamaan, karena qubit masing-masing mewakili dua nilai. Jika lebih qubit ditambahkan, kapasitas meningkat diperluas secara eksponensial.

C.   Pengoperasian Data Qubit
Qubit merupakan kuantum bit , mitra dalam komputasi kuantum dengan digit biner atau bit dari komputasi klasik. Sama seperti sedikit adalah unit dasar informasi dalam komputer klasik, qubit adalah unit dasar informasi dalam komputer kuantum . Dalam komputer kuantum, sejumlah partikel elemental seperti elektron atau foton dapat digunakan (dalam praktek, keberhasilan juga telah dicapai dengan ion), baik dengan biaya mereka atau polarisasi bertindak sebagai representasi dari 0 dan / atau 1. Setiap partikel-partikel ini dikenal sebagai qubit, sifat dan perilaku partikel-partikel ini (seperti yang diungkapkan dalam teori kuantum ) membentuk dasar dari komputasi kuantum. Dua aspek yang paling relevan fisika kuantum adalah prinsip superposisi dan Entanglement.
Superposisi, pikirkan qubit sebagai elektron dalam medan magnet. Spin elektron mungkin baik sejalan dengan bidang, yang dikenal sebagai spin-up, atau sebaliknya ke lapangan, yang dikenal sebagai keadaan spin-down. Mengubah spin elektron dari satu keadaan ke keadaan lain dicapai dengan menggunakan pulsa energi, seperti dari Laser - katakanlah kita menggunakan 1 unit energi laser. Tapi bagaimana kalau kita hanya menggunakan setengah unit energi laser dan benar-benar mengisolasi partikel dari
segala pengaruh eksternal? Menurut hukum kuantum, partikel kemudian memasuki superposisi negara, di mana ia berperilaku seolah-olah itu di kedua negara secara bersamaan. Setiap qubit dimanfaatkan bisa mengambil superposisi dari kedua 0 dan 1. Dengan demikian, jumlah perhitungan bahwa komputer kuantum dapat melakukan adalah 2 ^ n, dimana n adalah jumlah qubit yang digunakan. Sebuah komputer kuantum terdiri dari 500 qubit akan memiliki potensi untuk melakukan 2 ^ 500 perhitungan dalam satu langkah. Ini adalah jumlah yang mengagumkan - 2 ^ 500 adalah atom jauh lebih dari yang ada di alam semesta (ini pemrosesan paralel benar - komputer klasik saat ini, bahkan disebut prosesor paralel, masih hanya benar-benar melakukan satu hal pada suatu waktu: hanya ada dua atau lebih dari mereka melakukannya). Tapi bagaimana partikel-partikel ini akan berinteraksi satu sama lain? Mereka akan melakukannya melalui belitan kuantum.

D.   Quantum Gates
Quantum Logic Gates, Prosedur berikut menunjukkan bagaimana cara untuk membuat sirkuit reversibel yang mensimulasikan dan sirkuit ireversibel sementara untuk membuat penghematan yang besar dalam jumlah ancillae yang digunakan.
-          Pertama mensimulasikan gerbang di babak pertama tingkat.
-          Jauhkan hasil gerbang di tingkat d / 2 secara terpisah.
-          Bersihkan bit ancillae.
-          Gunakan mereka untuk mensimulasikan gerbang di babak kedua tingkat.
-          Setelah menghitung output, membersihkan bit ancillae.
-          Bersihkan hasil tingkat d / 2.
Setiap perhitungan klasik dapat dipecah menjadi urutan klasik gerbang logika yang bertindak hanya pada bit klasik pada satu waktu, sehingga juga bisa setiap kuantum perhitungan dapat dipecah menjadi urutan gerbang logika kuantum yang bekerja pada hanya beberapa qubit pada suatu waktu. 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. Jadi gerbang logika kuantum perhitungannya jauh lebih bervariasi daripada gerbang logika perhitungan klasik.
E.   Algoritma Shor
Algoritma Shor, dinamai matematikawan Peter Shor , adalah algoritma kuantum yaitu merupakan suatu algoritma yang berjalan pada komputer kuantum yang berguna untuk faktorisasi bilangan bulat. Algoritma Shor dirumuskan pada tahun 1994.  Inti dari algoritma ini merupakan bagaimana cara menyelesaikan faktorisasi terhaadap bilanga interger atau bulat yang besar.
Efisiensi algoritma Shor adalah karena efisiensi kuantum Transformasi Fourier , dan modular eksponensial. Jika sebuah komputer kuantum dengan jumlah yang memadai qubit dapat beroperasi tanpa mengalah kebisingan dan fenomena interferensi kuantum lainnya, algoritma Shor dapat digunakan untuk memecahkan kriptografi kunci publik skema seperti banyak digunakan skema RSA. Algoritma Shor terdiri dari dua bagian:
-          Penurunan yang bisa dilakukan pada komputer klasik, dari masalah anjak untuk masalah ketertiban -temuan.
-          Sebuah algoritma kuantum untuk memecahkan masalah order-temuan.
Hambatan runtime dari algoritma Shor adalah kuantum eksponensial modular yang jauh lebih lambat dibandingkan dengan kuantum Transformasi Fourier dan pre-/post-processing klasik. Ada beberapa pendekatan untuk membangun dan mengoptimalkan sirkuit untuk eksponensial modular. Yang paling sederhana dan saat ini yaitu pendekatan paling praktis adalah dengan menggunakan meniru sirkuit aritmatika konvensional dengan gerbang reversibel , dimulai dengan penambah ripple-carry. Sirkuit Reversible biasanya menggunakan nilai pada urutan n ^ 3, gerbang untuk n qubit. Teknik alternatif asimtotik meningkatkan jumlah gerbang dengan menggunakan kuantum transformasi Fourier , tetapi tidak kompetitif dengan kurang dari 600 qubit karena konstanta tinggi.

REFERENSI :


MOBILE COMPUTING

A.   Definisi Mobile Computing
Mobile computing adalah seperangkat benda atau teknologi yang memiliki teknologi secanggih yang sering disebut sebagai mobile computer (portable computer) dan mampu melakukan komunikasi dengan jaringan tanpa kabel (nirkabel) walaupun user atau pengguna dari alat tersebut sedang melakukan perpindahan.
Mobile computing juga merupakan teknologi yang dapat melakukan system distribusi data saat bergerak bebas dan dapat melakukan koneksi kembali pada lokasi jaringan yang berbeda.
B.   Konsep Utama dari Mobile Computing

§  Mobile communication, mengacu pada infrastruktur yang menjaminnya komunikasi dan transmisi data seperti protokol, bentuk data, layanan yang disediakan, bandwith, dan jaringan yang menyediakan atau memfasilitasi dan mendukung berjalannya layanan yang disediakan.
§  Mobile hardware, adalah perangkat-perangkat tempat diletakkannya software yang digunakan sebagai media dalam medunukung berjalannya mobile computing. Contoh dari mobile hardware antara lain :
Ø  Computing Unit (Central Processing Unit)
Ø  Memory
Ø  Storage
Ø  Communication: Wireless (WiFi/Wimax, CDMA/GSM/3G, Bluetooth, dll)
Ø  Sensing Device: camera dll
Ø  Displace Devices: LCD Display, dll
§  Mobile software, merupakan software maupun aplikasi-aplikasi yang berjalan diatas hardware yang mendukung mobile computing. Software yang ada biasanya disesuaikan dengan hardware agar dapat berjalan dengan baik dan sesuai tujuan. Contoh dari mobile software antara lain :
Ø  Operating System:Microsoft Windows Mobile/CE, Symbian, RIM, Palm,
Ø  Linux, Savale
Ø  GUI
Ø  Applications: cell phone applications, calendar, dll
Ø  Java ME, popular untuk game
Ø  Symbian, general purpose, didukung Nokia
Ø  Android adalah berbasis Linux
Ø  iPhone , hanya pada Mac OS X
Ø  Palm OS, kuat di US

§  Fungsi Mobile Computing Harus memenuhi minimal 1 karakteristik :
Ø  User Mobility
Ø  Network Mobility
Ø  Bearer Mobility
Ø  Device Mobility
Ø  Session Mobility
Ø  Service Mobility
Ø  Host Mobility
§  Segmen Utama Mobile Computing
Ø  User with Device
Ø  Network & Gateways
Ø  Middle ware (Application Server, Adaptation Frameworks)
Ø  Content
Ø  Datastore

C.   Jenis Mobile Computing
·        Laptop
Laptop atau notebook adalah komputer bergerak yang ukurannya relative kecil, dengan berat antara 1-6 kg. Fungsi laptop hamper sama dengan komputer desktop, hanya ukurannya yang diperkecil. Kebanyakan laptop menggunakan LCD yang ukurannya antara 10-17 inch. Sifat utama laptop yaitu ukurannya yang kecil, mudah dibawa kemana saja dan hemat energy. Karena banyak kelebihan yang dimiliki laptop maka harga laptop relative lebih mahal daripada komputer desktop.
·        PDA (Personal Digital Assitant)
Alat elektronik berbasis komputer yang bisa dibawa kemana saja. Ciri khas PDA adalah touchscreen. Pada awalnya digunakan untuk mengorganisasi diri sendiri, tetapi seiring berjalannya waktu pengunaan PDA makin banyak, antara lain mengirim e-mail, akses internet, games, penggunaan GPS, rekam video dan jaringan wireless.
·        Smartphone
Perangkat komunikasi elektronik yang bisa dibawa-bawa dan tidak perlu kabel untuk menghubungkan jaringan komputer. Dengan kata lain, smartphone adalah miniature komputer dengan kemampuan ponsel. Umumnya terdapat dua jaringan smartphone yaitu GSM (Global System for Mobile Telecommunications) dan CDMA (Code Division Multiple Acces).
·        Carputer
Perangkat computing yang bisa dipasang di mobil. Biasanya digunakan untuk pemutar DVD, GPS, pengeras suara dan Bluetooth.


D.   Perbedaan Mobile, Grid dan Cloud Computing
-  Mobile computing menggunakan teknologi mobile untuk menjalankannya seperti handphone, carputer dan ultra mobile PC, sedangkan grid dan cloud computing menggunakan PC pada umumnya untuk menjalankannya.
-      Biaya untuk pengadaan energi bagi mobile computing cenderung lebih mahal dibanding grid dan cloud computing apabila tidak ada sumber daya listrik karena membutuhkan sumber daya pengganti yaitu baterei.
-     Mobile computing tidak terlalu membutuhkan tempat yang besar untuk mengoperasikannya dibanding grid dan cloud computing karena cenderung portable dan mudah dibawa kemana saja.
-       Pada mobile computing, proses komputasi cenderung dilakukan sendiri oleh user. Pada grid computing, proses komputasi dilakukan terpusat maupun tidak terpusat dimana consumer membutuhkan discovery server. Pada cloud computing, proses komputasi membutuhkan ASP dan internet sebagai media penghubung.
           
E.   Kelebihan Mobile Computing 
1.      Mobilitas
Anda tidak perlu mengikat diri ke tempat tertentu. Anda dapat melakukan pekerjaan Anda saat duduk di mobil atau kereta api. Anda dapat berkomunikasi dengan orang lain sambil duduk di mana saja di dunia. Anda dapat chatting online dengan teman-teman Anda dan anggota keluarga sambil duduk di pantai. Anda dapat melakukan pekerjaan kantor Anda sambil duduk di mana saja.
2.      Keefektifan
Dengan menggunakan mobile computing, lebih banyak pekerjaan dapat diselesaikan karena fleksibilitas dalam hal tempat bekerja.

F.    Kekurangan Mobile Computing
1.      Rendahnya jaringan bandwidth
Pengguna mobile dapat terhubung ke jaringan nirkabel melalui berbagai jaringan komunikasi termasuk radio nirkabel, wireless Local Area Network (LAN), nirkabel selular, satelit, dll Setiap jaringan nirkabel menyediakan kapasitas bandwidth yang berbeda. Namun, bandwidth nirkabel ini terlalu kecil dibandingkan dengan jaringan tetap seperti ATM (Asynchronous Transfer Mode) yang dapat memberikan kecepatan hingga 155Mbps.
2.      Biaya komunikasi asimetrik
Kapasitas bandwidth yang berbeda antara hilir komunikasi dan komunikasi upstream telah menciptakan sebuah lingkungan baru yang disebut Lingkungan Komunikasi asimetrik. Bahkan, ada dua situasi yang dapat mengakibatkan komunikasi asimetri, Salah satunya adalah karena kemampuan perangkat fisik. Misalnya, server memiliki pemancar siaran kuat, sedangkan klien mobile memiliki kemampuan transmisi kecil. Yang lain adalah karena pola aliran informasi dalam aplikasi. Misalnya, dalam situasi dimana jumlah server jauh lebih sedikit daripada jumlah klien, itu adalah asimetris karena ada tidak kapasitas yang cukup untuk menangani permintaan simultan dari beberapa klien.
3.      Koneksi yang lemah
Pengguna Mobile sering terputus dari jaringan. Hal ini mungkin terjadi karena beberapa alasan, termasuk kegagalan sinyal, jangkauan sinyal yang kurang luas, area blank spot, dan penghematan daya. Tetapi hal ini juga bisa menguntungkan karena modus aktif membutuhkan seribu kali power lebih besar daripada perangkat dalam kondisi standby atau mode sleep. Sinyal radio nirkabel mungkin juga akan melemah karena jarak yang jauh dari sumber sinyal dimana pengguna bergerak.
4.      Konsumsi tenaga
Mobile computing sangat bergantung pada daya tahan baterai.


REFERENSI :


Naruto Uzumaki Shoulder Pump