Membuat Program Remote Shutdown Sederhana Dengan Delphi

2 06 2009

Dalam suatu jaringan komputer yang terdiri dari 2 atau lebih komputer yang terkoneksi satu dengan lainnya dapat di aplikasikan ke berbagai kebutuhan, seperti distribusi data, pengoperasian komputer lain di tempat yang berbeda, dan di bidang industri digunakan untuk kendali atau kontrol peralatan yang terhubung ke komputer di dalam suatu jaringan. Pada artikel kali ini akan dibuat sebuah aplikasi sederhana menggunakan Borland Delphi 6, yang berfungsi untuk mematikan atau men-shutdown komputer lain yang terhubung melalui jaringan. Aplikasi ini dibuat dengan komponen standart pada Delphi 6, yaitu ClientSocket dan ServerSocket


Aplikasi remote shutdown ini adalah pengembangan dari aplikasi chatting client-server yang dibuat dengan Delphi juga. Banyak artikel-artikel, blog-blog maupun forum diskusi delphi yang membahas aplikasi client server tersebut. Cara kerjanya sangat sederhana sekali, dimana terdapat dua buah aplikasi yaitu aplikasi client dan aplikasi server. Aplikasi server dijalankan pada komputer yang akan di kendalikan atau komputer yang akan di remote, sedangkan aplikasi client dijalankan oleh user di sebuah komputer pengendali. Prinsip kerjanya sangat sederhana, layaknya aplikasi chatting sederhana, aplikasi client mengirimkan sebuah text, yang nantinya akan diterima oleh aplikasi server sebagai sebuah “string”, kemudian akan diolah menjadi sebuah perintah baru, yaitu men-shutdown komputer server. Sederhana sekali bukan???

Mungkin sedikit keterangan di atas dapat memberikan gambaran tentang cara kerja aplikasi yang sangat sederhana dan jauh dari sempurna ini, khususnya bagi para pemula seperti saya. Karena saya juga masih dalam tahap belajar dan sangat membutuhkan masukan dari teman-teman dan para master Delphi.

Ok, Langsung meluncur ke pembuatan programnya, persiapannya cukup seadanya saja: Komputer atau laptop yang terinstal Boland Delphi (Versinya terserah anda, saya menggunakan Borland Delphi 6), Niat dan kemauan belajar, apalagi ya?? è Secangkir kopi + Rokok atau snack juga boleh (opsional) hehehehe ……..

Remote Shutdown

Aplikasi ini terbagi menjadi 2, yaitu aplikasi client dan aplikasi server. Aplikasi Client adalah aplikasi pengendali atau pengontrol, sedangkan aplikasi server adalah aplikasi yang di jalankan pada komputer yang ingin di kendalikan (komputer yang ingin di shutdown)

Source Code Program Client :

Berikut ini adalah source code lengkap untuk program client:

unit RSClient;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, WinXP, ScktComp;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Button1: TButton;
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    Button2: TButton;
    Button3: TButton;
    WinXP1: TWinXP;
    ClientSocket1: TClientSocket;
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button3Click(Sender: TObject);
begin
  application.Terminate;  // keluar program
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.Host:=edit1.Text;  // alamat ip server
clientsocket1.Active:=true;      // mengaktifkan / membuka socket sisi client
clientsocket1.Port:=1880;        // menggunakan port 1880
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
button2.Enabled:=false;    // saat aplikasi mulai dijalankan button shutdown di disable
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);     //saat soket client error
begin
button2.Enabled:=false;   //disable button shutdown
showmessage('Error On Socket');  //menampilkan pesan error
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);   //saat sudah terhubung ke server
begin
statictext2.Caption:='Connected to Server';   //keterangan bahwa sudah terhubung ke server
button2.Enabled:=true;   // button shutdown di aktifkan
end;

procedure TForm1.Button2Click(Sender: TObject);
begin       //button shutdown
if (clientsocket1.Socket.Connected) then  //saat soket terhubung maka
 clientsocket1.Socket.SendText('shutdown'); // button 2 mengirim string ke server
end;

end.

Program Server nya :

unit RSServer;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp, WinXP;

type
  TForm1 = class(TForm)
    WinXP1: TWinXP;
    ServerSocket1: TServerSocket;
    StaticText1: TStaticText;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.Open;
serversocket1.Port:=1880;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
edit1.Text:=socket.ReceiveText;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
if edit1.Text='shutdown' then
begin winexec('shutdown -s -t 0 -f',sw_normal); end;
end;

end.

Aplikasi ini layaknya sebuah pisau bermata dua, tergantung dari si-pengguna. Dapat digunakan sebagai aplikasi yang bersifat postif dan membantu dan dapat juga berfungsi sebagai aplikasi perusak dan merugikan. Tulisan ini hanya sebagai pembelajaran semata, hal-hal yang tidak diinginkan (perusakan) dll, bukan menjadi tanggung jawab penulis.

Program Lengkap+Source Code bisa di download Di Sini

Note :

Untuk menghindari adanya tindak plagiatisme karya, diharapkan “Menyertakan Link dan atau atribut penulis.” Copy – Paste Boleh asalkan sesuai dengan aturan yang ada.

Silahkan Baca Link Berikut :

http://anotherfool.wordpress.com/jacp/

http://pernakpernikblog.blogspot.com/2007/04/etika-copy-paste.html

Regards,


Actions

Information

48 responses

14 06 2009
Karyn

Bisa nggak minta sintaknya buat aplikasi remote shutdown untuk komputer sendiri, jadi kalau misalnya kita pngenx komp kita mati dalam waktu 1 jam, tinggal atur waktux aja kayak remote shutdown d TV. tolong ya bantuin dan kirim ke email ku di karyani_13@yahoo.com. terima kasih sebelumnya

12 07 2009
iwan

akhirnya ketemu juga,,,,,,,,,,,,,
dach coba n’ berhasil,,,,,

tp mo nanya ni mas,,,,,,,,,,,,,,,,
klo misyalnya saya balik kaya gini,,,,,,,,,,,,,
Server yang dapat mematikan client
gmn ya mas,,,,,

aku dach coba berulang kali tp blom berhasil,,,,,,,,,,,,

thank’s before,,,,

12 07 2009
heru widakdo

@ mas iwan :

Program tersebut di buat hanya untuk komunikasi 2 arah dengan menggunakan komponent soket delphi.
jadi bisa saja server yang mematikan client seperti yg mas iwan minta. Tinggal kita balik logika program nya, server mengirimkan string ke client untuk melakukan shutdown pada komputer client!

Ok, thanks Comment nya, selamat berkarya……

12 07 2009
iwan

mas ada info nich

dapet domain free .com,.info, n’ banyak lagi
klo mas tertarik ni alamatnye
click here http://www.freedomainsbox.com/signup.php?rid=2dce

15 07 2009
iwan

maaf bang ganggu lgi nich
mo nanya lgi,,,,,

bisa ga yach klo aku mau liat daftar client yg konek ke server

nb: apa pke komponen lain lgi???

thank’s before,,,,,,,

16 07 2009
isoke

Thanks banget nich mas infonya, saya cari kesana-kemari akhirnya ketemu juga disini …

18 10 2009
tambhax

kang, ane kok ga nemu komponen client socketnya yak di tab internet…
aneh…

19 10 2009
heru widakdo

emang pake delphi versi berapa?? harusnya untuk versi 6 maupun 7 sih ada …
coba deh di cari lagi……. thnks 4 comment

6 02 2011
heru widakdo

ralat nih : klo d delphi 7 ternyata kagak ada nih komponen socket nya..

8 12 2009
Bayu Wicaksono

bos, mw tanya donk,….
gmn klo matiin dri server k client,…?
nah trus klo clientnya d ganti pke mikrocontroller gmn…?
socket paan yg hrus d rubah…
makasih….

8 12 2009
heru widakdo

@Bayu Wicaksono

Untuk problem “Mematikan Server dari Client”
kembali ke dasar client-server, dimana client me-request dan server merespon dan memberikan apa yang di request oleh client.
Mungkin dari keterangan tersebut sudah bisa menjawab pertanyaan “Mematikan Server dari Client”

Menurut saya pribadi, tergantung dari aplikasi yang mas bayu buat, entah itu ingin mematikan sisi server atau pun sisi client. Tinggal membalik logika yg ada….

Untuk client yg diganti pake mikrokontroller:
Kalo software interface mikro nya pake delphi, pake socket standart masih ok kok….

Thanks 4 Comment

9 12 2009
Bayu Wicaksono

makasih atas jwabannya,..
mw tya agy donk,…
maav sebelumnya
mas tw ttg pemrograman mikrokontroller…?
krn sya sdg buat aplikasi dri PC k Mikro
dgn PC sbg client dan mikro sbg server…
namun sya menemukan kendala,…
mohon pencerahannya bila mengerti,.
atau di tulis kembali dalam TS yg berbeda,..
Terima kasih

9 12 2009
heru widakdo

Iya mas bayu….sama-sama, sharing ilmu akan lebih bermanfaat dan dapat menambah ilmu juga…..hehehe
Kalo boleh saya tahu, mikro sbg server tsb terhubung ke komputer atau mikronya berdiri sendiri?????

11 12 2009
Bayu Wicaksono

sya membuatnya dgn cara PC terhubung ke mikro melalui cross over,…(peer 2 peer) klo pake switch jga bisa tinggal kabel LAN aza d rubah,..
smp saat ini baru bisa ping aza…
belum bisa mematikan,..

23 02 2010
luthfi

makasih bnyak semoga bermanfaat….
salam kenal🙂

23 02 2010
heru widakdo

Thanks, sama-sama……

13 07 2009
heru widakdo

wah yg bener ??? Thanks info nya………….
segera meluncur ke TKP

25 02 2010
uye

mas kalo buat kirim data base/update dari client ke server pke timer n progges hide taksbar dan program tetap berjalan bgaimana…
butuh pencerahan…. klo ada apliksinya krim ke emai ku
benk2x@ymail.com
trimakasih

1 06 2010
yastika

bisa minta program delphi 6 nya ga

1 06 2010
heru widakdo

bisa, ambil aja disini : http://www.4shared.com/dir/qKsANv9z/sharing.html

di folder Borland Delphi 6, ada 2 file compressan.

file : Delphi 6-1.rar dan Delphi 6-2.rar

download semuanya.

29 10 2010
hieye

k’.. Mw naxa… Klu Mw Coba Program Ini.. apa apa ajja Tools Yg D perlukan untuk Mengkoneksikan ini??

29 10 2010
heru widakdo

klo hanya sekedar mencoba program ini, syaratnya hanya memerlukan 2 buah komputer yang terhubung via jaringan lokal atau Local Area Network (LAN). Tidak ada Tools tambahan apapun.

21 01 2011
Kurang Sangu

inspiratif banget master..
tapi ada keterangan
” Serversocket component not found ”
yo opo master??

21 01 2011
heru widakdo

Server socket adalah komponen utama pada aplikasi ini….emang mas kurang sangu pake delphi versi berapa ?

5 02 2011
oiq

Mas, makasi ya uda bagi² ilmu . . .
Semoga mas tmbah yahud programingnya . . .🙂
makasi🙂

5 02 2011
heru widakdo

@oiq :

YUpz, sama-sama bro…
semoga bermanfaat….

Thanks uda mampir dan berkenan memberi komentar.

6 02 2011
dicka

thanks…jdi nambh pngetahuan dari mas…

6 02 2011
heru widakdo

@dicka

ok, sama2….

1 03 2011
twins brother

mas,,,aq coba kok ga bs ya?
ko ga jln ya?
winSocknya error,,,,gmn ya?
plis krm nang emaillq yo….
twinssilalahi@ymail.com
thanks bro

1 03 2011
twins brother

good,,thanks mas,,

12 04 2011
romy

salam mas…

sebelumnya trima kasih info learningnya…

oia sya maw nanya neh n mungkin agak meleset dari pembahasan tapi agak berkaitan delphi dalam jaringan jga sih,,,,

klo buat game halma dalam jaringan,gmn ya mas????ada ide2 yg bsa bantu sy atau referensi yg mendukung???
mohon konfirmasinya lewat email saya ajah @ ryan_roy65@yahoo.com

trims mas.

12 04 2011
romy

salam mas…

mau nanya neh,,,mungkin agak beda dari pembahasan,,,
klo buat game halma pake delphi dalam jaringan,gmn yah mas??? atau ada referensi yg bs d share???

sukses slalu

trims

22 04 2011
heru widakdo

klo dari sisi game programming nya saya kurang paham, klo dr sisi koneksi kurang lebih sama….

23 05 2012
GInting

mas heru,,,, setelah dicoba terjadi permasalahan di winXP.dcu ……..

30 05 2012
heru widakdo

permasalahannya apa gan ? bisa diperjelas?

6 11 2012
ilmu Alakadarnya

makasih infonya mas bro….hehe neg bisa komponen yang ada di njenengan di upload mas biar yang merasa komponen delphinya kurang bisa mendownloadnya.makasih

9 11 2012
heru widakdo

untuk aplikasi di atas tidak ada tambahan komponen khusus, Masih menggunakan komponen standart bawaan delphi, (saya menggunakan delphi 6) Thanks sarannya

9 11 2012
Hari Ini Tak Berawan

mas kalau mau shutdown komputer LAN dengan OS linux gimana?

9 11 2012
heru widakdo

Apabila merujuk ke pemrograman delphi, agan bisa menggunakan lazarus yang secara umum memiliki kesamaan dengan delphi. Thanks for comment

21 05 2013
Teguh

mas boleh saya minta komponen twinxp di delphiku gak ada komponennya….

21 05 2013
Teguh

mas boleh saya minta komponen TWinXP buat di delphi 6 ku…
kirim ke emailku ya mas minta tolong me_sancer@ymail.com

12 06 2013
Dana Abdi

salam kenal mas

baru belajar client server nih mas..program diatas kan me-remote dari client ke server..nah, klo me-remote dari server ke client gimanas mas?? soalnya saya coba error terus😦 padahal kan logikanya tinggal di balik aja…ini koding saya mas :

koding pada server :

procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Port:=1880;
ServerSocket1.Active:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Socket.SendText(‘restart’);
end;

koding pada client :

procedure TForm1.FormCreate(Sender: TObject);
begin
ClientSocket1.Port := 1880;
ClientSocket1.Host := ‘192.168.1.12’;
ClientSocket1.Active := true;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Edit1.Text:=Socket.ReceiveText;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
if edit1.Text=’restart’ then winexec(‘restart -s -t 0 -f’,sw_normal);
end;

adakah yg salah dgn koding di atas?? mohon penjelasannya…terimakasih jika mo membantu🙂

24 10 2014
tony

mas mau nanya nhi ini program nya ini cara jalankan nya gmna, kox malah mati laptop kita sendiri.?

17 01 2015
fungkyking

artikelnya menarik.

saya mau tanya,
saya ingin menampilkan data suhu dari mikro ke delphi dengan TCP/IP.

Mikro saya jadikan server dan delphi client.
tp, delphi tidak dpt menampilkan karakter suhu.
padahal IP nya sdh sama dan connec.

mohon bantuannya,..

fungkyking01@gmail.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: