• Tidak ada hasil yang ditemukan

Aplikasi SSH Client pada mobile device menggunakan J2ME - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "Aplikasi SSH Client pada mobile device menggunakan J2ME - USD Repository"

Copied!
131
0
0

Teks penuh

(1)

A

A

P

P

L

L

I

I

K

K

A

A

S

S

I

I

S

SS

SH

H

C

CL

LI

IE

EN

N

T

T

P

P

A

A

D

D

A

A

MO

M

OB

BI

IL

LE

E

D

DE

EV

VI

IC

CE

E

M

M

E

E

N

N

G

G

G

G

U

U

N

N

A

A

K

K

A

A

N

N

J

J

2

2

M

M

E

E

S

SKKRRIIPPSSII D

DiiaajjuukkaannUUnnttuukkMMeemmeennuuhhiiSSaallaahhSSaattuuSSyyaarraatt M

MeemmppeerroolleehhGGeellaarrSSaarrjjaannaaTTeekknniikk J

JuurruussaannTTeekknniikkIInnffoorrmmaattiikkaa

Disusun oleh : Paskhalis Handi Artiawan

025314048

J

J

U

U

R

R

U

U

S

S

A

A

N

N

T

T

E

E

K

K

N

N

I

I

K

K

I

I

N

N

F

F

O

O

R

R

M

M

A

A

T

T

I

I

K

K

A

A

F

F

A

A

K

K

U

U

L

L

T

T

A

A

S

S

T

T

E

E

K

K

N

N

I

I

K

K

U

U

N

N

I

I

V

V

E

E

R

R

S

S

I

I

T

T

A

A

S

S

S

S

A

A

N

N

A

A

T

T

A

A

D

D

H

H

A

A

R

R

M

M

A

A

Y

Y

O

O

G

G

Y

Y

A

A

K

K

A

A

R

R

T

T

A

A

2

(2)

T

T

H

H

E

E

S

S

S

S

H

H

C

C

L

L

I

I

E

E

N

N

T

T

A

A

P

P

P

P

L

L

I

I

C

C

A

A

T

T

I

I

O

O

N

N

O

O

N

N

M

M

O

O

B

B

I

I

L

L

E

E

D

D

E

E

V

V

I

I

C

C

E

E

U

U

S

S

I

I

N

N

G

G

J

J

2

2

M

M

E

E

A

ATThheessiiss P

Prreesseenntteedd aassPPaarrttiiaallFFuullffiillllmmeennttoofftthheeRReeqquuiirreemmeennttss t

tooOObbttaaiinnSSaarrjjaannaaTTeekknniikkDDeeggrreeee i

innDDeeppaarrttmmeennttooffIInnffoorrmmaattiiccssTTeecchhnnoollooggyy

by

Paskhalis Handi Artiawan 025314048

D

D

E

E

P

P

A

A

R

R

T

T

M

M

E

E

N

N

T

T

O

O

F

F

I

I

N

N

F

F

O

O

R

R

M

M

A

A

T

T

I

I

C

C

S

S

T

T

E

E

C

C

H

H

N

N

O

O

L

L

O

O

G

G

Y

Y

F

F

A

A

C

C

U

U

L

L

T

T

Y

Y

O

O

F

F

E

E

N

N

G

G

I

I

N

N

E

E

E

E

R

R

I

I

N

N

G

G

S

S

A

A

N

N

A

A

T

T

A

A

D

D

H

H

A

A

R

R

M

M

A

A

U

U

N

N

I

I

V

V

E

E

R

R

S

S

I

I

T

T

Y

Y

Y

Y

O

O

G

G

Y

Y

A

A

K

K

A

A

R

R

T

T

A

A

(3)
(4)
(5)

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis tidak

memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam

kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, 19 September 2007

Penulis

(6)

HALAMAN PERSEMBAHAN

Karya Tulis ini Ku Persembahkan Untuk

Yesus Krist us

yang tidak pernah sedetik pun meninggalkan aku

...

Kedua Orang Tua dan Adikku

yang selalu mendoakan dan mendukungku

...

Dia

yang selalu menemani dan memberiku semangat disaat aku jatuh

...

Tem an- t em an Teknik I nform at ika 2002

yang memberiku inspirasi, semangat, dan bantuan untuk menyelesaikan skripsi ini

...

Seseorang di int ernet , sebut saj a Paij o ( bukan nam a sebenarnya)

(7)

HALAMAN MOTTO

(8)

ABSTRAKSI

Tujuan dari penelitian ini adalah membuat aplikasi SSH client pada perangkat

mobile, sehingga diharapkan mampu mempermudah seorang administrator jaringan

melakukan aktifitas monitoring, maintenance, dan mengkonfigurasi servernya dari

jarak jauh tanpa menggunakan sebuah perangkat komputer, melainkan dapat

melakukannya dengan sebuah perangkat mobile sehingga dapat melakukannya

darimana saja dan dimana saja.

Aplikasi ini dikembangkan dengan menggunakan bahasa pemrograman Java

2 Micro Edition (J2ME). Di dalam aplikasi ini digunakan Record Management System

(RMS) untuk menyimpan data-data yang diperlukan oleh pemakai yaitu data login,

data tampilan, dan data server.

Dari hasil uji coba aplikasi menggunakan handphone NOKIA tipe 6600,

aplikasi ini dapat berfungsi dengan baik. Aplikasi ini dapat membantu pemakai dalam

melakukan aktifitas monitoring, maintenance, dan mengkonfigurasi servernya dari

(9)

ABSTRACT

The goal of this research is to create a SSH client application on the mobile

device, so it can make easier a network administrator activities doing server

monitoring, maintenance, and configuration from the long distance without using a

computer sets, but can do that with a mobile device so it can be done from wherever

and whenever.

This application is developed using Java 2 Micro Edition (J2ME)

programming language. It used Record Management System (RMS) to save data

needed by the user which is login, display, and server data.

From the result of implementing this application using NOKIA type 6600

mobile device, this application can work fine. This application can help user activities

doing server monitoring, maintenance, and configuration from the long distance.

(10)

KATA PENGANTAR

Puji dan syukur kepada Bapa di Surga, dengan cinta kasih sayang-Nya yang

selalu tercurahkan, sehingga penyusunan tugas akhir ini dapat diselesaikan dengan

baik.

Tugas akhir yang berjudul “Aplikasi SSH Client pada Mobile Device

Menggunakan J2ME” merupakan salah satu syarat untuk memperolah gelar Sarjana Teknik, Jurusan Teknik Informatika, Fakultas Teknik, Universitas Sanata Dharma.

Penulis menyadari dalam mempersiapkan, menyususun dan menyelesaikan

tugas akhir ini, penulis banyak mendapat bantuan dan bimbingan dari berbagai pihak.

Pada kesempatan ini penulis ingin mengucapkan terima kasih kepada :

1. Rm. Ir. Greg. Heliarko, S.J., S.S., B.S.T., M.A., M.Sc., selaku Dekan Fakultas

Teknik Universitas Sanata Dharma Yogyakarta.

2. Ibu Agnes Maria Polina, S.Kom, M,Sc., selaku Ketua Jurusan Teknik

Informatika Universitas Sanata Dharma Yogyakarta.

3. Ibu Ridowati Gunawan, S.kom, M.T., selaku Dosen Pembimbing I yang telah

banyak memberikan bimbingan dan pengarahan selama pengerjaan tugas akhir

ini.

4. Bapak H. Agung Hernawan, S.T., selaku Dosen Pembimbing II yang juga telah

banyak memberikan bimbingan dan pengarahan selama pengerjaan tugas akhir

(11)

5. Seluruh Dosen Teknik Informatika yang telah memberikan banyak ilmu dan

pengetahuan.

6. Dosen-dosen penguji yang telah memberikan masukan yang membangun untuk

tugas akhir ini.

7. Staff Sekretariat Fakultas Teknik, terima kasih atas bantuan informasi dan

sarana prasarana yang mendukung.

8. Bapak, Ibu, dan Sani, yang telah memberikan kasih sayang, doa, dan dukungan

sangat berarti selama ini.

9. Caecilia Iswardani, yang selama ini menemaniku, mendengarkan keluh

kesahku, memberiku semangat untuk segera menyelesaikan skripsi ini, dan

memberiku kasih sayang yang tulus, “you’re the best I ever had...”.

10.Teman-teman : Pristo atas pinjaman naskah, source code, dan konsultasi

online-nya, Afu atas pinjaman handphone-nya, Widy atas pinjaman card reader dan sharing Bunderan-nya yang sangat inspiring, Andika dan Gwendy atas pinjaman kabel UTP-nya, Mardoni atas pinjaman kemeja, dasi, dan sepatu

untuk ujian pendadaran, Eddy atas pinjaman monitornya.

11.Teman-teman lagi : Niko, Mc-D, Hasto, Albert, Andre, Dadit, Tono, Budi,

Santo, Radit, Tata, Erika, Nita, Brigita, Nine, Yohana, Ika, Tere, Kristi, dan

semua teman-teman yang tidak dapat disebutkan satu persatu, “terima kasih

(12)

12.Ibu Markamah dan keluarga, teman-teman kos, dan Hamam, yang telah

memberikan bantuan dan dukungan selama ini.

13.Teman-teman basket Paingan, yang memberi semangat dengan game-game

yang mengasyikkan, seru, keras, dan penuh tantangan.

14.Semua pihak yang tidak dapat penulis sebutkan satu persatu, yang telah

memberikan dukungan serta bantuannya guna penyusunan karya tulis ini.

Penulis menyadari sepenuhnya bahwa tugas akhir ini masih jauh dari

kesempurnaan dan masih banyak kekurangan. Oleh karena itu penulis

mengharapkan kririk dan saran yang bersifat membangun demi perbaikan lebih

lanjut. Akhir kata penulis berharap tugas akhir ini dapat bermanfaat dan berguna

bagi pembaca.

Yogyakarta, 19 September 2007

(13)

DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

HALAMAN PERNYATAAN KEASLIAN KARYA ... v

HALAMAN PERSEMBAHAN ... vi

HALAMAN MOTTO ... vii

ABSTRAKSI ... viii

ABSTRACT ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xiii

DAFTAR GAMBAR ... xviii DAFTAR LISTING ... xxi

DAFTAR TABEL ... xiii

BAB I. PENDAHULUAN 1.1. Latar Belakang ... 1

1.2. Rumusan Masalah ... 2

(14)

1.4. Tujuan dan Manfaat ... 3

1.5. Metodologi Penelitian ... 3

1.6. Sistematika Penulisan ... 4

BAB II. LANDASAN TEORI 2.1. Secure Shell (SSH) ... 6

2.2. Arsitektur SSH ... 7

2.2.1. Identifikasi Hostatau Otentikasi ... 8

2.2.2. Enkripsi ... 9

2.2.3. Otorisasi ... 10

2.3. Protokol SSH ... 10

2.3.1. SSH Transport Layer Protocol (SSH-TRANS) ... 11

2.3.2. SSH Authentication Protocol (SSH-AUTH) ... 11

2.3.3. SSH Connection Protocol (SSH-CONN) ... 12

2.3.4. SSH File Transfer Protocol (SSH-SFTP) ... 12

2.4. Paket Data SSH ... 13

2.5. Java 2 Micro Edition (J2ME) ... 13

2.6. Jenis-jenis Aplikasi J2ME ... 14

2.7. J2ME Configuration ... 14

2.8. J2ME Profile ... 16

(15)

2.9.1. Arsitektur Aplikasi MIDlet ... 16

2.9.2. Eksekusi sebuah MIDlet ... 18

2.10. Pemrograman J2ME ... 19

2.10.1. High Level User Interface ... 20

2.10.2. Low Level User Interface ... 20

2.10.3. Record Management System (RMS) ... 20

2.10.4. Generic Connection Framework ... 21

BAB III. ANALISIS DAN PERANCANGAN SISTEM 3.1. Orang yang Terlibat dalam Sistem ... 24

3.2. Gambaran Umum Sistem ... 24

3.3. Analisa Kebutuhan ... 26

3.3.1. Use Case Diagram ... 26

3.4. Analisa Berorientasi Objek dan Modeling ... 27

3.4.1. Activity Diagram ... 27

3.4.2. Sequence Diagram ... 41

3.5. Desain Berorientasi Objek ... 52

3.5.1. Class Diagram ... 52

3.5.2. Perancangan Record Management System ... 53

(16)

BAB IV. IMPLEMENTASI SISTEM

4.1. Lingkungan Implementasi ... 61

4.1.1. Lingkungan Perangkat Keras ... 61

4.1.2. Lingkungan Perangkat Lunak ... 61

4.2. Implementasi SSH Client ... 62

4.2.1. Mekanisme Login ... 62

4.2.2. Mekanisme Forget Password ... 64

4.2.3. Mekanisme Display Setting ... 66

4.2.4. Mekanisme Buat Koneksi ... 68

4.2.5. Mekanisme Edit Data Koneksi ... 70

4.2.6. Mekanisme Hapus Data Koneksi ... 75

4.2.7. Mekanisme Koneksi ke Server ... 75

4.2.8. Mekanisme Terminal ... 85

4.3. Implementasi Antarmuka ... 87

4.3.1. Tampilan Login ... 88

4.3.2. Tampilan Forget Password ... 89

4.3.3. Tampilan Main Menu ... 93

4.3.4. Tampilan Connection Menu ... 93

4.3.5. Tampilan Terminal ... 100

(17)

4.3.7. Tampilan Help... 104 4.3.8. Tampilan About ... 104

BAB V. ANALISA HASIL

5.1. Kelebihan Sistem ... 105

5.2. Kekurangan Sistem ... 106

BAB VI. PENUTUP

6.1. Kesimpulan ... 107

6.2. Saran ... 107

(18)

DAFTAR GAMBAR

Gambar 2.1. Pembagian komponen pada high level user interface dan low level

user interface ... 19

Gambar 2.2. Permintaan koneksi dari client ke server ... 22

Gambar 2.3. Koneksi dua arah client dan server ... 22

Gambar 3.1. Use Case Diagram ... 26

Gambar 3.2. Activity Diagram Login ... 27

Gambar 3.3. Activity Diagram Mengatur Tampilan ... 28

Gambar 3.4. Activity Diagram Buat Koneksi ... 29

Gambar 3.5. Activity Diagram Edit Koneksi ... 31

Gambar 3.6. Activity Diagram Hapus Koneksi ... 33

Gambar 3.7. Activity Diagram Koneksi ke Server ... 34

Gambar 3.8. Activity Diagram Memasukkan perintah ... 37

Gambar 3.9. Activity Diagram Tutup Koneksi ... 39

Gambar 3.10. Activity Diagram Ubah Password ... 40

Gambar 3.11. Sequence Diagram Login ... 42

Gambar 3.12. Sequence Diagram Mengatur Tampilan ... 43

Gambar 3.13. Sequence Diagram Buat Koneksi ... 44

Gambar 3.14. Sequence Diagram Edit Koneksi ... 45

(19)

Gambar 3.16. Sequence Diagram Koneksi ke Server ... 47

Gambar 3.17. Sequence Diagram Memasukkan Perintah ... 48

Gambar 3.18. Sequence Diagram Tutup Koneksi ... 49

Gambar 3.19. Sequence Diagram Ubah Password ... 50

Gambar 3.20. Class Diagram ... 52

Gambar 3.21. Tampilan Login ... 54

Gambar 3.22. Tampilan Change Password ... 54

Gambar 3.23. Tampilan Main Menu ... 55

Gambar 3.24. Tampilan Connection Menu ... 55

Gambar 3.25. Tampilan Create Connection ... 56

Gambar 3.26. Tampilan Edit Connection ... 57

Gambar 3.27. Tampilan Display Setting ... 58

Gambar 3.28. Tampilan Help ... 58

Gambar 3.29. Tampilan Terminal ... 59

Gambar 3.29. Tampilan Input Command ... 59

Gambar 4.1. Tampilan Login ... 88

Gambar 4.2. Tampilan Pesan Kesalahan Login ... 89

Gambar 4.3. Tampilan Forget Password ... 90

Gambar 4.4. Tampilan Forget Password dengan Data Login ... 90

Gambar 4.5. Tampilan Tampilan Pesan Kesalahan Ubah Data Login ... 91

(20)

Gambar 4.7. Tampilan Pesan Kesalahan Forget Password ... 92

Gambar 4.8. Tampilan Main Menu ... 93

Gambar 4.9. Tampilan Connection Menu ... 94

Gambar 4.10. Tampilan Create Connection ... 95

Gambar 4.11. Tampilan Pesan Kesalahan Alias ... 96

Gambar 4.12. Tampilan Pesan Kesalahan Create Connection ... 96

Gambar 4.13. Tampilan Connection Menu yang Lengkap ... 97

Gambar 4.14. Tampilan Edit Connection ... 98

Gambar 4.15. Tampilan Pesan Kesalahan Alias ... 99

Gambar 4.16. Tampilan Pesan Kesalahan Edit Connection ... 99

Gambar 4.17. Tampilan Terminal tanpa Scroll Bar ... 100

Gambar 4.18. Tampilan Input Command ... 101

Gambar 4.19. Tampilan Terminal dengan Scroll Bar ... 101

Gambar 4.20. Tampilan Terminal setelah dilakukan clear screen ... 102

Gambar 4.21. Tampilan Display Setting ... 103

Gambar 4.22. Tampilan Pesan Sukses Display Setting ... 103

Gambar 4.23. Tampilan Help ... 103

(21)

DAFTAR LISTING

Listing 4.1. Fungsi openRecStore( ) ... 63

Listing 4.2. Fungsi createDefault( ) ... 63

Listing 4.3. Proses validasi data login ... 64

Listing 4.4. Fungsi cekJawaban( ) ... 65

Listing 4.5. Proses setelah validasi jawaban ... 66

Listing 4.6. Proses update data tampilan ... 67

Listing 4.7. Proses update data tampilan ... 68

Listing 4.8. Proses validasi data koneksi ... 69

Listing 4.9. Fungsi createNewConnection( ) ... 70

Listing 4.10. Fungsi findRecID( ) ... 71

Listing 4.11. Fungsi getDataConnection( ) ... 72

Listing 4.12. Proses validasi edit data koneksi ... 74

Listing 4.13. Fungsi getDataConnection( ) ... 74

Listing 4.14. Fungsi deleteConnection( ) ... 75

Listing 4.15. Fungsi connect( ) ... 76

Listing 4.16. Fungsi readWrite( ) ... 77

Listing 4.17. Fungsi handleSSH( ) ... 79

Listing 4.18. Tipe Pesan SSH2_MSG_KEXINIT ... 80

(22)

Listing 4.20. Tipe Pesan SSH2_MSG_NEWKEYS ... 82

Listing 4.21. Tipe Pesan SSH2_MSG_SERVICE_ACCEPT ... 83

Listing 4.22. Tipe Pesan SSH2_MSG_USERAUTH_FAILURE dan

SSH2_MSG_USERAUTH_SUCCESS ... 84

Listing 4.23. Tipe Pesan SSH2_MSG_CHANNEL_OPEN_CONFIRMATION .. 85

Listing 4.24. Fungsi paint( ) pada terminal ... 86

(23)

DAFTAR TABEL

(24)

BAB I PENDAHULUAN

1.1LATAR BELAKANG

Seiring dengan perkembangan dunia komputer, jaringan, dan internet telah

memungkinkan seorang administrator jaringan untuk melakukan aktifitas

monitoring, maintenance, dan mengkonfigurasi server-nya dari jarak jauh.

Seorang administrator tidak perlu berada di lokasi server untuk melakukan

aktifitasnya, melainkan dapat melakukannya secara remote menggunakan

komputer lain.

Secure Shell (SSH) adalah sebuah teknologi yang memungkinkan sebuah komputer atau server untuk diatur, dimonitoring, dan dikonfigurasi dari jarak jauh.

SSH menjamin keamanan komunikasi antara client dan server, dengan

menggunakan otentikasi, otorisasi, dan enkripsi. Hal ini sangat berguna untuk

menghindari data-data yang penting seperti username dan password server dicuri

atau disadap oleh orang yang tidak berhak di tengah jalan.

Kemajuan teknologi perangkat mobile seperti handphone dan Personal Digital

Assistant (PDA) telah memungkinkan sebuah perangkat mobile untuk

berkomunikasi dengan komputer atau server dari jarak jauh melalui internet. Hal

(25)

untuk mempermudah seorang administrator jaringan melakukan aktifitas

monitoring, maintenance, dan mengkonfigurasi server-nya dari jarak jauh tanpa

menggunakan sebuah perangkat komputer. Aplikasi ini memungkinkan seorang

administrator dapat melakukan aktifitasnya menggunakan perangkat mobile

darimana saja dan dimana saja dengan aman.

1.2RUMUSAN MASALAH

Berdasarkan latar belakang tersebut maka rumusan masalah dalam penelitian

ini adalah bagaimana membuat sebuah aplikasi SSH client pada sebuah perangkat

mobile.

1.3BATASAN MASALAH

Batasan masalah dalam pembuatan aplikasi ini adalah sebagai berikut :

1.Aplikasi ini menggunakan protokol SSH versi 2.

2.Aplikasi ini hanya mendukung untuk eksekusi perintah jarak jauh, tidak

mendukung pengiriman file jarak jauh dengan Secure File Transfer Protocol

(SFTP), tidak mendukung SSH tunneling, dan tidak mendukung komunikasi

menggunakan X Window (X11).

(26)

1.4TUJUAN DAN MANFAAT

Tujuan dari aplikasi ini adalah membuat aplikasi SSH client pada perangkat

mobile. Sedangkan manfaat dari sistem adalah untuk mempermudah seorang

administrator jaringan melakukan aktifitas monitoring, maintenance, dan

mengkonfigurasi servernya dari jarak jauh tanpa menggunakan sebuah perangkat

komputer, melainkan dapat melakukannya dengan sebuah perangkat mobile

sehingga dapat melakukannya darimana saja dan dimana saja.

1.5METODOLOGI PENELITIAN

Metodologi dalam penelitian ini adalah metodologi berorientasi objek dengan

tahap-tahap sebagai berikut :

1.Pencarian kebutuhan dengan melakukan studi literatur, memahami dan

mendalamai konsep sistem yang akan dibuat, dan mempelajari protokol SSH.

2.Melakukan analisis dan desain sistem

a. Analisis sistem

Melakukan analisis kebutuhan (Requirement Analysis) yang terdiri dari

use case diagram, pemodelan proses dengan menggunakan activity diagram dan sequence diagram.

b. Desain Sistem

Melakukan perancangan objek (Object Design) yang terdiri dari class

(27)

(output design), dan perancangan antarmuka pengguna (user interface design).

3.Mengimplementasikan analisis dan desain yang telah dilakukan ke dalam

aplikasi menggunakan Sun J2ME Wireless Toolkit 2.2.

1.6SISTEMATIKA PENULISAN BAB I PENDAHULUAN

Bab ini berisi latar belakang yang mendasari penulis mengambil judul

penelitian, rumusan masalah, batasan masalah, tujuan, metodologi penelitian,

dan sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini bersi dasar-dasar teori yang digunakan penulis untuk melakukan

penelitian dan memecahkan masalah dalam pembuatan aplikasi ini.

BAB III ANALISIS DAN DESAIN SISTEM

Bab ini berisi tentang analisis kebutuhan sistem dan desain sistem yang akan

dibuat.

BAB IV IMPLEMENTASI

Bab ini berisi tentang implementasi dari analisis dan desain yang telah

dilakukan pada bab III dengan menggunakan J2ME.

BAB V ANALISA HASIL

(28)

berisi tentang kelebihan dan kekurangan sistem yang telah dibuat.

BAB VI KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan dari penelitian yang telah dilakukan dan

dijelaskan pada bab I sampai dengan bab V dan berisi saran-saran yang

(29)

BAB II

LANDASAN TEORI

2.1. Secure Shell (SSH)

Pada tahun 1995, Tatu Ylönen, seorang peneliti di Helsinki University of

Techonolgy, Finlandia, mendesain sebuah protokol yang dapat mengatasi

serangan password sniffing. Protokol tersebut dikenal sebagai SSH-1 dan saat

ini telah berkembang menjadi SSH-2. SSH adalah sekumpulan standar dan

protokol jaringan yang memungkinkan komunikasi yang aman antara sebuah

komputer lokal dan komputer remote. Adanya protokol ini memungkinkan

seorang administrator jaringan untuk mengelola komputer atau server-nya dan

mengeksekusi perintah dari jarak jauh. SSH menggunakan public key

cryptography untuk otentikasi ke komputer remote dan memungkinkan

komputer remote melakukan otentikasi terhadap user, serta menggunakan

enkripsi pada saat sesi komunikasi terjadi.

Tujuan dari SSH adalah menggantikan protokol rlogin, telnet, dan rsh,

yang tidak menggunakan enkripsi pada sesi komunikasi. SSH dapat mencegah

pencurian dan penyadapan data-data penting seperti username dan password,

(30)

2.2. Arsitekur SSH

SSH mempunyai arsitektur client-server. Sebuah program server SSH,

pada umumnya diinstal dan dijalankan oleh seorang administrator sistem, yang

dapat menerima atau menolak permintaan koneksi kepadanya. Kemudian, user

dilain komputer menjalankan program SSH client untuk meminta koneksi

kepada server SSH.

SSH mempunyai tujuan utama yaitu menjamin privasi data, menjamin

integritas data, otentikasi antara server dan client, otorisasi user, dan

menyediakan tunneling untuk komunikasi data yang berbasis TCP/IP.

Sebelum terjadi komunikasi antara client dan server, SSH melakukan tiga

tahap yang harus diselesaikan, yaitu :

1. Client yang akan melakukan koneksi ke perangkat remote akan

memastikan perangkat yang akan ditujunya adalah benar (server

authentication).

2. Server atau perangkat yang dituju juga akan memastikan bahwa client

yang meminta koneksi adalah client yang sesungguhnya (user

authentication).

3. Client akan meyakinkan kembali kebenaran identitasnya kepada server

atau perangkat remote, dan memastikan bahwa dirinya memiliki hak

otorisasi ke dalam server.

(31)

negosiasi akan dilakukan untuk dapat mengijinkan sebuah client berkomunikasi

dengan server. Proses negosiasi tersebut biasanya akan melibatkan tiga

komponen yaitu identifikasi host, enkripsi, dan otorisasi.

2.2.1. Identifikasi Host atau Otentikasi

Identifikasi host merupakan sebuah proses pembuktian bahwa perangkat

yang dituju adalah benar. Proses ini dilakukan dengan menggunakan sebuah

teknik yang dikenal dengan nama RSA. Teknik ini akan mengatur pembuatan

sebuah kunci pada sebuah host yang akan digunakan untuk membuka proses

SSH. Kunci yang dibuat oleh host tersebut ada dua buah, yaitu kunci yang

bersifat public dan bersifat private. Kunci yang bersifat private adalah kunci spesifik yang hanya berada di dalam host tersebut. Kunci ini bersifat rahasia dan

hanya diketahui oleh administrator dari host tersebut. Sedangkan kunci yang

bersifat public adalah kunci yang dapat diketahui secara bebas. Sebuah pesan

yang dienkripsi dengan sistem RSA menggunakan kunci public sebagai

penguncinya, hanya dapat dibuka dengan menggunakan kunci yang bersifat

private pada sebuah host.

Pada proses pembukaan sesi SSH, sebuah server SSH akan mengirimkan

kunci public-nya ke client yang ingin menjalin komunikasi. Kunci public ini

dikirimkan secara acak ke client yang ingin membangun koneksi dengannya.

(32)

dienkripsi lagi dengan menggunakan kunci private dari client tersebut. Setelah itu, dikirimkan kembali ke server asalnya. Setibanya di server asal, pesan yang

terenkripsi dengan kunci private dari client dapat dibuka dengan menggunakan

kunci private yang dimiliki oleh server. Dengan demikian, server akan

mengetahui kunci private yang dimiliki oleh client.

Adanya pertukaran kunci ini, maka antara server dan client akan

mengetahui kuncinya masing-masing, meskipun tidak seluruh kunci yang

dimiliki oleh server diketahui oleh client. Walaupun demikian, kunci-kunci ini merupakan kunci identifikasi yang sangat berguna untuk saling mengamankan

sesi komunikasi yang akan dibangun. Kunci-kunci ini berguna untuk server

maupun client dalam meyakinkan bahwa mereka telah berbicara dengan

perangkat yang tepat.

2.2.2. Enkripsi

Setelah hubungan antara client dan server-nya diamankan, ternyata

fasilitas ini masih belum juga dianggap benar-benar aman. Meski client dan

server harus saling mengenal untuk dapat terkoneksi, kemungkinan terdapat “orang tengah” yang memiliki kemampuan mendengar dan menyadap

komunikasi ini.

Untuk itu, digunakan metode enkripsi yang akan mengacak semua sesi

(33)

dengan istilah cipher. Setiap cipher yang digunakan memiliki sebuah kunci lagi untuk dapat dibuka oleh penerima data dari komunikasi ini. Kunci ini harus

diketahui oleh client dan server yang berkomunikasi. Pembuatan kunci ini juga

menggunakan bantuan otentikasi RSA.

2.2.3. Otorisasi

Setelah melalui proses di atas, maka kini komunikasi antara client dan

server menjadi terenkripsi. Tetapi, gerbang pengaman masih kurang lengkap

tanpa adanya proses otorisasi dari pengguna yang ingin masuk ke dalam server.

Agar tidak sembarang pengguna dapat masuk ke server tersebut, maka proses

otorisasi ini cukup penting.

Metode-metode otorisasi yang biasa digunakan dalam SSH adalah

password, public-key, dan host-based authentication. Metode-metode ini memiliki tingkat pengamanan yang berbeda-beda untuk mengenali seseorang

yang ingin masuk ke dalam server.

2.3. Protokol SSH

Protokol SSH dibagi menjadi empat bagian utama dimana setiap bagian

bekerja saling independen satu dengan yang lainnya, yaitu :

(34)

3. SSH Connection Protocol (SSH-CONN) 4. SSH File Transfer Protocol (SSH-SFTP)

Setiap bagian mempunyai tugas yang berbeda namun saling berkaitan dalam

menyediakan komunikasi antara client dan server. Sebelum menjalankan

SSH-AUTH, sebuah program SSH client terlebih dahulu akan menjalankan

SSH-TRANS. Sebelum menjalankan SSH-CONN, sebuah program SSH client harus

menjalankan SSH-TRANS. Demikian juga sebelum menjalankan SSH-SFTP,

harus menjalankan SSH-CONN terlebih dahulu.

2.3.1. SSH Transport Layer Protocol (SSH-TRANS)

SSH-TRANS menyediakan dasar dari sebuah komunikasi SSH, yaitu

menyediakan inisial koneksi, autentikasi server, enkripsi standar dan menjamin

integritas data. Dalam menjalankan proses ini, antara client dan server pertama

kali akan melakukan pertukaran parameter session yang disebut key exchange

initialization (KEXINIT). Proses tersebut akan menghasilkan dua buah parameter, yaitu sebuah shared secret dan sebuah exchange hash. Shared secret

digunakan sebagai parameter untuk enkripsi dan menjamin integritas data,

sedangkan exchange hash digunakan sebagai session identifier.

2.3.2. SSH Authentication Protocol (SSH-AUTH)

(35)

dalam server. Hal ini sangat penting dilakukan supaya tidak sembarang orang

dapat masuk ke dalam server, dan menentukan hak dari setiap client. Metode

otorisasi yang digunakan pada SSH-AUTH adalah password, public-key, dan

host-based authentication.

2.3.3. SSH Connection Protocol (SSH-CONN)

SSH-CONN bertujuan untuk menyediakan multiplexing, yaitu

memungkinkan beberapa chanel komunikasi melalui sebuah jalur koneksi.

Setiap channel mempunyai sebuah nomor identitas dan bisa dibuat atau dihapus

oleh salah satu pihak client atau server. Pada protokol SSH terdapat empat

macam channel, yaitu session, X11, Forwarded-TCP/IP, dan Direct-TCP/IP.

2.3.4. SSH File Transfer Protocol (SSH-SFTP)

SSH-SFTP memungkinkan pengiriman file seperti pada protokol File

Transfer Protocol (FTP). Hanya saja pengiriman file dilakukan diatas protokol

SSH, dimana file yang dikrimkan akan dienkripsi.

2.4. Paket Data SSH

Sebuah paket data yang dikirimkan oleh client atau server terdiri dari

beberapa bagian, yaitu :

(36)

unsigned integer dan dibentuk dalam format 8 bit dalam satuan byte, yang menunjukkan panjang paket yang dikirimkan, dengan ukuran maksimal

sebuah paket adalah 262144 byte.

2. Padding : berisi 1 sampai dengan 8 bytes data random. Jumlah padding

ditentukan dengan perhitungan (8 - (panjang data % 8)) bytes.

Penambahan padding di setiap awal paket berguna untuk mempersulit

serangan yang akan ditujukan pada pesan.

3. Packet type : terdiri dari 8 bit unsigned byte yang menunjukkan tipe paket.

4. Data : merupakan isi pesan dalam bentuk data biner.

5. Check bytes : berisi 32 bit Cyclic Redundancy Check (CRC) dan dibentuk

dalam format 8 bit dalam satuan bytes, berguna untuk menjamin integritas

paket data yang dikirimkan.

2.5. JavaTM 2 Micro Edition (J2ME)

J2ME adalah subset dari J2SE yang ditujukan untuk implementasi pada

peralatan embedded system dan handheld yang tidak mampu mendukung secara

penuh implementasi menggunakan J2SE. Embedded system adalah

produk-produk dengan komputer kecil berada didalamnya. Contoh embedded system

misalnya televisi, sistem keamanan gedung, dan lain-lain.

J2ME sangat berguna untuk membangun sebuah aplikasi pada peralatan

(37)

kemampuan user interface yang terbatas seperti pada perangkat komunikasi

bergerak berupa handphone, PDA, dan lain-lain.

2.6. Jenis-jenis Aplikasi J2ME

Saat ini terdapat 2 jenis aplikasi J2ME, yaitu :

1. Walled garden application

Aplikasi ini merupakan aplikasi yang berdiri sendiri atau stand alone yang

berjalan pada handphone tanpa perlu mengakses sumber daya eksternal

melalui jaringan pembawa arus atau carrier network. Contoh dari aplikasi

ini adalah kalkulator atau single player games.

2. Network aware application

Aplikasi ini berinteraksi dengan jaringan. Tidak seperti aplikasi yang

pertama, aplikasi ini mempunyai kemampuan untuk mengakses sumber

daya eksternal. Contoh dari aplikasi ini adalah aplikasi email yang berada di dalam handphone.

2.7. J2ME Configuration

J2ME configuration mendefinisikan lingkungan kerja J2ME Runtime

(merupakan Java Runtime Environment yang termasuk Java Virtual Machine).

Setiap perangkat handheld memiliki fitur-fitur yang berbeda, oleh karena itu

(38)

fitur standar dari sebuah handheld.

Ada 2 kategori J2ME configuration saat ini, yaitu : 1. Connected Limited Device Configuration (CLDC)

Konfigurasi ini merupakan konfigurasi minimal dari J2ME yang ditujukan

untuk perangkat yang sangat kecil, sumber daya terbatas, memiliki

kemampuan komputasional, dan memiliki baterai serta memori terbatas

antara 160 KB sampai dengan 512 KB. Akibatnya, fitur-fitur yang kurang

penting untuk diimplementasikan dalam handheld device yang

bersangkutan dari Java 2 harus dibuang.

2. Connected Device Configuration (CDC)

Konfigurasi ini umumnya digunakan untuk aplikasi Java pada

perangkat-perangkat handheld yang memiliki memori minimal 2MB.

Tabel 2.1 menujukkan perbedaan CLDC dan CDC.

CLDC CDC

Mengimplementasikan subset dari J2SE Mengimplementasikan seluruh fitur dari

J2SE

Menggunakan Java Virtual Machine yang

dikenal dengan nama Kilobyte Virtual

Machine (KVM)

Menggunakan Java Virtual Machine

yang dikenal dengan nama CDC Virtual

Machine (CVM)

Digunakan pada perangkat handheld

dengan ukuran memori terbatas (160 KB– 512 KB)

Digunakan pada perangkat handheld

dengan ukuran memori minimal 2MB

Prosesor 16 but atau 32 bit Prosesor 32 bit

(39)

2.8. J2ME Profile

Sebuah profile dibangun diatas sebuah configuration. Jika J2ME

configuration menyediakan library Java untuk implementasi fitur-fitur standar

dari sebuah perangkat handheld, J2ME profile menyediakan

implementasi-implementasi tambahan yang sangat spesifik dari sebuah perangkat handheld.

Ada 5 kategori J2ME profile, yaitu :

1. Mobile Information Device Profile (MIDP)

2. Foundation Profile 3. Personal Profile 4. RMI Profile 5. PDA Profile

MIDP menyediakan library Java untuk implementasi dasar antarmuka,

implementasi jaringan, database dan timer. MIDP khususnya dirancang

khususnya untuk handphone.

2.9. Aplikasi MIDlet

2.9.1 Arsitektur Aplikasi MIDlet

MIDlet adalah aplikasi yang dibuat menggunakan J2ME dengan profil

MIDP. Sebuah pengembangan aplikasi MIDlet terdiri atas direktori sebagai

berikut :

(40)

2. bin : berisi file-file JAD, JAR, dan manifest.

3. lib : berisi file-file kelas Java yang diperlukan dalam format JAR atau ZIP. 4. res : berisi file-fileresources.

Beberapa istilah penting dalam daur hidup sebuah MIDlet yaitu :

1. Application Management Software (AMS), adalah sebuah lingkungan

tempat siklus dari sebuah MIDlet mampu diciptakan, dijalankan,

dihentikan, maupun dihilangkan. Fungsi dari AMS adalah mengatur

manajemen aplikasi MIDlet yang ada.

2. MIDlet, adalah aplikasi yang dijalankan pada sebuah perangkat handheld.

MIDlet tidak berinteraksi langsung dengan perangkat keras dari

handphone, PDA, atau perangkat handheld lainnya, melainkan berinteraksi melalui AMS.

3. MIDletstates, adalah status dari sebuah MIDlet pada saat dijalankan yang terdiri dari beberapa bagian, yaitu :

a. Paused : status ini terjadi ketika MIDlet selesai diinisialisasi dan tidak

melakukan aksi apapun. Pada status ini MIDlet tidak boleh sedang

mengunci suatu resources, misalnya tidak boleh sedang melakukan

locking atau mengunci sebuah file untuk ditulis yang meyebabkan proses lain tidak bisa menulis ke file tersebut.

b. Active : status ini terjadi jika MIDlet sedang berjalan dengan normal,

(41)

c. Destroyed : status ini terjadi jika MIDlet berhenti berjalan, sehingga seluruh resources yang digunakan akan dilepaskan. Status ini berhasil jika dilakukan pemanggilan fungsi MIDlet.destroyApp( ) atau

MIDlet.notifyDestroy( )

2.9.2. Eksekusi sebuah MIDlet

Umumnya urutan eksekusi sebuah MIDlert adalah sebagai berikut :

1. AMS menginisialisasi sebuah objek MIDlet, sehingga MIDlet berada pada

status paused.

2. Ketika AMS memutuskan bahwa MIDlet sudah waktunya dijalankan,

maka AMS memanggil fungsi MIDlet.startApp( ) sehingga MIDlet akan

mulai aktif berfungsi.

3. Ketika AMS memutuskan bahwa MIDlet harus dinonaktifkan secara

sementara, maka AMS akan memanggil funsi MIDlet.pauseApp( )

sehingga MIDlet akan berhenti bekerja dan berada pada status paused.

4. Ketika AMS memutuskan bahwa MIDlet harus dinonaktifkan selamanya,

maka AMS akan memanggil fungsi MIDlet.destryApp( ) sehingga alokasi

(42)

2.10. Pemrograman J2ME

Pemrograman J2ME pada penelitian ini meliputi pemrograman untuk user

interface, record management system (RMS), dan generic connection framework. Pemrograman user interface diperlukan untuk menyediakan antarmuka bagi pemakai, pemrograman RMS diperlukan untuk menyimpan

data-data yang dimasukkan oleh pemakai, sedangkan pemrograman generic

connection framework diperlukan untuk menjalin komunikasi antara pemakai

dengan server. Pemrograman user interface meliputi pemrograman high level

user interface dan low level user interface. Berikut ini adalah gambar yang

menunjukkan komponen-komponen yang dapat dipakai dalam high level user

interface dan low level user interface.

Gambar 2.1. Pembagian komponen pada high level user interface

(43)

2.10.1. High Level User Interface

Pemrograman pada high level user interface memungkinkan pemrogram

untuk membuat text box, list, alert, dan form. Pada sebuah form dapat

ditambahkan beberapa item yaitu choicegroup, data field, textfield, gauge,

image item, dan string item. Komponen-komponen tersebut berada pada class javax.microedition.lcdui.*.

2.10.2. Low Level User Interface

Pemrograman pada low level user interface memungkinkan pemrogram

untuk menambahkan tampilan berupa grafis. Terdapat dua bagian pada low level

user interface, yaitu :

1. Canvas : merupakan latar yang memiliki panjang dan lebar yang dinyatakan dengan koordinat vertikal dan horisontal.

2. Graphics : merupakan objek yang digambar pada canvas yang merupakan objek dari classgraphics.

2.10.3. Record Management System (RMS)

RMS memungkinkan seorang pemrogram untuk mengatur penyimpanan

data pada memori yang bersifat non-volatile. RMS merupakan record-oriented

database yang berisi record-record dengan identitas unik pada setiap record.

(44)

sebagai primary key, dan sebuah array of bytes untuk menyimpan data dari

sebuah record. Kumpulan dari beberapa record disebut record store. Sebuah

MIDlet dapat mempunyai lebih dari satu record store atau tidak mempunyai

record store sama sekali. Beberapa operasi yang diijinkan pada record store

adalah pengurutan, pencarian, notifikasi, dan exception.

2.10.4. Generic Connection Framework

Generic connection framework memungkinkan seorang pemrogram untuk

membuat koneksi ke jaringan atau server. Sebuah class connector dapat

digunakan untuk membuat beberapa tipe koneksi seperti file, hypertext transfer

protocol (http), datagram, dan sebagainya. Untuk menciptakan koneksi

digunakan method connector.open dengan format sebagai berikut :

connector.open(“protokol:alamat;parameter”);

Sebuah socket adalah satu end-point dari hubungan komunikasi dua arah

antara dua program yang berjalan pada jaringan. Kelas-kelas socket digunakan

dalam program dengan arsitektur client-server. Biasanya sebuah server berjalan

pada sebuah komputer dan memiliki socket yang diikat pada suatu nomor port.

Sebuah program server akan menunggu permintaan koneksi dari client pada

sebuah socket.

Pada sisi client, ia harus mengetahui alamat dan port server yang akan

dihubungi untuk melakukan koneksi dengan server. Gambar 2.2 menunjukkan

(45)

SERVER

Gambar 2.2 Permintaan koneksi dari client ke server

Jika permintaan koneksi seperti pada gambar diatas berjalan dengan baik,

server akan menerima koneksi dari client. Setelah menerima koneksi, server

akan memberikan socket baru yang diikat pada nomor port yang berbeda,

sehingga server dapat menunggu lagi koneksi dari client yang lain pada port

yang sebenarnya. Gambar 2.3 menunjukkan server telah memberikan socket

yang baru untuk komunikasi dengan client dan koneksi client – server sedang

berjalan.

Gambar 2.3 Koneksi dua arah client dan server

port connection request CLIENT

SERVER CLIENT

connection

port

(46)

Pada sisi client, jika koneksi diterima, sebuah socketakan dibentuk dan socket

tersebut akan digunakan untuk berkomunikasi dengan server. Setelah socket

terbentuk, client dan server dapat saling berkomunikasi dengan cara read dan

(47)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1. Orang yang Terlibat dalam Sistem

1. Pemakai

Pemakai (user) adalah orang yang terlibat langsung dengan sistem karena

menggunakan sistem ini untuk mengelola komputer atau server secara

remote menggunakan perangkat mobile.

3.2. Gambaran Umum Sistem

Sistem ini digunakan untuk mempermudah pemakai dalam melakukan

aktifitas monitoring, maintenance, dan mengkonfigurasi komputer atau server

dari jarak jauh tanpa menggunakan sebuah perangkat komputer, melainkan

dapat melakukannya dengan sebuah perangkat mobile sehingga dapat

melakukannya darimana saja dan dimana saja.

Sebelum menjalankan sistem, pemakai harus melakukan proses login

terlebih dahulu. Setelah proses login berhasil, pemakai terlebih dahulu harus

menentukan server yang akan dituju dengan memasukkan data-data server yang

(48)

ke server berdasarkan data-data yang telah ia masukkan, kemudian sistem akan menampilkan terminal dimana pemakai dapat memasukkan perintah-perintah

yang akan dieksekusi di server. Pemakai dapat mengubah data-data yang telah

disimpan tersebut dan dapat juga menghapusnya. Pemakai dapat juga mengubah

tampilan terminal sesuai dengan yang diinginkannya. Sistem ini juga memiliki

(49)

3.3. Analisa Kebutuhan 3.3.1. Use Case Diagram

Tutup koneksi Edit Koneksi

Hapus Koneksi Mengatur tampilan

Memasukkan perintah Koneksi ke serv er

Buat Koneksi Login

Pemakai

Ubah Password

<<depends on>>

<<depends on>> <<depends on>>

(50)

3.4. Analisa Berorientasi Objek dan Modeling 3.4.1. Activity Diagram

Activity diagram memodelkan alur kerja (workflow) sebuah proses bisnis dan urutan aktivitas dalam suatu proses.Berikut ini adalah activity diagram pada

sistem yang mengacu pada use case diagram :

1. Activity Diagram Login

menampilkan tampilan login

menerima masukan username dan password

memvalidasi masukan

username dan password benar ?

tidak ya

Gambar 3.2. Activity Diagram Login

Gambar 3.2 adalah activity diagram dari use case login. Proses ini diawali

dengan menampilkan tampilan login, kemudian akan menunggu pemakai

memasukkan username dan password. Selanjutnya sistem akan memeriksa

(51)

apakah data masukan benar atau tidak. Jika data yang dimasukkan benar, sistem

akan menampilkan menu utama, jika salah sistem akan menampilkan pesan

kesalahan dan akan menampilkan kembali tampilan untuk login.

2. Activity Diagram Mengatur Tampilan

menampilkan tampilan utama

menerima pilihan edit tampilan

menampilkan tampilan untuk mengedit tampilan

menerima masukan data tampilan

menerima pilihan untuk menyimpan data tampilan

menyimpan data tampilan

Gambar 3.3. Activity Diagram Mengatur Tampilan

Gambar 3.3 adalah activity diagram dari use case mengatur tampilan.

Proses ini diawali dengan menampilkan menu utama, kemudian akan menunggu

(52)

menampilkan tampilan untuk mengedit tampilan. Pemakai dapat memasukkan

data tampilan berupa ukuran huruf, warna huruf, dan latar belakang layar,

kemudian menyimpan data tampilan.

3. Activity Diagram Buat Koneksi

menampilkan tampilan utama

menerima pilihan untuk membuat koneksi

menampilkan tampilan untuk memasukkan data koneksi

menerima masukan data koneksi

menerima pilihan untuk menyimpan data koneksi

data koneksi sudah lengkap ?

tidak ya

Gambar 3.4. Activity Diagram Buat Koneksi

Gambar 3.4 adalah activity diagram dari use case buat koneksi. Proses ini

menyimpan data koneksi menampilkan pesan

kesalahan

alias sudah ada ? ya

(53)

diawali dengan menampilkan menu utama, kemudian akan menunggu pemakai

memasukkan pilihan buat koneksi. Selanjutnya sistem akan menampilkan

tampilan untuk memasukkan data koneksi. Pemakai dapat memasukkan alias,

nama server, alamat IP, port, username, dan password. Pemakai dapat memilih untuk menyimpan data koneksi, kemudian sistem akan memeriksa apakah data

masukan sudah lengkap atau belum. Jika sudah lengkap sistem akan memeriksa

apakah alias yang dimasukkan pemakai sudah ada atau belum, jika belum ada

maka sistem akan menyimpan data koneksi yang dimasukkan oleh pemakai, jika

sudah ada sistem akan menampilkan pesan kesalahan dan akan menampilkan

kembali tampilan untuk memasukkan data koneksi. Jika data yang dimasukkan

pemakai belum lengkap, sistem juga akan menampilkan pesan kesalahan dan

(54)

4. Activity Diagram Edit Koneksi

menampilkan tampilan utama

menerima pilihan edit koneksi

Gambar 3.5. Activity Diagram Edit Koneksi

Gambar 3.5 adalah activity diagram dari use case edit koneksi. Proses ini diawali dengan menampilkan menu utama, kemudian akan menunggu pemakai

memasukkan pilihan edit koneksi. Selanjutnya sistem akan mengambil data

menampilkan tampilan untuk mengedit data koneksi

menerima masukan data koneksi

menerima pilihan untuk menyimpan data koneksi mengambil data koneksi yang akan diedit

data koneksi sudah lengkap ?

tidak ya

menampilkan pesan kesalahan

menyimpan data koneksi alias sudah ada ? ya

(55)

koneksi yang akan diedit dan menampilkan data tersebut pada tampilan untuk

mengedit koneksi. Pemakai dapat mengubah nama server, alamat IP, port,

username, dan password. Pemakai dapat memilih untuk menyimpan data koneksi, kemudian sistem akan memeriksa apakah data masukan sudah lengkap

atau belum. Jika sudah lengkap sistem akan memeriksa apakah alias yang

dimasukkan pemakai sudah ada atau belum, jika belum ada maka sistem akan

menyimpan data koneksi yang dimasukkan oleh pemakai, jika sudah ada sistem

akan menampilkan pesan kesalahan dan akan menampilkan kembali tampilan

untuk mengubah data koneksi. Jika data yang dimasukkan pemakai belum

lengkap, sistem juga akan menampilkan pesan kesalahan dan akan menampilkan

(56)

5. Activity Diagram Hapus Koneksi

menampilkan tampilan utama

menerima pilihan hapus koneksi

menghapus data koneksi

Gambar 3.6. Activity Diagram Hapus Koneksi

Gambar 3.6 adalah activity diagram dari use case hapus koneksi. Proses ini diawali dengan menampilkan menu utama, kemudian akan menunggu pemakai

memasukkan pilihan hapus koneksi. Selanjutnya sistem akan menghapus data

(57)

6. Activity Diagram Koneksi ke Server

menampilkan tampilan utama

menerima pilihan koneksi ke server

menampilkan terminal

mengirim permintaan koneksi ke server

parsing identifikasi server

versi server dan client support?

menutup koneksi menerima dan menyimpan public key server tidak ya

membuat session id yang terenkripsi dengan public key server

mengirim session id dan algoritma enkripsi

(58)

1

Gambar 3.7. Activity Diagram Koneksi ke Server

Gambar 3.7 adalah activity diagram dari use case koneksi ke server. Proses ini diawali dengan menampilkan menu utama, kemudian akan menunggu

pemakai memasukkan pilihan koneksi ke server. Selanjutnya menampilkan

terminal untuk menampilkan output. Sistem akan meminta koneksi ke server

SSH, dan menunggu respon dari server. Jika server menyetujui permintaan

koneksi, server akan mengirimkan identifikasi yang berupa versi protokol.

Sistem akan mengecek apakah server mendukung protokol SSH versi 2 atau

tidak ya

menampilkan pesan kesalahan otentikasi

menutup koneksi

menampilkan pesan otentikasi berhasil menerima konfirmasi

otentikasi

otentikasi berhasil? mengirim data otentikasi ke

server

(59)

tidak. Jika tidak, maka sistem akan menutp koneksi. Jika ya, maka sistem akan

menciptakan private key dan public key untuk melakukan proses otentikasi

server. Setelah itu sistem akan melakukan proses key exchange initialitation, yaitu melakukan negosiasi tentang algoritma enkripsi yang akan digunakan.

Setelah menjalankan otentikasi server dan otentikasi client, maka sistem

akan mengetahui identitas dan spesifikasi server yang ditujunya. Setelah itu

sistem akan mengirimkan username dan password untuk login ke dalam server.

Server akan merespon dengan mengirimkan status login, apakah benar atau tidak. Jika tidak benar, maka sistem akan menampilkan pesan kesalahan pada terminal

dan menutup koneksi. Jika benar, sistem akan menampilkan pesan berhasil dan

(60)

7. Activity Diagram Memasukkan Perintah

menerima perintah dari pemakai

mengubah perintah ke format pesan SSH

mengenkripsi pesan

mengirim pesan ke server

menerima respon dari server

Gambar 3.8. Activity Diagram Memasukkan perintah

Gambar 3.8 adalah activity diagram dari use case memasukkan perintah.

Proses ini akan menunggu pemakai memasukkan perintah pada terminal.

Selanjutnya sistem akan mengubah perintah yang dimasukkan pemakai ke dalam

menyimpan respon ke dalam vector

mendekripsi respon

(61)

format pesan SSH. Pesan tersebut akan dienkripsi sebelum dikirimkan ke server.

Sistem akan menungggu respon dari server. Respon yang diberikan oleh server

akan didekripsi kemudian dimasukkan ke dalam sebuah vector. Selanjutnya

sistem akan mengambil setiap object dari vector kemudian menampilkannya

pada terminal.

Jika respon dari server lebih besar dari ukuran layar, maka sistem akan

menciptakan scroll bar supaya pemakai dapat melakukan scroll menggunakan

(62)

8. Activity Diagram Tutup Koneksi

menerima perintah tutup koneksi

mengirim permintaan tutup koneksi ke server

menerima konfirmasi tutup koneksi

menutup socket koneksi

menampilkan halaman daftar koneksi

Gambar 3.9. Activity Diagram Tutup Koneksi

Gambar 3.9 adalah activity diagram dari use case tutup koneksi. Proses ini

akan menunggu pemakai memasukkan perintah tutup koneksi, yaitu perintah exit

atau menekan tombol disconnect. Selanjutnya sistem akan mengirimkan

permintaan tutup koneksi ke server. Setelah mendapatkan respon dari server,

maka sistem akan menutup socket koneksi dan koneksi tertutup. Sistem akan

(63)

9. Activity Diagram Ubah Password

menampilkan tampilan utama

menerima pilihan ubah password

Gambar 3.10. Activity Diagram Ubah Password

Gambar 3.10 adalah activity diagram dari use case ubah password. Proses

ini akan menunggu pemakai memasukkan perintah ubah password. Selanjutnya

sistem akan menampilkan tampilan ubah password. Pada tampilan tersebut,

sistem akan menanyakan sebuah pertanyaan rahasia yang harus dijawab oleh

memvalidasi masukan

jawaban pertanyaan rahasia benar ?

menampilkan tampilan untuk memasukkan data login

tidak ya

menampilkan pesan kesalahan

menampilkan tampilan ubah password

menerima jawaban pertanyaan rahasia

(64)

pemakai. Jika jawaban benar, sistem akan menampilkan tampilan untuk

memasukkan pertanyaan rahasia, jawaban, username dan pasword, kemudian

sistem akan menunggu masukan dari pemakai kemudian menyimpan masukan

tersebut. Jika jawaban salah, sistem akan menampilkan pesan kesalahan dan

kembali menampilkan tampilan ubah password.

3.4.2. Sequence Diagram

Sequence diagram digunakan untuk menjelaskan interaksi objek yang disusun dalam suatu urutan waktu. Diagram ini secara khusus berasosiasi dengan

use case. Sequence diagram memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu di dalam use case.

Berikut ini adalah sequence diagram pada sistem yang mengacu pada use

(65)

1. Sequence diagramlogin

: pemakai : login : rsUser

login(username,password : String)

getRecord(record id : int)

showAlert( )

Gambar 3.11. Sequence Diagram Login

Proses ini akan menampilkan tampilan login terlebih dahulu, kemudian

akan menunggu pemakai memasukkan username dan password. Selanjutnya

sistem akan mengambil data login dari record store dan melakukan validasi data

(66)

2. Sequence diagram mengatur tampilan

: pemakai : DisplaySetting : rsSetting

update(fontzise,bground,fground : String)

setRecord(record_id : int)

showAlert( )

Gambar 3.12. Sequence Diagram Mengatur Tampilan

Proses ini akan menampilkan tampilan Display Setting. Selanjutnya akan

menerima masukan dari pemakai berupa ukuran font terminal, warna background

terminal, dan warna foreground terminal. Pemakai dapat memilih untuk

menyimpan masukan tersebut, sehingga sistem akan melakukan update pada

(67)

3. Sequence diagram buat koneksi

: pemakai : FormConnectionMenu : rsConn

createConnection(alias, alamat,port,username,password : String)

addRecord(alias,alamat,port,username,password : String)

showAlert( )

Gambar 3.13. Sequence Diagram Buat Koneksi

Proses ini akan menampilkan tampilan FormConnectionMenu. Selanjutnya

pemakai dapat memilih buat koneksi baru, kemudian mengisi beberapa

parameter yang diperlukan. Pemakai dapat menyimpan data koneksi yang

dimasukkan. Sistem akan memeriksa apakah data yang dimasukkan sudah

lengkap atau belum. Jika belum, sistem akan menampilkan pesan kesalahan. Jika

sudah lengkap, sistem akan menyimpan data koneksi tersebut ke dalam record

(68)

4. Sequence diagram edit koneksi

: pemakai : FormConnectionMenu : rsConn

edit(alias : String)

getRecord(record_id : int)

showData( )

edit(alias,alamat,port,username,password : String)

setRecord(alias,alamat,port,username,password : String)

showAlert( )

Gambar 3.14. Sequence Diagram Edit Koneksi

Proses ini akan menampilkan tampilan FormConnectionMenu. Selanjutnya

pada FormConnectionMenu, pemakai dapat memilih edit koneksi. Sistem akan

mengambil data koneksi yang diedit dari record store, yang kemudian bisa

diubah oleh pemakai. Pemakai dapat menyimpan data koneksi yang dimasukkan,

tetapi sistem akan memeriksa apakah data yang dimasukkan sudah lengkap atau

belum. Jika belum, sistem akan menampilkan pesan kesalahan. Jika sudah

(69)

5. Sequence diagram hapus koneksi

: pemakai : FormConnectionMenu : rsConn

delete(alias : String)

deleteRecord(record_id : String)

Gambar 3.15. Sequence Diagram Hapus Koneksi

Pemakai dapat menghapus data koneksi dengan memilih pilihan hapus pada

FormConnectionMenu. Sistem akan menampilkan data koneksi yang sudah ada,

kemudian pemakai dapat memilih menghapus salah satu data koneksi.

(70)

6. Sequence diagram koneksi ke server

: pemakai : FormConnectionMenu : rsConn : Session : readWriter

: SSHIO : Terminal

connect(alias : String)

getRecord(record_id : int)

connect(alamat,port,username,password : String)

run( )

sendData(message : String)

write(message : byte)

receiveData(message : byte)

addText(message : String)

putString(message : String)

show(message : String)

Gambar 3.16. Sequence Diagram Koneksi ke Server

Gambar 3.16 menunjukkan proses koneksi ke server. Pemakai dapat

memilih pilihan connect pada FormConnectionMenu. Selanjutnya sistem akan

(71)

untuk memanggil fungsi connect( ) pada class Session. Kemudian dari class

Session akan menjalankan socket koneksi untuk membaca dan menulis data.

Data yang akan dikirim akan dibentuk sesuai dengan format pesan protokol SSH

pada class SSHIO dan akan dikirimkan dengan socket melalui class readWriter.

Setiap pesan yang diterima dari server akan diubah menjadi teks biasa pada class

SSHIO, kemudian akan ditampilkan pada terminal melalui class Session.

7. Sequence diagram memasukkan perintah

: pemakai : Terminal : SSHIO

: Session : readWriter inputCmd(command : String)

sendData(message : String)

write(message : byte)

receiveData(message : byte)

addText(message : String)

putString(message : String )

show(message : String)

(72)

Gambar 3.17 menunjukkan proses memasukkan perintah. Pemakai dapat

memasukkan perintah pada Terminal. Perintah yang akan dikirim akan dibentuk

sesuai dengan format pesan protokol SSH pada class SSHIO dan akan

dikirimkan dengan socket melalui class readWriter. Setiap pesan yang diterima

dari server akan diubah menjadi teks biasa pada class SSHIO, kemudian akan

ditampilkan pada terminal melalui class Session. 8. Sequence diagram tutup koneksi

: pemakai : Terminal : SSHIO

: Session : readWriter inputCmd(command : String)

sendData(message : String)

write(message : byte)

receiveData(message : byte)

addText(message : String)

putString(message : String )

show(message : String)

(73)

Gambar 3.18 menunjukkan proses menutup koneksi. Pemakai dapat

memasukkan perintah exit pada Terminal. Perintah yang akan dikirim akan

dibentuk sesuai dengan format pesan protokol SSH pada class SSHIO dan akan

dikirimkan dengan socket melalui class readWriter. Setiap pesan yang diterima

dari server akan diubah menjadi teks biasa pada class SSHIO, kemudian akan

ditampilkan pada terminal melalui class Session. 9. Sequence diagram ubah password

: pemakai : UbahPassword : rsUser

jawab(jawaban : String)

getRecord(record_id : int)

showData(p_rahasia,j_rahasia,username,password : String)

edit(p_rahasia,j_rahasia,username,password : String)

setRecord(record_id : int)

Gambar 3.19. Sequence Diagram Ubah Password

Proses ini akan menampilkan tampilan UbahPassword yang berisi

(74)

menjawab pertanyaan rahasia, maka akan ditampilkan pertanyaan rahasia,

jawaban, username, dan password, yang dapat diubah oleh pemakai. Selanjutnya

pemakai dapat memilih untuk menyimpan data-data tersebut. Sistem

(75)

3.5. Desain Berorientasi Objek 3.5.1. Class Diagram

Gambar 3.20. Class Diagram

MIDlet

startApp() pauseApp() destroyApp()

login ubahPassword() : UbahPassword main : MainMenu

login() validate() getRecord() <<extend>> MainMenu connect() showConnection() showDisplaySetting() showHelp() showT erminal() List <<extend>> Dis playable Terminal paint() keyPressed() inputCommand() disconnect() putString() Canvas paint() keyPressed() <<extend>> Help UbahPassword validate() getRecord() setRecord() CommandListener <<Interface>> SSHIO handleSSH() DisplaySetting update() setRecord() Session readwriter : T hread socket : Socket in : BufferedReader out : BufferedWriter connect() addText() write()

readLine() <<extend>> Thread

(76)

3.5.2. Perancangan Record Management System (RMS)

RMS digunakan untuk mengatur penyimpanan data pada memori yang

bersifat non-volatile. RMS merupakan record-oriented database yang berisi

record-record dengan identitas unik pada setiap record. Pada sistem ini akan digunakan empat buah record store, yaitu :

1. Record Store User : berguna untuk menyimpan data login pemakai

yaitu username, password, pertanyaan rahasia, dan jawaban

pertanyaaan rahasia. Pada saat pertama kali sistem dijalankan, pada

semua record akan terisi dengan nilai defaul yaitu 1234.

2. Record Store Connection : berguna untuk menyimpan data koneksi

yang dimasukkan pemakai untuk melakukan koneksi ke server, yaitu

alias, alamat, port, username, dan password.

3. Record Store Setting : berguna untuk menyimpan data tampilan, yaitu fontsize, bground, dan fground. Data tampilan akan digunakan untuk

mengatur tampilan pada terminal.

3.5.3. Perancangan Antarmuka Pemakai

Sistem ini mempunyai beberapa antarmuka yang memungkinkan

(77)

1. Tampilan Login

X

MSC

Mobile SSH Client

Gambar 3.21. Tampilan login

Tampilan login ditampilkan pertama kali pada saat sistem dijalankan.

Pemakai dapat mengisi username dan password kemudian memilih menu

login untuk masuk ke sistem atau memilih menu forget password jika

pemakai lupa password atau ingin mengganti pertanyaan rahasia,jawaban,

username, dan password.

2. Tampilan ForgetPassword

Gambar 3.22. Tampilan Change Password username :

password :

Exit Menu

X

MSC

Mobile SSH Client

username :

password :

Back Select

1. login

2. forget password

Secret Question :

Secret Answer :

Change Password

Back OK

username :

password :

Cancel Save

Change Password

Secret Question :

(78)

Tampilan forget password ditampilkan jika pemakai lupa password

atau ingin mengganti username dan password. Pemakai harus menjawab

pertanyaan rahasia terlebih dahulu, kemudian sistem akan menampilkan

username dan password yang lama, kemudian pemakai dapat mengubahnya.

3. Tampilan Main Menu

Exit OK

Main Menu

Connection Display Setting Help

Tampilan menu utama berisi pilihan yang dapat dipilih oleh pemakai.

Pilihan connection digunakan untuk menampilkan connection menu, pilihan

display setting digunakan untuk menampilkan tampilan display setting, dan

pilihan help digunakan untuk menampilkan bantuan.

Gambar 3.23. Tampilan Main Menu

4. Connection Menu

Gambar 3.24. Tampilan Connection Menu

Back Menu

Con

Gambar

Gambar 2.1. Pembagian komponen pada high level user interface
Gambar 3.1. Use Case Diagram
Gambar 3.8. Activity Diagram Memasukkan perintah
Gambar 3.21. Tampilan login
+7

Referensi

Dokumen terkait

Setelah Anda mempelajari Unit 1 mata Kuliah Belajar dan Pembelajaran ini, diharapkan Anda dapat menjelaskan: Menguasai pengertian/hakikat belajar dan pembelajaran dengan

Dengan demikian, tujuan penelitian ini yaitu untuk mendeskripsikan gaya kepemimpinan yang diterapkan oleh Kepala Sekolah di MAN 2 Jember,

Berdasarkan refleksi yang telah disepakati pada siklus II, maka perencanaan tindakan yang akan dilakukan pada siklus III adalah sebagai berikut: (1) guru harus lebih

 3 Dimensi, game bertipe 3 DImensi merupakan game dengan grapis yang baik 3 Dimensi, game bertipe 3 DImensi merupakan game dengan grapis yang baik dalam penggambaran secara

Agar permasalahan dalam penelitian ini menjadi jelas dan tidak menyimpang dari tujuan yang telah ditetapkan, maka peneliti perlu memberi pembatasan masalah yang akan diangkat

Irwan Nasution,MAP RC.I.1 Bisnis Internasional * VI/Akt/D Abdul Halim,BSM,MBA RB.I.4 Akuntansi Keprilakuan VIII/Akt/D Aditya Amanda Pane,SE,MSi RC.I.3 Bahasa Inggris Bisnis

motivasi awal yang kuat dalam menjalankan tugas sesuai pilihannya, bukanlah seorang yang menerima pekerjaan tersebut dengan alasan daripada tidak ada pekerjaan lain, atau seseorang

Sebagai gambaran dapat dikemukakan bahwa wilayah pesisir Indonesia yang panjangnya mencapai 95.181 km, dengan luas laut teritorialnya kurang lebih 3,1 juta Km 2 ,