pengembangan aplikasi remote spesifikasi desktop …

142
SKRIPSI PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP BERBASIS CLIENT SERVER Oleh : Nurul Farhanah 106091002866 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2011

Upload: others

Post on 29-Nov-2021

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

SKRIPSI

PENGEMBANGAN APLIKASI REMOTE

SPESIFIKASI DESKTOP BERBASIS CLIENT SERVER

Oleh :

Nurul Farhanah

106091002866

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI

SYARIF HIDAYATULLAH

JAKARTA

2011

Page 2: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Teruntuk

Skripsi ini terkhusus penulis persembahkan kepada mereka yang telah

mendukung, baik moril maupun materiil, dalam menyelesaikan skripsi ini.

1. Teteh-tetehku Nunik, Isna, Zakiah, Hayatun, adik-adikku Zaenal, Imad, Ajat, ketiga

kakak iparku Ka’didin, Abang Ozy, A’Jajang serta 4 keponakanku Anindya, Al-

Ghifari, Aiman, Aufa yang telah menjadi tempat penulis melepaskan penat dalam

penyusunan Skripsi ini.

2. Teman-Teman seperjuangan KKN 15 2009, Teknik Informatika UIN 2006, TI-

Network, TI-A 2006 atas dukungan kalian semua.

3. Kepada sahabat-sahabatku yang selalu memotivasi selama ini Finna, Rizka Deti, Ofie,

Mia, Shelvi, Jemi, Atieq, Ferry, Vsank, Qori, Desti, Ulan, Bana, Efa, Tri, Idam.

4. Untuk sahabat kecilku Vivi, Ita, Dini, Danis, Reagy, Yanti, Opick, Dessy, temen SD,

SMP ICM, MAN 2 Bogor, special thanks Mufti Noviar Awal buat waktu dan

tenaganya dan Umay Bin Rohim buat semua support semangatnya.

5. Teman-teman satu dosen Pembimbing yang selalu mensupport dan saling

mendo’akan.

6. Dan untuk seseorang yang kunantikan esok….

Page 3: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

PENGESAHAN UJIAN Skripsi yang berjudul “Pengembangan Aplikasi Remote Spesifikasi Desktop Berbasis Client Server”, telah diuji dan dinyatakan lulus dalam Sidang Munaqosah Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta, pada hari Senin tanggal 7 Februari 2011 Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Program Teknik Informatika

Jakarta, Februari 2011

Tim Penguji,

Penguji I Penguji II

Yusuf Durrachman M.Sc, MIT Viva Arifin, MMSI NIP. 197105222006041002 NIP. 19730810 200604 2 001

Tim Pembimbing,

Pembimbing I Pembimbing II

Herlino Nanang, M.T, CCNA Andrew Fiade, M.Kom NIP. 197312092005011002 NIP. 198208112009121004

Mengetahui,

Dekan Ketua Program Studi Fakultas Sains Dan Teknologi Teknik Informatika

DR. Syopiansyah Jaya Putra, M.Sis Yusuf Durrachman M.Sc, MIT NIP. 196801172001121001 NIP. 197105222006041002

iii

Page 4: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI

KOMPUTER BERBASIS CLIENT SERVER

Skripsi Sebagai Salah Satu Syarat Untuk Memperoleh Gelar

Sarjana Komputer Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta

Oleh

Nurul Farhanah

106091002866

Menyetujui,

Pembimbing 2

Andrew Fiade, M.Kom NIP. 198208112009121004

Pembimbing 1

Herlino Nanang, M.T, CCNA NIP. 197312092005011002

Mengetahui, Ketua Program Studi Teknik Informatika

Yusuf Durachman, MSc, M.IT NIP. 197105222006041002

ii

Page 5: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

PERNYATAAN

DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-

BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN

SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI

ATAU LEMBAGA MANAPUN.

Jakarta, Februari 2011

Nurul Farhanah 106091002866

iv

Page 6: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

ABSTRAK

Nurul Farhanah (106091002866), Pengembangan Aplikasi Remote Spesifikasi

Komputer Berbasis Client Server, Dibimbing oleh Herlino Nanang, M.T, CCNA

dan Andrew Fiade, MKom.

Dalam sebuah jaringan komputer terdapat keinginan untuk mengorganisir

jaringan secara terpusat berbasis client server, mengetahui spesifikasi komputer,

penggunaan cpu, alokasi memori yang digunakan dan hardisk yang tersedia pada

tiap komputer, dan mengendalikan client oleh servernya. Sehingga timbul

masalah bagaimana cara spek komputer client dapat dikirim ke server, bagaimana

mengendalikan komputer client dan memonitoring komputer client dan

diharapkan menghasilkan aplikasi yang membantu dalam penghematan waktu dan

tenaga dalam mengontrol aktivitas user pada jaringan. Maka dibuat aplikasi

sederhana untuk melakukan pengecekan terhadap speksifikasi komputer client,

pengendalian, dan pengawasan terhadap komputer yang berada pada jaringannya

menggunakan bahasa pemrograman Delphi 7.0. Metodologi penelitian yang

digunakan dalam pembuatan aplikasi ini adalah Rapid Aplication Development.

Aplikasi ini dapat berjalan pada system operasi windows.

Kata Kunci : Client Server, Speksifikasi komputer, remote

v

Page 7: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

KATA PENGANTAR

Bismillahirrahmannirrahiim………

Segala puji dan syukur penulis panjatkan kepada Allah SWT, Yang Maha

Kuasa dan telah memberikan berkah dan anugerahNya kepada penulis sehingga

penulis mampu melaksanakan tugas untuk menyelesaikan skripsi ini dengan

sebaik-baiknya. Shalawat serta salam tak lupa juga penulis haturkan kepada

junjungan kita Nabi Muhammad SAW.

Skripsi ini penulis buat sebagai syarat kelulusan dalam menempuh

pendidikan jenjang Strata-1 (S1) di Universitas Islam Negeri Syarif Hidayatullah

Jakarta. Selain itu juga penulis berharap apa yang penulis teliti, yang dijelaskan di

dalam skripsi ini, dapat dipergunakan dengan baik oleh semua pihak yang

membutuhkan, sehingga perkembangan ilmu pengetahuan dan teknologi

khususnya di Program Studi Teknik Informatika UIN Syarif Hidayatullah Jakarta

dapat lebih maju dan lulusannya dapat bekerja secara kooperatif dengan semua

elemen informatika dari seluruh dunia.

Pada kesempatan ini, penulis mengucapkan terima kasih kepada pihak-

pihak yang telah membantu penulis menyelesaikan skripsi ini :

1. Bapak Dr. Syopiansyah jaya Putra M.Sis selaku Dekan Fakultas Sains dan

Teknologi.

2. Bapak Yusuf Durrachman M.Sc, MIT selaku ketua Program Studi Teknik

Informatika atas kesempatan untuk dapat melakukan penelitian di

Program Studi Teknik Informatika UIN Jakarta.

vi

Page 8: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

vii

3. Herlino Nanang, M.T, CCNA dan Bapak Andrew Fiade,MT yang telah

rela meluangkan waktunya untuk mendukung dan membimbing penulis

dalam menyelesaikan skripsi ini.

4. Bapak dan Ibu penguji yang memberikan kritik dan saran pada skripsi ini.

5. Dosen-Dosen Fakultas Sains dan Teknologi yang telah mengajarkan

kepada penulis berbagai macam ilmu yang dapat penulis terapkan dalam

penulisan skripsi ini.

6. Ayah Tercinta di Surga (Alm) Bapak Nawawi Iskandar dan Ibu Tersayang

RM Muchlishoh, yang telah memberikan dukungan moril, semangat dan

materiil sehingga memperlancar proses penyusunan skripsi ini.

Penulis menyadari masih terdapat banyak kekurangan dalam penelitian ini,

baik penulisan maupun aplikasinya sendiri. Oleh karena itu penulis mengharapkan

saran dan kritik yang dapat membangun skripsi ini lebih baik lagi.

Jakarta, Februari 2011

Penulis

Page 9: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

DAFTAR ISI

Halaman

Halaman judul ............................................................................................ i

Persetujuan pembimbing ............................................................................ ii

Halaman pengesahan .................................................................................. iii

Halaman pernyataan ................................................................................... iv

Abstrak ....................................................................................................... v

Kata Pengantar ........................................................................................... vi

Daftar isi...................................................................................................... viii

Daftar gambar ............................................................................................. xii

Daftar tabel ................................................................................................. xiv

Daftar lampiran .......................................................................................... xv

BAB I PENDAHULUAN

1.1. Latar Belakang ............................................................................ 1

1.2. Perumusan Masalah ..................................................................... 2

1.3. Pembatasan Masalah ................................................................... 3

1.4. Tujuan Penelitian ......................................................................... 3

1.5. Manfaat Penelitian ...................................................................... 4

1.6. Metodologi Penelitian .................................................................. 5

1.7. Sistematika Penulisan ................................................................. 7

viii

Page 10: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

BAB II LANDASAN TEORI

2.1. Pengembangan ............................................................................ 9

2.2. Aplikasi ....................................................................................... 9

2.3. Client-Server ............................................................................... 10

2.4. Socket Programming ................................................................... 12

2.5. Internet Direct (Indy) .................................................................. 13

2.6. Protokol ....................................................................................... 16

2.6.1 Protokol TCP....................................................................... 18

2.6.2 Protokol UDP...................................................................... 20

2.7. Port Address ................................................................................ 21

2.8. Borland Delphi 7.0 ...................................................................... 22

2.9. Library WinAPI Sistem Windows ............................................... 28

2.10. Unified Modelling Language (UML)........................................... 29

2.11. Metode RAD ................................................................................ 31

2.12. Studi Literature ............................................................................ 32

BAB III METODOLOGI PENELITIAN

3.1. Metode Pengumpulan Data ......................................................... 37

3.1.1. Studi Pustaka.................................................................... 37

3.1.2. Studi literature.................................................................. 37

3.2. Metode Pengembangan Sistem ................................................... 40

3.2.1. Perencanaan Syarat-Syarat .............................................. 41

3.2.2. Perancangan .................................................................... 42

ix

Page 11: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

x

3.2.3. Konstruksi ....................................................................... 42

3.2.4. Pelaksanaan ..................................................................... 42

BAB IV PEMBAHASAN

4.1. Fase Perencanaan syarat-syarat.................................................... 45

4.2. Fase Perancangan ........................................................................ 46

4.2.1. Use case Diagram ............................................................ 46

4.2.2. Use case Scenario ........................................................... 48

4.2.3. Sequence Diagram ........................................................... 49

4.2.4. Perancangan User interface ............................................ 51

4.3. Fase Konstruksi............................................................................ 54

4.4. Fase Pengujian ............................................................................ 75

4.4.1. Spesifikasi Komputer ....................................................... 75

4.4.2. Tipe jaringan yang digunakan .......................................... 76

4.4.3. Hasil Pengujian ................................................................. 77

4.4.4. Pengujian Blackbox (Pengujian Mandiri) ........................ 88

BAB V KESIMPULAN DAN SARAN

5.1. Kesimpulan ................................................................................. 90

5.2. Saran ............................................................................................ 91

DAFTAR PUSTAKA

LAMPIRAN-LAMPIRAN

Page 12: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

DAFTAR GAMBAR

Halaman

Gambar 2.1 Contoh client server dengan 5 client 1 server................................ 11

Gambar 2.2 Format header TCP......................................................................... 20

Gambar 2.3 Three Way Handshake (sumber Craig Hunt 1992) ......................... 20

Gambar 2.4 Format header UDP ....................................................................... 21

Gambar 3.1 Fase-fase RAD ................................................................................ 41

Gambar 3.2 Fase-fase metodologi RAD ............................................................. 44

Gambar 4.1 Usecase Diagram remote desktop komputer................................... 46

Gambar 4.2 Usecase Koneksi ............................................................................ 47

Gambar 4.3 Usecase ambil data memori client .................................................. 47

Gambar 4.4 Usecase remote desktop dan monitoring client ................................ 47

Gambar 4.5 Usecase Tutup Koneksi .................................................................. 48

Gambar 4.6 Sequence Diagram untuk koneksi .................................................... 50

Gambar 4.7 Sequence Diagram untuk Ambil data hardware client ................... 51

Gambar 4.9 Sequence Diagram untuk monitoring client ................................... 52

Gambar 4.10 Sequence Diagram untuk tutup koneksi ....................................... 53

Gambar 4.11Aplikasi untuk server .................................................................... 54

Gambar 4.12 Aplikasi untuk client .................................................................... 54

Gambar 4.13 Koneksi remote desktop ............................................................... 54

Gambar 4.14 Remote control client ................................................................... 59

Gambar 4.15 Desain form aplikasi client............................................................ 56

Gambar 4.16 Tampilan apabila terjadi tutup koneksi ......................................... 59

xii

Page 13: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

xiii

Gambar 4.17 form utama server ....................................................................... 67

Gambar 4.18 Keterangan telah menerima koneksi dari client ............................ 67

Gambar 4.19 Ketika koneksi diputus oleh server ............................................... 69

Gambar 4.20 Tampilan remote control client ..................................................... 72

Gambar 4.21 Tampilan untuk memulai remote control ..................................... 73

Gambar 4.22 Tipe jaringan yang digunakan ....................................................... 76

Gambar 4.23 interface aplikasi client.................................................................. 76

Gambar 4.24 interface aplikasi server ............................................................... 77

Gambar 4.25 interface terkoneksi ....................................................................... 78

Gambar 4.26 Interface terkoneksi pada aplikasi client ....................................... 79

Gambar 4.27 interface ambil data memori client ............................................... 79

Gambar 4.28 interface ambil data memori client1.................................................80

Gambar 4.29 Tampilan spesifikasi komputer client yang terhubung ....................81

Gambar 4.30 Tampilan spesifikasi beberapa komputer client yang terhubung ................ 81

Gambar 4.31 Interface pada saat monitoring client ...............................................82

Gambar 4.32 Tampilan untuk memilih client yang akan di-monitoring................83

Gambar 4.33 Tampilan desktop komputer client yang di-remote..........................83

Gambar 4.34 tampilan menu dalam form remote client ........................................84

Gambar 4.35 tampilan menjalankan aplikasi pada client.......................................84

Gambar 4.36 tampilan tutup koneksi pada server..................................................84

Gambar 4.37 tampilan tutup koneksi pada client...................................................86

Page 14: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

DAFTAR TABEL

Halaman

Table 2.1 Jenis-jenis protocol berdasarkan layernya ....................................... 17

Tabel 4.1. Use case Scenario Koneksi............................................................. 49

Tabel 4.2. Use case Scenario ambil data memori client .................................. 49

Tabel 4.3. Use case Scenario Remote desktop dan monitoring client ............. 49

Tabel 4.4. Use case Scenario tutup koneksi ................................................... 50

Tabel 4.5. Spesifikasi komputer untuk pengujian ........................................... 75

Tabel 4.6. Hasil pengujian terhadap aplikasi spesifikasi basis client server .. 89

xiv

Page 15: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

BAB I

PENDAHULUAN

1.1 Latar Belakang

Local Area Network biasa disingkat LAN adalah sebuah jaringan

komputer yang hanya mencakup wilayah kecil, seperti jaringan komputer

laboratorium, gedung, kantor, dalam rumah, sekolah atau yang lebih kecil.

Setiap node atau komputer dalam sebuah jaringan LAN mempunyai daya

komputasi sendiri, dimana setiap komputer juga dapat mengakses sumber

daya sesuai dengan hak akses yang telah diatur.

Akses terhadap komputer yang berada dalam satu jaringan dapat

berupa pengaksesan terhadap file ataupun aplikasi. Termasuk pula

pengaksesan dalam spesifikasi komputer yang sedang diakses. Akses terhadap

spesifikasi komputer dalam satu jaringan bisa melalui pengontrolan atau

pengendalian host-host dengan menggunakan aplikasi remote monitoring atau

remote control komputer. Namun, remote monitoring pun memiliki

keterbatasan dalam mengetahui spesifikasi komputer secara langsung.

Jaringan LAN client server adalah suatu sistem jaringan komputer

yang memanfaatkan sebuah server atau beberapa server untuk dijadikan

sebagai pusat pengontrol host atau node lainnya, dan juga server akan

berfungsi sebagai penyedia fasilitas-fasilitas yang diperlukan untuk

host/workstation di dalam suatu jaringan, dan workstation yang bertindak

sebagai client hanya bisa menerima dan menggunakan fasilitas yang

1

Page 16: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

2

disediakan oleh server komputer tersebut. Selain fasilitas yang disediakan

server, bisa juga terjadi komunikasi antara client-server melalui chatting baik

itu memakai aplikasi chatting portable ataupun memakai aplikasi chatting

bawaan sistem operasi windows (contoh : net meeting).

Keinginan server untuk dapat mengorganisir jaringan secara terpusat,

mengetahui spesifikasi komputer, penggunaan cpu, alokasi memori yang

digunakan dan hardisk yang tersedia pada tiap komputer, keinginan untuk

dapat berkomunikasi, serta keinginan untuk dapat mengendalikan serta

mengontrol aktifitas client merupakan alasan dibuatnya aplikasi yang dapat

memantau sekaligus mengetahui spesifikasi komputer pada client.

Aplikasi ini merupakan penggabungan dari konsep aplikasi remote

monitoring dan aplikasi pendeteksi spesifikasi komputer yang telah ada

sebelumnya. Dengan adanya aplikasi ini, diharapkan dapat mengefisiensikan

waktu dalam melakukan pengecekan spesifikasi komputer client, sekaligus

dapat memantau serta mengendalikan aktivitas yang sedang dilakukan oleh

client.

Dengan latar belakang masalah tersebut, maka dengan ini penulis

mengajukan judul skripsi : “Pengembangan Aplikasi Remote Spesifikasi

Desktop Berbasis Client Server”.

Page 17: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

3

1.2 Perumusan Masalah

Berdasarkan latar belakang permasalahan tersebut, dapat dirumuskan

masalah yang harus dipecahkan yaitu :

1. Bagaimana menampilkan keterangan spesifikasi komputer client

yang di kirim ke komputer server?

2. Bagaimana server dapat me-remote komputer client?

3. Aktivitas remote apa saja yang dapat dilakukan oleh server?

1.3 Pembatasan Masalah

Untuk menghindari meluasnya ruang lingkup yang dibahas pada

penelitian ini, maka diberikan batasan masalah sebagai berikut:

1. Percobaan terhadap aplikasi ini hanya akan dilakukan dalam sebuah

jaringan LAN.

2. Aplikasi ini terbagi 2, yaitu aplikasi client dan aplikasi server.

3. Aplikasi dijalankan dalam sistem operasi Windows.

4. Perangkat lunak yang akan digunakan untuk membangun aplikasi ini

adalah Borland Delphi 7.

5. Antarmuka perangkat lunak akan dikembangkan dalam bahasa Inggris

karena alasan banyaknya istilah asing yang bila dialih-bahasakan ke

bahasa Indonesia akan menimbulkan kerancuan.

6. Methodologi yang digunakan pada penelitian ini adalah Rapid

Aplication Development (RAD).

Page 18: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

4

1.4 Tujuan Penelitian

Tujuan yang ingin dicapai oleh penulis dari penelitian ini adalah :

1. Menghasilkan sebuah aplikasi remote LAN yang dapat mengirim data

spesifikasi komputer client yang akan di tampilkan di aplikasi server.

2. Dengan aplikasi ini diharapkan server dapat memantau aktivitas user

melalui remote monitoring client yang merupakan dasar dari

pengembangan aplikasi remote ini.

1.5 Manfaat Penelitian

Manfaat yang didapat dari penelitian ini adalah :

1. Bagi Penulis

a. Mengetahui lebih mendalam tentang remote LAN (tentang

pembuatan, fungsi dan kegunaannya).

b. Menambah pengalaman, memperluas wawasan dalam

mengembangkan potensi diri.

2. Bagi Pengguna

a. Mengefisiensikan waktu untuk mengetahui spesifikasi tiap-tiap

node dalam jaringan LAN.

b. Mengakses komputer client dengan me-remote komputer client

c. Monitoring terhadap komputer client

Page 19: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

5

3. Bagi Universitas

a. Dapat menjadi sumbangan karya ilmiah dalam disiplin ilmu

teknologi informasi.

b. Dapat dijadikan sebagai bahan bacaan atau acuan bagi peneliti lain

yang berminat mengkaji permasalahan atau topik yang sama.

1.6 Metodologi Penelitian

1.6.1 Pengumpulan Data

Dalam melakukan pengumpulan data, penulis menggunakan

dua metode, yaitu :

1. Studi Pustaka

Mengumpulkan data dari buku-buku di perpustakaan ataupun dari

internet.

2. Studi Literature

Berdasarkan pengamatan penulis, pada penelitian sebelumnya

terdapat beberapa penelitian yang hampir serupa dengan judul

Pengembangan Aplikasi Remote Spesifikasi Komputer Berbasis

Client Server, yaitu Rancang Bangun Aplikasi Remote untuk

Administrasi LAN. literature aplikasi yang digunakan sebagai

acuan adalah aplikasi remote monitoring. Pada aplikasi ini

sepenuhnya me-remote jaringan LAN, dari aplikasi tersebut maka

peneliti mengembangkan aplikasi remote LAN yang bisa

memberikan informasi tentang memori client secara otomatis.

Page 20: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

6

1.6.2 Pengembangan Aplikasi

Dengan mengacu pada latar belakang penelitian, perumusan

dan pembatasan permasalahan, serta tujuan dan manfaat penelitian

yang ada, penulis memutuskan untuk menggunakan model Rapid

Aplication Development (RAD). Secara garis besar, RAD ini terdiri

dari beberapa tahapan, yaitu:

a. Fase Perencanaan Syarat-Syarat

Fase dimana menentukan tujuan dan syarat-syarat

terbentuknya suatu sistem.

b. Fase Perancangan

Fase di mana perancangan proses-proses yang akan terjadi

dalam aplikasi, perancangan basis data dan perancangan

antarmuka.

c. Fase Konstruksi

Pada tahapan ini dilakukan tahap pengkodean terhadap

rancangan-rancangan yang telah didefinisikan.

d. Fase Pelaksanaan

Pada tahap ini dilakukan pengujian terhadap sistem dan

pengenalan terhadap aplikasi.

Model RAD ini sebenarnya hampir sama dengan model

waterfall, bedanya siklus pengembangan yang ditempuh model ini

sangat pendek dengan penerapan teknik yang cepat.

Page 21: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

7

1.7 Sistematika Penulisan

Dalam skripsi ini, penulis menjabarkan penelitian “Pengembangan

Aplikasi Remote Spesifikasi Desktop Berbasis Client Server” dalam 5

(lima) bab, yaitu :

BAB I PENDAHULUAN

Bab ini berisi pengantar berupa latar belakang dilakukannya

penelitian, perumusan masalah, pembatasan masalah,

tujuan, serta manfaat yang dapat diambil dari penelitian ini.

BAB II LANDASAN TEORI

Bab ini berisi pembahasan teori-teori yang digunakan

sebagai panduan dasar dalam pengembangan sistem ini.

BAB III METODOLOGI PENELITIAN

Bab ini berisi metodologi penelitian yang digunakan serta

langkah-langkah yang digunakan terkait dengan penelitian

yang dilakukan.

BAB IV ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi hasil pengujian aplikasi yang meliputi

spesifikasi komputer, sistem operasi, bahasa pemograman

dan design jaringan yang digunakan pada saat pengujian

dalam bentuk screen shoot.

Page 22: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

8

BAB V KESIMPULAN DAN SARAN

Bab ini merupakan bab penutup yang berisi kesimpulan

serta saran yang dapat membantu pengembangan aplikasi

ini di masa yang akan datang.

Page 23: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

BAB II

LANDASAN TEORI

2.1 Pengembangan

Pengembangan adalah kegiatan ilmu pengetahuan dan teknologi

yang bertujuan memanfaatkan kaidah dan teori ilmu pengetahuan yang

telah terbukti kebenarannya untuk meningkatkan fungsi, manfaat, dan

aplikasi ilmu pengetahuan dan teknologi yang telah ada, atau

menghasilkan teknologi baru (Undang-undang Republik Indonesia Nomor

18 Tahun 2002).

Pengembangan dapat juga berarti memperbaiki, menggabungkan,

menambahkan atau menggantikan sistem yang rusak. Pada penelitian ini

pengembangan yang dilakukan adalah mengembangkan aplikasi remote

monitoring dengan menambahkan remote spesifikasi data komputer

berbasis client server.

2.2 Aplikasi

Program aplikasi adalah program siap pakai. Program yang direka

untuk melaksanakan suatu fungsi bagi pengguna atau aplikasi yang lain.

Contoh-contoh aplikasi ialah program pemproses kata dan Web Browser.

Aplikasi akan menggunakan sistem operasi (OS) komputer dan aplikasi

yang lainnya yang mendukung.

9

Page 24: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

10

Aplikasi adalah program yang digunakan orang untuk melakukan

sesuatu pada sistem komputer, meskipun aplikasi disertakan sebagai

bagian dari sistem operasi. [wiki.freepascal.2010]

Dari pengertian aplikasi diatas dapat dipahami bahwa ciri dari

aplikasi antara lain siap pakai sehingga pada penelitian ini aplikasi remote

yang diharapkan dapat langsung dipakai dan tentunya mudah dalam

menggunakan atau pemakaian.

2.3 Client- Server

Client-server yaitu jaringan komputer dengan komputer yang

didedikasikan khusus sebagai server. Sebuah service/layanan bisa

diberikan oleh sebuah komputer atau lebih.

Server adalah komputer yang dapat memberikan service ke client,

sedangkan client adalah komputer yang mengakses beberapa service yang

ada di server. Ketika client membutuhkan suatu service yang ada di

server, dia akan mengirim request kepada server lewat jaringan. Jika

request tersebut dapat dilaksanakan, maka server akan mengirim balasan

berupa service yang dibutuhkan untuk saling berhubungan menggunakan

socket.

1. Karakteristik Server

a. Pasif

b. Menunggu request

Page 25: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

11

c. Menerima request, memproses mereka dan mengirimkan

balasan berupa service

2. Karakteristik Client

a. Aktif

b. Mengirim request

c. Menunggu dan menerima balasan dari server

Gambar 2.1 Contoh client server dengan 5 client 1 server

Client/Server merupakan teknologi pendistribusian kerja aplikasi

antara dua komputer atau lebih, yang dihubungkan oleh jaringan

komunikasi, dimana yang satu akan bertindak sebagai client atau peminta

layanan, dan yang lainnya sebagai server, atau pemberi layanan. Baik

client ataupun server memiliki pemroses atau CPU sendiri, sedangkan

jaringan yang digunakan bisa berupa jaringan lokal (LAN) ataupun

jaringan yang lebih luas lagi (WAN). [Nurrachyanto, Edy. 2010]

Page 26: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

12

Dalam model Client/Server, sebuah aplikasi dibagi menjadi dua

bagian yang terpisah, tapi masih merupakan sebuah kesatuan yakni

komponen client dan komponen server.

2.4 Socket Programming

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.

Socket Programming adalah protokol yang mempunyai metode

untuk membuat koneksi antara perangkat dalam jaringan. Terdapat dua

tipe socket yang paling sering digunakan yaitu “Stream Socket” dan

“Datagram Socket” yang lebih dikenal dengan “SOCK_STREAM” and

“SOCK_DGRAM”. Datagram Socket disebut dengan “Connectionless

socket” sedangkan Stream Socket lebih reliable dibandingkan Datagram

Socket karena terciptanya komunikasi dua arah yang memungkinkan

kecilnya data error pada saat transmisi data. [unamedplayer. 2010]

Socket Programming merupakan pemrograman ke arah protocol

jaringan untuk menghubungkan komunikasi antara proses remote dan

Page 27: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

13

local. Salah satu library yang digunakan saat menggunakan socket

programming adalah winsock (windows socket). Winsock dapat

didefinisikan dan didokumentasikan oleh standard API (Application

Programming Interface). Socket programming juga untuk mengetahui

bagaimana menggunakan socket API.

Pemograman socket Diantaranya dapat mengimplementasikan

protocol jaringan UDC, HTTP, ICMP, DNS.

2.5 Internet Direct (Indy)

Indy digunakan untuk membuat aplikasi yang menggunakan

protocol jaringan. Indy adalah komponen open source yang terdiri dari

protocol internet yang sudah begitu popular, seperti HTTP, FTP, SMTP,

TCP, UDP, Gopher, Whois dan lain–lain. Karena open source maka semua

kode program yang ada dapat dikembangkan kembali. Kemudahan indy

yang lain yaitu mendukung protocol sampai 120 protokol. (pujon online-

www.pherie.my-php.net)

Protokol jaringan adalah software yang digunakan untuk

menghubungkan komputer dalam jaringan supaya dapat saling

berkomunikasi. Protokol terdiri dari aturan-aturan yang dipakai dalam

berkomunikasi. Protokol yang banyak digunakan untuk menghubungkan

komputer dalam jaringan, antara lain ATM, Apple Talk, DCL, Net BEUI,

NWLink IPX/SPX, TCP/IP, dan lain-lain.

Page 28: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

14

Komponen internet direct (indy) digunakan untuk aplikasi jaringan

berbasis Client Server. Aplikasi jaringan yang dibuat dengan komponen

indy terhubung dalam sebuah jaringan Local Area Network (LAN),

komponen indy terbagi menjadi dua group utama yaitu indy server dan

indy client dimana indy server ditempatkan pada aplikasi server

sedangkan indy client ditempatkan pada aplikasi client.

Internet langsung (Indy) adalah seperangkat komponen Internet

open source, meliputi hampir semua protokol Internet yang populer.

Ditulis dengan Delphi Indy, yang termasuk dalam Delphi 6, Kylix 1 dan C

+ + Builder 6 dan di atas dalam semua versi lingkungan pengembangan

Borland.

Komponen dalam internet direct atau indy antara lain :

1. IdICMPClient

Internet Control Message Protocol (ICMP) adalah protokol

yang bertugas mengirimkan pesan-pesan kesalahan dan kondisi

lain yang memerlukan perhatian khusus. Pesan atau paket ICMP

dikirim jika terjadi masalah pada layer IP dan layer atasnya

(TCP/UDP).

Page 29: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

15

2. TIdIPWatch

Komponen ini digunakan untuk mendapatkan informasi IP

Address yang terdapat dalam komputer yang sedang aktif.

3. Proxy HTTP

Hypertext Transfer Protocol (HTTP) merupakan protokol

komunikasi yang digunakan untuk men-transfer informasi pada

World Wide Web. Fungsi originalnya adalah menyediakan cara

untuk mem-publish dan menerima halaman HTML hypertext.

HTTP merupakan protokol request/response antara client dan

server. Client membuat sebuah HTTP request, seperti web

browser. Server – merupakan komputer yang menyimpan atau

membuat file HTML. Sebuah client HTTP akan menginisialisasi

sebuah request dengan membangun sebuah koneksi TCP ke port

80 (default) , Sebuah Server HTTP akan „mendengarkan‟ port.

Saat menerima request, server akan mengirimkan kembali status

seperti : “(HTTP/1.1 200) OK”, dan sebuah message untuk

dirinya sendiri.

4. Whois

Merupakan sebuah protocol query yang berbasis TCP yang

digunakan untuk melakukan query ke database untuk

menentukan pemilik dari sebuah domain name, alamat IP.

Page 30: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

16

Kegunaaan dari data yang diberikan oleh WHOIS (hasil query),

dapat digunakan untuk melakukan validasi untuk Certificate

Authority misalnya untuk registrasi ecommerce dan sebagainya.

5. TIdUdpServer dan TIdUdpClient

UDP (User Datagram Protocol ) merupakan salah satu protokol

lapisan transport TCP/IP yang mendukung komunikasi yang

tidak andal (unreliable), tanpa koneksi (connectionless) antara

host-host dalam jaringan yang menggunakan TCP/IP.

[Andrew fiade.2010]

2.6 Protokol

Protokol adalah sebuah aturan atau standar yang mengatur atau

mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data

antara dua atau lebih titik komputer. Protokol dapat diterapkan pada

perangkat keras, perangkat lunak atau kombinasi dari keduanya. Pada

tingkatan yang terendah, protokol mendefinisikan koneksi perangkat

keras.

Dalam membuat protokol ada tiga hal yang harus dipertimbangkan,

yaitu efektivitas, kehandalan, dan Kemampuan dalam kondisi gagal di

network. Agar protokol dapat dipakai untuk komunikasi diberbagai

pembuat perangkat maka dibutuhkan standarisasi protokol. Banyak

lembaga dunia yang bekerja untuk standarisasi protokol. Yang saat ini

Page 31: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

17

banyak mengeluarkan standarisasi protokol yaitu IETF, ETSI, ITU, dan

ANSI. [Wikipedia. 2010]

Macam-macam Protokol berdasarkan layernya sebagai berikut :

Table 2.1 Jenis-jenis protocol berdasarkan layernya

Layer Protokol dan Fungsi

Physical

Layer ETHERNET Berfungsi untuk mendefinisikan media transmisi

jaringan, metode pensinyalan, sinkronisasi bit, arsitektur

jaringan

Data-link

Layer PPP (Point to Point Protocol) mengontrol proses pengiriman

frame dari pengirim ke penerima agar tidak terjadi penumpukan

frame yang menyebabkan hilangnya frame sebelumnya, hal ini

terjadi karena buffer penerima belum mengambil frame yang

harus diterimanya

ETHERNET Berfungsi untuk mendefinisikan media transmisi

jaringan, metode pensinyalan, sinkronisasi bit, arsitektur

jaringan

Network

Layer ICMP (Internet Control Message Protocol) bertugas

mengirimkan pesan-pesan kesalahan dan kondisi lain yang

memperhatikan perhatian khusus

ARP (Address Resolution Protocol) bertugas menemukan

hardware address suatu host dengan alamat IP tertentu

RARP (Reverse Address Resolution Protocol) bertugas

menerjemahkan hardware address menjadi IP address suatu

host.

IP (Internet Protocol) bertugas untuk menyediakan cara terbaik

untuk membawa datagram dari sumber ketujuan, tanpa

memperdulikan apakah mesin yang bersangkutan berada pada

jaringan yang sama atau tidak, atau apakah terdapat jaringan-

jaringan lainnya antara sumber dengan tujuan atau tidak.

Transport

Layer UDP (User Datagram Protocol) Conectionless oriented atau

protocol yang melakukan proses pengiriman data dengan cara

tanpa adanya nomor urut atau pesan acknowledgment

TCP (Transmission Control Protocol) Conection oriented

protocol yang menggaransi tiap pengiriman data, maksudnya

Data yang dikirimkan ke sebuah koneksi TCP akan diurutkan

dengan sebuah nomor urut paket dan akan mengharapkan paket

positive acknowledgment dari penerima. Jika tidak ada paket

Acknowledgment dari penerima, maka segmen TCP (protocol

Page 32: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

18

data unit dalam protokol TCP) akan ditransmisikan ulang

Session Layer RPC (Remote Procedure Call) Protocol Berfungsi untuk

mendefinisikan bagaimana koneksi dapat dibuat, dipelihara, atau

dihancurkan

Presentation

Layer XDR (External Data Representation) Protocol Berfungsi untuk

mentranslasikan data yang hendak ditransmisikan oleh aplikasi

ke dalam format yang dapat ditransmisikan melalui jaringan.

Protokol yang berada

VTP Fungsi dari VTP untuk presentation layer adalah :

a. Membuat dan memelihara struktur data

b. Translating karakteristik terminal ke bentuk standard

Application

Layer NIS (Network Information System)

NFS (Network File System) dapat mengizinkan klien-klien

untuk menemukan dan mengakses berkas yang disimpan di

dalam server jaringan jarak jauh

POP3 protokol untuk mengambil surat elektronik dari server.

IMAP sejenis dengan POP3 tetapi memiliki fitur yang lebih

lengkap.

HTTP (Hypertext Transfer Protocol, lebih sering terlihat sebagai

http) adalah protokol yang dipergunakan untuk mentransfer

dokumen dalam World Wide Web (WWW). Protokol ini adalah

protokol ringan, tidak berstatus dan generik yang dapat

dipergunakan berbagai macam tipe dokumen.

2.6.1 Protokol TCP

Transport Control Protokol (TCP) merupakan protokol yang

berada pada layer transport dari layer TCP/IP. TCP adalah protokol

yang bersifat byte stream, connection-oriented dan reliable dalam

pengiriman data. TCP menggunakan komunikasi byte stream artinya

data dinyatakan sebagai suatu urutan byte. connection-oriented

berarti sebelum terjadi proses pertukaran data antar komputer

terlebih dahulu harus dibentuk suatu hubungan. Sebagai contoh

Page 33: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

19

analogi adalah proses pendialan nomor telepon dan akhirnya

terbentuk suatu hubungan.

Kehandalan TCP dalam mengirim data didukung oleh

mekanisme yang disebut Positive Acknowledgemenr with Re-

transmission data yang dikirim akan dipecah dalam bagian kecil dan

diberi nomor urut sebelum dikirimkan ke layer berikutnya. TCP

selalu meminta konfirmasi setiap kali selesai mengirimkan data,

apakah sampai tujuan dan tidak rusak. jika berhasil maka akan

dilakukan pengiriman segment berikutnya. jika gagal atau hilang

atau rusak maka akan dilakukan pengiriman ulang. Berikut ini

format header TCP

Gambar 2.2 Format header TCP

Model komunikasi dua arah antara komputer sisi kirim dan sisi

terima sebelum terjadi proses pengiriman data disebut handshake.

tipe handshake yang digunakan dalam TCP adalah Three-way

handshake, karena menggunakan tiga segmen yaitu pembentukan

Page 34: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

20

koneksi, sinkronisasi segmen dan pemberitahuan besar data yang

diterima pada saat antara sisi kirim dan sisi terima. Proses sederhana

three way handshake sebagai berikut.

Gambar 2.3 Three Way Handshake (sumber Craig Hunt 1992)

2.6.2 Protokol UDP

User Datagram Protokol (UDP) merupakan protokol yang juga

berada pada layer transport selain TCP. Protokol ini bersifat

connectionless dan unreliable dalam pengiriman data.

connectionless berarti tidak diperlukannya suatu bentuk hubungan

terlebih dahulu untuk mengirimkan data. Unreliable berarti pada

protokol ini data tidak dijamin akan sampai pada tujuan yang benar

dan dalam kondisi yang benar pula. Kehandalan pengiriman data

pada protokol ini menjadi tanggung jawab dari program aplikasi

pada layer diatasnya. Format header UDP sebagai berikut :

Page 35: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

21

Gambar 2.4 Format header UDP

Jika dibandingkan dengan TCP, UDP adalah protokol yang

lebih sederhana karena proses yang digunakan lebih sedikit. oleh

karena itu aplikasi yang menggunakan protokol UDP dapat

mengirimkan data tanpa melalui proses koneksi terlebih dahulu.

header yang dimiliki oleh UDP pun lebih kecil. Protokol UDP sering

diimplementasikan untuk aplikasi yang mengarah proses realtime

seperti aplikasi multimedia.

2.7 Port Address

Aplikasi Internet cukup banyak. Agar tidak bentrok satu sama lain

maka masing-masing aplikasi telah di beri jalur khusus yang diberi nama

port. Port dapat dianalogikan dengan “virtual slot” di dalam “stack”

TCP/UDP. Port digunakan untuk memetakan koneksi antara 2 host, antara

layer TCP/UDP dan aplikasi actual yang berjalan pada host.

Port Number merupakan nomor dengan tipe integer yang

digunakan sebagai identifikasi atau layanan dari client yang ingin

melakukan komunikasi.

Page 36: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

22

Port diberi nomor 0 s.d 65535. Port dengan range 0-1023 dinamai

“reserved” atau “privileged” port. Artinya port-port di wilayah tersebut

sudah digunakan untuk berbagai aplikasi yang khas, seperti telnet, mail,

web, ftp, dan sebagainya. Sedangkan sisanya(1024 s.d 65535) disebut

sebagai “dynamic” atau “unprivileged” port.

Port 0 s.d 1023 hampir selalu digunakan sebagai port untuk

aplikasi server yang sudah umum. Sebagai contoh, server FTP

menggunakan port 21/20, SMTP menggunakan port 25, HTTP

menggunakan port 80, dan seterusnya. Port dengan range 1024 s.d 65535

biasanya bersifat dinamis. Contohnya, ketika client melakukan koneksi ke

server maka port yang digunakan oleh client adalah port dinamis.

Ketika aplikasi (server) siap untuk menerima request yang datang.

Maka dimulai koneksi ke port number. Ini alasannya beberapa aplikasi

atau protocol digunakan sebagai interchangeably dengan kata port. Ketika

client akan melakukan pembicaraan ke server, maka client harus

mengetahui aplikasi tersebut (IP address) dan port untuk mendengarkan.

2.8 Borland Delphi 7.0

Delphi adalah sebuah bahasa pemrograman dan lingkungan

pengembangan perangkat lunak. Produk ini dikembangkan oleh CodeGear

sebagai divisi pengembangan perangkat lunak milik Embarcadero, divisi

tersebut sebelumnya adalah milik Borland. Bahasa Delphi, atau dikenal

pula sebagai object pascal (pascal dengan ekstensi pemrograman

Page 37: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

23

berorientasi objek (PBO/OOP)) pada mulanya ditujukan hanya untuk

Microsoft Windows, namun saat ini telah mampu digunakan untuk

mengembangkan aplikasi untuk Linux dan Microsoft .NET framework

(lihat di bawah). Dengan menggunakan Free Pascal yang merupakan

proyek opensource, bahasa ini dapat pula digunakan untuk membuat

program yang berjalan di sistem operasi Mac OS X dan Windows CE.

Umumnya delphi lebih banyak digunakan untuk pengembangan

aplikasi desktop dan enterprise berbasis database, tapi sebagai perangkat

pengembangan yang bersifat general-purpose ia juga mampu dan

digunakan dalam berbagai jenis proyek pengembangan software.

Delphi menawarkan Rapid Application development (RAD),

dimana pemogram dapat menghasilkan aplikasi dengan cepat pada

lingkungan visual. Programmer banyak bekerja dengan menyusun form,

banyak menggunakan mouse dengan sedikit menggunakan keyboard. saat

dirilis tahun 1995 untuk windows 16-bit. Delphi 2, dirilis setahun

kemudian, mendukung lingkungan windows 32-bit, dan versi c++,

C++Builder, dirilis beberapa tahun kemudian.

Borland Delphi 1

Delphi 1, dirilis pada 1995 untuk 16-bit Windows 3.1 dan

merupakan contoh awal dari apa yang kemudian dikenal sebagai Rapid

Application Development (RAD) tool. Delphi 1 adalah penerus dari Turbo

Pascal dan Borland Pascal. Delphi kode ditulis dalam dialek bahasa

pemrograman Pascal yang dikenal sebagai Object Pascal .

Page 38: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

24

Borland Delphi 2

Delphi 2, dirilis pada 1996 , didukung lingkungan 32-bit Windows.

Ini termasuk Delphi 1 dibundel bersama-sama untuk menciptakan 16-bit

Windows 3.1 aplikasi.

Borland Delphi 3

Dirilis pada tahun 1997, memperkenalkan beberapa fitur baru

seperti teknologi code insight, DLL Debugging, template komponen,

komponen DecisionCube dan TeeChart, teknologi WebBroker dan

integrasi dengan COM melalui interface. Delphi 3 dinyatakan sebagai

tools yang sangat komprehensif untuk pengembangan pemrograman visual

dan client/server.

Borland Delphi 4

Dirilis pada tahun 1998, memperkenalkan teknologi docking,

anchoring dan constraining pada komponen. Menambahkan fitur

AppBrowser, array dinamis, method overloading, mendukung Windows

98, peningkatan dukungan OLE dan COM sebagai dukungan tambahan

untuk koneksi database.

Borland Delphi 5

Borland Delphi 5 dirilis pada 1999 .

Kylix

Pada 2001, dirilis Delphi versi Linux, bernama Kylix. Kylix

didasarkan pada kerangka kerja lintas-platform baru CLX, VCL bukan

sebagai Delphi.

Page 39: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

25

Borland Delphi 6

Upaya untuk mendukung pengembangan lintas platform Linux dan

Windows maka dibuat alternative dengan merilis Delphi 6 dan

menambahkan support Linux dengan produk Delphi. Delphi 6 termasuk

versi CLX sama seperti (CLX 1) sebagai Kylix versi pertama. Sejak CLX

dibuat sebelum Delphi 6, set fitur yang didasarkan pada VCL 5 yang

menciptakan beberapa kerugian bagi CLX yang tidak memiliki beberapa

fitur dibandingkan dengan VCL 6 dikirimkan dengan Delphi 6.

Borland Delphi 7

Delphi 7, dirilis pada bulan Agustus 2002, menjadi versi standar

yang digunakan oleh pengembang Delphi lebih dari satu versi lain. Ini

adalah salah satu IDE paling sukses yang dibuat oleh Borland karena

stabilitas, kecepatan dan persyaratan perangkat keras rendah dan tetap

aktif digunakan untuk tanggal ini.

Delphi 7 menambahkan dukungan untuk Windows XP Tema, dan

menambahkan lebih banyak dukungan untuk membangun aplikasi Web.

Ini juga merupakan versi terakhir dari Delphi yang dapat digunakan tanpa

aktivasi.

Kebutuhan Sistem Agar delphi versi 7.0 ini dapat dioperasikan

dengan baik anda membutuhkan perangkat keras dan perangkat lunak

dengan spesifikasi tertentu. Delphi memerlukan perangkat keras

(Hardware) dengan ruang hard disk dan memori yang relatif besar untuk

untuk pembuatannya tetapi untuk pemakaiannya/menggunakan hasil file

Page 40: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

26

Aplikasinya tidaklah membutuhkan spesifikasi yang besar, tergantung

besar kecilnya program yang kita terapkan pada komputer tersebut,

Spesifikasi minimal yang dibutuhkan antara lain :

Processor pentium 233 MHz atau yang lebih tinggi.

Sistem operasi windows XP, windows 2000 atau windows 98.

Memori membutuhkan RAM 64 MB untuk edisi Architect,

Enterprise, dan propesional, kecuali untuk personal 32 MB

disarankan 128 MB.

Untuk Hard disk minimal size yang kosong sebesar 500

Megabyte.

Mouse,Keybord.dan lain-lain.

Kelebihan Borland Delphi 7.0

Borland delphi 7.0 merupakan pilihan bagi sebagian kalangan

programmer untuk membuat aplikasi. Hal ini disebabkan kelebihan

yang ada pada borland delphi 7.0 berikut ini beberapa kelebihan borlan

delphi 7.0 antara lain :

Berbasis Objek Oriented programming, seperti bagian yang ada

pada program dipandang sebagai suatu objek yang mempunyai

sifat-sifat yang dapat diubah dan diatur, sehingga kita dapat

membuat tampilan sebuah program dengan desain kita sendiri

tanpa harus membuat codding yang panjang.

Suatu file EXE, setelah anda merancang program pada IDE

Delphi akan mengkomplikasinya pada sebuah file executable

Page 41: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

27

tunggal. Program yang anda buat dapat langsung didistribusikan

dan dijalankan pada komputer lain tanpa perlu menyertakan file

lain, kecuali file yang beretensi *.exe atau Applikasi tersebut

membutuhkan file lain seperti database, koneksi atau file

pendukung lainnya, ini merupakan kelebihan yang sangat berarti.

Borland delphi 7.0 hadir bersama borland Kylix 3 yang berbasis

Linux, bila ingin berganti flattform dari Windows ke Linux maka

aplikasi yang dibuat di Delphi dapat dijalankan di Kylix 3 yang

dikarenakan kedua produk tersebut merupakan produk

Borland.[Joshua,Adriel Favian. 2010]

Dalam penggunaan Borland Delphi 7.0 untuk perancangan aplikasi

ini diperlukan tambahan beberapa komponen yaitu NMM dan alite skin.

NMM (Network-Integrated Multimedia Middleware) merupakan

opensource. NMM memungkinkan seorang programmer untuk membuat

aplikasi multimedia terdistribusi: lokal dan remote perangkat multimedia

atau komponen perangkat lunak dapat dikontrol secara transparan.

NMM tersedia untuk Linux, Windows, MacOS, serta sistem

operasi lainnya. dapat digunakan sebagai teknologi untuk secara lokal

memungkinkan operasi aplikasi multimedia, tetapi lebih penting untuk

semua jenis sistem multimedia jaringan dan didistribusikan - mulai dari

sistem embedded dan mobile, untuk PC, untuk cluster komputasi skala

besar.

Page 42: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

28

Alite alpha skin control merupakan komponen standard dan unik

yang digunakan untuk desain pengembangan aplikasi multimedia.

Komponen ini bersifat open source maka dapat di unduh di

http://www.alphaskins.com/dwnld.php. Kelebihan dari komponen ini

adalah mudah untuk memberikan tampilan yang lebih menarik. Instalasi

kedua komponen ini dapat dilihat pada lampiran

2.9 Library WinAPI Sistem Windows

API adalah sebuah library atau fungsi windows untuk

mengeksekusi sebuah perintah yang ada di dalam semua tampilan

windows , sebagai contoh untuk tampilan desktop ,screen saver ,shutdown

computer.

Antarmuka Pemrograman Aplikasi Windows (berasal dari Bahasa

Inggris: Windows Application Programming Interface), yang sering

disebut sebagai WinAPI atau Windows API adalah sekumpulan antarmuka

pemrograman aplikasi yang dibuat oleh Microsoft dalam inti sistem

operasi Microsoft Windows buatannya. Semua program Windows, kecuali

program konsol, harus berinteraksi dengan Windows API tanpa melihat

dengan bahasa apa ia dibuat.

Hampir pada setiap peluncuran versi baru Windows, Microsoft

memperkenalkan API baru terhadap Windows API. Meskipun demikian,

nama dari panggilan API tersebut tetap dipertahankan dan konsisten antara

satu versi dengan versi yang lainnya, dan perubahan nama pun mungkin

Page 43: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

29

dilakukan jika memang terjadi di sana perubahan besar-besaran pada

platform Windows itu sendiri. Microsoft pun kemudian akan mengubah

nama keluarga Win32 API yang digunakan saat ini menjadi Windows API,

dan membuatnya dapat digunakan oleh semua versi API sistem operasi

Windows.[Wikipedia.2009]

2.10 Unified Modelling Language (UML)

UML adalah sebuah "bahasa" yang telah menjadi standar dalam

industri untuk visualisasi, merancang dan mendokumentasikan sistem

piranti lunak. UML menawarkan sebuah standar untuk merancang model

sebuah sistem.

UML berorientasi objek menerapkan banyak level abstraksi, tidak

bergantung proses pengembangan, tidak tergantung pada bahasa dan

teknologi, pemaduan beberapa notasi di beragam metodologi.

UML mendefinisikan diagram-diagram berikut ini :

1. Use case diagram

2. Class diagram

3. Behaviour diagram :

a. statechart diagram

b. activity diagram

4. Interaction diagram :

a. sequence diagram

b. collaboration diagram

5. Component diagram

Page 44: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

30

6. Deployment diagram

Kelebihan UML :

1. Dapat merepresentasikan sebuat object di kehidupan dalam

bentuk document analisa.

2. Berorientasi object karena pendekatannya dimulai dari object

oriented programming metode pemrograman saat ini, dimana

sebelumnya metode programming adalah terstrutur & sequential,

sehingga UML lebih jelas menggambarkan apa yang dapat di

analisa dalam OOP.

3. Ada beberapa software yang dapat lansung men-create

source/coding (code generator) tanpa melakukan programming

telebih dahulu asal proses analisa jelas dan sudah dipetakan ke

dalam UML

4. Sebagai bahasa UML digunakan untuk komunikasi, yaitu alat

untuk menangkap pengetahuan (semantik) mengenai suatu

subjek dan mengapresiasikan subjek sebagai suatu komunikasi.

subjek merupakan sistem yang dibahas.

Page 45: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

31

2.11 Metode RAD

Pada penelitian ini membatasi metode yang digunakan adalah

Rapid Application Development (RAD). RAD merupakan salah satu

metode pengembangan suatu sistem informasi dengan waktu yang relatif

singkat. Tujuan utama dari semua metode system development adalah

memberikan suatu sistem yang dapat memenuhi harapan dari para

pemakai.

Pada metode ini terdiri dari 4 tahapan yaitu :

a. Fase Perencanaan Syarat-Syarat

Fase dimana menentukan tujuan dan syarat-syarat yang

dibutuhkan untuk memenuhi kebutuhan dalam pengembangan

system.

b. Fase Perancangan

Fase dimana perancangan proses-proses yang akan terjadi dalam

aplikasi, perancangan use case dan perancangan antarmuka.

c. Fase Konstruksi

Pada tahapan ini dilakukan tahap pengkodean terhadap

rancangan-rancangan yang telah didefinisikan.

d. Fase Pelaksanaan

Pada tahap ini dilakukan pengujian terhadap sistem dan

pengenalan terhadap aplikasi.

Page 46: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

32

2.12 Studi literature

1. Rancang Bangun Aplikasi Remote untuk Administrasi LAN yang ditulis

oleh Ryan Aniestyo Hermoko, Fathul Wahid, M. Andri Setiawan dari

Universitas Islam Indonesia. Mereka menyempurnakan aplikasi

Pengendali PC Jarak Jauh pada LAN. Pada penelitian ini meremote

semua aktivitas yang dilakukan oleh client.

2. Literature aplikasi yang digunakan sebagai acuan adalah aplikasi remote

monitoring yang digunakan untuk mengendalikan dan memantau aktivitas

komputer client sesuai nomer IP-nya. Selain itu literature aplikasi yang

digunakan adalah aplikasi pendeteksi spesifikasi komputer antara lain PC-

Wizard, CPU-Z, Everest, Speecy, dan juga DX-Diag. Aplikasi-aplikasi

tersebut dapat menampilkan spesifikasi komputer. Kedua literature

aplikasi ini yang menjadi dasar peneliti mengembangkan aplikasi remote

LAN yang dapat mengetahui spesifikasi komputer client yang terhubung

pada server.

3. Net Support Manager merupakan aplikasi yang dapat mengetahui

spesifikasi komputer berbasisclient server. Aplikasi ini menampilkan

beberapa spesifikasi komputer terhadap satu komputer client saja. Peneliti

mengembangkan aplikasi sejenis yang dapat mengetahui spesifikasi semua

komputer client yang terhubung sekaligus dapat memantau dan

mengendalikan client.

Page 47: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

33

4. Analisa remote Desktop pada Jaringan LAN di SMK Triguna Jakarta

Selatan oleh Lidia Putri, penulis menganalisa cara kerja remote desktop

pada jaringan. Remote desktop dijalankan untuk host yang akan di remote.

5. Remote Network Monitoring (RMON) MIB dikembangkan oleh IETF

untuk mendukung analisis monitoring dan protokol LAN. difokuskan pada

OSI Layer 1 dan Layer 2 Ethernet dan informasi dalam jaringan Token

Ring. Kemudian dilanjutkan pengembangannya menjadi RMON2 dengan

menambahkan dukungan untuk Jaringan-dan pemantauan Aplikasi-layer.

6. Sistem Monitoring Dan Pengontrolan Server Jarak Jauh Menggunakan

Mobile Phone. Sistem monitoring sebuah sistem jaringan memiliki

peranan yang sangat penting dalam memberikan informasi yang riil dan

terbaru pada suatu jaringan. Dengan adanya sistem monitoring tersebut,

pengelola jaringan dapat mengetahui jika terjadi kepadatan jaringan

(network traffic) yang cukup besar. Perancangan sistem monitoring

menggunakan mobile phone diharapkan bisa memberikan kemudahan bagi

pengelola jaringan untuk dapat mengetahui kepadatan jaringan dari jarak

jauh. Selain dapat memeriksa kondisi pada jaringan, seorang pengelola

jaringan juga dapat melakukan proses pengontrolan seperti memulai ulang

komputer (restart) dan mematikan komputer (shutdown). Kelebihan

aplikasi ini adalah mobile, menggunakan operating system linux.

Kekurangannya adalah pengontrolan tidak diikuti dengan peringatan bisa

berupa aplikasi chatting.

Page 48: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

34

7. PC (Personal Computer) Remote Access Menggunakan Ponsel (Telepon

Selular) Pada Jaringan Berbasis Media Bluetooth. Aplikasi PC Remote

Access ini menggunakan media Bluetooth sebagai media transmisi data

antara aplikasi client yang terdapat pada ponsel dengan aplikasi server

yang terdapat pada PC dimana aplikasi client yang terdapat pada ponsel

dapat mengendalikan beberapa fungsi dasar aplikasi pada PC server

dengan aplikasi server didalamnya. Data dikirimkan dari aplikasi client

pada ponsel melalui media bluetooth. Data yang diterima aplikasi server

dari aplikasi client akan diterjemahkan oleh aplikasi server menjadi sebuah

perintah sehingga user dapat mengendalikan PC server melalui aplikasi

client yang terdapat pada perangkat mobile. Kelebihan : Media transmisi

yang digunakan adalah Bluetooth. Kekurangannya terbatas satu merek

/vendor, client dapat me-remote server sedangkan untuk server tidak dapat

me-remote client.

8. Manajemen Jaringan Dengan Memanfaatkan Aplikasi Remote

Administrator (Radmin) Sebagai Maintenance System Di Pt.Wahana Esa

Shambada. Perkembangan teknologi informasi dan komunikasi yang

begitu pesat sejalan dengan kemajuan sistem komputer merupakan

kebutuhan yang penting dalam menunjang efisiensi kerja di segala bidang.

Pada jaringan komputer, efisiensi kerja dapat terganggu karena adanya

masalah (trouble), seperti masalah pada suatu aplikasi yang mengharuskan

aplikasi tersebut di instal ulang. Permasalahan pada jaringan komputer

akan dapat menimbulkan kerugian yang tidak sedikit. Untuk mengatasi

Page 49: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

35

masalah (troubleshooting) tersebut maka, salah satu solusi yaitu dengan

menggunakan suatu perangkat lunak yang dapat me-remote / me-

monitoring client dari server. Salah satu perangkat lunak tersebut adalah

Remote Administrator (Radmin). Kelebihan yang dimiliki Radmin yaitu

kemampuan dalam me-remote / me-monitoring komputer client dari server

yang sangat dibutukan oleh technical support karena dapat memudahkan

dalam penanganan terjadinya troubleshooting dari jarak jauh dengan

menggunakan desktop sharing hingga 655336 warna. Kelebihan dari

aplikasi ini server memantau atau me-monitoring semua client. Pada

aplikasi ini belum ada fitur chatting untuk dapat berkomunikasi dengan

client.

9. Sistem RMM (Remote Maintenance Monitoring) Sebagai Alat Bantu

Teknisi Untuk Memantau Kinerja Peralatan NDB Di Bandara Husein

Sastranegara Bandung. Sistem RMM (Remote Maintenance and

Monitoring) adalah suatu sistem yang berbasis client server dimana kedua

komputer tersebut di implementasikan pada dua lokasi yang terpisah

(berjauhan). Komputer server berada dilokasi peralatan NDB dan

komputer client ditempatkan di ruang teknisi di bandara Husein.S.

Aplikasi ini diimplementasikan sebagai pengganti sistem lama yang tidak

efektif dan efisien. Ada empat komponen utama dalam sistem ini yaitu :

rangkaian ADC sebagai pengubah sinyal analog dari NDB ke digital,

komputer server, pengguna yang bertindak sebagai pengelola data pada

komputer client dan ponsel sebagai media komunikasi (gateway)

Page 50: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

36

pengganti kabel. Dari hasil pengujian Sistem RMM menunjukan adanya

peningkatan efektivitas dan efisiensi yang cukup signifikan dibandingkan

dengan sistem lama, sehingga dapat disimpulkan bahwa Sistem RMM

mampu membantu baik teknisi sebagai pelaksana dilapangan maupun PT

(Persero) Angkasa Pura II sebagai pengelola fasilitas navigasi udara di

Bandara Husein Sastranegara dalam meningkatkan efisiensi dan efektifitas

operasional perawatan NDB. Kelebihan remote ini ponsel sebagai media

komunikasi (gateway) pengganti kabel sehingga pekerjaan lebih efisien.

Kekurangan dari aplikasi ini membutuhkan device baru untuk komunikasi.

10. Network LookOut Administrator. Memiliki kemampuan untuk mengambil

kendali dari komputer remote dengan mengendalikan mouse dan

keyboard. Anda dapat merekam layar komputer remote bahkan ketika

Anda tidak pemantauan mereka. Selain itu dapat menunjukkan mereka

desktop server, dapat berkomunikasi dengan chatting tetapi belum

dilengkapi dengan pengontrolan. [2011]

Page 51: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

37

BAB III

METODOLOGI PENELITIAN

3.1. Metode Pengumpulan Data

3.1.1 Studi Pustaka

Dalam melakukan pengumpulan data, penulis menggunakan

teknik studi pustaka. Pada tahapan pengumpulan data dengan cara studi

pustaka, penulis mencari referensi-referensi yang relevan dengan objek

yang akan diteliti. Pencarian referensi dilakukan di perpustakaan,

maupun secara online melalui internet. Setelah mendapatkan referensi-

referensi yang relevan tersebut, penulis lalu mencari informasi-

informasi yang dibutuhkan dalam penelitian ini dari referensi-referensi

tersebut. Informasi yang didapatkan digunakan dalam penyusunan

landasan teori, metodologi penelitian serta pengembangan aplikasinya

secara langsung. Pustaka-pustaka yang dijadikan acuan dapat dilihat di

Daftar Pustaka.

3.1.2 Studi Literature

Berdasarkan pengamatan penulis, pada penelitian sebelumnya

terdapat beberapa penelitian yang hampir serupa dengan judul

Pengembangan Aplikasi Remote Spesifikasi Komputer Berbasis Client

Server antara lain :

37

Page 52: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

38

1. Rancang Bangun Aplikasi Remote untuk Administrasi LAN

yang ditulis oleh Ryan Aniestyo Hermoko, Fathul Wahid, M.

Andri Setiawan dari Universitas Islam Indonesia. Mereka

menyempurnakan aplikasi Pengendali PC Jarak Jauh pada

LAN. Pada penelitian ini meremote semua aktivitas yang

dilakukan oleh client.

2. Literature aplikasi yang digunakan sebagai acuan adalah

aplikasi remote monitoring yang digunakan untuk

mengendalikan dan memantau aktivitas komputer client sesuai

nomer IP-nya. Selain itu literature aplikasi yang digunakan

adalah aplikasi pendeteksi spesifikasi komputer antara lain PC-

Wizard, CPU-Z, Everest, Speecy, dan juga DX-Diag. Aplikasi-

aplikasi tersebut dapat menampilkan spesifikasi komputer.

Kedua literature aplikasi ini yang menjadi dasar peneliti

mengembangkan aplikasi remote LAN yang dapat mengetahui

spesifikasi komputer client yang terhubung pada server.

3. Net Support Manager merupakan aplikasi yang dapat

mengetahui spesifikasi komputer berbasis client server.

Aplikasi ini menampilkan beberapa spesifikasi komputer

terhadap satu komputer client saja. Peneliti mengembangkan

aplikasi sejenis yang dapat mengetahui spesifikasi semua

komputer client yang terhubung sekaligus dapat memantau dan

mengendalikan client.

Page 53: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

39

4. Analisa remote Desktop pada Jaringan LAN di SMK Triguna

Jakarta Selatan oleh Lidia Putri, penulis menganalisa cara kerja

remote desktop pada jaringan. Remote desktop dijalankan

untuk host yang akan di remote.

5. Remote Network Monitoring (RMON) MIB dikembangkan

oleh IETF untuk mendukung analisis monitoring dan protokol

LAN.

6. Sistem Monitoring Dan Pengontrolan Server Jarak Jauh

Menggunakan Mobile Phone oleh Antonius Tanawijaya.

Kelebihan aplikasi ini adalah mobile, menggunakan operating

system linux. Kekurangannya adalah pengontrolan tidak diikuti

dengan peringatan bisa berupa aplikasi chatting.

7. PC (Personal Computer) Remote Access Menggunakan Ponsel

(Telepon Selular) Pada Jaringan Berbasis Media Bluetooth

oleh Arie Januar Smaratul Fuad. Kelebihan : Media transmisi

yang digunakan adalah Bluetooth. Kekurangannya terbatas

satu merek /vendor, client dapat me-remote server sedangkan

untuk server tidak dapat me-remote client.

8. Manajemen Jaringan Dengan Memanfaatkan Aplikasi Remote

Administrator (Radmin) Sebagai Maintenance System Di

Pt.Wahana Esa oleh Predi Aferi Hasan. Kelebihan dari aplikasi

ini server memantau atau me-monitoring semua client. Pada

Page 54: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

40

aplikasi ini belum ada fitur chatting untuk dapat

berkomunikasi dengan client.

9. Sistem RMM (Remote Maintenance Monitoring) oleh

Supriyanto. Kelebihan remote ini ponsel sebagai media

komunikasi (gateway) pengganti kabel sehingga pekerjaan

lebih efisien. Kekurangan dari aplikasi ini membutuhkan

device baru untuk komunikasi.

10. Network LookOut Administrator. Memiliki kemampuan untuk

mengambil kendali dari komputer remote dengan

mengendalikan mouse dan keyboard. Kelebihannya adalah

dapat menunjukkan mereka desktop server, dapat

berkomunikasi dengan chatting tetapi belum dilengkapi

dengan pengontrolan.

3.2. Metode Pengembangan Sistem

Metode pengembangan sistem yang penulis gunakan dalam

penelitian ini adalah metode Rapid Application Development (RAD).

Pemilihan metode penelitian Rapid Application Development

(RAD) ini dilakukan dengan alasan aplikasi yang akan dikembangkan

merupakan aplikasi yang berskala kecil/menengah, serta terfokus pada

lingkup tertentu. Pemilihan metodologi ini juga dengan alasan bahwa

aplikasi ini tidak membutuhkan proses komputasi yang kompleks.

Page 55: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

41

Kelebihan Rapid Application Development adalah :

1. Pengguna dapat memperoleh/menggunakan sistem lebih awal

2. Pengguna dapat merencanakan beberapa tambahan untuk versi

setelahnya

3. Memerlukan biaya yang lebih sedikit dan berkonsentrasi pada

sudut pandang user

4. Menyediakan kemungkinan perubahan secara tepat sesuai

permintaan user

5. Bukan aplikasi dengan komputasi yang komplek dan user

mengetahui pasti area yang harus di miliki aplikasi.

Fase Model pengembangan RAD yang dibuat oleh James Martin

melingkupi fase-fase sebagai berikut (Kendall & Kendall, 2003):

Gambar 3.1 Fase-fase RAD

Tahapan-tahapan yang dilakukan oleh penulis dalam melakukan

penelitian pengembangan aplikasi ini adalah :

3.2.1 Fase Perencanaan Syarat-Syarat

Pada tahap ini dilakukan pengidentifikasian tujuan aplikasi

serta mengidentifikasi syarat-syarat yang ditimbulkan dari tujuan

tersebut.

Page 56: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

42

3.2.2 Fase Perancangan

Pada tahap ini dilakukan beberapa tahapan yaitu:

a) Perancangan Sistem

Perancangan proses-proses yang akan terjadi di dalam system

menggunakan diagram UML yakni dengan membuat beberapa

diagram yaitu: Use Case Diagram dan Sequence Diagram.

b) Perancangan Antar Muka Pemakai (User Interface)

Antar muka pemakai memberikan fasilitas komunikasi antar

pemakai dan aplikasi atau sistem, memberikan berbagai

fasilitas informasi dan berbagai keterangan yang bertujuan

untuk membantu mengarahkan alur penelusuran masalah

sampai ditemukan solusi.

3.2.3 Fase Konstruksi

Pada tahapan ini dilakukan pembuatan program terhadap

rancangan yang telah didefinisikan hasil dari perancangan.

Pembuatan program yang dilakukan menggunakan bahasa

pemrograman Borland Delphi 7.0

3.2.4 Fase Pelaksanaan

a) Konfigurasi Client-Server

Mengidentifikasi jenis jaringan dan topologi yang digunakan

kemudian menentukan PC server dan PC client.

b) Pengujian

Page 57: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

43

Pada tahapan ini dilakukan pengujian terhadap aplikasi yang

telah dibuat, pada pengujian aplikasi ini peneliti menggunakan

pengujian black-box yaitu suatu pengujian yang berfokus pada

persyaratan fungsional perangkat lunak (Pressman, 2002).

c) Tanggapan User

Meminta tanggapan user terhadap aplikasi ini kemudian

mengevaluasinya.

Page 58: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

44

Gambar 3.2 Fase-fase metodologi penelitian dengan pengembangan aplikasi

menggunakan RAD

Aplikasi

Monitoring

Metode

Pengumpulan Data

Tujuan

Membuat Aplikasi

monitoring hardware

Fase Perencanaan

Syarat-syarat

Fase Perancangan

Syarat-syarat :

Borland Delphi 7.0

Analisis

Kebutuhan

Fase Konstruksi

Fase Pelaksanaan

Perancangan Proses

dengan UML

Perancangan Antarmuka

Pembuatan Pengkodean

Konfigurasi Client

Server

Usecase dan squencial

Diagram

Pengujian black box

Metode RAD

Tanggapan User kurang

baik

Page 59: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

45

BAB IV

PEMBAHASAN

4.1 Fase Perencanaan syarat-syarat

Dalam fase perencanaan ini ditentukan permasalahan yaitu

keinginan untuk mengorganisir jaringan secara terpusat berbasis client

server, mengetahui spesifikasi komputer, penggunaan cpu, alokasi memori

yang digunakan dan hardisk yang tersedia pada tiap komputer, dan

mengendalikan dan monitoring client oleh servernya.

Syarat-syarat yang dibutuhkan untuk dapat membuat aplikasi

sesuai yang diinginkan diatas, maka yang dibutuhkan adalah pemilihan

bahasa pemograman untuk pembuatan aplikasi yaitu Delphi 7.0, tambahan

library NMM untuk remote control dan alite skin untuk tampilan.

Selain itu, kita menentukan port yang digunakan pada aplikasi ini.

Dalam pembuatan aplikasi ini port yang akan digunakan adalah port

“dynamic” atau “unprivileged” port yaitu Port dengan range 1024 s.d

65535. Pemilihan port ini karena port ini tidak banyak digunakan secara

umum pada jaringan contohnya berbagai aplikasi yang khas, seperti telnet,

mail, web, ftp, dan sebagainya.

45

Page 60: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

46

4.2 Fase Perancangan

4.2.1 Use case Diagram

Use Case Diagram digunakan untuk menjelaskan apa yang akan

dilakukan oleh sistem serta aktor-aktor yang akan berhubungan dengan

proses-proses yang ada pada aplikasi. Use case ini diperlukan untuk

kebutuhan dokumentasi dan arah pengembangan selanjutnya. Dibawah

ini adalah use case untuk beberapa aplikasi yang diinginkan.

Gambar 4.1 Use case Diagram untuk Aplikasi remote spesifikasi computer

Page 61: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

47

1. Use case Diagram untuk koneksi

Gambar 4.2 Use case Koneksi

2. Use case Diagram untuk ambil data memori client

Gambar 4.3 Use case ambil data memori client

3. Use case Diagram untuk remote desktop dan monitoring client

Gambar 4.4 Use case remote desktop dan monitoring client

Page 62: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

48

4. Use case Diagram untuk tutup koneksi

Gambar 4.5 Use case Tutup Koneksi

4.2.2 Use case Scenario

Use case scenario merupakan penjelasan yang lebih terperinci

mengenai masing-masing use case yang terjadi di dalam sistem. Use

case scenario ini terdiri dari:

1. Nama use case adalah nama use case yang akan dideskripsikan.

2. Aktor yang terlibat.

3. Trigger.

4. Precondition yang penting bagi use case untuk memulai.

5. Action.

6. Postcondition yang menjelaskan state dari sistem setelah use

case berakhir.

Setelah menjelaskan use case pada bahasan sebelumnya, maka

berikut ini akan dijelaskan spesifikasi use case yang telah ditentukan.

Page 63: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

49

1. Koneksi

Table 4.1 Use case Scenario Koneksi

2. Ambil data memori client

Table 4.2 Use case Scenario ambil data memori client

3. Remote desktop dan monitoring client

Table 4.3 Use case Scenario Remote desktop dan monitoring client

Nama Usecase Koneksi

Aktor yang terlibat Server , Client

Trigger Actor ingin saling terhubung

Pre condition IP address dan port telah terdeteksi

Action Hubungkan

Post condition Terhubung, IP aktif

Nama Use case ambil data memori client

Aktor yang terlibat Server , Client

Trigger Server hendak mengetahui informasi tentang

Client

Pre condition Actor telah saling terkoneksi

Action

Client mengecek spesifikasi dirinya,

Server dapat langsung memanggil informasi

yang telah di tulis oleh Client

Post condition Data dari Client dapat ditampilkan

Nama Usecase Remote desktop dan monitoring

client

Aktor yang terlibat Client, Server

Trigger Server akan me-remote desktop dan

monitoring Client

Pre condition Actor telah saling terkoneksi

Action View full Client

Post condition Menampilkan desktop dari Client

Page 64: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

50

4. Tutup Koneksi

Table 4.4 Use case Scenario tutup koneksi

4.2.3 Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam

dan di sekitar aplikasi. Sequence diagram untuk aplikasi remote

spesifikasi komputer berbasis client server sebagai berikut :

1. Koneksi

Gambar 4.6 Sequence Diagram untuk koneksi

Pada diagram sequence koneksi, telah terdeteksi IP Address

dan port ketika aplikasi berjalan. Kemudian client meminta supaya

Nama Use case Tutup koneksi

Aktor yang terlibat Server , Client

Trigger Salah satu atau kedua actor ingin

memutuskan koneksi

Pre condition Kedua actor telah terhubung

Action Tutup koneksi

Post condition Disconnect, IP tidak aktif

Page 65: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

51

dapat terhubung dengan server, maka terjadi proses cek koneksi ke

server. Pengecekan koneksi ini dengan memeriksa port dan IP

yang sama. Analogi koneksi antara client dan server ini seperti

pendialan nomor telepon yang dituju, apabila telah diijinkan untuk

melakukan komunikasi maka terbentuk suatu hubungan.

2. Ambil data spek client

Gambar 4.7 Sequence Diagram untuk Ambil data spek client

Pada diagram sequence ambil data spek client, dimana antara

client dan server telah saling terhubung. Client mengecek

spesifikasi dirinya kemudian server dapat memanggil data-data

tersebut dari client dan hasilnya akan ditampilkan antara lain

sistem operasi, resolusi layar, jenis komputer, nama user,

Page 66: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

52

kapasitas memori, directory windows dan sistem32, kecepatan

CPU, BrandID CPU, serta vendor CPU.

3. Remote monitoring client

Gambar 4.8 Sequence Diagram untuk remote desktop client

Diagram sequence untuk remote monitoring client diatas

menggambarkan bahwa antara client dan server saling terkoneksi,

maka server dapat melakukan remote monitoring terhadap client.

Remote desktop dapat mengendalikan client secara penuh dengan

menggunakan mouse dan keyboard server. Setelah client dan

server saling terkoneksi maka server memilih untuk me-

monitoring client sesuai dengan nomer IP yang akan dipantau,

monitoring ini untuk mengawasi aktivitas client.

Page 67: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

53

4. Tutup Koneksi

Gambar 4.10 Sequence Diagram untuk tutup koneksi

Diagram sequence diatas menggambarkan urutan tutup koneksi

antara client dan server. Keduanya dapat melakukan pemutusan

koneksi.

Page 68: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

54

4.2.4 Perancangan User interface

1. Tampilan aplikasi server

Gambar 4.11 Aplikasi untuk server

2. Tampilan aplikasi client

Gambar 4.12 aplikasi untuk client

3. Tampilan Remote control dan Monitoring

Gambar 4.13 Remote client

Tempat

menampil

kan

spesifikas

i

komputer

berupa

memo

IP address

Port

Koneksi

client Remote Ambil data

client

Tutup Koneksi

Ip address

port

Koneksi ke server

Tempat untuk tampilan remote

conection exit

Page 69: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

55

4. Tampilam koneksi remote control client

Gambar 4.14 remote control client

4.3 Fase Konstruksi

Berdasar syarat-syarat kebutuhan dan perancangan untuk

pembuatan aplikasi remote spek basis client server ini, bahasa yang

digunakan adalah Delphi 7.0 dengan tambahan komponen NMM dan Alite

untuk skin atau tampilan. Instalasi komponen dapat dilihat pada lampiran.

Pembuatan aplikasi ini dibagi menjadi 2 bagian yaitu konstruksi

untuk aplikasi server dan untuk aplikasi client. Konsep yang digunakan

untuk menampilkan spek client melalui remote pada aplikasi ini konsep

server menjadi client dan sebaliknya client menjadi server. pada aplikasi

ini server yang lebih aktif, client menunggu request dan server menerima

layanan.

Berikut ini akan membahas proses konstruksi pengkodean pada

form-form yang akan dibangun. Pada aplikasi server dibutuhkan beberapa

form sedangkan pada aplikasi client hanya dibuat satu buah form.

host port

ok cancel

Page 70: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

56

Form pada server antara lain adalah form utama yaitu form server,

form remote, dan form koneksi remote, Berikut ini fase konstruksi aplikasi

remote spesifikasi berbasis client server :

1. Form client (untuk aplikasi client)

Tahap pertama adalah membuat desain form client

menggunakan objek-objek yang ada pada komponen pallete seperti

berikut ini :

Gambar 4.15 Desain form aplikasi client

Komponen yang digunakan untuk membuat aplikasi client seperti

tampak pada gambar diatas antara lain : label, button, edit,

IdTCPServer, IdThreadMgr, IdIPWatch, NMMRCserver, untuk

tampilan digunakan skinProvider dan skinManager. Proses pengkodean

terhadap komponen-komponen diatas di bawah ini :

1. Tambahkan kode program untuk button ‟aktifkan‟ sebagai berikut :

procedure TForm1.Button1Click(Sender: TObject);

begin

koneksiserver.koneksiindy;

koneksiserver.nmm ;

end;

Page 71: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

57

Button ‟aktifkan‟ berfungsi untuk merequest koneksi

kepada server. Apabila server telah menerima atau menanggapi

request dari client maka akan tampil ”IP Client Aktif” pada aplikasi

client.

Proses koneksi pada aplikasi ini menggunakan indy.

Koneksi client ke server dibuat fungsi baru (tersendiri) pada unit

‟koneksiserver‟. Berikut adalah kode program untuk ‟koneksiindy‟,

yang dipanggil seperti pada procedure diatas.

a. Unit koneksiserver (untuk menghubungkan client dan server)

function koneksiindy:string;

var

ports:integer;

Bindings: TIdSocketHandles;

begin

ports:=strtoint(form1.edit2.Text); // input dari user.

Bindings := TIdSocketHandles.Create(form1.IdTCPServer1);

try

with Bindings.Add do

begin

IP := form1.edit1.Text;

Port := ports;

end;

Try

form1.IdTCPServer1.Bindings := Bindings;

form1.IdTCPServer1.Active := True;

except on E:Exception do

ShowMessage(E.Message);

end;

finally

Bindings.Free;

form1.label4.Caption:=' IP Client Aktif';

end;

end;

Page 72: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

58

b. Fungsi nmm (NMM untuk remote control)

Data kode diatas, port yang digunakan telah diinisialisasi dalam

program, nomor port yang digunakan adalah nomor port

“dynamic” atau “unprivileged”.

2. Untuk button ‟tutup koneksi‟ ditambahkan kode program sebagai berikut :

Button ‟tutup koneksi‟ ini digunakan ketika akan memutuskan hubungan

dengan server. Jika koneksi telah terputus maka akan tampil jendela baru

seperti berikut ini :

function nmm:string;

begin

form1.Server.Port:= 3123;

form1.Server.Active:= true;

end;

function koneksipenuh:string;

begin

form1.Server.Port:= strtoint(form1.Edit3.Text);

form1.Server.Active:= true;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

try //non aktifkan server

IdTCPServer1.Bindings := Bindings;

IdTCPServer1.Active := false;

Bindings.Free;

except on E:Exception do

ShowMessage('koneksi telah terputus');

end;

label4.Caption:=' IP Client Tidak Aktif';

end;

Page 73: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

59

Gambar 4.16 Tampilan apabila terjadi tutup koneksi

3. Untuk komponen IdIPwatch digunakan untuk mengecek atau mendeteksi

IP address komputer dimana aplikasi ini berjalan, berikut adalah kode

program untuk mengecek IP sebuah komputer atau host.

4. IdTCPServer bisa digunakan untuk pengiriman data. Pengiriman data

disini untuk mengirimkan data spesifikasi komputer client kepada server.

Pada Aplikasi saat dijalankan client aktif atau dalam posisi Listening,

menerima koneksi dari server dan menampilkan Alamat IP client di

treeview (ada pada aplikasi server). server akan menerima pesan yang

dikirimkan oleh client dan menampilkannya dalam treeview aplikasi

server:

procedure TFormserver.FormCreate(Sender: TObject);

begin

edit1.Text:=idipwatch1.LocalIP;

end;

Page 74: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

60

Pada kode program diatas terjadi pemanggilan fungsi-fungsi untuk

mengecek data spesifikasi komputer client. Algoritma yang digunakan

untuk penampilkan data spesifikasi komputer client adalah algoritma

looping/pengulangan dan selection/pemilihan.

Algoritma looping/pengulangan digunakan untuk mengecek

komputer client yang akan ditampilkan spesifikasi komputernya.

Pengulangan ini apabila terjadi koneksi antara client dan server. perintah

procedure TForm1.IdTCPServer1Execute(AThread:

TIdPeerThread);

var

Pesan,pesan2:string;

convert:string; //untuk keyboard dan mouse penonaktikan

Begin

While Athread.Connection.Connected do

Begin

Pesan:=athread.Connection.readln;

if pesan = 'cekmemori2' then

begin

Athread.connection.writeln(IdIPWatch1.LocalIP);

Athread.connection.writeln(idipwatch1.LocalName);

Athread.connection.writeln(informasi.GetMetrics);

Athread.connection.writeln(informasi.GetCPU);

Athread.connection.writeln(informasi.Getbrandidcpu);

Athread.connection.writeln(informasi.Getvendoridcpu);

convert := Format(' %f MHz',

[informasi.GetCPUSpeed]);

Athread.connection.writeln(convert);

Athread.connection.writeln(informasi.GetMemory);

Athread.connection.writeln(informasi.memfree);

Athread.connection.writeln(informasi.memoripakai);

Athread.connection.writeln(informasi.GetOS);

Athread.connection.writeln(informasi.GetWindowsPath);

Athread.connection.writeln(informasi.GetSystemPath);

end;

end;

end;

Page 75: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

61

looping atau pengulangan yang digunakan adalah while-do. pemakaian

perintah while hanya diperlukan satu kondisi untuk menjalankan looping

dan perintah yang di looping pada perintah while adalah perintah setelah

kondisi client konek atau terhubung dengan server.

Algoritma selection digunakan untuk menampilkan data spesifikasi

komputer di komputer server. Algoritma ini ditandai dengan perintah if-

then. Perintah if jika cek memori dipanggil dari aplikasi server. Perintah

selection terjadi setelah looping/pengulangan terhadap koneksi client ke

server, kemudian terjadi kondisi untuk membaca pesan cek memori.

Pada source code di atas, ketika dipanggil cek memori maka akan

memanggil fungsi-fungsi yang tergabung dan dideklarasikan pada unit

informasi. Berikut adalah fungsi-fungsi yang dipanggil :

1. Function Getbrandidcpu adalah fungsi yang digunakan untuk

mengetahui brand cpu yang digunakan pada sebuah komputer.

function Getbrandidcpu:string;

var

_eax, _ebx, _ecx, _edx: Longword;

i: Integer;

b: Byte;

s, s1, s2, s3, s_all: string;

begin

asm

mov eax,$80000003

db $0F

db $A2

mov _eax,eax

mov _ebx,ebx

mov _ecx,ecx

mov _edx,edx

end;

s := '';

s1 := '';

s2 := '';

s3 := '';

Page 76: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

62

for i := 0 to 3 do

begin

b := lo(_eax);

s3 := s3 + chr(b);

b := lo(_ebx);

s := s + chr(b);

b := lo(_ecx);

s1 := s1 + chr(b);

b := lo(_edx);

s2 := s2 + chr(b);

_eax := _eax shr 8;

_ebx := _ebx shr 8;

_ecx := _ecx shr 8;

_edx := _edx shr 8;

end;

s_all := s_all + s3 + s + s1 + s2;

asm

mov eax,$80000004

db $0F

db $A2

mov _eax,eax

mov _ebx,ebx

mov _ecx,ecx

mov _edx,edx

end;

s := '';

s1 := '';

s2 := '';

s3 := '';

for i := 0 to 3 do

begin

b := lo(_eax);

s3 := s3 + chr(b);

b := lo(_ebx);

s := s + chr(b);

b := lo(_ecx);

s1 := s1 + chr(b);

b := lo(_edx);

s2 := s2 + chr(b);

_eax := _eax shr 8;

_ebx := _ebx shr 8;

_ecx := _ecx shr 8;

_edx := _edx shr 8;

end;

if s2[Length(s2)] = #0 then

setlength(s2, Length(s2) - 1);

result:=s_all + s3 + s + s1 + s2;

end

Page 77: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

63

2. Function getCPU adalah fungsi yang digunakan untuk mengetahui tipe

prosesor yang digunakan pada sebuah komputer.

3. Fungsi getspeedcpu digunakan untuk mengetahui kecepatan dalam

menjalankan aplikasi yang ada.

function GetCPU: string;

var

sysinfo: SYSTEM_INFO;

str: string;

begin

GetSystemInfo(sysinfo);

case sysinfo.dwProcessorType of

386:str:='386';

486:str:='486';

586:str:='Pentium';

end;

Result :=str;

end;

function GetCPUSpeed: Double;

const

DelayTime = 500;

var

TimerHi, TimerLo: DWORD;

PriorityClass, Priority: Integer;

begin

PriorityClass := GetPriorityClass(GetCurrentProcess);

Priority := GetThreadPriority(GetCurrentThread);

SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);

SetThreadPriority(GetCurrentThread,

THREAD_PRIORITY_TIME_CRITICAL);

Sleep(10);

asm

dw 310Fh

mov TimerLo, eax

mov TimerHi, edx

end;

Sleep(DelayTime);

Page 78: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

64

4. Function Getcurrentuser digunakan untuk mendeteksi username yang

digunakan oleh komputer.

5. Fungsi getmemory akan dipanggil untuk mengecek besarnya kapasitas

suatu memori dalam hardisk di komputer client.

function GetCurrentUser: string;

var

lpName: PAnsiChar;

lpUserName: PAnsiChar;

lpnLength: DWORD;

begin

Result := '';

lpnLength := 0;

lpName:=''; // warning

WNetGetUser(nil, nil, lpnLength); // È¡µÃ×Ö´®³¤¶È

if lpnLength > 0 then

begin

GetMem(lpUserName, lpnLength);

if WNetGetUser(lpName, lpUserName, lpnLength) = NO_ERROR

then

Result := lpUserName;

FreeMem(lpUserName, lpnLength);

end;

end;

function GetMemory: string;

var

meminfo: Memorystatus;

begin

meminfo.dwLength :=SizeOf(Memorystatus);

GlobalMemoryStatus(meminfo);

Result :=inttostr(meminfo.dwTotalPhys div 1024)+'KB';

end;

asm

dw 310Fh

sub eax, TimerLo

sbb edx, TimerHi

mov TimerLo, eax

mov TimerHi, edx

end;

SetThreadPriority(GetCurrentThread, Priority);

SetPriorityClass(GetCurrentProcess, PriorityClass);

Result := TimerLo / (1000 * DelayTime);

end;

Page 79: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

65

6. Fungsi getOS, digunakan untuk mengetahui sistem operasi yang

digunakan oleh suatu komputer.

7. Fungsi getwindowspath untuk mengetahui path dari directory windows

pada komputer client.

8. Fungsi GetSystemPath untuk mengetahui path dari system32 pada

komputer client.

function GetOS: string;

var

osInfo: OSVERSIONINFO;

begin

osInfo.dwOSVersionInfoSize:=SizeOf(OSVERSIONINFO);

GetVersionEx(osInfo);

result:='Windows '+IntToStr(osInfo.dwMajorVersion)+'.'+

IntToStr(osInfo.dwMinorVersion);

end;

function GetWindowsPath: string;

var

WindowsDir: array [0..255] of char;

begin

GetWindowsDirectory(WindowsDir,255);

Result :=WindowsDir;

end;

function GetSystemPath : string;

var

SysDir: array [0..255] of char;

begin

GetSystemDirectory(SysDir,255);

Result :=SysDir;

end;

Page 80: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

66

9. Fungsi memoripakai untuk mengetahui kapasitas memori yang sedang

dipakai.

10. Fungsi resolusi layar client

5. Button chatting apabila di klik akan memanggil form chatting. Kode untuk

form chatting terlampir. Berikut kode untuk memanggil form chatting

function memoripakai : string;

var

meminfo: TMemoryStatus;

begin

GlobalMemoryStatus(meminfo);

result:= inttostr(meminfo.dwMemoryLoad

)+'%';

end;

function GetMetrics: string;

begin

Result :=inttostr(GetSystemMetrics(SM_CXSCREEN))

+'X'+inttostr(GetSystemMetrics(SM_CYSCREEN));

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Form_Client_Main.show;

Form1.hide;

end;

Page 81: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

67

2. Form utama server

Konstruksi aplikasi untuk bagian server dimulai dari desain form

aplikasi server (main server). Komponen yang digunakan untuk membuat

aplikasi server seperti tampak pada gambar diatas antara lain : label, button,

edit, tvcomputer, IdTCPClient, IdIPWatch, NMMRCClient, dan untuk

tampilan digunakan skinProvider dan skinManager. desain aplikasi sesuai

gambar dibawah ini :

Gambar 4.17 form utama server

Proses pengkodean terhadap komponen-komponen diatas di

bawah ini :

1. Button ‟hubungkan‟, button ini untuk menerima client yang akan

terhubung ke server. proses koneksi untuk dapat saling terhubung

dengan ditambahkan kode program sebagai berikut :

Page 82: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

68

Apabila permintaan koneksi dari client diterima maka akan muncul

jendela baru seperti pada gambar di bawah ini :

Gambar 4.18 Keterangan telah menerima koneksi dari client

2. Button ‟tutup koneksi‟ bila akan memutuskan koneksi dari server.

kode programnya ditambahan setelah klik dua kali pada button tutup

koneksi adalah

procedure TFormclient.Button6Click(Sender: TObject);

//koneksi

var ports:integer;

begin

ports:=strtoint(edit3.Text);

With IdtcpClient1 do

Begin

Host:=edit1.text ;

Port:= ports;

connect;

end;

MessageDlg('terhubung ke Client' + edit1.text+' dengan port

'+ edit3.Text , mtInformation,

[mbOk], 0);

end;

procedure TFormclient.Button7Click(Sender: TObject);

begin

//tutup koneksi

if idtcpclient1.Connected then idtcpclient1.Disconnect;

MessageDlg('Koneksi terputus dengan ' + edit1.text+' dengan port '+

edit3.Text , mtInformation,

[mbOk], 0);

end;

Page 83: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

69

Ketika koneksi diputus oleh server maka akan muncul

pemberitahuan atau informasi berupa jendela baru bahwa koneksi

telah putus seperti nampak pada gambar berikut ini :

Gambar 4.19 Ketika koneksi diputus oleh server

3. Button ‟ambil data client’. Proses untuk mengambil data dari client

berhubungan dengan pemanggilan fungsi-fungsi yang ada pada

aplikasi client. Fungsi-fungsi tersebut dipanggil dengan membaca

pesan ‟cekmemori2‟. Berikut adalah kode program untuk

menampilkan data client yang ditampilkan pada tvcomputer berupa

treeview.

procedure TFormclient.Button1Click(Sender: TObject);

var ip:string;

begin

IdTcpClient1.Writeln('cekmemori2'); ip:=idtcpclient1.ReadLn();

with tvComputer.Items.AddFirst( nil,ip ) do

begin

Selected := true;

end;

with tvComputer.Items do

begin

with tvComputer do

begin

with AddChild(Selected,'Sistem Operasi :

'+idtcpclient1.ReadLn())do

begin

Page 84: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

70

ImageIndex:=1;

SelectedIndex:=1;

end;

with AddChild(Selected,'MAC : '+idtcpclient1.ReadLn()) do

begin

ImageIndex:=1;

SelectedIndex:=1;

end;

with AddChild(Selected,'Resolusi Layar : '+idtcpclient1.ReadLn())do

begin

ImageIndex:=1;

SelectedIndex:=1;

end;

with AddChild(Selected,'Jenis Komputer :

'+idtcpclient1.ReadLn()) do

begin

ImageIndex:=1;

SelectedIndex:=1;

end;

with AddChild(Selected,'Nama User : '+idtcpclient1.ReadLn())do

begin

ImageIndex:=1;

SelectedIndex:=1;

end;

with AddChild(Selected,'Kapasitas Memory :

'+idtcpclient1.ReadLn())do

begin

ImageIndex:=1;

SelectedIndex:=1;

end;

with AddChild(Selected,'Direktory windows :

'+idtcpclient1.ReadLn()) do

begin

ImageIndex:=1;

SelectedIndex:=1;

end;

with AddChild(Selected,'Direktori System 32:

'+idtcpclient1.ReadLn()) do

begin

ImageIndex:=1;

SelectedIndex:=1;

end;

with AddChild(Selected,'CPU Speed : '+idtcpclient1.ReadLn()) do

begin

ImageIndex:=1;

SelectedIndex:=1;

end;

Page 85: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

71

4. IdIPwatch digunakan untuk mengecek IP Address komputer yang

kita gunakan. Dibawah ini kode program dalam aplikasi server.

5. Button chatting untuk melakukan komunikasi dengan client. Berikut

kode program ketika button ini diklik.

6. Button ’Remote’. Button ini digunakan untuk proses pengawasan

atau pemantauan terhadap aktivitas yang dilakukan oleh client.

Berikut proses pemanggilan aplikasi :

procedure TFormclient.FormCreate(Sender: TObject);

begin

edit1.Text:=idipwatch1.LocalIP;

end;

procedure TFormclient.Button3Click(Sender: TObject);

begin

frmmain.Show;//panggil form remote client

formclient.hide;//tutup form server utama.

end;

with AddChild(Selected,'BrandID CPU: '+idtcpclient1.ReadLn()) do

begin

ImageIndex:=1;

SelectedIndex:=1;

end;

with AddChild(Selected,'Vendor ID CPU: '+idtcpclient1.ReadLn()) do

begin

ImageIndex:=1;

SelectedIndex:=1;

end;

end; // with

end; end;

procedure TFormclient.Button2Click(Sender: TObject);

begin

Form_Server_Main.Show;

FormClient.Hide;

end;

Page 86: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

72

Pada kode program diatas, terjadi pemanggilan terhadap form yang

baru yaitu form remote control client untuk mengontrol aktivitas user

atau client. Form yang dipanggil adalah sebagai berikut:

Gambar 4.20 Tampilan remote control client

Desain diatas menggunakan komponen-komponen sebagai

berikut : image, mainmenu, actionlist, dan NMMRCClient. Nmm

digunakan untuk remote control, image digunakan untuk tempat

menampilkan hasil pemantauan terhadap client.

Proses utama pada aplikasi ini ada pada menus connection,

sehingga akan ditampilkan form untuk memilih client mana yang

akan dimonitoring. Desain form untuk memilih client mana yang

akan di-monitoring adalah.

Page 87: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

73

Gambar 4.21 Tampilan untuk memulai remote control

Komponen yang digunakan untuk desain tersebut adalah edit,

label, bitbutton, groupbox dan panel. Kode program yang

ditambahkan pada desain diatas adalah sebagai berikut :

a. BitButton ‟ok‟ merupakan button untuk memulai proses

monitoring, proses ini akan dimulai ketika IP Address atau client

yang akan dimonitoring telah di pilih.

Kode diatas memanggil procedure save, procedure ini telah

dideklarasikan sebelumnya dengan kode sebagai berikut :

procedure TfrmConDlg.bOKClick(Sender: TObject);

begin

Save;

end;

procedure TfrmConDlg.Load;

var LIni: TIniFile;

begin

if FileExists(FIniFileName) then

begin

LIni:= TIniFile.Create(IncludeTrailingPathDelimiter(

ExtractFilePath(Application.ExeName)) + FIniFileName);

Try

Page 88: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

74

b. BitButton ’cancel’ digunakan untuk membatalkan proses

monitoring dan kembali pada form utama server.

Untuk kode program diatas diperintahkan untuk ‟load‟. Load disini

memanggil procedure yang telah dideklarasikan sebelumnya

seperti tampak dibawah ini :

procedure TfrmConDlg.bCancelClick(Sender: TObject);

begin

Load;

end;

procedure TfrmConDlg.Load;

var LIni: TIniFile;

begin

if FileExists(FIniFileName) then

begin

LIni:= TIniFile.Create(IncludeTrailingPathDelimiter(

ExtractFilePath(Application.ExeName)) + FIniFileName);

try

edHost.Text:= LIni.ReadString('Server','Host','localhost');

sedPort.Value:= LIni.ReadInteger('Server','Port',0);

edUser.Text:= LIni.ReadString('Auth','User','');

edPassword.Text:= LIni.ReadString('Auth','Password','');

finally

FreeAndNil(LIni);

end;

end;

end;

edHost.Text:= LIni.ReadString('Server','Host','localhost');

sedPort.Value:= LIni.ReadInteger('Server','Port',0);

edUser.Text:= LIni.ReadString('Auth','User','');

edPassword.Text:= LIni.ReadString('Auth','Password','');

finally

FreeAndNil(LIni);

end;

end;

end;

Page 89: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

75

4.4 Fase Pengujian

Pada tahapan pengujian aplikasi remote spesifikasi komputer ini,

dilakukan dengan cara pengujian mandiri dan blackbox testing.

Dalam melakukan pemrograman, penulis melakukan pengujian

mandiri yaitu pengujian terhadap kode-kode program untuk memastikan

kebenaran program tersebut. Pengujian ini dilakukan untuk mencari

kesalahan yang ditimbulkan karena salah tulis atau kesalahan

pemrograman. Kegiatan unit testing ini disebut juga debugging. Kegiatan

ini digunakan untuk mencari posisi peringatan (warning), kesalahan

(error) dari kode-kode program dan mengetahui debugging yang sukses.

4.4.1 Spesifikasi computer

Adapun spesifikasi komputer yang digunakan dalam pengujian

aplikasi ini adalah :

Table 4.5 Tabel spesifikasi hardware untuk pengujian aplikasi

No. Hardware Server Client

1. Processor Dual-Core 2.20 GHz Pentium 4

2. Memory 1 GB 1 GB

3. Monitor resolusi display minimal

1024 x 768 (untuk

mendapatkan tampilan

terbaik).

resolusi display minimal

1024 x 768 (untuk

mendapatkan tampilan

terbaik).

4. Ethernet card Ya Ya

5. Keyboard Ya Ya

Page 90: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

76

6. Mouse Ya Ya

7. OS Windows Seven Windows XP SP3

4.4.2 Tipe jaringan yang digunakan

Gambar 4.22 Tipe jaringan yang digunakan

Tipe jaringan ini hanya digambarkan beberapa komputer client

yang terhubung ke komputer server melalui switch atau hub, atau

pengujian aplikasi ini dapat melalui jaringan wireless.

4.4.3 Hasil Pengujian

1. Tampilan Aplikasi Client

Gambar 4.23 interface aplikasi client

Page 91: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

77

Ini adalah tampilan aplikasi pada bagian client, aplikasi ini hanya

dapat menghubungkan dirinya (client) agar terhubung ke server. IP

address langsung terdeteksi pada setiap client ketika aplikasi ini

dijalankan. Port number, dan remote merupakan port-port yang

digunakan sebagai jalan terhubungnya dengan server untuk proses

remote terhadap client.

2. Tampilan Aplikasi Server

Gambar 4.24 interface aplikasi server

Ketika Form aplikasi server di aktifkan maka akan

terdeteksi IP address pada komputer server. Untuk port number,

dan remote telah terinisialisasi langsung. Port number digunakan

untuk menghubungkan dengan banyak client.

Page 92: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

78

Pada button ambil data client ketika di klik akan

ditampilkan data memori dari masing-masing client yang

terhubung.

Data memori atau spesifikasi komputer client yang

ditampilkan antara lain adalah sistem operasi, MAC, resolusi layar,

jenis komputer, nama user, kapasitas memori, directory windows

dan sistem32, kecepatan CPU, BrandID CPU, serta vendor CPU.

Button remote digunakan untuk mengawasi aktivitas client dan

mengendalikan client oleh server.

3. Tampilan pada aplikasi server ketika kedua aplikasi telah terhubung

Gambar 4.25 interface terkoneksi

Tampilan diatas adalah tampilan ketika client dan server telah

dapat terhubung dengan port yang sama.

Page 93: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

79

4. Tampilan pada aplikasi client ketika telah terkoneksi dengan server

Gambar 4.26 Interface terkoneksi pada aplikasi client

5. Tampilan pada saat button „ambil data dari client’ di klik

Gambar 4.27 interface ambil data memori client

Tampilan diatas menampilkan nomor IP client yang pertama

akan dilihat data memorinya.

Page 94: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

80

Berikut adalah tampilan data client dengan meng-klik nomor

IP-nya. Tampilan ini berupa pohon, ketika IP address di klik maka

akan tampil spesifikasi komputer tiap-tiap host sesuai IP addressnya.

Informasi spesifikasi ini telah dibaca oleh tiap client pada saat aplikasi

client di aktifkan, server hanya memanggil informasi memori tersebut

dari client dan client mengirimkan ke server. Berikut tampilan pada

saat tree dari IP address host diklik.

Gambar 4.28 interface ambil data memori client1

Untuk Tampilan server yang telah terhubung dengan beberapa

client berdasarkan IP address-nya. Setiap IP address yang ditampilkan

telah memuat informasi spesifikasi komputer dirinya.sebagai berikut.

Page 95: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

81

Gambar 4.29 Tampilan spesifikasi komputer client yang terhubung

berikut adalah bentuk tampilan saat semua client di tampilkan, terlihat data

yang panjang sehingga dibutuhkan scroolbar untuk menampilkannya.

Gambar 4.30 Tampilan spesifikasi beberapa komputer client yang terhubung

Page 96: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

82

6. Interface Remote

Gambar 4.31 Interface pada saat monitoring client

Tampilan ini ketika button Remote diklik. Pada proses remote

client digunakan untuk memantau dan mengendalikan aktivitas satu

client. Selanjutnya, untuk memilih client mana yang akan di-remote

pilih menu connection, pilih active. Interface untuk menu active

seperti dibawah ini :

Gambar 4.32 Tampilan untuk memilih client yang akan di-monitoring.

Page 97: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

83

Berikut hasil pengujian remote terhadap client

Gambar 4.33 Tampilan desktop komputer client yang di-remote

Hasil pengujian ini dilakukan dengan menggunakan sistem operasi

antara windows xp dan windows seven. Tidak ada perubahan untuk

program seven, ataupun xp.

Pada form remote terhadap client terdapat pilihan menu untuk

menampilkan aplikas cmd dan enable remote control pada client sebagai

berikut :

Page 98: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

84

Gambar 4.34 tampilan menu dalam form remote client

Berikut tampilan ketika menjalankan aplikasi cmd pada komputer client

Gambar 4.35 tampilan menjalankan aplikasi pada client

Page 99: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

85

Pada aplikasi remote ini dapat menjalankan aktivitas apapun dari

server contohnya dapat meremove atau un-install program, menjalankan

microsoft office, bermain game, dan lain sebagainya.

7. Interface chatting

Setiap akan melakukan proses chatting akan terjadi pemanggilan form

baik pada bagian server ataupun bagian client. Berikut tampilan

chatting pada server.

Gambar 4.36 tampilan chatting pada server

Untuk chatting ini server memulai mengijinkan client dapat

berkomunikasi dengan tombol start. Tampilan tersebut untuk

mengetahui chat dengan client. Pada bagian client tampilan untuk

chatting sebagai berikut.

Page 100: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

86

Gambar 4.37 tampilan chatting pada client

Gambar diatas dapat menampilkan beberapa host yang terhubung pada

kotak list. List host yang terhubung berfungsi untuk memilih dengan

host mana kita akan berkomunikasi.

Page 101: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

87

8. Interface tutup koneksi

Proses menutup koneksi dapat dilakukan pada aplikasi client ataupun

aplikasi server.

Gambar 4.38 tampilan tutup koneksi pada server

Penutupan pada server dilakukan pada form utama server.

sedangkan penutupan pada aplikasi client sebagai berikut

Gambar 4.39 tampilan tutup koneksi pada client

Page 102: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

88

4.4.4 Pengujian Blackbox

Pengujian pada dasarnya adalah menemukan serta menghilangkan

„bug’ (kesalahan kesalahan) yang ada di sistem atau perangkat lunak itu.

Adapun pengujian terhadap sistem yang dilakukan adalah bertujuan untuk

menemukan kesalahan yang masih ada pada sistem. Pengujian dilakukan

dengan menggunakan pendekatan black-box testing. Dengan

menggunakan pendekatan black-box testing kita dapat mengetahui apakah

sistem dapat memberikan keluaran seperti yang kita harapkan.

Walaupun sistem telah diuji beberapa kali, tidak menutup

kemungkinan adanya kesalahan. Oleh karena itu, pengujian dan perbaikan

harus terus dilakukan seiring dengan digunakannya sistem ini

.Cara pengujian blackbox testing dilakukan dengan menjalankan

aplikasi remote spesifikasi client server dan melakukan pengiriman data

apakah sesuai dengan kesimpulan yang diharapkan. Hasil pengujian

blackbox testing disajikan dalam tabel di bawah ini :

Page 103: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

89

Tabel 4.7 Hasil pengujian terhadap aplikasi spesifikasi basis client server

No Pengujian Interface yang diharapkan

Hasil

pengujian

1. Interface aplikasi client

Tampilan aplikasi client ok

2. Interface aplikasi

server

Tampilan aplikasi server ok

3. Koneksi client dan

server

Tampilan saling terkoneksi ok

4. Monitoring client Tampilan monitoring client ok

5. Option monitoring Tampilah option ok

6. Pengambilan data

memori client

Tampilan memori client

berdasarkan IP

ok

7 Chatting client-server Tampilan chatting ok

Page 104: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

90

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Pengembangan aplikasi remote spesifikasi desktop berbasis client

server bertujuan untuk mengefisiensikan aplikasi yang dapat digunakan

untuk beberapa aplikasi. Dari penelitian dan tulisan yang telah penulis

uraikan, maka dapat ditarik kesimpulan sebagai berikut

1. Aplikasi ini dibuat untuk menampilkan data atau spesifikasi

komputer. Server dapat meremote spesifikasi komputer client

setelah keduanya saling terhubung.

2. Data memori atau spesifikasi komputer yang ditampilkan antara

lain adalah sistem operasi, MAC, resolusi layar, jenis komputer,

nama user, kapasitas memori, directory windows dan sistem32,

kecepatan CPU, BrandID CPU, serta vendor CPU.

3. Aktivitas remote yang dapat dilakukan oleh server adalah remote

terhadap spesifikasi komputer, remote control dan remote desktop

terhadap komputer client.

90

Page 105: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

91

5.2. Saran

Aplikasi ini tentu saja masih belum sempurna. Masih banyak hal

yang dapat dilakukan untuk mengembangkan aplikasi ini agar menjadi

lebih baik lagi, antara lain :

1. Mengembangkan aplikasi ini untuk wilayah atau cakupan yang lebih

besar dan luas serta dapat digunakan untuk jaringan wireless.

2. Pada aplikasi ini digunakan 2 port untuk remote spesifikasi dan

remote monitoring, diharapkan pada pengembangan berikutnya port

yang digunakan hanya satu untuk keefisiensi kerja jaringan. Selain

itu dengan remote login agar otomatisasi client yang baru terhubung

langsung terdeteksi..

3. Spesifikasi komputer yang ditampilkan masih terbatas pada koding,

sehingga dapat dikembangkan spesifikasi komputer client sesuai

yang diinginkan dan dibutuhkan.

4. Komunikasi antara client dan server belum terjadi, fitur yang perlu

ditambahkan adalah fitur chatting.

5. Perlunya dikembangkan aplikasi server yang mampu mengakses

banyak aplikasi client sekaligus pada satu waktu.

6. Perlunya dikembangkan aplikasi sejenis yang berjalan antar sistem

operasi.

Page 106: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

DAFTAR PUSTAKA

Sofana, Iwan. 2010. CISCO CCNA & JARINGAN KOMPUTER, Informatika.

Bandung.

Sutanta, edhy. 2004. Komunikasi Data & Jaringan Komputer, Graha Ilmu

Bandung.

Fiade, Andrew. 2010. bab 5 komponen indy.

Wahana Komputer. 2002. Pemrograman Borland Delphi 7.0. Yogyakarta: Andi

Offset

Dharwiyanti, Sri. 2003. “Pengantar Unified Modelling Language (UML)”, Ilmu

Komputer ;

Ketut, Dharmayuda. 2007. Program Aplikasi Client Server. Bandung : Penerbit

Informatika

Kendal & Kendal. 2005. Analisis dan Perancangan sistem. Jakarta.

Pujianto S.kom. 2007. 50 trik pemrograman delphi 8.0. Jakarta : Elek Media

Komputindo.

Komunitas Delphi. Get the total and available memory. [Online] Tersedia :

http://www.delphitricks.com/source-

code/systeminfo/get_the_total_and_available_memory.html

[ 10 Juni 2010]

www.softcov. 2009. Indy Delphi 7- Socket Aplication. [Online] Tersedia :

http://www.softcov.com/id/programming-and-testing/indy-in-delphi-7-

using-socket-application.html [12 Agustus 2010]

Tanawijaya, Antonius. 2010. Sistem Monitoring Dan Pengontrolan Server Jarak

Jauh Menggunakan Mobile Phone. Skripsi : Tidak Diterbitkan.

Arie Januar Smaratul Fuad. 2008. PC (Personal Computer) Remote Access

Menggunakan Ponsel (Telepon Selular) Pada Jaringan Berbasis Media

Bluetooth. Skripsi : Tidak Diterbitkan.

Page 107: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Predi Aferi Hasan. 2005. Manajemen Jaringan Dengan Memanfaatkan Aplikasi

Remote Administrator (Radmin) Sebagai Maintenance System Di

Pt.Wahana Esa Shambada. Skripsi : Tidak Diterbitkan.

Supriyanto. 2006. Sistem RMM (Remote Maintenance Monitoring) Sebagai Alat

Bantu Teknisi Untuk Memantau Kinerja Peralatan NDB Di Bandara

Husein Sastranegara Bandung. Skripsi : Tidak Diterbitkan.

Page 108: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

DAFTAR LAMPIRAN

LAMPIRAN A

Penambahan komponen client server delphi................................... A-1

Penambahan komponen NMM ....................................................... A-2

Penambahan komponen Alite skin ................................................. A-3

xv

Page 109: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Lampiran source code chatting 1. Source code chatting pada server

unit Unit_Server_Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, WinSock, Grids, ComCtrls, StdCtrls, ExtCtrls, IdBaseComponent, IdComponent, IdTCPServer, IdAntiFreezeBase, IdAntiFreeze, IdThreadMgr, IdThreadMgrDefault, IdServerIOHandler, IdServerIOHandlerSocket, IdException, IdIntercept, IdLogBase, IdLogEvent, SyncObjs; resourcestring StatusDateTimeFormat = 'mm/dd/yyyy" - "hh:nn:ss:zzz AM/PM'; WelcomeMessage = 'Chat With Us' + #13#10 + type TSCSClientInfo = class(TObject) ScreenName : string; LocalName : string; IP : string; Port : string; PeerIP : string; PeerPort : string; Index : Integer; Thread : Pointer; //TIdPeerThread; end; TForm_Server_Main = class(TForm) ChatServerSocket: TIdTCPServer; pcLearnSockets: TPageControl; tsServer: TTabSheet; gbServerSettings: TGroupBox; lblServerPort: TLabel; edServerPort: TEdit; gbUserDefinedServerSettings: TGroupBox; tsAdminMsg: TTabSheet; TabSheet2: TTabSheet; sgServerConnections: TStringGrid; cbBroadcastAsAlert: TCheckBox; btnStartStopServer: TButton; IdAntiFreeze1: TIdAntiFreeze; IdThreadMgrDefault1: TIdThreadMgrDefault; lblServerAddress: TLabel; lbIndyVersion: TLabel; btnDisconnect: TButton; btnDisconnectAll: TButton; cbSendCloseToClient: TCheckBox; cbSpaceMessages: TCheckBox; cbRecordSentMessages: TCheckBox; memMessageBox: TMemo; edSend: TEdit; memLog: TMemo; cbShowAdminMsgs: TCheckBox; Button1: TButton;

Page 110: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

procedure edSendKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure sgServerConnectionsKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure memMessageBoxKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ChatServerSocketConnect(AThread: TIdPeerThread); procedure ChatServerSocketExecute(AThread: TIdPeerThread); procedure ChatServerSocketListenException(AThread: TIdListenerThread; AException: Exception); procedure ChatServerSocketNoCommandHandler(ASender: TIdTCPServer; const AData: String; AThread: TIdPeerThread); procedure ChatServerSocketStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); procedure btnStartStopServerClick(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure btnDisconnectClick(Sender: TObject); procedure ChatServerSocketAfterCommandHandler(ASender: TIdTCPServer; AThread: TIdPeerThread); procedure ChatServerSocketBeforeCommandHandler(ASender: TIdTCPServer; const AData: String; AThread: TIdPeerThread); procedure ChatServerSocketDisconnect(AThread: TIdPeerThread); procedure ChatServerSocketException(AThread: TIdPeerThread; AException: Exception); procedure btnDisconnectAllClick(Sender: TObject); procedure memLogKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormActivate(Sender: TObject); procedure cbShowAdminMsgsClick(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } ClientList: TList; procedure AddToClientList(AScreenName: string; AThread: TIdPeerThread); procedure RemoveFromClientList(ClientInfo: TSCSClientInfo); //Protocol procedure BrodcastMessage(Msg: string; AThread: TIdPeerThread); procedure ProxyMessage(Msg: string; AThread: TIdPeerThread); function GetLoginList: string; public { Public declarations } end; var Form_Server_Main: TForm_Server_Main; implementation uses IdTCPConnection, IdThread, Unitclient; {$R *.DFM} procedure TForm_Server_Main.FormCreate(Sender: TObject); begin tsAdminMsg.TabVisible := False;

Page 111: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

ClientList := TList.Create; sgServerConnections.RowCount := 2; sgServerConnections.FixedRows := 1; sgServerConnections.ColCount := 13; //Setup Columns with sgServerConnections do begin Cells[0,0] := 'Mem. Addr.'; ColWidths[1] := 25; Cells[2,0] := 'Screen Name'; ColWidths[2] := 100; Cells[3,0] := 'Local Host'; ColWidths[3] := 100; Cells[4,0] := 'Local Address'; ColWidths[4] := 100; Cells[5,0] := 'Local Port'; ColWidths[5] := 75; Cells[6,0] := 'Remote Host'; ColWidths[6] := 100; Cells[7,0] := 'Remote Address'; ColWidths[7] := 100; Cells[8,0] := 'Remote Port'; ColWidths[8] := 75; end; end; procedure TForm_Server_Main.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TForm_Server_Main.FormDestroy(Sender: TObject); begin if ChatServerSocket.Active then begin btnDisconnectAllClick(Self); try ChatServerSocket.Active := False; except on E: Exception do begin memLog.Lines.Add('Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ') [' + E.ClassName + ']: ' + E.Message); end; //on end; end; ClientList.Free; end; procedure TForm_Server_Main.edSendKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

Page 112: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

begin if Key = VK_Return then begin if cbBroadcastAsAlert.Checked then begin BrodcastMessage('!' + edSend.Text, nil); end else begin BrodcastMessage('Admin.> ' + edSend.Text, nil); end; if cbRecordSentMessages.Checked then begin memMessageBox.Lines.Add('Admin.> ' + edSend.Text); if cbSpaceMessages.Checked then begin memMessageBox.Lines.Add(''); end; end; edSend.Text := ''; end; end; //////////////////////////////////////////////////////////////////////////////////////////////////// procedure TForm_Server_Main.BrodcastMessage(Msg: string; AThread: TIdPeerThread); var List: TList; I: Integer; begin List := ChatServerSocket.Threads.LockList; try for I := 0 to List.Count - 1 do begin try if AThread <> TIdPeerThread(List.Items[I]) then begin TIdPeerThread(List.Items[I]).Connection.WriteLn(Msg); end; except on E: Exception do begin memLog.Lines.Add('Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ') [' + E.ClassName + ']: ' + E.Message); memLog.Lines.Add('The thread has been stopped'); TIdPeerThread(List.Items[I]).Stop; end; //on end; //try end; //for finally ChatServerSocket.Threads.UnlockList; end;

Page 113: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

end; procedure TForm_Server_Main.ProxyMessage(Msg: string; AThread: TIdPeerThread); var List: TList; Data: TStrings; Sender: string; Receivers: TStrings; ChatMsg: string; I, J: Integer; begin Data := TStringList.Create; Receivers := TStringList.Create; try Data.CommaText := Msg; Sender := TSCSClientInfo(AThread.Data).ScreenName; //Also should = Data.Strings[0]; Receivers.CommaText := Data.Strings[1]; ChatMsg := Sender + '> ' + Data.Strings[2]; J := Receivers.IndexOf('Administrator'); if J > -1 then begin if cbShowAdminMsgs.Checked then begin memMessageBox.Lines.Add(ChatMsg); end else begin I := sgServerConnections.Cols[2].IndexOf('Administrator'); if I <= -1 then begin TIdPeerThread(AThread).Connection.WriteLn('Admin. is not online.'); end; end; end; List := ChatServerSocket.Threads.LockList; try for I := 0 to List.Count - 1 do begin try J := Receivers.IndexOf(TSCSClientInfo(TIdPeerThread(List.Items[I]).Data).ScreenName); if (J > -1) and (AThread <> TIdPeerThread(List.Items[I])) then begin TIdPeerThread(List.Items[I]).Connection.WriteLn(ChatMsg); end; except on E: Exception do begin memLog.Lines.Add('Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ') [' + E.ClassName + ']: ' + E.Message);

Page 114: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

memLog.Lines.Add('The thread has been stopped'); TIdPeerThread(List.Items[I]).Stop; end; //on end; //try end; //for finally ChatServerSocket.Threads.UnlockList; end; finally Receivers.Free; Data.Free; // List := nil; end; end; procedure TForm_Server_Main.sgServerConnectionsKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_DELETE) and (sgServerConnections.Row <> 0) then begin btnDisconnectClick(Self); end; end; procedure TForm_Server_Main.memMessageBoxKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_DELETE then memMessageBox.Clear; end; //////////////////////////////////////////////////////////////////////////////////////////////////// procedure TForm_Server_Main.AddToClientList(AScreenName: string; AThread: TIdPeerThread); var ClientInfo: TSCSClientInfo; I: Integer; begin ClientInfo := TSCSClientInfo.Create; ClientInfo.ScreenName := AScreenName; ClientInfo.LocalName := AThread.Connection.LocalName; ClientInfo.PeerIP := AThread.Connection.Socket.Binding.PeerIP; ClientInfo.PeerPort := IntToStr(AThread.Connection.Socket.Binding.PeerPort); ClientInfo.IP := AThread.Connection.Socket.Binding.IP; ClientInfo.Port := IntToStr(AThread.Connection.Socket.Binding.Port); ClientInfo.Thread := AThread; AThread.Data := ClientInfo; ClientList.Add(ClientInfo); I := sgServerConnections.Cols[2].IndexOf('-----'); if I <= -1 then begin //Add entry to grid

Page 115: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

sgServerConnections.RowCount := sgServerConnections.RowCount + 1; I := ClientList.Count; sgServerConnections.Cells[1 ,I] := IntToStr(-1); sgServerConnections.Cells[2 ,I] := '-----'; end; with sgServerConnections do begin Cells[0 ,I] := IntToStr(Integer(ClientInfo)); //Store other info Cells[1 ,I] := IntToStr(ClientList.Count); Cells[2 ,I] := ClientInfo.ScreenName; Cells[3 ,I] := ClientInfo.LocalName; Cells[4 ,I] := TIdPeerThread(ClientInfo.Thread).Connection.Socket.Binding.IP; Cells[5 ,I] := IntToStr(TIdPeerThread(ClientInfo.Thread).Connection.Socket.Binding.Port); //Don't know how to get this info yet Cells[6 ,I] := 'N/A'; Cells[7 ,I] := TIdPeerThread(ClientInfo.Thread).Connection.Socket.Binding.PeerIP; Cells[8 ,I] := IntToStr(TIdPeerThread(ClientInfo.Thread).Connection.Socket.Binding.PeerPort); end; end; procedure TForm_Server_Main.RemoveFromClientList(ClientInfo: TSCSClientInfo); var I: Integer; begin //Get the address of ClientInfo. Remember objects are automatically dereferenced by the //compilier so we don't need to use the @ClientInfo symbol here. I := sgServerConnections.Cols[0].IndexOf(IntToStr(Integer(ClientInfo))); if I > -1 then begin //Setup Columns with sgServerConnections do begin Cells[0 ,I] := ''; Cells[1 ,I] := IntToStr(-1); Cells[2 ,I] := '-----'; Cells[3 ,I] := ''; Cells[4 ,I] := ''; Cells[5 ,I] := ''; Cells[6 ,I] := ''; Cells[7 ,I] := ''; Cells[8 ,I] := ''; end; end; end; function TForm_Server_Main.GetLoginList: string; begin

Page 116: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Result := Copy(sgServerConnections.Cols[2].CommaText, 1, Length(sgServerConnections.Cols[2].CommaText)-1); end; //////////////////////////////////////////////////////////////////////////////////////////////////// procedure TForm_Server_Main.ChatServerSocketConnect(AThread: TIdPeerThread); var Data: string; I: Integer; begin memLog.Lines.Add('Sending connection message (' + FormatDateTime(StatusDateTimeFormat, Now) + ')'); AThread.Connection.WriteLn('&' + WelcomeMessage); AThread.Connection.WriteLn('&' + 'Date/Time: ' + FormatDateTime(StatusDateTimeFormat, Now)); AThread.Connection.WriteLn('&' + ConnectHelpMsg); //Get Login Info which the client is expected to send when connecting. try AThread.Connection.ReadTimeout := 5000000; //If they don't send it in 5 sec. then drop the connection. try Data := AThread.Connection.ReadLn; finally // AThread.Connection.ReadTimeout := IdDefTimeout; //Restore default end; if Data <> 'Anonymous' then begin I := sgServerConnections.Cols[2].IndexOf(Data); if I <= -1 then begin memLog.Lines.Add('Authenticated (' + FormatDateTime(StatusDateTimeFormat, Now) + ') ' + Data); AThread.Connection.WriteLn('Authenticated: ' + Data); AddToClientList(Data, AThread); end else begin memLog.Lines.Add('Not Authenticated (' + FormatDateTime(StatusDateTimeFormat, Now) + ') ' + Data); AThread.Connection.WriteLn('Not Authenticated. User already logged on.'); Sleep(10000); //Wait for client to get message AThread.Connection.Disconnect; end; end else begin memLog.Lines.Add('Not Authenticated (' + FormatDateTime(StatusDateTimeFormat, Now) + ') ' + Data); AThread.Connection.WriteLn('Not Authenticated. Server does not accept Anonymous users.'); Sleep(10000); //Wait for client to get message

Page 117: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

AThread.Connection.Disconnect; end; except on E: Exception do begin memLog.Lines.Add('Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ') [' + E.ClassName + ']: ' + E.Message); AThread.Connection.WriteLn('Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ') [' + E.ClassName + ']: ' + E.Message); Sleep(10000); //Wait for client to get message AThread.Connection.Disconnect; end; end; end; procedure TForm_Server_Main.ChatServerSocketDisconnect(AThread: TIdPeerThread); var ClientInfo: TSCSClientInfo; begin ClientInfo := TSCSClientInfo(AThread.Data); AThread.Data := nil; //Cleanup list ClientList.Delete(ClientList.IndexOf(ClientInfo)); ClientInfo.Thread := nil; //Cleanup grid RemoveFromClientList(ClientInfo); //Free ClientInfo.Free; // memLog.Lines.Add('Disconnect (' + FormatDateTime(StatusDateTimeFormat, Now) + ')'); end; procedure TForm_Server_Main.ChatServerSocketException(AThread: TIdPeerThread; AException: Exception); begin memLog.Lines.Add('Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ') [' + AException.ClassName + ']: ' + AException.Message); end; procedure TForm_Server_Main.ChatServerSocketExecute(AThread: TIdPeerThread); var Cmd: string; Data: string; begin try while AThread.Connection.Connected do begin if memLog.Lines.Count > 500 then memLog.Clear; memLog.Lines.Add('Execute (' + FormatDateTime(StatusDateTimeFormat, Now) + ')');

Page 118: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Data := AThread.Connection.ReadLn; Cmd := Copy(Data,1,1); if Cmd = '@' then //Client logging in begin BrodcastMessage(Data, AThread); AThread.Connection.WriteLn('~' + GetLoginList); end else if Cmd = '~' then //Client request user list begin AThread.Connection.WriteLn('~' + GetLoginList); end else if Cmd = '!' then //Server Broadcast Message (from remote client) begin BrodcastMessage(Copy(Data,2,Length(Data)-1), nil); AThread.Connection.WriteLn('+OK "' + Data + '"'); end else if Cmd = '"' then //Send Message begin ProxyMessage(Data, AThread); end else if Cmd = '-' then //Quit begin BrodcastMessage('-' + TSCSClientInfo(AThread.Data).ScreenName, nil); AThread.Connection.Disconnect; end else begin BrodcastMessage('-' + TSCSClientInfo(AThread.Data).ScreenName, nil); AThread.Connection.WriteLn('Client protocol error. Server disconnected.'); AThread.Connection.Disconnect; end; end; except on E: Exception do begin memLog.Lines.Add('OnExecute Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ') [' + E.ClassName + ']: ' + E.Message); end; //on end; end; procedure TForm_Server_Main.ChatServerSocketListenException(AThread: TIdListenerThread; AException: Exception); begin memLog.Lines.Add('Listen Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ')'); end; procedure TForm_Server_Main.ChatServerSocketAfterCommandHandler(ASender: TIdTCPServer; AThread: TIdPeerThread);

Page 119: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

begin memLog.Lines.Add('AfterCommandHandler (' + FormatDateTime(StatusDateTimeFormat, Now) + ')'); end; procedure TForm_Server_Main.ChatServerSocketBeforeCommandHandler(ASender: TIdTCPServer; const AData: String; AThread: TIdPeerThread); begin memLog.Lines.Add('BeforeCommandHandler (' + FormatDateTime(StatusDateTimeFormat, Now) + ')'); end; procedure TForm_Server_Main.ChatServerSocketNoCommandHandler(ASender: TIdTCPServer; const AData: String; AThread: TIdPeerThread); begin memLog.Lines.Add('NoCommandHandler (' + FormatDateTime(StatusDateTimeFormat, Now) + ')'); end; procedure TForm_Server_Main.ChatServerSocketStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); begin memLog.Lines.Add('Status (' + FormatDateTime(StatusDateTimeFormat, Now) + ') ' + AStatusText); end; procedure TForm_Server_Main.btnStartStopServerClick(Sender: TObject); begin if ChatServerSocket.Active then begin memLog.Lines.Add('Stopping...'); btnDisconnectAllClick(Self); try ChatServerSocket.Active := False; except on E: Exception do begin memLog.Lines.Add('Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ') [' + E.ClassName + ']: ' + E.Message); end; //on end; memLog.Lines.Add('...Stopped'); btnStartStopServer.Caption := 'Start'; end else begin memLog.Lines.Add('Starting...'); ChatServerSocket.DefaultPort := StrToInt(edServerPort.Text); ChatServerSocket.Bindings.Clear; ChatServerSocket.Active := True;

Page 120: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

memLog.Lines.Add('...Started'); memLog.Lines.Add('Listening...'); btnStartStopServer.Caption := 'Stop'; lblServerAddress.Caption := 'Server: ' + ChatServerSocket.LocalName; lbIndyVersion.Caption := 'Indy Version: ' + ChatServerSocket.Version; end; end; procedure TForm_Server_Main.btnDisconnectClick(Sender: TObject); var I, X: Integer; ClientInfo: TSCSClientInfo; begin X := sgServerConnections.Row; I := StrToInt(sgServerConnections.Cells[0,X]); ClientInfo := Pointer(I); BrodcastMessage('-' + ClientInfo.ScreenName, nil); TIdPeerThread(ClientInfo.Thread).Connection.WriteLn('Disconnnected by the server'); if cbSendCloseToClient.Checked then begin TIdPeerThread(ClientInfo.Thread).Connection.WriteLn('#'); end; try TIdPeerThread(ClientInfo.Thread).Connection.Disconnect; except //on E: EIdNotConnected do //begin // //Dont worry about this error for now. //end; on E: Exception do begin memLog.Lines.Add('Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ') [' + E.ClassName + ']: ' + E.Message); memLog.Lines.Add('The thread has been stopped'); TIdPeerThread(ClientInfo.Thread).Stop; end; //on end; end; procedure TForm_Server_Main.btnDisconnectAllClick(Sender: TObject); var List: TList; I: Integer; begin List := ChatServerSocket.Threads.LockList; try for I := 0 to List.Count - 1 do begin

Page 121: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

try if cbSendCloseToClient.Checked then begin TIdPeerThread(List.Items[I]).Connection.WriteLn('#'); end; TIdPeerThread(List.Items[I]).Connection.Disconnect; except //on E: EIdNotConnected do //begin // //Dont worry about this error //end; on E: Exception do begin memLog.Lines.Add('Exception (' + FormatDateTime(StatusDateTimeFormat, Now) + ') [' + E.ClassName + ']: ' + E.Message); memLog.Lines.Add('The thread has been stopped'); TIdPeerThread(List.Items[I]).Stop; end; //on end; //try end; //for finally ChatServerSocket.Threads.UnlockList; end; end; procedure TForm_Server_Main.memLogKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_DELETE then memMessageBox.Clear; end; procedure TForm_Server_Main.FormActivate(Sender: TObject); begin pcLearnSockets.ActivePage := tsServer; end; procedure TForm_Server_Main.cbShowAdminMsgsClick(Sender: TObject); begin if cbShowAdminMsgs.Checked then begin tsAdminMsg.TabVisible := True; pcLearnSockets.ActivePage := tsAdminMsg; end else begin tsAdminMsg.TabVisible := False; end; end;

Page 122: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

procedure TForm_Server_Main.Button1Click(Sender: TObject); begin Form_Server_Main.Hide; FormClient.Show; end; end.

2. Source code chatting pada client unit Unit_Client_Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ScktComp, ExtCtrls, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdIOHandler, IdIOHandlerSocket, IdSocks, IdIntercept, IdLogBase, IdLogEvent, IdException; resourcestring StatusDateTimeFormat = 'mm/dd/yyyy" - "hh:nn:ss:zzz AM/PM'; type TForm_Client_Main = class(TForm) pcClientTab: TPageControl; tsClient: TTabSheet; gbBasicClientSettings: TGroupBox; gbConnectionAddressOrHost: TGroupBox; edConnectionAddress: TEdit; gbConnectionport: TGroupBox; edConnectionPort: TEdit; tsTextChat: TTabSheet; memSend: TMemo; memChatText: TMemo; lbUsers: TListBox; ChatClientSocket: TIdTCPClient; IdAntiFreeze1: TIdAntiFreeze; memLog: TMemo; IdLogEvent1: TIdLogEvent; pStatusPanel: TPanel; Ind01: TShape; Ind02: TShape; Ind03: TShape; Ind04: TShape; Ind05: TShape; IndicatorResetTimer: TTimer; btnConnectDisconnect: TButton; pnlRefreshList: TPanel; GroupBox1: TGroupBox; edScreenName: TEdit; Label6: TLabel; cbAutoLogin: TCheckBox; lblInfo: TLabel;

Page 123: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

cbSpaceMessages: TCheckBox; cbRecordSentMessages: TCheckBox; Button1: TButton; Label1: TLabel; procedure btnConnectDisconnectClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure ChatClientSocketConnected(Sender: TObject); procedure ChatClientSocketDisconnected(Sender: TObject); procedure memSendKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure IdLogEvent1Connect(ASender: TIdConnectionIntercept); procedure IdLogEvent1Disconnect(ASender: TIdConnectionIntercept); procedure IdLogEvent1Receive(ASender: TIdConnectionIntercept; AStream: TStream); procedure IdLogEvent1Received(ASender: TComponent; const AText, AData: String); procedure IdLogEvent1Send(ASender: TIdConnectionIntercept; AStream: TStream); procedure IdLogEvent1Sent(ASender: TComponent; const AText, AData: String); procedure IdLogEvent1Status(ASender: TComponent; const AText: String); procedure memChatTextKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ChatClientSocketStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); procedure IndicatorResetTimerTimer(Sender: TObject); procedure pnlRefreshListClick(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; TStatusThread = class(TThread) private FClientConnected: Boolean; FClientThreadTerminated: Boolean; FClientThreadSuspended: Boolean; procedure UpdateClientThreadStatus; protected procedure Execute; override; end; TClientThread = class(TThread) private Msg: string; procedure ReceivedLine; procedure MessageToLog;

Page 124: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

protected procedure Execute; override; end; TScrollingTextInfoThread = class(TThread) private FReset: Boolean; FAlert: Boolean; FAlertMsg: string; FAlertCount: Integer; procedure SetCaption; procedure UpdateInfoAndScroll; protected procedure Execute; override; published property Reset: Boolean read FReset write FReset; property Alert: Boolean read FAlert write FAlert; property AlertMsg: string read FAlertMsg write FAlertMsg; end; var Form_Client_Main: TForm_Client_Main; ClientThread: TClientThread; StatusThread: TStatusThread; ScrollingTextInfoThread: TScrollingTextInfoThread; implementation uses Main, Unit1; {$R *.DFM} procedure TForm_Client_Main.FormCreate(Sender: TObject); begin ClientThread := TClientThread.Create(True); StatusThread := TStatusThread.Create(False); StatusThread.FreeOnTerminate := True; ScrollingTextInfoThread := TScrollingTextInfoThread.Create(False); ScrollingTextInfoThread.FreeOnTerminate := True; pStatusPanel.Color := clBtnFace; end; procedure TForm_Client_Main.FormClose(Sender: TObject; var Action: TCloseAction); begin ScrollingTextInfoThread.Terminate; repeat Application.ProcessMessages; until ScrollingTextInfoThread.Terminated; StatusThread.Terminate; repeat Application.ProcessMessages; until StatusThread.Terminated; ClientThread.FreeOnTerminate := True; ClientThread.Terminate;

Page 125: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

repeat Application.ProcessMessages; until ClientThread.Terminated; if ChatClientSocket.Connected then begin ChatClientSocket.Disconnect; end; repeat Application.ProcessMessages; until not ChatClientSocket.Connected; Action := caFree; end; procedure TForm_Client_Main.FormDestroy(Sender: TObject); begin end; procedure TForm_Client_Main.btnConnectDisconnectClick(Sender: TObject); begin try ScrollingTextInfoThread.Suspend; ScrollingTextInfoThread.Reset := True; if not ChatClientSocket.Connected then begin if (edConnectionAddress.Text <> '') and (edConnectionPort.Text <> '') then begin ChatClientSocket.Host := edConnectionAddress.Text; ChatClientSocket.Port := StrToInt(edConnectionPort.Text); ChatClientSocket.Connect; memChatText.Text := ''; memSend.Text := ''; pcClientTab.ActivePage := tsTextChat; end else begin ShowMessage('You must enter in a user name and server name or address to connect.'); end; end else begin ChatClientSocket.WriteLn('-' + edScreenName.Text); ChatClientSocket.Disconnect; end; finally ScrollingTextInfoThread.Resume; end; end;

Page 126: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

procedure TForm_Client_Main.ChatClientSocketConnected(Sender: TObject); begin //Activate the receiving thread if ClientThread.Suspended then begin ClientThread.Resume; end; if cbAutoLogin.Checked then begin memLog.Lines.Add('Login (' + FormatDateTime(StatusDateTimeFormat, Now) + ')'); ChatClientSocket.WriteLn(edScreenName.Text); memLog.Lines.Add('Authenticated (' + FormatDateTime(StatusDateTimeFormat, Now) + ')'); ChatClientSocket.WriteLn('@' + edScreenName.Text); end; end; procedure TForm_Client_Main.ChatClientSocketDisconnected(Sender: TObject); begin ScrollingTextInfoThread.Suspend; ScrollingTextInfoThread.Reset := True; ScrollingTextInfoThread.Resume; if not ClientThread.Suspended then begin ClientThread.Suspend; end; memLog.Lines.Add('Logout (' + FormatDateTime(StatusDateTimeFormat, Now) + ')'); end; procedure TForm_Client_Main.ChatClientSocketStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: String); begin memLog.Lines.Add('Socket Status (' + FormatDateTime(StatusDateTimeFormat, Now) + ') ' + AStatusText); end; procedure TForm_Client_Main.IdLogEvent1Connect(ASender: TIdConnectionIntercept); begin memLog.Lines.Add('Log Event (' + FormatDateTime(StatusDateTimeFormat, Now) + ') Connect'); end; procedure TForm_Client_Main.IdLogEvent1Disconnect(ASender: TIdConnectionIntercept); begin memLog.Lines.Add('Log Event (' + FormatDateTime(StatusDateTimeFormat, Now) + ') Disconnect');

Page 127: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

end; procedure TForm_Client_Main.IdLogEvent1Receive(ASender: TIdConnectionIntercept; AStream: TStream); begin Form_Client_Main.Ind05.Brush.Color := clLime; memLog.Lines.Add('Log Event (' + FormatDateTime(StatusDateTimeFormat, Now) + ') Receive'); end; procedure TForm_Client_Main.IdLogEvent1Received(ASender: TComponent; const AText, AData: String); begin Form_Client_Main.Ind05.Brush.Color := clLime; memLog.Lines.Add('Log Event (' + FormatDateTime(StatusDateTimeFormat, Now) + ') Received'); end; procedure TForm_Client_Main.IdLogEvent1Send(ASender: TIdConnectionIntercept; AStream: TStream); begin Form_Client_Main.Ind04.Brush.Color := clLime; memLog.Lines.Add('Log Event (' + FormatDateTime(StatusDateTimeFormat, Now) + ') Send'); end; procedure TForm_Client_Main.IdLogEvent1Sent(ASender: TComponent; const AText, AData: String); begin Form_Client_Main.Ind04.Brush.Color := clLime; memLog.Lines.Add('Log Event (' + FormatDateTime(StatusDateTimeFormat, Now) + ') Sent'); end; procedure TForm_Client_Main.IdLogEvent1Status(ASender: TComponent; const AText: String); begin FormatDateTime(StatusDateTimeFormat, Now) + ') ' + AText); end; { TClientThread } procedure TClientThread.Execute; begin while not Terminated do begin try if Form_Client_Main.ChatClientSocket.Connected then begin Msg := Form_Client_Main.ChatClientSocket.ReadLn; Synchronize(ReceivedLine);

Page 128: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

end; except { on E: EIdConnClosedGracefully do begin Msg := 'Client Thread Exception: [' + E.ClassName + ']: ' + E.Message; Synchronize(MessageToLog); //Do nothing. Eat the exception so the thread does not terminate because I want to use it later. //Also, eating the exception will allow the disconnect event to fire and the connected property to update. end; on E: EIdSocketError do begin Msg := 'Client Thread Exception: [' + E.ClassName + ']: ' + E.Message; Synchronize(MessageToLog); //Do nothing. Eat the exception so the thread does not terminate because I want to use it later. //Also, eating the exception will allow the disconnect event to fire and the connected property to update. Suspend; end; } on E: Exception do begin //Something must have really gone wrong if we got to this point. Close and restart the client. Msg := 'Client Thread Exception: [' + E.ClassName + ']: ' + E.Message; Synchronize(MessageToLog); Terminate; end; end; end; end; procedure TClientThread.MessageToLog; begin Form_Client_Main.memLog.Lines.Add(Msg); end; procedure TClientThread.ReceivedLine; var Cmd: string; I: Integer; begin Cmd := Copy(Msg,1,1); with Form_Client_Main do begin if Cmd = '@' then begin I := lbUsers.Items.IndexOf(Copy(Msg,2,Length(Msg)-1)); if I <= -1 then

Page 129: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

begin I := lbUsers.Items.IndexOf('-----'); if I <= -1 then begin lbUsers.Items.Add(Copy(Msg,2,Length(Msg)-1)); end else begin lbUsers.Items[I] := Copy(Msg,2,Length(Msg)-1); end; end; end else if (Cmd = '-') and (Copy(Msg,1,2) <> '--') then begin I := lbUsers.Items.IndexOf(Copy(Msg,2,Length(Msg)-1)); if I > -1 then begin lbUsers.Items[I] := '-----'; end; end else if Cmd = '~' then begin lbUsers.Items.CommaText := Copy(Msg,2,Length(Msg)-1); lbUsers.Items[0] := 'Administrator'; end else if Cmd = '#' then begin Form_Client_Main.Close; end else if Cmd = '!' then begin ScrollingTextInfoThread.Suspend; ScrollingTextInfoThread.Reset := True; ScrollingTextInfoThread.Alert := True; ScrollingTextInfoThread.AlertMsg := 'Admin Alert!.....' + Copy(Msg,2,Length(Msg)-1); ScrollingTextInfoThread.Resume; end else if Cmd = '&' then //Welcome message or part of welcome message begin memChatText.Lines.Add(Copy(Msg,2,Length(Msg)-1)); end else begin memChatText.Lines.Add(Msg); if cbSpaceMessages.Checked then begin memChatText.Lines.Add(''); end; end;

Page 130: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

//Debug lines //memChatText.Lines.Add(Cmd); //memChatText.Lines.Add(Msg); end; end; { TStatusThread } procedure TStatusThread.Execute; begin while not Terminated do begin try Sleep(250); //This thread doesn't need to be active all the time. Also this line keeps the CPU out of 100% FClientConnected := Form_Client_Main.ChatClientSocket.Connected; FClientThreadTerminated := ClientThread.Terminated; FClientThreadSuspended := ClientThread.Suspended; Synchronize(UpdateClientThreadStatus); except Terminate; end; end; end; procedure TStatusThread.UpdateClientThreadStatus; begin with Form_Client_Main do begin if FClientConnected then begin Ind01.Brush.Color := clLime; btnConnectDisconnect.Caption := 'Disconnect'; end else begin Ind01.Brush.Color := clBlack; btnConnectDisconnect.Caption := 'Connect'; if lbUsers.Count > 0 then begin lbUsers.Clear; end; end; if not FClientThreadTerminated then begin Ind02.Brush.Color := clLime; end else begin

Page 131: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Ind02.Brush.Color := clRed; end; if FClientThreadSuspended then begin Ind02.Brush.Color := clGreen; Ind03.Brush.Color := clBlack; end else begin Ind03.Brush.Color := clLime; end; end; //with end; { TScrollingTextInfoThread } procedure TScrollingTextInfoThread.Execute; begin FReset := False; Synchronize(SetCaption); while not Terminated do begin try Sleep(15); //16 This thread doesn't need to be active all the time. Also this line keeps the CPU out of 100% if FReset then begin Synchronize(SetCaption); FReset := False; end; if FAlert then begin if FAlertCount <= -1 then begin FAlert := False; FReset := True; end; end; Synchronize(UpdateInfoAndScroll); except Terminate; end; end; end; procedure TScrollingTextInfoThread.SetCaption; begin with Form_Client_Main do begin if ChatClientSocket.Connected then begin if not FAlert then

Page 132: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

begin lblInfo.Caption := 'Indy Version: ' + ChatClientSocket.Version + '.....' + 'Client: ' + ChatClientSocket.LocalName + '.....' + 'Client IP: ' + ChatClientSocket.Socket.Binding.IP + '.....' + 'Client Port: ' + IntToStr(ChatClientSocket.Socket.Binding.Port) + '.....' + 'Server IP: ' + ChatClientSocket.Socket.Binding.PeerIP + '.....' + 'Server Port: ' + IntToStr(ChatClientSocket.Socket.Binding.PeerPort) + '.....'; lblInfo.Font.Color := clWindowText; end else begin FAlertCount := 3; lblInfo.Caption := FAlertMsg; lblInfo.Font.Color := clRed; end; end else begin lblInfo.Caption := 'Client: ' + ChatClientSocket.LocalName + '.....' + 'Indy Version: ' + ChatClientSocket.Version + '.....'; lblInfo.Font.Color := clWindowText; end; lblInfo.Left := tsTextChat.Width; end; end; procedure TScrollingTextInfoThread.UpdateInfoAndScroll; begin with Form_Client_Main do begin lblInfo.Left := lblInfo.Left - 1; //lblInfo.Invalidate; if (lblInfo.Left + memChatText.Width) <= memChatText.Left then begin lblInfo.Left := tsTextChat.Width; Dec(FAlertCount); end; end; end; procedure TForm_Client_Main.memSendKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var SendData: string; Receivers: TStrings; I: Integer; begin if Key = VK_Return then

Page 133: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

begin if ChatClientSocket.Connected then begin Receivers := TStringList.Create; for I := 0 to lbUsers.Items.Count - 1 do begin if lbUsers.Selected[I] then Receivers.Add(lbUsers.Items[I]); end; if Receivers.Text <> '' then begin SendData := '"' + edScreenName.Text + '",' + //Sender '"' + Receivers.CommaText + '",' + //Receiver(s) '"' + memSend.Text + '"'; //Message ChatClientSocket.WriteLn(SendData); end; Receivers.Free; end; if cbRecordSentMessages.Checked then begin memChatText.Lines.Add(edScreenName.Text + '> ' + memSend.Text); if cbSpaceMessages.Checked then begin memChatText.Lines.Add(''); end; end; memSend.Text := ''; end; end; procedure TForm_Client_Main.memChatTextKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_Delete then begin memChatText.Text := ''; end; end; procedure TForm_Client_Main.IndicatorResetTimerTimer(Sender: TObject); begin Form_Client_Main.Ind04.Brush.Color := clBlack; Form_Client_Main.Ind05.Brush.Color := clBlack; end; procedure TForm_Client_Main.pnlRefreshListClick(Sender: TObject); begin ChatClientSocket.WriteLn('~');

Page 134: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

end; procedure TForm_Client_Main.Button1Click(Sender: TObject); begin Form_Client_Main.Hide; Form1.Show; end; end.

Page 135: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Lampiran-lampiran

A. Proses Penambahan TClientSocket dan TServerSocket components pada

Delphi 7.0

1. Buka program Delphi 7.0

2. Pilih menu Component, pilih install package seperti pada gambar dibawah

ini :

Menu component ada pada speedbar atau toolbar. Component ini

digunakan untuk menambahkan atau membuat baru baik komponen

ataupun paket tambahan pada delphi. Untuk menambahkan TClientSocket

dan TServerSocket maka dipilih menu install package.

3. Lalu akan keluar tab package untuk ditambahkan

Page 136: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Lampiran-lampiran

Jendela tab package ini untuk memilih dan mencari directory tempat

menyimpan paket atau komponen yang akan ditambahkan.

4. Kemudian klik add, browse (bin/dclsockets70.bpl), seperti pada gambar

berikut :

Paket yang akan ditambahkan untuk TClientSocket dan TServerSocket

adalah dclsockets70.bpl. berada pada directori delphi/bin dclsockets70.bpl

5. Klik open, klik ok. Selesai penambahan package.

Page 137: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Lampiran-lampiran

B. Proses instalasi komponen NMM

1. Extract library NMM di computer anda

2. Buka program Delphi 7.0

3. Buka NMM70.dpk lalu klik “compile” dan “install”

4. Kemudian install pula dengan cara yang sama untuk NMMRC70.dpk and

NMMAudio70.dpk

5. Lalu tambahkan library path NMM pada Delphi sebagai berikut

6. Pilih menu tools, environment options

Environment option ini berada pada speedbar pada delphi, environment

digunakan untuk menyesuaikan path atau directory library yang

ditambahkan.

Page 138: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Lampiran-lampiran

7. Muncul tab environment option, klik library

Untuk menyesuaikan directory library yang ditambahkan maka pilih menu

library, dan diisi serta disesuaikan library path-nya.

8. Klik library path yang ada, maka akan muncul tab baru berupa directory

untuk memilih komponen NMM dengan lokasi yang sesuai.

Page 139: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Lampiran-lampiran

9. Klik button sesuai gambar panah pada nomor 4, lalu akan muncul browse

for folder, pilih directory tempat NMM source disimpan. Contoh

(C:NMM/NMM.pub/Source).

10. Kemudian klik ok, dan pilih add, maka akan tampil tambahan library

seperti dibawah ini, selesei klik ok.

Page 140: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Lampiran-lampiran

C. Proses instalasi komponen Alite untuk skin Delphi 7.0

1. Download open source alite ini di http://www.alphaskins.com/dwnld.php

2. Kemudian ekstrak dari rar-nya. Simpan di drive C, dan copy folder skins

dalam Alite ke drive C.

3. Buka program Delphi 7.0

4. Pilih menu tools, environment options

Environment option ini berada pada speedbar pada delphi, environment

digunakan untuk menyesuaikan path atau directory library yang

ditambahkan.

5. Muncul tab environment option, klik library

Page 141: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Lampiran-lampiran

Untuk menyesuaikan directory library yang ditambahkan maka pilih menu

library, dan diisi serta disesuaikan library path komponen alite.

6. Klik library path yang ada, maka akan muncul tab baru berupa directory

untuk memilih komponen Alite dengan lokasi yang sesuai.

7. Klik button sesuai gambar panah pada nomor 4, lalu akan muncul browse

for folder, pilih directory tempat Alite source disimpan. Contoh

(C:ALite/D7). Ini untuk Delphi 7.0

Page 142: PENGEMBANGAN APLIKASI REMOTE SPESIFIKASI DESKTOP …

Lampiran-lampiran

8. Setelah klik ok. Klik add seperti dibawah ini :

9. Klik ok. Selesai instalasi komponen Alite.