Selasa, 18 Februari 2014

Source Code Socket Programming in PYTHON

SOURCE CODE SOCKET PROGRAMMING



1. Source code untuk Server

# Echo server program
import socket

HOST = ''                 # Symbolic name meaning all available interfaces
PORT = 50007              # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
    data = conn.recv(1024)
    if not data: break
    conn.sendall(data)
conn.close()


2. Source code untuk 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 adalah hasil tampilan kompilasi dari kedua source code diatas.



source : 
- http://docs.python.org/2/library/socket.html

Perbedaan Client-Server dan Peer to Peer

Client-Server

Client Server adalah suatu bentuk arsitektur dimana client adalah perangkat yang menerima yang akan menampilkan dan menjalankan aplikasi dan server adalah perangkat yang menyediakan dan bertindak sebagai pengelola aplikasi, data dan keamanannya.






Kelebihan yang dimiliki oleh client-server ini diantaranya lebih aman digunakan, semua data dapat di backup pada satu lokasi central, dan kecepatan aksesnya lebih tinggi karena penyediaan fasilitas jaringan dan pengelolaannya dilakukan secara khusus oleh satu komputer (server) yang tidak dibebani oleh tugas lain sebagai workstation.
Selain kelebihan, client-server juga memiliki beberapa kekurangan diantaranya membutuhkan administrator yang handal, dalam pelaksanaannya memerlukan biaya yang mahal, dan jika server mati maka komputer client juga akan mati.



Peer to Peer

Peer to Peer adalah jaringan komputer dimana setiap host dapat menjadi server dan juga menjadi client di waktu yang bersamaan.

Kelebihan yang dimiliki Peer to Peer diantaranya biaya yang dikeluarkannya tidak terlalu mahal dan tidak membutuhkan administrator yang handal. Kekurangan dari sistem ini adalah tingkat keamanan yang kurang dan tidak cocok untuk jaringan dalam skala besar.







source :
- http://blogeko3.blogspot.com/2012/07/pengertian-clent-server-dan-peer-to-peer.html
- http://fcit.usf.edu/network/chap6/chap6.htm
- http://www.skullbox.net/ntoplogy.php

Source Code Socket Programming in JAVA

SOURCE CODE SOCKET PROGRAMMING



1. Source Code untuk Server

import java.lang.*;
import java.io.*;
import java.net.*;
 
class Server {
   public static void main(String args[]) {
      String data = "Toobie ornaught toobie";
      try {
         ServerSocket srvr = new ServerSocket(1234);
         Socket skt = srvr.accept();
         System.out.print("Server has connected!\n");
         PrintWriter out = new PrintWriter(skt.getOutputStream(), true);
         System.out.print("Sending string: '" + data + "'\n");
         out.print(data);
         out.close();
         skt.close();
         srvr.close();
      }
      catch(Exception e) {
         System.out.print("Whoops! It didn't work!\n");
      }
   }



2. Source Code untuk Client

 
import java.lang.*;
import java.io.*;
import java.net.*;
 
class Client {
   public static void main(String args[]) {
      try {
         Socket skt = new Socket("localhost", 1234);
         BufferedReader in = new BufferedReader(new
            InputStreamReader(skt.getInputStream()));
         System.out.print("Received string: '");
 
         while (!in.ready()) {}
         System.out.println(in.readLine()); // Read one line and output it
 
         System.out.print("'\n");
         in.close();
      }
      catch(Exception e) {
         System.out.print("Whoops! It didn't work!\n");
      }
   }


berikut adalah tampilan hasil dari kompilasi kedua source code diatas.


 
source : 

- http://www.cise.ufl.edu/~amyles/tutorials/tcpchat/

Source Code Socket Programming in C

SOURCE CODE SOCKET PROGRAMMING

  1. Source Code untuk Server

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

void error(const char *msg)
{
    perror(msg);
    exit(1);
}

int main(int argc, char *argv[])
{
     int sockfd, newsockfd, portno;
     socklen_t clilen;
     char buffer[256];
     struct sockaddr_in serv_addr, cli_addr;
     int n;
     if (argc < 2) {
         fprintf(stderr,"ERROR, no port provided\n");
         exit(1);
     }
     sockfd = socket(AF_INET, SOCK_STREAM, 0);
     if (sockfd < 0)
        error("ERROR opening socket");
     bzero((char *) &serv_addr, sizeof(serv_addr));
     portno = atoi(argv[1]);
     serv_addr.sin_family = AF_INET;
     serv_addr.sin_addr.s_addr = INADDR_ANY;
     serv_addr.sin_port = htons(portno);
     if (bind(sockfd, (struct sockaddr *) &serv_addr,
              sizeof(serv_addr)) < 0)
              error("ERROR on binding");
     listen(sockfd,5);
     clilen = sizeof(cli_addr);
     newsockfd = accept(sockfd,
                 (struct sockaddr *) &cli_addr,
                 &clilen);
     if (newsockfd < 0)
          error("ERROR on accept");
     bzero(buffer,256);
     n = read(newsockfd,buffer,255);
     if (n < 0) error("ERROR reading from socket");
     printf("Here is the message: %s\n",buffer);
     n = write(newsockfd,"I got your message",18);
     if (n < 0) error("ERROR writing to socket");
     close(newsockfd);
     close(sockfd);
     return 0;
}


2. Source Code untuk Client
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

void error(const char *msg)
{
    perror(msg);
    exit(0);
}

int main(int argc, char *argv[])
{
    int sockfd, portno, n;
    struct sockaddr_in serv_addr;
    struct hostent *server;

    char buffer[256];
    if (argc < 3) {
       fprintf(stderr,"usage %s hostname port\n", argv[0]);
       exit(0);
    }
    portno = atoi(argv[2]);
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd < 0)
        error("ERROR opening socket");
    server = gethostbyname(argv[1]);
    if (server == NULL) {
        fprintf(stderr,"ERROR, no such host\n");
        exit(0);
    }
    bzero((char *) &serv_addr, sizeof(serv_addr));
    serv_addr.sin_family = AF_INET;
    bcopy((char *)server->h_addr,
         (char *)&serv_addr.sin_addr.s_addr,
         server->h_length);
    serv_addr.sin_port = htons(portno);
    if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
        error("ERROR connecting");
    printf("Please enter the message: ");
    bzero(buffer,256);
    fgets(buffer,255,stdin);
    n = write(sockfd,buffer,strlen(buffer));
    if (n < 0)
         error("ERROR writing to socket");
    bzero(buffer,256);
    n = read(sockfd,buffer,255);
    if (n < 0)
         error("ERROR reading from socket");
    printf("%s\n",buffer);
    close(sockfd);
    return 0;
}

hasil yang akan ditampilkan setelah kedua source code diatas dikompilasi dan dijalankan secara bersamaan adalah sebagai berikut.





source :
http://www.linuxhowtos.org/C_C++/socket.htm



Socket Programming

SOCKET PROGRAMMING

Socket Programming adalah pemrograman yang bertujuan agar satu program bisa berinteraksi dengan program lainnya dalam satu jaringan, biasa disebut dengan pemrograman jaringan. Socket dapat berupa :
  • Connection based or connectionless adalah koneksi yang didirikan sebelum berkomunikasi atau sebelum paket menentukan lokasi tujuan.
  • Packet based or streams based 
  • Reliable or unreliable adalah suatu kondisi dimana pesan atau paket bisa hilang, terjadi duplikasi atau bahkan rusak 

Karakteristik dari socket programming ini dapat dikenali dari domainnya masing-masing, bentuk dan transport protokol. Domain pada socket umumnya dibagi menjadi dua, yaitu :
  1. AF_UNIX atau Socket lokal : alamat format diambil dari pathname UNIX.
  2. AF_INET atau Socket networking : alamat format diambil dari host dan port number.
Setiap socket mempunyai satu bentuk protokol atau lebih, contoh :
  • TCP/IP (virtual circuits)
  • UDP (datagram)
Kegunaan dari connection-based socket programming adalah sebagai komunikasi antara client-server, server menunggu koneksi dari client sedangkan kegunaandari connectionless socket programming adalah sebagai alat komunikasi peer to peer dan setiap proses adalah sama. 

Socket terdiri dari elemen-elemen utama sebagai berikut: 
1. Protokol. 
2. Local IP. 
3. Local Port.
4. Remote IP. 
5. Remote Port. 





 source :
- http://pic.dhe.ibm.com/infocenter/iseries/v6r1m0/index.jsp?topic=/rzab6/uafunix.htm
- http://10108262.blog.unikom.ac.id/berkenalan-dengan.2zx
- http://edwincool07.blogspot.com/2012/03/pemrograman-socket.html

Rabu, 05 Februari 2014

Secure Shell (SSH)

Secure Shell (SSH)

Secure Shell atau SSH adalah protokol jaringan yang memungkinkan pertukaran data melalui saluran aman antara dua perangkat jaringan. Terutama banyak digunakan pada sistem berbasis Linux dan Unix untuk mengakses akun shell, SSH dirancang sebagai pengganti Telnet dan shell remote tak aman lainnya, yang mengirim informasi, terutama kata sandi, dalam bentuk teks sederhana yang membuatnya mudah untuk dicegat. Enkripsi yang digunakan oleh SSH menyediakan kerahasiaan dan integritas data melalui jaringan yang tidak aman seperti internet. SSH menggunakan kriptografi kunci publik untuk mengotentikasi komputer remote dan biarkan komputer remote untuk mengotentikasi pengguna, jika perlu. SSH biasanya digunakan untuk login ke mesin remote dan mengeksekusi berbagai perintah. Ini merupakan gambaran secara singkat tentang SSH.


Setting SSH
1. buka terminal lalu ketikkan sudo su untuk mengubah akses menjasi super user lalu masukkan pasword anda.
 
2. ketikkan apt-cache search ^ssh untuk menampilkan aplikasi SSH apa saja yng dimiliki dan dapat diinstal. jika sudah, akan keluar hasil seperti dibawah ini.



3. untuk menginstal SSH, ketikkan ketikkan apt-get install ssh pada terminal. lalu tunggu instalasi selesai seperti gambar berikut.







source :
- http://id.wikipedia.org/wiki/SSH
- http://merpati-xp.blogspot.com/2013/04/apa-itu-ssh.html
- http://sheila033.blogspot.com/2014/02/ssh-secure-shell.html

Secure Socket Layer (SSL)

Secure Socket Layer

Secure Socket Layer atau lebih dikenal dengan SSL merupakan sebuah protocol yang digunakan untuk browsing web secara lebih aman. Selain berguna untuk mengamankan komunikasi antara server dan klien, SSL juga memfasilitasi penggunaan enkripsi data rahasia dan membantu menjamin integritas informasi yang dipertukarkan antara website dan web browser. Open SSL adalah sebuah tool untuk mengenkripsi file dengan mengimplementasikan SSL dan protocol TSL (Transport Layer Security) di dalam bahasa C dan diimplementasikan untuk fungsi kriptografi basic. Fungsi dari SSL sendiri antara lain digunakan untuk pembuatan parameter kunci dari RSA, DH dan DSA, pembuatan sertifikat X.509, CSR dan CRL, perhitungan message digest, enkripsi dan dekripsi menggunakan chiper, pemeriksaan klien dan server SSL/TLS serta penanganan dari file bertanda S/MIME atau mail terenkripsi. Ini merupakan gambaran singkat dari SSL.





Setting SSL






Berikut adalah langkah penginstallan SSL pada Ubuntu :
1. Ketikkan perintah apt-get install ssl pada terminal. Lalu akan keluar tampilan seperti berikut.


2. Setelah proses instalasi selesai, ketikkan perintah /opt/lampp/lampp restart. Pastikan anda telah menginstal web server sebelumnya. Maka akan muncul tampilan seperti berikut.




source :
- http://adibowo.com/ssl-secure-socket-layer-pengertian-dan-definisi-ssl-certificate/
- http://kslupnvj.wordpress.com/2012/10/01/mengenkripsi-file-di-linux-menggunakan-openssl/
- http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.edge.doc/edge/cp/admingd119.htm

Jaringan Komputer (LAN)

LOCAL  AREA NETWORK

Local  Area Network atau biasa disebut (LAN) adalah jaringan komputer yang jaringannya hanya mencakup wilayah kecil, seperti jaringan komputer kampus, gedung, kantor, dalam rumah, sekolah atau yang lebih kecil. Tempat-tempat yang menyediakan koneksi LAN dengan teknologi Wi-fi biasa disebut hotspot. Berikut merupakan gambaran secara singkat tentang cara kerja dari LAN.
Dalam LAN ada beberapa istilah yang sering dipakai seperti :
1. IP Address
    IP Address bertugas menyampaikan paket data ke alamat yang tepat dari jaringan TCP dan IP dikarenakan semua aplikasi jaringan TCP IP pasti berpusat kepada Internet Protocol dengan tujuan agar dapat berjalan dengan lancar dan baik. IP address ini digunakan sebagai alamat dalam hubungan antar host di internet sehingga merupakan sebuah sistem komunikasi yang universal karena merupakan metode pengalamatan yang telah diterima di seluruh dunia.
2. Subnet Mask
    Subnet mask adalah istilah teknologi informasi dalam bahasa Inggris yang mengacu kepada angka biner 32 bit yang digunakan untuk membedakan network ID dengan host ID, menunjukkan letak suatu host, apakah berada di jaringan lokal atau jaringan luar.
3. Gateway
    Gateway adalah komputer yang memiliki minimal 2 buah network interface untuk menghubungkan 2 buah jaringan atau lebih
4. Domain Name System (DNS)
    Domain Name System (DNS) adalah distribute database system yang digunakan untuk pencarian nama komputer (name resolution) di jaringan yang mengunakan TCP/IP (Transmission Control Protocol/Internet Protocol). DNS biasa digunakan pada aplikasi yang terhubung ke Internet seperti web browser atau e-mail, dimana DNS membantu memetakan host name sebuah komputer ke IP address. 


Setting Jaringan Network (LAN)

Berikut merupakan langkah melakukan penyettingan jaringan komputer pada Ubuntu:
 1. Ketikkan ifconfig untuk mengetahui IP Address komputer kita pada terminal yang sebelumnya telah diubah direktorinya dan hasilnya akan seperti gambar di bawah ini. Fungsi dari perintah diatas adalah untuk melihat interface dan alamat yang diberikan ke interface tersebut.


2. Setelah mengetahui IP Address, ketikkan cat /etc/resolv.conf untuk mengetahui DNS dari komputer kita dan hasil yang keluar akan seperti gambar dibawah.


3. ketikkan perintah ifconfig eth0 192.168.1.x netmask 255.255.255.0 (x isikan
dengan angka sesuai kemauan anda). Lanjutkan dengan perintah route add default gw 192.168.1.1. Kemudian ketik lagi perintah ifconfig. Fungsi dari route adalah untuk memeriksa tabel routing, menambah dan menghapus tabel routing. Maka output yang dihasilkan akan seperti ini.


4. Ketikkan perintah echo “nameserver 8.8.8.8“ > /etc/resolv.conf. Kemudian ketik perintah cat /etc/resolv.conf. Fungsi dari perintah diatas adalah untuk membuat file dan menyimpannya secara otomatis. Output yang dihasilkan akan seperti ini.





source :
- http://ariz-zone.blogspot.com/2012/03/pengertian-ip-addres-dns-gateway-subnet.html
- http://tugaslinuxnhea.blogspot.com/2012/01/perintah-dasar-linux-3.html
- http://id.wikipedia.org/wiki/Jaringan_wilayah_lokal - http://alfikpopers-thisismyworld.blogspot.com/2012/09/jaringan-komputer-berdasarkan-luas.html
- http://www.hasbihtc.com/pengertian-dan-fungsi-ip-address.html

File Transfer Protocol Server

FILE TRANSFER PROTOCOL

File Transfer Protocol atau biasa disebut FTP adalah protocol internet yang berjalan dalam aplikasi dan merupakan standar dari pentransferan file-file komputer antar mesin-mesin dalam sebuah internetnetwork. FTP hingga kini masih digunakan untuk mengunduh dan mengunggah file komputer antara klien dan server. Perintah FTP dapat digunakan untuk mengubah direktori, mengubah modus pengiriman antara biner dan ASCII, mengunggah berkas komputer ke server FTP serta mengunduh berkas komputer dari server FTP. Berikut adalah gambar mengenai bagaiman cara kerja dari FTP.



 SETTING FTP SERVER

Setting FTP server pada Ubuntu ini dilakukan di terminal dan berikut merupakan langkah-langkah yang dilakukan saat melakukan penyettingan :
1. buka terminal lalu ketikkan sudo su
2. masukkan password PC anda.
3. ketikkan apt-get install vsftpd lalu tunggu hingga proses setting selesai.

berikut adalah tampilan saat penyettingan FTP server pada terminal Ubuntu.





source :
- http://agustya-blog.blogspot.com/2013/01/pengertian-fungsi-dan-cara-kerja-ftp.html
- http://www.cisco.com/en/US/docs/ios/sw_upgrades/interlink/r2_0/user/ugftpc1.html

Web Server dan Database Server

WEB SERVER

Web server merupakan software yang dapat memberikan layanan data yang berfungsi menerima permintaaan HTTP dari klien dan mengirimkan kembali hasilnya dalam bentuk halaman web yang umumnya berbentuk dokumen HTML. Adapun bagan dari web server adalah sebagai berikut.




DATABASE SERVER
Database server adalah sebuah program yang menyediakan layanan database untuk program komputer lain seperti model klien-server. Database berfungsi menyimpan data-data. Adapun abagan dari database server ini adalah sebagai berikut.





XAMPP

Xampp merupakan aplikasi yang didistribusikan secara open-source dan didalamnya sudah terdapat paket program juga sudah punya server tersendiri. Fitur Xampp dilengkapi oleh manajemen database PHPmyAdmin seperti pada server hosting sungguhan.Nama Xampp merupakan sebuah singkatan dimana :
X adalah sistem operasi apapun dari keempat aplikasi yang terhubung.
A adalah Apache yang merupakan aplikasi web server.
M adalah MySQL yang merupakan aplikasi database server.
P adalah PHP yang merupakan bahasa pemrograman web.
P adalah Perl yang merupakan juga salah satu bahasa pemrograman.

Instalasi XAMPP pada Ubuntu :
1. download Xampp pada alamat http://www.apachefriends.org/download.html.
2. Ketik perintah chmod +x pada lokasi dan nama file XAMPP Linux anda. Misal : chmod
+x /home/putu-shinoda/xampp-linux-1.run. Biarkan proses instalasi berjalan sampai selesai.
3. Aktifkan melalui perintah /opt/lampp/lampp start. Amati output yang ditampilkan.
4. Buka web browser anda. Ketikkan http://127.0.0.1 atau http://localhost. Seharusnya anda akan melihat tampilan awal XAMPP Linux di localhost.

ini merupakan tampilan saat memasuki terminal pada Ubuntu dan melakukan proses instalasi Xampp pada linux.



dan berikut merupakan hasil pemanggilan localhost di browser setelah Xampp berhasil diinstalasi.




source:
- (http://mhdarifdmx.blogspot.com/2013/11/pengertian-macam-macam-software-program.html)
- (http://worldfriend.web.id/pengertian-web-server)
- http://infoprogramer.wordpress.com/2013/10/08/kelebihan-xampp-terbaru-versi-xampp-1-8-0/
- http://info-program-komputer.blogspot.com/2012/07/xampp.html
- http://docs.oracle.com/cd/E19146-01/821-1828/gehht/index.html
- http://www.mlarik.com/2013/06/pengertian-dan-fungsi-komputer-server.html
- http://aslinegeriku.blogspot.com/2013/09/server-dan-aplikasi-server.html
- http://id.wikipedia.org/wiki/XAMPP#A