Sabtu, 10 Juni 2017

Pemrograman Jaringan-Konfigurasi DNS Server

Konfigurasi DNS Server pada Linux Debian versi 8.6
Debian adalah sistem operasi komputer yang tersusun dari paket-paket perangkat lunak yang dirilis sebagai perangkat lunak bebas dan terbuka dengan lisensi mayoritas GNU General Public License dan lisensi perangkat lunak bebas lainnya. Debian GNU/Linux memuat perkakas sistem operasi GNU dan kernel Linux merupakan distribusi Linux yang populer dan berpengaruh. Debian didistribusikan dengan akses ke repositori dengan ribuan paket perangkat lunak yang siap untuk instalasi dan digunakan.

Domain Name System (DNS) adalah sebuah server yang berfungsi menangani translasi penamaan host-host kedalam IP Address, begitu juga sebaliknya dalam menangani translasi dari IP Address ke Hostname/Domain. Contohnya google memiliki alamat ip 118.98.36.20 sedangkan pengguna biasanya mengetik domainnya yaitu www.google.com yang lebih mudah di ingat. Untuk itulah DNS Server dibuat agar alamat IP dapat diubah menjadi domain dan sebaliknya.

Langkah-Langkah Konfigurasi DNS Server

1)    Lakukan instalasi Debian versi 8.6.0 terlebih dahulu pada VirtualBox lalu klik mulai.

2)   Setelah itu akan masuk pada terminal debian lalu lakukan login sebagai root dengan menuliskan perintah ‘su’ dan memasukkan password yang tepat.

3)    Lakukan instalasi dengan menuliskan perintah apt-get install bind9. Hal ini dilakukan guna memperoleh software aplikasi DNS.

4)  Setelah berhasil menginstal bind9 , pindah direktori dengan menuliskan perintah cd /etc/bind/. Kemudian setelah masuk direktori tersebut lakukan konfigurasi dengan menuliskan perintah nano named.conf.local.

5)  Berikan nilai domain yaitu “ulfahbaros.net” lalu berikan ip server nya 192.168.1.8. Setelah itu tentukan nama db.forward dan db.revese seperti berikut dengan db.forward yaitu db.ulfah kemudian db.revese yaitu db.192. setelah itu tekan ctrl+x dan y untuk menyimpan.


6) Lakukan pengeditan seperti tampilan berikut pada db.ulfah dengan menuliskan perintah nano db.ulfah , tekan ctrl+x dan y untuk menyimpan.

7) Sama hal nya dengan langkah 6 , lakukan juga pengeditan pada db.192 dengan menuliskan nano db.192 , tekan ctrl+x dan y untuk menyimpan.

8) Melakukan restart service bind9 untuk memastikan bahwa script yang dituliskan benar, jika terjadi error maka lakukan pengecekan ulang pada setiap perintah yang telah dibuat.



9)    Menuliskan perintah cat /etc/resolv.conf untuk menampilkan nama server yang sudah dibuat, jika sudah tepat maka dapat melakukan pemeriksaan DNS.

10)Melakukan pemeriksaan DNS dengan mencoba pada servernya dengan perintah nslookup ulfahbaros.net. Jika sudah sesuai dengan address dan servernya maka dapat melakukan ping terhadap ip maupun DNS nya.

11)Melakukan ping pada ip servernya yaitu 192.168.1.8. Jika berhasil maka tampilannya seperti dibawah ini

12)Melakukan ping terhadap DNS nya yaitu ulfahbaros.net. Jika berhasil maka tampilannya seperti dibawah ini

13)Setelah berhasil pada server , maka tampilan berikut akan dilakukan oleh client dengan sistem operasi linux ubuntu. Lakukan pengisian nameserver terlebih dahulu sesuai dengan ip pada DNS server dengan cara menuliskan perintah nano /etc/resolv.conf.


14)Melakukan restart jaringan dengan perintah /etc/init.d/networking restart untuk memastikan bahwa nameserver sudah tersimpan.

15)Melakukan ping dari client terhadap ip server yaitu 192.168.1.8. Jika berhasil maka tampilannya akan seperti dibawah ini

16)Melakukan ping dari client terhadap DNS yaitu ulfahbaros.net. Jika berhasil maka tampilannya akan seperti dibawah ini.

