Upload
fenty-hidayati
View
1.113
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Laporan pemrograman visual
Aplikasi Chatting (server-client)
Menggunakan windows socket dengan bahasa c++
Disusun oleh :
Fenty tri hidayati
09091003058
(www.blog.unsri.ac.id/fenty)
FAKULTAS ILMU KOMPUTER
JURUSAN SISTEM INFORMASI
UNIVERSITAS SRIWIJAYA
TAHUN AJARAN 2010-2011
BAB IPENDAHULUAN
1.1 Pendahuluan
C++ builder adalah sebuah aplikasi yang digunakan untuk pengembangan dengan memanfaatkan keistimewaan konsep-konsep antar muka grafis dalam Microsoft Windows. Aplikasi yang dihasilkan C++ builder berkait erat dengan Windows itu sendiri sehingga dibutuhkan pengetahuan bagaimana cara kerja dari windows.
Seperti layaknya bahasa pemrograman yang berobjek Visual lainnya C++ Builder ini mempunyai kelebihan antara lain digolongkan ke dalam kelompok RAD(Rapid Application Development), yang merupakan perangkat pemrograman yang mampu membuat aplikasi dengan mudah dan cepat. C++ Builder juga tergolong kelompok bahasa pemrograman
yang menggunakan prinsip Even Driven. Keunggulan lainnya dari C++ Builder ini adalah dalam pengembangan Database dalam pemrograman database ini, terutama program yang sangat sederhana sekali, Anda sudah dapat menjalankan program tersebut tanpa harus menuliskan sebaris kode.
Dalam Pemrograman Visual banyak istilah dan konsep untuk menyebut “sesuatu” yang membentuk sebuah aplikasi. Istilah-istilah tersebut memiliki arti yang sama dalam lingkungan Pemrograman Visual yang lain, misalnya objek, properti, dan event.
Untuk itu dengan keistimewaan borland C++ builder ini, dibangun la
sebuah aplikasi chatting (server-client) dengan menggunakan komponen
windows socket. Windows socket yang berfungsi sebagai jembatan untuk
software aplikasi yang berhuubungan dengan network service terutama
TCP/IP pada sistem operasi windows. Socket juga memungkinkan
terjadinya pertukaran data antar program atau proses baik dalam satu
mesin atau antar mesin.
Maksud dan Tujuan
1. Memberikan informasi mengenai coding aplikasi chatting
menggunakan komponen windows socket di borland C++ builder.
2. Mengetahui bagaimana menghubungkan server socket dengan
client socket dalam aplikasi chatting di borland C++ builder.
BAB IIPEMBAHASAN
Membuat Aplikasi Chatting (Server-Client) dengan menggunakan windows socket di Borland C++ Builder
Pada pembuatan aplikasi chatting yang menggunakan jaringan internet
(TCP/IP atau UDP) , intranet atau LAN ada dua aplikasi di dalamnya, yaitu :
1. Server Application
2. Client Application
Aplikasi chatting ini menggunakan komponen windows socket. Socket
adalah salah satu komponen Borland C++ Builder dan merupakan
jembatan yang bisa memungkinkan terjadinya komunikasi di dalam
jaringan komputer dengan kata lain bisa disebut sebagai middleware.
Socket biasanya digunakan untuk membangun aplikasi terdistribusi.
Winsocks atau windows socket sebenarnya merupakan kepanjangan
dari windows socket API (Application Programming Interface) yang
berfungsi sebagai jembatan untuk software aplikasi yang berhuubungan
dengan network service terutama TCP/IP pada sistem operasi windows.
Socket juga memungkinkan terjadinya pertukaran data antar program
atau proses baik dalam satu mesin atau antar mesin.
Pemrograman Jaringan modern sekarang ini berbasis pada model
client/server. Pada sebagian besar kasus, server biasanya mengirim data,
sedangkan client menerimanya. Pembahasan tentang model
Client/Server tidak akan lepas dari konsep sistem terdistribusi. Sebab
client/server merupakan model dasar dari sistem terdistribusi.
Dengan pembagian fungsi untuk tiap komponen dalam suatu sistem,
manfaatnya:
- Berbagi resource
- Berbagi beban kerja
- Tidak membedakan platform
- Meningkatkan efisiensi
Ada dua organisasi yang menstandarisasi pemrograman jaringan
dan protocol di internet, yaitu:
- Internet Engineering Task Force (IETF) : TCP/IP, MIME, dan SMTP
- World Wide Web Consortium (W3C) : HTTP, HTML, XHTML, MathML, dan
XML
Dokumen-dokument IETF dipublikasikan sebagai Internet drafts dan
requests for comments (RFCs). RFCs and Internet drafts berasal dari
informational dokumen dari keinginan umum sampai spesifikasi detail dari
Internet protokol seperti HTTP.
Dokumen RFCs dipublikasikan jika disetujui oleh Internet Engineering
Steering Group (IESG) dari IETF. Semua dokumen standar IETF yang
disetujui adalah RFCs, tetapi tidak semua RFCs adalah standar IETF. RFCs
banyak terdapat di Internet, misalnya http://www.faqs.org/rfc/ dan
http://www.ietf.org/rfc.html
ARSITEKTUR CLIENT-SERVER
Client/Server dapat diartikan sebagai kemampuan komputer untuk
meminta layanan request data kepada komputer lain. Komputer yang
meminta layanan disebut sebagai client, sedangkan yang menyediakan
layanan disebut sebagai server.
Pengertian lain, client melakukan permintaan suatu informasi atau
mengirim perintah ke server. Server akan menerima permintaan dan
perintah client. Kemudian server akan memproses memproses
berdasarkan permintaan tersebut, dan mengembalikan kepada client
sebagai hasil pemrosesan yang sudah dilakukan.
Arsitektur Model Client/Server
Service Request adalah permintaan dari client baik berupa permintaan
data maupun perintah ke server.
Service Response berupa balasan dari server atas permintaan dari client
berupa hasil proses.
Data yang diminta oleh client dapat diambil dari database pada sisi server
yang sering disebut database server, seperi misalnya MySQL, PostgreSQL,
Oracle, atau SQL Server.
Karakteristik Client-Server:
Client dan Server merupakan item proses (logika) terpisah yang
bekerja sama pada suatu jaringan komputer untuk mengerjakan
suatu tugas
Service : Menyediakan layanan terpisah yang berbeda
Shared resource : Server dapat melayani beberapa client pada saat
yang sama dan mengatur pengaksesan resource
Asymmetrical Protocol : antara client dan server merupakan
hubungan one-to-many. Client memulai komunikasi dengan
mengirim request ke server. Server menunggu permintaan dari
client. Kondisi tersebut juga memungkinkan komunikasi callback.
Transparency Location : proses server dapat ditempatkan pada
mesin yang sama atau terpisah dengan proses client. Client/server
akan menyembunyikan lokasi server dari client.
Mix-and-match : tidak tergantung pada platform
Client –
Web Browser
Middleware PHP, JSP,ASP
Server – Apache, IIS
Service Request Services Response
Database: MySQL, Oracle
Data Request
Message-based-exchange : antara client dan server berkomunikasi
dengan mekanisme pertukaran message.
Encapsulation of service : message memberitahu server apa yang
akan dikerjakan
Scalability : sistem C/S dapat dimekarkan baik vertikal maupun
horisontal
Integrity : kode dan data server diatur secara terpusat, sedangkan
pada client tetap pada komputer tersendiri
MIDDLEWARE
Software yang berfungsi sebagai lapisan konversi atau penerjemah. Juga
sebagai konsolidator dan integrator. Middleware saat ini dikembangkan
untuk memungkinkan satu aplikasi berkomunikasi dengan lainnya
walaupun berjalan pada platform yang berbeda.
ARSITEKTUR SOFTWARE
- Data, menyediakan struktur dan fungsi untuk manipulasi informasi,
yang terdiri dari banyak objek data. Sebagai contoh : relational
Database, file grafik, file suara atau multimedia data stream
- Processing, terfokus pada pemrosesan objek data, yang biasanya
disebut sebagai middleware.
- Presentation, terfokus untuk membuat data tersedia untuk user dan
menangani interaksi dengan user. Ada dua level :
User interface
Presentation management, menyediakan operasi dasar untuk
membangun dan mengontrol user interface di bawah kontrol
aplikasi. Meliputi : layanan tampilan, kontrol dialog dan API.
Contoh : X-Windows, MS Windows
Tahapan dan Screenshot dari aplikasi chatting (server-client)
Adapun langkah pertama yang harus Anda siapkan dalam membuat
aplikasi chatting (server-client) di borland C++ builder adalah buat
sebuah form yang tampak di dalam gambar 1.1.
Letakkan komponen Server Socket (ServerSoc), dua Button (ada
BtnConnect dan BtnSend), textfield (ada dua yaitu untuk txtPort dan
txtSend), dan yang terakhir memo(memo1)
SERVER
Gambar 1.1 tampilan form server
Pada komponen Server Socket terdapat dua buah event, yaitu event
onconnect dan event onread.
Masukkan kode program berikut pada event onconnect:
1. Event OnConnect
Pada event OnClientConnect, dideklarasikan sebuah variabel temp
dengan tipe AnsiString, variabel ini kemudian diberi nilai Socket-
>RemoteAddress; yang merupakan alamat IP (IP Address) dari tiap
client yang akan terhubung ke server ini. Saat Server berhasil
terhubung ke Client maka pada Memo1 Server Side akan muncul
tulisan “Connected”.
Selanjutnnya masukkan kode program berikut pada event onread :
2. Event OnRead
void __fastcall TForm1::ServerSocConnect(TObject *Sender,
TCustomWinSocket *Socket)
{AnsiString temp;
temp=Socket->RemoteAddress;
int i;
for(i=0;i<serverSoc->Socket->ActiveConnections;i++)
{ServerSoc->Socket->Connections[i]->SendText(temp+"Connected");
}Memo1->Lines->Add(temp+" Connected");
}
void __fastcall TForm1::ServerSocRead(TObject *Sender,
TCustomWinSocket *Socket)
{int i;
AnsiString temp,temp2; //untuk temporarinya
temp=Socket->ReceiveText();
temp2=Socket->RemoteAddress;
for(i=0;i<ServerSoc->Socket->ActiveConnections;i++)
{ServerSoc->Socket->Connections[i]-
>SendText(temp2+":"+temp);}Memo1->Lines->Add(temp2+":"+temp);
}
Pada event OnClientRead, dideklarasikan dua buah variabel AnsiString
(temp, temp2). temp=Socket->ReceiveText(); dimana temp berisi
pesan yang diterima Server dari Client.
Untuk Button, terdapat dua buah button yaitu Button Connect dan
Button Send. Masukkan kode program berikut ke dalam tombol
Connect:
1. Button Connect
Fungsi Button connect disini yaitu untuk mengkoneksikan server
socket dengan client socket.
ServerSoc->Port=StrToInt(txtPort->Text);
(ServerSoc= nama Server Socket yang kita buat sendiri)
txtPort merupakan nama textfield yang berisi port dari server yang
aktif.
syntax Port=StrToInt(txtPort->Text);
(dilakukan karena port berupa angka sedangkan textfield berupa
string sehingga nilainya harus di parsing dari string ke integer)
syntax ServerSoc->Open();( berfungsi untuk mengaktifkan server
socket).
Pada tombol Send masukkan kode program berikut :
2. Button Send
void __fastcall TForm1::BtnConnectClick(TObject *Sender)
{ServerSoc->Port=StrToInt(txtPort->Text);
ServerSoc->Open();
}
void __fastcall TForm1::BtnSendClick(TObject *Sender)
{for(int i=0;i<ServerSoc->Socket->ActiveConnections;i++)
{ServerSoc->Socket->Connections[i]->SendText(txtSend-
>Text);}Memo1->Lines->Add(txtSend->Text);
}
Fungsi tombol Button Send yaitu untuk Server Socket mengirim
pesan yang diinputkan pada txtSend ke Client.
Langkah selanjutnya,buat tampilan form kedua yang digunkan
untuk client seperti gambar 1.2 di bawah. Letakkan komponen Client
Socket (ClientSoc), Button (ada dua button yaitu BtnConnect dan
BtnSend),Textfield (ada empat buah textfield yaitu
txtIp,txtPort,txtName,txtMsg), dan terakhir komponen Memo (Memo1).
2. CLIENT
Gambar 1.2 form Client
Selanjutnya ke bagian pengisian koding. Untuk pembuatan koding
hampir sama dengan pembuatan koding pada Server Socket.
Pada Server Socket juga terdapat dua buah event, yaitu :
1. Event OnConnect
void __fastcall TForm1::ClientSocConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Connected to Server");
}
Saat Client berhasil terhubung ke Server maka pada Memo1 Server
Side akan muncul tulisan “Connected”.
2. Event OnRead
Fungsi event OnRead yaitu untuk pembacaan pesan yang diterima
dari server.
Untuk Button, terdapat dua buah button yaitu Button connect dan
Button Send. Pada tombol Button Connect masukkan kode program
berikut :
3. Button Connect
txtIp berisi ip address server yang dituju, dalam kasus ini
digunakan ip address 127.0.0.1 sebagai localhost, karena
dalam aplikasi chat ini pada sebuah komputer yang sama
(Server dan Client nya berada pada komputer yang sama).
Namun jika server nya berada pada komputer yang lain, maka
ip address nya disesuaikan dengan ip address komputer
dimana server diletakan.
txtport berisi port server (portnya harus sama dengan port
server yang Client yang akan dikoneksikan). Ingat Portnya di
parsing dulu ke Integer, karena textfield bertipe String.
void __fastcall TForm1::ClientSocRead(TObject *Sender, TCustomWinSocket
*Socket)
{
Memo1->Lines->Add(Socket->ReceiveText());
}
void __fastcall TForm1::BtnConnectClick(TObject *Sender){ ClientSoc->Address=txtip->Text; ClientSoc->Port=StrToInt(txtport->Text); ClientSoc->Open(); //mengaktifkan Client Socket}
Pada tombol Button Send masukkan kode program berikut :
4. Button Send
Client Socket mengirim pesan yang diinputkan pada txtmsg ke
server.
void __fastcall TForm1::BtnSendClick(TObject *Sender)
{
ClientSoc->Socket->SendText(txtname->Text+”#”+txtmsg->Text);
}