client server program application

20
CLIENT SERVER PROGRAM APPLICATION TPT SUBJECT CLASS PROJECT By: Ardisa Pramudhita (11110001) Atika Luthfiyyah (11110213) Banu Adi Witono (11110328) Citra Ika Wibawati (11110610) Randy Aprianggi (15110626) SARMAG SMSI01-4 SISTEM INFORMASI FAKULTAS ILMU KOMPUTER UNIVERSITAS GUNADARMA ATA 2012/2013

Upload: others

Post on 09-Feb-2022

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CLIENT SERVER PROGRAM APPLICATION

CLIENT SERVER PROGRAM APPLICATION

TPT SUBJECT CLASS PROJECT

By:

Ardisa Pramudhita (11110001)

Atika Luthfiyyah (11110213)

Banu Adi Witono (11110328)

Citra Ika Wibawati (11110610)

Randy Aprianggi (15110626)

SARMAG SMSI01-4

SISTEM INFORMASI FAKULTAS ILMU KOMPUTER

UNIVERSITAS GUNADARMA

ATA 2012/2013

Page 2: CLIENT SERVER PROGRAM APPLICATION

Client Server

Klien-server atau client-server merupakan sebuah paradigma dalam teknologi informasi yang merujuk

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 klien tersebut akan menyiapkan data yang dimasukkan oleh pengguna dengan menggunakan

teknologi pemrosesan tertentu dan mengirimkannya kepada komponen server yang dijalankan di atas

mesin server, umumnya dalam bentuk request terhadap beberapa layanan yang dimiliki oleh server.

Komponen server akan menerima request dari klien, dan langsung memprosesnya dan mengembalikan

hasil pemrosesan tersebut kepada klien. Klien pun menerima informasi hasil pemrosesan data yang

dilakukan server dan menampilkannya kepada pengguna, dengan menggunakan aplikasi yang

berinteraksi dengan pengguna.

Sebuah contoh dari aplikasi client/server sederhana adalah aplikasi web yang didesain dengan

menggunakan Active Server Pages (ASP) atau PHP. Skrip PHP atau ASP akan dijalankan di dalam web

server (Apache atau Internet Information Services), sementara skrip yang berjalan di pihak klien akan

dijalankan oleh web browser pada komputer klien. Klien-server merupakan penyelesaian masalah pada

software yang menggunakan database sehingga setiap komputer tidak perlu diinstall database, dengan

metode klien-server database dapat diinstal pada suatu komputer sebagai server dan aplikasinya diinstal

pada client.

Client-server adalah suatu bentuk arsitektur, dimana client adalah perangkat yang menerima yang akan

menampilkan dan menjalankan aplikasi (software komputer) dan server adalah perangkat yang

menyediakan dan bertindak sebagai pengelola aplikasi, data, dan keamanannya. Server biasanya

terhubung dengan client melalui kabel UTP dan sebuah kartu jaringan (network card). Kartu jaringan ini

biasanya berupa kartu PCI atau ISA.

Page 3: CLIENT SERVER PROGRAM APPLICATION

1. Karakteristik Server

a. Pasif

b. Menunggu request

c. Menerima request, memproses mereka dan mengirimkan balasan berupa service

2. Karakteristik Client

d. Aktif

e. Mengirim request

f. Menunggu dan menerima balasan dari server

Socket adalah sebuah endpoint untuk komunikasi didalam jaringan. Sepasang proses atau thread

berkomunikasi dengan membangun sepasang socket, yang masing-masing proses memilikinya. Socket

dibuat dengan menyambungkan dua buah alamat IP melalui port tertentu. Secara umum socket

digunakan dalam client/server system, dimana sebuah server akan menunggu client pada port tertentu.

Begitu ada client yang menghubungi server maka server akan menyetujui komunikasi dengan client

melalui socket yang dibangun. Sebagai contoh sebuah program web browser pada host x (IP 146.86.5.4)

ingin berkomunikasi dengan web server (IP 152.118.25.15) yang sedang menunggu pada port 80. Host x

akan menunjuk sebuah port. Dalam hal ini port yang digunakan ialah port 1655. Sehingga terjadi sebuah

hubungan dengan sepasang socket (146.86.5.4:1655) dengan (152.118.25.15:80).

Program Client Server

Project Client Server yang dibuat oleh kelompok kami bernama i-Chat, yang bertema-kan tentang LAN

Chat. Menggunakan bahasa pemrograman C++ dan aplikasi Borland C++.

Program untuk melakukan percakapan berupa teks pada jaringan LAN.

Page 4: CLIENT SERVER PROGRAM APPLICATION

Cara kerja:

1. Bagian Client (Client Side) :

1. Masukkan server ID berupa IP Server dan Port Local, tekan OK

2. Masukkan nama dan teks yang ingin dikirim untuk memulai percakapan

3. Untuk membersihkan percakapan tekan tombol “Bersihkan”

4. Tekan tombol “Putuskan” untuk keluar dari server

2. Bagian Server (Server Side):

1. Masukkan server ID berupa IP Server dan Port Local, tekan Mulai

2. Masukkan nama dan teks yang ingin dikirim untuk memulai percakapan

3. Untuk membersihkan percakapan tekan tombol “Bersihkan”

4. Tekan tombol “Putuskan” untuk menghentikan server

Kelebihan dari program iChat:

- User interface yang bervariasi

- Dapat melakukan LAN Chat dengan banyak orang

- Dapat melakukan LAN Chat walaupun dengan akses internet (wifi) yang berbeda

- Tidak dapat mengganti nama user ketika iChat sudah aktif sehingga tidak mudah dimanipulasi

- Percakapan dapat dihapus di Client maupun Server Side

- IP dan Port dapat dimasukkan sesuai dengan keinginan

Kekurangan dari program iChat:

- Jika Server Side belum aktif, Client Side akan mengalami error jika sudah aktif terlebih dahulu

- Jika Server Side sudah dimatikan tetapi Client Side belum dimatikan, maka akan terjadi error

tanpa keluar message box

Page 5: CLIENT SERVER PROGRAM APPLICATION

Screen Shoot Program

Server Side

Client Side

Page 6: CLIENT SERVER PROGRAM APPLICATION

Client dan Server Side

Listing Program

Server Side

server.cpp

#include <vcl.h>

#pragma hdrstop

#include "server.h"

Page 7: CLIENT SERVER PROGRAM APPLICATION

#include "Unit3.h"

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

txtSend->Clear();

Memo1->Clear();

Image3->Visible=False;

Button3->Enabled=False;

Button2->Enabled=False;

txtSend->Enabled=False;

Memo1->Enabled=False;

}

//---------------------------------------------------------------------------

Page 8: CLIENT SERVER PROGRAM APPLICATION

void __fastcall TForm1::ssClientConnect(TObject *Sender,

TCustomWinSocket *Socket)

{

AnsiString temp;

temp=Socket->RemoteAddress;

int i;

for(i=0;i<ss->Socket->ActiveConnections;i++)

{

ss->Socket->Connections[i]->SendText(temp+" telah tersambung");

}

Memo1->Lines->Add(temp+" telah tersambung");

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ssClientRead(TObject *Sender,

TCustomWinSocket *Socket)

{

int i;

AnsiString temp,temp2; //untuk temporarinya

temp=Socket->ReceiveText();

temp2=Socket->RemoteAddress;

for(i=0;i<ss->Socket->ActiveConnections;i++)

{

ss->Socket->Connections[i]->SendText(temp);

Page 9: CLIENT SERVER PROGRAM APPLICATION

}

Memo1->Lines->Add(temp);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ssListen(TObject *Sender, TCustomWinSocket *Socket)

{

MessageBox(NULL, "Koneksi telah tersambung !", "Tersambung !", MB_OK);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

ss->Port=StrToInt(txtPort->Text);

ss->Open();

Image3->Visible=True;

Edit1->Enabled=False;

Edit2->Enabled=False;

txtPort->Enabled=False;

Button1->Enabled=False;

Button2->Enabled=True;

txtSend->Enabled=True;

Button3->Enabled=True;

Label5->Caption=("Tersambung di "+Edit1->Text);

Label5->Font->Color=clLime;

}

Page 10: CLIENT SERVER PROGRAM APPLICATION

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Memo1->Clear();

MessageBox(NULL, "Percakapan telah dihapus !", "Bersih !", MB_OK);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

TDateTime RightNow = Time();

Edit3->Text = RightNow.FormatString("hh:nn");

for(int i=0;i<ss->Socket->ActiveConnections;i++)

{

ss->Socket->Connections[i]->SendText("<"+Edit3->Text+">"+Edit2->Text+": "+txtSend-

>Text);

}

Memo1->Lines->Add( "<"+Edit3->Text+">"+Edit2->Text+": "+txtSend->Text);

txtSend->Clear();

{

}

}

//---------------------------------------------------------------------------

Page 11: CLIENT SERVER PROGRAM APPLICATION

void __fastcall TForm1::Exit1Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

void __fastcall TForm1::Help1Click(TObject *Sender)

{

AboutForm->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

ss->Close();

MessageBox(NULL, "Koneksi telah terputus !", "Terputus !", MB_OK);

Image3->Visible=False;

Memo1->Enabled=False;

Edit1->Enabled=True;

Edit2->Enabled=True;

txtPort->Enabled=True;

Button1->Enabled=True;

Button2->Enabled=False;

txtSend->Enabled=False;

Page 12: CLIENT SERVER PROGRAM APPLICATION

Button3->Enabled=False;

Label5->Caption=("Koneksi terputus");

Label5->Font->Color=clRed;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::A1Click(TObject *Sender)

{

Form3->Show();

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

void __fastcall TForm1::Return(TObject *Sender, char &Key)

{

if (Key==VK_RETURN)

Button2->Click();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Image4Click(TObject *Sender)

{

Memo1->Clear();

}

//---------------------------------------------------------------------------

Page 13: CLIENT SERVER PROGRAM APPLICATION

void __fastcall TForm1::Image5Click(TObject *Sender)

{

ss->Port=StrToInt(txtPort->Text);

ss->Open();

Image3->Visible=True;

Edit1->Enabled=False;

Edit2->Enabled=False;

txtPort->Enabled=False;

Button1->Enabled=False;

Button2->Enabled=True;

txtSend->Enabled=True;

Button3->Enabled=True;

Label5->Caption=("Tersambung di "+Edit1->Text);

Label5->Font->Color=clLime;

}

//---------------------------------------------------------------------------

Client Side

client.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Client.h"

Page 14: CLIENT SERVER PROGRAM APPLICATION

#include "Unit3.h"

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

cs->Address=txtip->Text;

cs->Port=StrToInt(txtport->Text);

cs->Open(); //mengaktifkan Client Socket

Button1->Enabled=False;

txtport->Enabled=False;

txtip->Enabled=False;

txtname->Enabled=False;

txtmsg->Enabled=True;

Button2->Enabled=True;

Button3->Enabled=True;

Page 15: CLIENT SERVER PROGRAM APPLICATION

Label1->Caption=("Sedang tersambung di "+ txtip->Text);

Label1->Font->Color=clLime;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Memo1->Clear();

txtname->Clear();

txtmsg->Clear();

Button1->Enabled=True;

txtport->Enabled=True;

txtip->Enabled=True;

txtname->Enabled=True;

txtmsg->Enabled=False;

Button2->Enabled=False;

Button3->Enabled=False;

Image3->Visible=False;

abuabu->Visible=False;

merah->Visible=True;

kuning->Visible=False;

biru->Visible=False;

hijau->Visible=False;

}

//---------------------------------------------------------------------------

Page 16: CLIENT SERVER PROGRAM APPLICATION

void __fastcall TForm1::csConnect(TObject *Sender,

TCustomWinSocket *Socket)

{

MessageBox(NULL, "Koneksi telah tersambung !", "Berhasil !", MB_OK);

Image3->Visible=True;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::csRead(TObject *Sender, TCustomWinSocket *Socket)

{

Memo1->Lines->Add(Socket->ReceiveText());

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

TDateTime RightNow = Time();

time->Text = RightNow.FormatString("hh:nn");

cs->Socket->SendText("<"+time->Text+">"+txtname->Text+": "+txtmsg->Text);

txtmsg->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Page 17: CLIENT SERVER PROGRAM APPLICATION

cs->Close();

MessageBox(NULL, "Koneksi telah terputus !", "Putus !", MB_OK);

Image3->Visible=False;

Button1->Enabled=True;

txtport->Enabled=True;

txtip->Enabled=True;

txtname->Enabled=True;

txtmsg->Enabled=False;

Button2->Enabled=False;

Button3->Enabled=False;

Label1->Caption="Koneksi terputus ";

Label1->Font->Color=clRed;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Keluar1Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Bantuan1Click(TObject *Sender)

{

Bantuan->Show();

}

//---------------------------------------------------------------------------

Page 18: CLIENT SERVER PROGRAM APPLICATION

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Memo1->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Tentang1Click(TObject *Sender)

{

About->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Return(TObject *Sender, char &Key)

{

if (Key==VK_RETURN)

Button2->Click();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Image4Click(TObject *Sender)

{

Memo1->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Abuabu1Click(TObject *Sender)

{

abuabu->Visible=True;

Page 19: CLIENT SERVER PROGRAM APPLICATION

merah->Visible=False;

kuning->Visible=False;

biru->Visible=False;

hijau->Visible=False;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Biru1Click(TObject *Sender)

{

abuabu->Visible=False;

merah->Visible=False;

kuning->Visible=False;

biru->Visible=True;

hijau->Visible=False;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Hijau1Click(TObject *Sender)

{

abuabu->Visible=False;

merah->Visible=False;

kuning->Visible=False;

biru->Visible=False;

hijau->Visible=True;

}

//---------------------------------------------------------------------------

Page 20: CLIENT SERVER PROGRAM APPLICATION

void __fastcall TForm1::Kuning1Click(TObject *Sender)

{

abuabu->Visible=False;

merah->Visible=False;

kuning->Visible=True;

biru->Visible=False;

hijau->Visible=False;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Ungu1Click(TObject *Sender)

{

abuabu->Visible=False;

merah->Visible=True;

kuning->Visible=False;

biru->Visible=False;

hijau->Visible=False;

}

//---------------------------------------------------------------------------