Rabu, 19 Februari 2014

Peer 2 Peer

Peer to peer adalah sebuah jaringan yang dibuat ketika dua atau lebih komputer saat terhubung dan membagi sumber tanpa harus melalui server.
Sistem P2P merupakan suatu sistem yang tidak hanya menghubungkan “ujung” satu dengan lainnya, namun ujung-ujung ini saling berhubungan secara dinamis dan berpartisipasi dalam mengarahkan lalu lintas komunikasi informasi-, pemrosesan-, dan penugasan pembagian bandwidth yang intensif, dimana bila sistem ini tidak ada, tugas-tugas ini biasanya diemban oleh server pusat (client-server).

sumber : http://www.webexploits.co.uk/2010/03/peer-to-peer-and-effects-on-network_02.html

Model pengaturan jaringan berbeda sepenuhnya dari client server set- up.

sumber : 
1.  http://www.webexploits.co.uk/2010/03/peer-to-peer-and-effects-on-network_02.html
2. http://id.wikipedia.org/wiki/P2P

Klien - Server

Klien-server atau client-server merupakan sebuah paradigma dalam teknologi informasi yang menunjuk kepada cara untuk mendistribusikan aplikasi ke dalam dua pihak: pihak klien dan pihak server.
Dalam model klien/server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah, tapi masih merupakan sebuah kesatuan yakni komponen klien dan komponen server. Komponen klien juga sering disebut sebagai front-end, sementara komponen server disebut sebagai back-end. Komponen klien dari aplikasi tersebut dijalankan dalam sebuah workstation dan menerima masukan data dari pengguna. Komponen server akan menerima request dari klien, dan langsung memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada klien. Dan klien pun menerima informasi hasil pemrosesan data yang dilakukan server dan menampilkannya kepada pengguna, dengan menggunakan aplikasi yang berinteraksi dengan pengguna.


sumber : http://www.webjunction.org/documents/webjunction/Client_045_Server_Networks.html

Sebuah contoh dari aplikasi client/server sederhana adalah aplikasi web yang didesain dengan menggunakan Active Server Pages (ASP) atau PHP.


sumber :
1. http://id.wikipedia.org/wiki/Klien-server

Socket Client-Server in Python

Socket dapat digunakan dalam beberapa bahasa seperi Java, C++ dan lainnya. Berikut pengaplikasian socket dengan menggunakan program bahasa Python.


Berikut langkah - langkah untuk membuat dan menjalankan socket dalam bahasa Python pada linux :

1. Buatlah sebuah file dengan nama server.py
2. Setelah itu compile file server.py 
3. Buatlah sebuah file dengan nama client.py
4. Setelah itu compile file client.py
5. Setelah itu jalankan kedua program yang telah di compile pada terminal yang berbeda. 

Berikut Source code untuk socket server :

#!/usr/bin/python           # This is server.py file

import socket               # Import socket module

s = socket.socket()         # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345                # Reserve a port for your service.
s.bind((host, port))        # Bind to the port

s.listen(5)                 # Now wait for client connection.
while True:
   c, addr = s.accept()     # Establish connection with client.
   print 'Got connection from', addr
   c.send('Thank you for connecting')
   c.close()                # Close the connection

 berikut source code untuk socket client :

#!/usr/bin/python           # This is client.py file

import socket               # Import socket module

s = socket.socket()         # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345                # Reserve a port for your service.

s.connect((host, port))
print s.recv(1024)
s.close                     # Close the socket when done
 
 Berikut hasil kedua source code diatas setelah dijalankan :



Reference :
1. http://www.tutorialspoint.com/java/java_networking.htm

Socket Client-Server in Java

Socket dapat digunakan dalam beberapa bahasa seperi Java, C++ dan lainnya. Berikut pengaplikasian socket dengan menggunakan program bahasa java.

Berikut langkah - langkah untuk membuat dan menjalankan socket dalam bahasa java pada linux :

1. Buatlah sebuah file dengan nama GreetingServer.java
2. Setelah itu compile file GreetingServer.java 
3. Buatlah sebuah file dengan nama GreetingClient.java
4. Setelah itu compile file GreetingClient.java
5. Setelah itu jalankan kedua program yang telah di compile pada terminal yang berbeda. 

Berikut Source code untuk socket Client :

// File Name GreetingClient.java

import java.net.*;
import java.io.*;

public class GreetingClient
{
   public static void main(String [] args)
   {
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try
      {
         System.out.println("Connecting to " + serverName
                             + " on port " + port);
         Socket client = new Socket(serverName, port);
         System.out.println("Just connected to "
                      + client.getRemoteSocketAddress());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out =
                       new DataOutputStream(outToServer);

         out.writeUTF("Hello from "
                      + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in =
                        new DataInputStream(inFromServer);
         System.out.println("Server says " + in.readUTF());
         client.close();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

berikut source code untuk socket server :


// File Name GreetingServer.java

import java.net.*;
import java.io.*;

public class GreetingServer extends Thread
{
   private ServerSocket serverSocket;
   
   public GreetingServer(int port) throws IOException
   {
      serverSocket = new ServerSocket(port);
      serverSocket.setSoTimeout(10000);
   }

   public void run()
   {
      while(true)
      {
         try
         {
            System.out.println("Waiting for client on port " +
            serverSocket.getLocalPort() + "...");
            Socket server = serverSocket.accept();
            System.out.println("Just connected to "
                  + server.getRemoteSocketAddress());
            DataInputStream in =
                  new DataInputStream(server.getInputStream());
            System.out.println(in.readUTF());
            DataOutputStream out =
                 new DataOutputStream(server.getOutputStream());
            out.writeUTF("Thank you for connecting to "
              + server.getLocalSocketAddress() + "\nGoodbye!");
            server.close();
         }catch(SocketTimeoutException s)
         {
            System.out.println("Socket timed out!");
            break;
         }catch(IOException e)
         {
            e.printStackTrace();
            break;
         }
      }
   }
   public static void main(String [] args)
   {
      int port = Integer.parseInt(args[0]);
      try
      {
         Thread t = new GreetingServer(port);
         t.start();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}
 Berikut hasil kedua source code diatas setelah dijalankan :



Reference :
1. http://www.tutorialspoint.com/java/java_networking.htm

Socket Client - Server in C

Socket dapat digunakan dalam beberapa bahasa seperi Java, C++ dan lainnya. Berikut pengaplikasian socket dengan menggunakan program bahasa C.


Berikut langkah - langkah untuk membuat dan menjalankan socket dalam bahasa C pada linux :

1. Buatlah sebuah file dengan nama server.c
2. Setelah itu compile file server.c 
3. Buatlah sebuah file dengan nama client.c
4. Setelah itu compile file client.c
5. Setelah itu jalankan kedua program yang telah di compile pada terminal yang berbeda. 

Berikut Source code untuk soket Server :


#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <time.h> 

int main(int argc, char *argv[])
{
    int listenfd = 0, connfd = 0;
    struct sockaddr_in serv_addr; 

    char sendBuff[1025];
    time_t ticks; 

    listenfd = socket(AF_INET, SOCK_STREAM, 0);
    memset(&serv_addr, '0', sizeof(serv_addr));
    memset(sendBuff, '0', sizeof(sendBuff)); 

    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    serv_addr.sin_port = htons(5000); 

    bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); 

    listen(listenfd, 10); 

    while(1)
    {
        connfd = accept(listenfd, (struct sockaddr*)NULL, NULL); 

        ticks = time(NULL);
        snprintf(sendBuff, sizeof(sendBuff), "%.24s\r\n", ctime(&ticks));
        write(connfd, sendBuff, strlen(sendBuff)); 

        close(connfd);
        sleep(1);
     }
}

berikut source code untuk soket client :

#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <arpa/inet.h> 

int main(int argc, char *argv[])
{
    int sockfd = 0, n = 0;
    char recvBuff[1024];
    struct sockaddr_in serv_addr; 

    if(argc != 2)
    {
        printf("\n Usage: %s <ip of server> \n",argv[0]);
        return 1;
    } 

    memset(recvBuff, '0',sizeof(recvBuff));
    if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
    {
        printf("\n Error : Could not create socket \n");
        return 1;
    } 

    memset(&serv_addr, '0', sizeof(serv_addr)); 

    serv_addr.sin_family = AF_INET;
    serv_addr.sin_port = htons(5000); 

    if(inet_pton(AF_INET, argv[1], &serv_addr.sin_addr)<=0)
    {
        printf("\n inet_pton error occured\n");
        return 1;
    } 

    if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
    {
       printf("\n Error : Connect Failed \n");
       return 1;
    } 

    while ( (n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0)
    {
        recvBuff[n] = 0;
        if(fputs(recvBuff, stdout) == EOF)
        {
            printf("\n Error : Fputs error\n");
        }
    } 

    if(n < 0)
    {
        printf("\n Read error \n");
    } 

    return 0;
}
 Berikut hasil kedua source code diatas setelah dijalankan :


sumber :
1. http://www.thegeekstuff.com/2011/12/c-socket-programming/


Socket Programming

Socket merupakan satu dari beberapa teknologi yang fundamental dari jaringan komputer. Socket memungkinkan aplikasi untuk berkomunikasi menggunakan mekanisme standar yang dibangun ke dalam perangkat keras jaringan dan sistem operasi.

Sebuah socket adalah sebuah mekanisme yang kebanyakan sistem operasi sediakan untuk memberikan program akses ke jaringan. Socket memungkinkan pesan dikirim dan diterima antara aplikasi di mesin jaringan yang berbeda. Berikut beberapa langkah untuk menggunakan soket :
1. membuat socket
2. mengidentifikasi socket
3. pada server, menunggu koneksi
4. pada client, tersambung ke socket server
5. mengirim dan menerima pesan
6. menutup socket




Reference :
1. http://compnetworking.about.com/od/itinformationtechnology/l/aa083100a.htm
2. http://www.cs.rutgers.edu/~pxk/rutgers/notes/sockets/

Rabu, 05 Februari 2014

1.5 Setting SSH

Pada praktikum bagian ini saya akan mencoba untuk menyetting SSH di LINUX (Ubuntu) . Penjelasan yang ada di artikel ini akan menjawab soal - soal berikut.
1. Apa yang dimaksud dengan SSH? Apa fungsi SSH?
2. Jelaskan mengenai proses kerja dari perintah yang anda lakukan di atas ! Jelaskan juga apa
yang dimaksud dengan Open SSH !


SSH singkatan dari "Secure Shell". SSH biasanya menggunakan port 22 untuk menghubungkan komputer Anda ke komputer lain di Internet. SSH paling sering digunakan oleh administrator jaringan sebagai login / remote control cara remote untuk mengelola server bisnis mereka.

Tentang  OpenSSH, OpenSSH berisi klien ssh dan sshd daemon. Hal ini berguna untuk mengenkripsi otentikasi dan lalu lintas berikutnya melalui jaringan. The ssh dan scp perintah yang implementions aman dari telnet dan rcp masing-masing.

Untuk menginstall SSH di linux dengan perintah :

   " apt-get install openssh-server openssh-client " 



   Selanjutnya restart XAMPP dengan " /opt/lampp/lampp restart "
 

Reference :
Modul Praktikum Jaringan Komputer, Sistem dan Teknologi Informasi, STEI ITB
http://netforbeginners.about.com/od/technoglossary/f/whatis_SSL.htm
http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/openssh.html

Selasa, 04 Februari 2014

1.4 Setting SSL

Pada bahasan kali ini saya akan berbagi lagi tentang hasil praktikum yang telah saya lakukan. Apa yang dibahas dibawah ini telah mencakup jawaban dari pernyataan berikut.

 1. Apa yang dimaksud dengan SSL? Apa fungsi SSL?
2. Jelaskan mengenai proses kerja dari perintah yang anda lakukan di atas ! Jelaskan juga apa
yang dimaksud dengan Open SSL !


SSL (Secured Socket Layer) , merupakan sebuah teknologi enkripsi yang dibuat oleh Netscape. SSL membuat koneksi yang terennkripsi antara server atau situs dengan pengunjungnya saat pengunjungnya mengakses sehingga data rahasia atau data penting bisa terkirim tanpa khawatir ada usaha perubahan ditengah jalannya.
Beberapa fungsi dari OpenSSL adalah :
- untuk pembuatan parameter kunci dari RSA, DH dan DSA
- untuk pembuatan sertifikat X.509, CSR, dan CRL
- untuk perhitungan message digest
- untuk enkripsi dan dekripsi menggunakan chiper
- untuk pemeriksaan klien dan server SSL/TLS
- untuk penanganan dari file bertanda S/MIME atau mail terenkripsi

   OpenSSL Project merupakan sebuah upaya kolaboratif untuk mengembangkan dengan fitur lengkap, dan alat Open Source yang menerapkan Secure Socket Layer (SSL v2/v3) dan Transport Layer Security (TLS v1) protokol . Proyek ini dikelola oleh komunitas sukarelawan seluruh dunia yang menggunakan internet untuk berkomunikasi, merencanakan, dan mengembangkan toolkit OpenSSL dan dokumentasi terkait.
 
kita dapat menyetting SSL dengan perintah :

   " apt-get install openssl openssl-devel mod_ssl"


jika proses instalasi telah selesai lalu restart XAMPP dengan perintah pada terminal :
   "/opt/lampp/lampp restart "




Reference  :
Modul Praktikum Jaringan Komputer, Sistem dan Teknologi Informasi, STEI ITB
http://www.balinter.net/news_310_Pengertian_SSL_atau_Secured_Socket_Layerhtml
http://kslupnvj.wordpress.com/2012/10/01/mengenkripsi-file-di-linux-menggunakan-openssl/
http://dinoinside.blogspot.com/2013/11/tutorial-install-xampp-lamp-in-kali.html
http://www.openssl.org/

1.3 Setting Jaringan Komputer (LAN)

Pada bahasan kali ini saya akan berbagi tentang hasil dari praktikum yang telah saya lakukan. Apa yang ada dibawah sudah menjawab pertanyaan berikut.
1. Apa fungsi setiap perintah – perintah di atas? (untuk memudahkan menjawab, jelaskan saja
maksud dari setiap langkah pada keempat langkah praktek di atas).
2. Apa peranan dari adanya alamat IP, subnet mask, gateway, dan alamat DNS server?


 Pada bagian ini pastikan komputer tersambung dengan jaringan komputer (internet/intranet). Langkah pertama adalah mengetik perintah "ifconfig" di terminal.

ifconfig (InterFace CONFigurator) adalah sebuah perintah pada linux untuk mengkonfigurasi interface jaringan. Perintah ini memungkinkan kita untuk melihat secara rinci tentang interface yang ada pada komputer kita.
selanjutnya untuk mengetahui DNS Server kita buka terminal dan memasukkan perintah :
   " cat /etc/resolv.conf "


   Perintah cat /etc/resolv.conf adalah untuk menanyakan ke server DNS di internet atau intranet. File ini akan memberitahukan mesin linux, name server mana di internet yang akan ditanyakan untuk memetakan nama host atau domain ke alamat IP. Juga memberitahukan di bawah domain mana mesin yang kita gunakan selain kemampuan untuk mencari domain.
Selanjutnya kita menyetting konfigurasi untuk eth0 dengan memasukkan perintah di terminal seperti gambar berikut.


 yang selanjutanya untuk mengubah nama DNS servernya. dengan memasukkan perintah :
   " echo “nameserver 8.8.8.8“ > /etc/resolv.conf  "



   IP (Internet Protocol) memiliki peranan sebagai connectionless, yakni paket data yang dikirimkan pada suatu saat uuntuk melalui rute secara independen. Alamat IP ini digunakan sebagai alamat dalam hubungan antar host di internet, sehingga merupakan sebuah sistem komunikasi yang universal, karena merupakan metode pengalamatan yang telah diterima secara universal. Dengan menentukan IP address berarti kita telah mensuplai identitas yang universal bagi setiap interface komputer.

   Alamat netmask digunakan untuk menentukan identitas suatu jaringan ( sekelompok perangkat) yang disebut alamat network. Alamat network adalah alamat identitas sekumpulan komputer yang secara sistem berada dalam satu network. Untuk menentukan alamat network dibutuhkan alamat netmask. karena dengan alamat netmask juga kita bisa mengetahui berapa banyak jumlah alamat IP yang bisa dipakai dalam satu identitas alamat network. Jika ada 2 alamat IP yang memiliki identitas alamat network yang berberda, maka kedua perangkat tersebut tidak akan bisa berkomunikasi secara sistem, walaupun secara fisik tersambung dalam satu jaringan.

   Domain name system adalah sebuah sistem yang berbentuk database terdistribusi yang akan memetakan atau mengkonversikan nama host / domain ke alamat IP dan sebaliknya. Karena biasanya akan sulit jika kita menghafal IP address dari banyak web sehingga dibuat nama domain yang mudah diingat, dan DNS ini yang berfungsi untuk mengkonvert nama domain yang kita masukkan menjadi alamat IP ataupun sebaliknya.

 Reference :
Modul Praktikum Jaringan Komputer, Sistem dan Teknologi Informasi, STEI ITB
http://www.belajarpc.com/menggunakan-perintah-ifconfig-pada-linux.htm
http://chana2307.blogspot.com/2010/01/ifconfig-merupakan-command-pada-konsole.html
http://vixion-ashadhie.blogspot.com/
http://www.hasbihtc.com/pengertian-dan-fungsi-ip-address.html
http://www.newbienote.com/2013/11/fungsi-netmask-pada-alamat-ip-di-dalam.html
http://indonesiakomputermania.blogspot.com/2013/03/pengertian-dan-cara-kerja-dns.html

1.2 FTP Server


 FTP (File Transfer Protocol) adalah protokol internet standar untuk transmisi file antara komputer di internet. Misalnya Hypertext Transfer Protocol (HTTP) yang mentransfer halaman Web dapat ditampilkan dan file terkait, dan Simple Mail Transfer Protocol (SMTP).  FTP merupakan sebuah protokol aplikasi yang menggunakan protokol TCP/IP internet. FTP ini biasanya digunakan umumnya untuk mentransfer file halaman web dari yang membuatnya ke komputer user, si pembuat ini berperan sebagai server untuk semua orang di internet. FTP ini juga biasa digunakan untuk men-download program dan file lainnya ke komputer user dari server lain.

di linux kita dapat menginstall ftp server dengan perintah ;

   " apt-get install vsftpd "




maka ftp server pun telah terinstall.


Reference :
1. Modul Praktikum Jaringan Komputer, Sistem dan Teknologi Informasi, STEI ITB
2. http://searchenterprisewan.techtarget.com/definition/File-Transfer-Protocol


















1.1 Web Server dan Database Server

Pada bahasan kali ini saya akan memaparkan hasil praktikum yang telah saya lakukan, yang dipaparkan pada artikel ini telah mencakup jawaban dari pertanyaan berikut.
1. Jelaskan yang dimaksud dengan web server dan database server beserta dengan fungsinya?
Buatkan bagan yang menggambarkan bagaimana proses layanan yang diberikan oleh web server
dan database server di dalam jaringan komputer !
2. Jelaskan fitur dan kelebihan yang dimiliki oleh produk open source XAMPP Linux !


   Kali ini saya akan menceritakan praktikum yang telah saya lakukan.Sebelum itu saya akan membahas tentang apa yang akan saya praktekan. Web server adalah komputer yang mengirim konten web.Suatu mesin dapat menjadi web server dengan menginstall software server di mesin tersebut juga mengoneksikan mesin tersebut ke internet. Setiap web server memiliki alamat IP dan nama domain. web server ini yang melayani kita dalam mengakses suatu alamat web.
   XAMPP adalah sebuah paket web server cross-platform yang open source dan gratis. Dengan itu sangat mudah untuk mandapatkan aplikasi ini sebagai sarana kita untuk belajar tanpa batasan. dan juga fitur yang tersedia di XAMPP biasanya adalah Apache HTTP Server, MySQL database, PHP, Bahasa pemograman Perl . Juga yang terbaru sudah termasuk OpenSSL dan phpMyAdmin. Pembuat XAMPP merencanakan penggunaan ini hanya untuk alat pengembangan, yang memungkinkan para desainer website dan programmer dapat menguji pekerjaan mereka di komputer mereka sendiri tanpa akses internet. XAMPP ini juga terkadang digunakan untuk melayani web pages di World wide web.
   Database server adalah kesatuan antara software dan hardware yang digunakan untuk menjalankan sebuah database. Seperti server yang menjalanakn aplikasi database. sebuah database server dapat dilihat khususnya di dalam lingkungan klien-server dimana server menyediakan informasi yang dicari oleh klien.
Hubungan antara Web Server dan Database Server dapat kita lihat dalam bagan berikut :

 

sumber : http://www.agileload.com/agileload/blog/2012/11/27/web-applications-   performance-symptoms-and-bottlenecks-identification

Selanjutnya kita akan menginstall Web Server dan Database Server di Linux (Ubuntu). Pada praktikum kali ini adalah XAMPP yang telah dijelaskan diatas. Untuk menginstall XAMPP di linux , langkah pertama yang dilakukan adalah masuk ke root di terminal  dengan ketik

     "sudo su"
 

setelah itu tempatkan posisi direktori dimana file installer XAMPP berada (dalam kasus saya posisi installer XAMPP di home) , setelah itu masukkan perintah
    " chmod +x xampp-1.8.3-linux-installer.run (nama file installer) "
  untuk mengubah mode agar memberikan user untuk dapat mengeksekusi file installer XAMPP , setelah itu jalankan program installer tersebut dengan cara mengetik
" ./xampp-1.8.3-linux-installer.run "
lalu proses install pun dimulai.
 



setelah instalasi selesai maka langkah selanjutnya adalah mengaktifkan fitur xampp dengan mengetik    " /opt/lampp/lampp start "

lalu setelah semua proses dilakukan kita dapat melihat tampilan awal XAMPP Linux di localhost. Se dengan mengetik http://localhost pada alamat web yang dituju.






Reference :
Modul Praktikum Jaringan Komputer, Sistem dan Teknologi Informasi, STEI ITB
http://www.webopedia.com/TERM/W/Web_server.html
http://anakkost.wordpress.com/2010/05/18/memahami-fungsi-chmod/
http://docs.joomla.org/Configuring_a_XAMPP_server_for_joomla_development
http://www.techopedia.com/definition/441/database-server
http://ecomputernotes.com/fundamental/what-is-a-database/what-is-a-database-server
http://www.agileload.com/agileload/blog/2012/11/27/web-applications-performance-symptoms-and-bottlenecks-identification
http://www.slideshare.net/guestb4b8d8e/xampp-ppt