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
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
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
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)
HALAMAN MOTTO
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
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.
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
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.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
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
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
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
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
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
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
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
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
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
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
DAFTAR TABEL
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
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).
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
(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
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
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,
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.
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.
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
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 :
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)
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 :
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
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
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
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 :
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,
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
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
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.
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
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
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
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
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
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>>
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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)
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)
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
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
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
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
1. Tampilan Login
X
MSCMobile 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
MSCMobile 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 :
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