Anda di halaman 1dari 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

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.

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.

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

Screen Shoot Program


Server Side

Client Side

Client dan Server Side

Listing Program
Server Side
server.cpp
#include <vcl.h>
#pragma hdrstop
#include "server.h"

#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;
}
//---------------------------------------------------------------------------

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);

}
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;
}

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();
{

}
}
//---------------------------------------------------------------------------

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;

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();

}
//---------------------------------------------------------------------------

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"

#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;

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;
}
//---------------------------------------------------------------------------

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)
{

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();
}
//---------------------------------------------------------------------------

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;

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;
}
//---------------------------------------------------------------------------

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;
}
//---------------------------------------------------------------------------

Anda mungkin juga menyukai