Setelah melakukan tes koneksi dan berhasil , maka konfigurasi DNS server berhasil dilakukan pada Linux Debian versi 8.6.


Jumat, 09 Juni 2017

Pengantar Komputasi Modern-Tugas 3

Parallel Computation
(sumber : google)


Definisi Parallel Computation
(sumber : google)

Parallel Computation (Komputasi Paralel) merupakan jenis dari arsitektur komputasi dimana beberapa prosesor mengeksekusi atau memproses aplikasi atau komputasi secara bersamaan. Komputasi paralel membantu dalam melakukan perhitungan besar dengan membagi beban kerja antara lebih dari satu prosesor, yang semuanya bekerja melalui perhitungan pada saat yang bersamaan. Kebanyakan program-program besar dijalankan dengan menggunakan prinsip komputasi paralel untuk beroperasi. Komputasi paralel juga dikenal sebagai Parallel Processing (Pemrosesan Paralel).

Prinsip Parallel Computation
(sumber : google)

Komputasi Paralel mempunyai prinsip yang bersesuaian dengan algoritma Divide and Conquer yaitu membagi-bagi proses menjadi bagian-bagian yang cukup kecil dan memungkinkan untuk dikerjakan oleh sebuah unit komputasi. Terdapat 2 klasifikasi parallel computer yang penting :
1.      Sebuah komputer dengan banyak unit komputasi internal (Shared Memory Multiprocessor).
2. Beberapa komputer yang terhubung melalui sebuah jaringan (Distributed Memory Multicomputer)

Tujuan Parallel Computation
(sumber : google)

Pada parallel computation terdapat pemrograman paralel dimana dapat meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. Waktu yang dibutuhkan akan lebih sedikit dibandingkan bila mengerjakan suatu program secara berurutan (serial) sehingga program dapat diselesaikan secara efektif.

Model dari Parallel Computation
a.     SISD (Single Instruction, Single Data)
(sumber : google)

Model yang satu-satunya menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor.
Contoh komputer model SISD : UNIVAC1 , IBM 360, CDC 7600.

b.    SIMD (Single Instruction, Multiple Data)
(sumber : google)

Menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Pada setiap processor menggunakan algoritma atau perintah yang sama,namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari urutan pertama hingga urutan ke 20 , processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain.
Contoh komputer model SIMD : ILLIAC IV, MasPar, Cray X-MP.

c.     MISD (Multiple Instruction, Single Data)
(sumber : google)

Menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Sampai saat ini belum ada komputer yang menggunakan model MISD.

d.    MIMD (Multiple Instruction, Multiple Data)
(sumber : google)

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.
Contoh komputer model MIMD: IBM POWER5, Compaq AlphaServer, Intel IA32.

Perbedaan Parallel Computation dengan Multitasking
(sumber : google)

Parallel Computation berbeda dengan Multitasking. Multitasking sendiri adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan, sedangkan parallel computation menggunakan beberapa processor atau komputer untuk mengerjakan tugas secara bersamaan. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.

Implementasi Parallel Computation pada Kehidupan Sehari-hari
(sumber : google)

Salah satu implementasi komputasi parallel pada dunia bisnis yaitu pada dunia perfilman yaitu rendering film. Kemajuan di bidang komputasi, khususnya dalam bidang komputer grafis memberikan kemudahan untuk memodelkan suatu benda dalam alam 3 dimensi virtual di komputer. Kita dapat membuat suatu benda dalam wujud 3 dimensi dan mengubah-ubah sudut pandang, menentukan pencahayaan, bahkan menyusun gerakan benda dalam alam 3 dimensi virtual tersebut. Perkembangan ini muncul dari kebutuhan di bidang manufaktur untuk memiliki komputer yang dapat membantu perancangan (computer aided design-CAD). Ditemukannya teknik-teknik dan metoda rendering suatu obyek 3D ke dalam media 2D membuat benda yang dihasilkan oleh perangkat lunak ini menjadi semakin nyata dan menyerupai aslinya.
Pada bagian ini yaitu pada rendering film digunakan unit Komputasi parallel Distributed Memory Multicomputer. Hal ini dikarenakan computer yang digunakan untuk membuat rendering filmnya adalah Kluster Komputer. Kluster computer adalah proses menghubungkan beberapa computer agar dapat bekerja secara bersama-sama dengan sebuah jaringan sebagai media penghubungnya.




Referensi:


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: