Anda di halaman 1dari 62

Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

Initialisation System (JPos Server)

Version 2.7

15 Agustus 2017

Confidential 0
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

DAFTAR ISI

DAFTAR ISI........................................................................................................................1
HISTORI DOKUMENTASI ...............................................................................................3
1. Pendahuluan ..............................................................................................................4
2. Spesifikasi CPU .........................................................................................................7
2.1. Software ......................................................................................................... 7
2.1.1. Server JPos ............................................................................................................ 7
2.1.2. Client ....................................................................................................................... 7
2.2. Hardware ....................................................................................................... 7
2.2.1. Server JPos ............................................................................................................ 7
2.2.2. Client ....................................................................................................................... 7
3. JPos.............................................................................................................................8
3.1. Packager JPos.................................................................................................. 8
3.2. Channel JPos ................................................................................................. 12
4. Database ..................................................................................................................13
4.1. Deskripsi ...................................................................................................... 13
4.2. Tabel Database .......................................................................................... 13
4.3. Detail tabel................................................................................................... 15
5. Function .....................................................................................................................18
5.1. Table Function .............................................................................................. 18
5.2. Function View pada Form Setting Database ................................................ 25
5.3. Function View pada Form Menu_server ...................................................... 25
5.4. Function View pada Form Menu_Client ...................................................... 26
3.8 Function View pada Form Log ..................................................................... 26
5.1. Function View pada Form Setting Detail Message ...................................... 26
5.2. Function View pada Form Setting Track Message ....................................... 26
5.3. Function View pada Form Setting Config Name ......................................... 26
5.4. Function View pada Form Setting Config value .......................................... 27
3.9 Function View pada Form Setting Port ........................................................ 27
6. Class Library ............................................................................................................28
6.1. Deskripsi ...................................................................................................... 28
6.2. Library File ................................................................................................... 28
7. Modeling Diagram System ........................................................................................31
7.1. Flow/Activicty System ................................................................................ 31
8. Interface Server .......................................................................................................36
8.1. Server JPos .................................................................................................... 36
8.2. Server Broadcast ........................................................................................... 37
8.3. Client Broadcast ............................................................................................ 38
8.4. Menu Setting ................................................................................................. 39
8.4.1. Menu Utama .......................................................................................................... 39

Confidential 1
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

8.4.2. Server Menu Setting Port....................................................................................... 40


8.4.3. Server Menu Setting Database .............................................................................. 41
8.4.4. Server Menu Config List ......................................................................................... 42
8.4.5. Report Log .............................................................................................................. 43
8.4.1. Detail Message ....................................................................................................... 44
8.4.2. Track Message........................................................................................................ 45
8.4.3. Config Value ........................................................................................................... 46
9. ISO Message 47

Confidential 2
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

HISTORI DOKUMENTASI
DATE Author VERSION MODIFICATION
3 Agustus 2017 Deni Utama 1.0 Pembuatan Validasi MTI request dan MTI
Respone sesuai dengan Database
3 Agustus 2017 Deni Utama 1.1 Pembuatan Respone Bitmap sesuai dengan
database
4 Agustus 2017 Deni Utama 1.2 Penambahan Fungsi Mengirim field respone
message sesuai bitmap respone database
4 Agustus 2017 Deni Utama 1.3 Penambahan Fungsi Setting Port server
7 Agustus 2017 Deni Utama 1.4 Pembuatan Logger Server
7 Agustus 2017 Deni Utama 1.5 Pembuatan setting database server
7 Agustus 2017 Deni Utama 1.6 Pembuatan Setting Configname
7 Agustus 2017 Deni Utama 1.7 Pembuatan GUI Server
7 Agustus 2017 Deni Utama 1.8 Pembuatan Fungsi respone sesuai dengan
ConfName, ConditionField, dan
ConditionValue
8 Agustus 2017 Deni Utama 1.9 Membuat Track pesan
8 Agustus 2017 Deni Utama 2.1 Pembuatan track detail message
9 Agustus 2017 Deni Utama 2.2 Pembuatan broadcast message
9 Agustus 2017 Deni Utama 2.3 Membuat fungsi menampilkan pesan per bit di
broadcast
10 Agustus 2017 Deni Utama 2.4 Penambahan menu edit data Field value perbit
10 Agustus 2017 Deni Utama 2.5 Membuat instal batch service
11 Agustus 2017 Deni Utama 2.6 Pemishan Client dan server serta menunya
11 Agustus 2017 Deni Utama 2.7 Membuat Config field value

Confidential 3
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

1. Pendahuluan
Program Server JPos dirancang sebagai simulator message ISO8583 menggunakan framework
JPos dalam pemerosesan komunikasinya. Dalam proses komunikasi message ini, JPos server
menggunakan packager ISO87BPackager dan menggnakan channel NACChannel.

Berikut ini ilustrasi singkat gambarnya :

Gambar. 1. Ilustrasi Proses Server JPos


Keterangan:
Server akan running sebagai Request Listener menunggu message ISO8583 dari client pada host dan port
yang telah ditentukan. Setelah request diterima message akan masuk dalam transaction manager dengan
channel NACChannel dan Packager ISO87BPackager untuk mengelola apakah pesan tersebut pesan
format ISO8583 atau bukan, jika bukan pesan ISO8583 maka pesan akan diabaikan. Setelah pada
transaction manager pesan akan di get dalam bentuk pack kemudian pesan yang sudah valid tersebut di
validasi lagi MTI nya cocok tidak dengan respone yang terdapt di database sesuai dengan config yang
aktif, setelah cocok maka akan dilanjukan dengan validasi respone codenya sesuai atau tidak, jika valid
maka respone akan di kirimkan sesuai dengan bit yang aktif.

Confidential 4
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

Hal-hal yang dapat disetting pada Server:


a. Setting Port server
Setting Port pada server dapat diatur pada aplikasi Menu_Server di menu Setting Port.

b. Setting Database
Database dapat disetting pada menu setting database, dengan ketentuan sebagai berikut:
1. driver pilih sql server
2. host isikan 10.17.68.20:1433
3. nama database isikan HostSimulator
4. username isikan insys
5. dan password isikan juga insys

c. Setting Configure Name


Untuk setting Configure Name dilakukan pada menu Setting Config Name dengan memilih config
name yang akan digunakan

d. Setting Configure Value


Untuk mengatur respone value perbit yang akan di kirimkan ke client

Hal-hal yang dapat disetting pada Client:

a. Setting Database
Database dapat disetting pada menu setting database, dengan ketentuan sebagai berikut:
6. driver pilih sql server
7. host isikan 10.17.68.20:1433
8. nama database isikan HostSimulator
9. username isikan insys
10. dan password isikan juga insys

Confidential 5
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

b. Setting Configure Name


Untuk setting Configure Name dilakukan pada menu Setting Config Name dengan memilih config
name yang akan digunakan

c. Setting Configure Value


Untuk mengatur respone value perbit yang akan dikirimkan ke client

d. Setting Host
Pada aplikasi client broadcast terdapat host, ini diatur sesuai dengan ip server broadcast berjalan
misalnya di jalankan pada server development dengan ip 10.17.68.20

e. Setting Port
Pada aplikasi client broadcast terdapat port, ini diatur sesuai dengan ip server broadcast berjalan
misalnya di jalankan pada server development dengan port 7001 maka port pada client di set 7001

Confidential 6
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

2. Spesifikasi CPU
2.1. Software
2.1.1. Server JPos
Agar aplikasi ini dapat berjalan dengan semestinya, maka software-software berikut
diperlukan :
JRE (Java SE Runtime Environment)
JDK (Java SE Development Kit)
JVM (Java Virtual Machine)
Ms. SQL Server 2014 Standard Edition or More
Srvany (Windows Resource Kit)

2.1.2. Client
Agar aplikasi ini dapat berjalan dengan semestinya, maka software-software berikut
diperlukan :
JRE (Java SE Runtime Environment)
JDK (Java SE Development Kit)
JVM (Java Virtual Machine)

2.2. Hardware
2.2.1. Server JPos
Minimum requirements :
Processor Intel Core i5 1.70GHz
Memory 8 GB
Harddisk 500 GB
2.2.2. Client
Minimum requirements :
Processor i3 2GHz
Memory 4 GB
Harddisk 160GB

Confidential 7
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

3. JPos
3.1. Packager JPos
Untuk menjalankan framework jpos memerlukan packager sebagai spesifikasi message atau
ketentuan dari message ISO8583 yang diterima dan dikirim. Dalam aplikasi server JPos ini menggunakan
JPos packager : ISO87BPackager dengan format binary dan versi 1987 (ISO 8583 v1987 BINARY
Packager).
Dari uraian diatas packager yang digunakan adalah ISO87BPackager, dengan spesifikasi sebagai
berikut :
Data Element Type Usage
0 B_NUMERIC 4 MTI
1 B_BITMAP 16 Bit Map Extended
B_B_LLNUM 19 Primary account number
2
(PAN)
3 B_NUMERIC 6 Processing code
4 B_NUMERIC 12 Amount, transaction
5 B_NUMERIC 12 Amount, Settlement
6 B_NUMERIC 12 Amount, cardholder billing
7 B_NUMERIC 10 Transmission date & time
8 B_NUMERIC 8 Amount, Cardholder billing fee
9 B_NUMERIC 8 Conversion rate, Settlement
B_NUMERIC 8 Conversion rate, cardholder
10
billing
11 B_NUMERIC 6 Systems trace audit number
B_NUMERIC 6 Time, Local transaction
12
(hhmmss)
B_NUMERIC 4 Date, Local transaction
13
(MMDD)
14 B_NUMERIC 4 Date, Expiration
15 B_NUMERIC 4 Date, Settlement
16 B_NUMERIC 4 Date, conversion
17 B_NUMERIC 4 Date, capture
18 B_NUMERIC 4 Merchant type
B_NUMERIC 3 Acquiring institution country
19
code
20 B_NUMERIC 3 PAN Extended, country code
B_NUMERIC 3 Forwarding institution.
21
country code
22 B_NUMERIC 3 Point of service entry mode

Confidential 8
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

23 B_NUMERIC 3 Card Sequence Number


B_NUMERIC 3 Function code(ISO
24 8583:1993)/Network
International identifier (NII)
25 B_NUMERIC 2 Point of service condition code
26 B_NUMERIC 2 Point of service capture code
B_NUMERIC 1 Authorizing identification
27
response length
28 B_AMOUNT 9 Amount, transaction fee
29 B_AMOUNT 9 Amount. settlement fee
B_AMOUNT 9 Amount, transaction
30
processing fee
B_AMOUNT 9 Amount, settlement
31
processing fee
B_ LLNUM 11 Acquiring institution
32
identification code
B_ LLNUM 11 Forwarding institution
33
identification code
B_LLCHAR 28 Primary account number,
34
extended
35 B_LLNUM 37 Track 2 data
36 B_ LLLCHAR 104 Track 3 data
37 CHAR 12 Retrieval reference number
CHAR 6 Authorization identification
38
response
39 CHAR 2 Response code
40 CHAR 3 Service restriction code
CHAR 16 Card acceptor terminal
41
identification
CHAR 15 Card acceptor identification
42
code
43 CHAR 40 Card acceptor name/location
44 B_LLCHAR 25 Additional response data
45 B_LLCHAR 76 Track 1 Data
46 B_LLLCHAR 999 Additional data ISO
47 B_LLLCHAR 999 Additional data National
48 B_LLLCHAR 999 Additional data Private
49 CHAR 3 Currency code, transaction
50 CHAR 3 Currency code, settlement
CHAR 3 Currency code, cardholder
51
billing

Confidential 9
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

B_BINARY 8 Personal Identification number


52
data
B_NUMERIC 16 Security related control
53
information
54 B_LLLCHAR 120 Additional amounts
55 B_ LLLCHAR 999 Reserved ISO
56 B_ LLLCHAR 999 Reserved ISO
57 B_ LLLCHAR 999 Reserved National
58 B_ LLLCHAR 999 Reserved National
59 B_ LLLCHAR 999 Reserved for national use
60 B_ LLLCHAR 999 private reserved
61 B_ LLLCHAR 999 Reserved Private
62 B_ LLLCHAR 999 Reserved Private
63 B_ LLLCHAR 999 Reserved Private
B_BINARY 8 Message authentication code
64
(MAC)
65 B_BINARY 1 Bit map, tertiary
66 B_NUMERIC 1 Settlement code
67 B_NUMERIC 2 Extended payment code
B_NUMERIC 3 Receiving institution country
68
code
B_NUMERIC 3 Settlement institution county
69
code
B_NUMERIC 3 Network management
70
Information code
71 B_NUMERIC 4 Message number
B_NUMERIC 4 Data record (ISO 8583:1993)/n
72
4 Message number, last(?)
73 B_NUMERIC 6 Date, Action
74 B_NUMERIC 10 Credits, number
75 B_NUMERIC 10 Credits, reversal number
76 B_NUMERIC 10 Debits, number
77 B_NUMERIC 10 Debits, reversal number
78 B_NUMERIC 10 Transfer number
79 B_NUMERIC 10 Transfer, reversal number
80 B_NUMERIC 10 Inquiries number
81 B_NUMERIC 10 Authorizations, number
82 B_NUMERIC 12 Credits, processing fee amount
B_NUMERIC 12 Credits, transaction fee
83
amount

Confidential 10
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

84 B_NUMERIC 12 Debits, processing fee amount


85 B_NUMERIC 12 Debits, transaction fee amount
86 B_NUMERIC 15 Credits, amount
87 B_NUMERIC 15 Credits, reversal amount
88 B_NUMERIC 15 Debits, amount
89 B_NUMERIC 15 Debits, reversal amount
90 B_NUMERIC 42 Original data elements
91 IF_CHAR 1 File update code
92 IF_CHAR 2 File security code
93 IF_CHAR 6 Response indicator
94 IF_CHAR 7 Service indicator
95 IF_CHAR 42 Replacement amounts
96 B_BINARY 16 Message security code
97 B_AMOUNT 17 Amount, net settlement
98 CHAR 25 Payee
B_LLLNUM 11 Settlement institution
99
identification code
B_LLLNUM 11 Receiving institution
100
identification code
101 B_ LLCHAR 17 File name
102 B_ LLCHAR 28 Account identification 1
103 B_ LLCHAR 28 Account identification 2
104 B_LLLCHAR 100 Transaction description
105 B_LLLCHAR 999 Reserved for ISO use
106 B_LLLCHAR 999 Reserved for ISO use
107 B_LLLCHAR 999 Reserved for ISO use
108 B_LLLCHAR 999 Reserved for ISO use
109 B_LLLCHAR 999 Reserved for ISO use
110 B_LLLCHAR 999 Reserved for ISO use
111 B_LLLCHAR 999 Reserved for ISO use
112 B_LLLCHAR 999 Reserved for national use
B_LLLCHAR 999 Authorizing agent institution id
113
code
114 B_LLLCHAR 999 Reserved for national use
115 B_LLLCHAR 999 Reserved for national use
116 B_LLLCHAR 999 Reserved for national use
117 B_LLLCHAR 999 Reserved for national use
118 B_LLLCHAR 999 Reserved for national use
119 B_LLLCHAR 999 Reserved for national use
120 B_LLLCHAR 999 Reserved for national use

Confidential 11
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

121 B_LLLCHAR 999 Reserved for national use


122 B_LLLCHAR 999 Reserved for national use
123 B_LLLCHAR 999 Reserved for national use
124 B_LLLCHAR 999 Reserved for private use
125 B_LLLCHAR 999 Reserved for private use
126 B_LLLCHAR 999 Reserved for private use
127 B_LLLCHAR 999 Reserved for private use
128 B_BINARY 8 Message Authentication code
Tb. 1. Tabel ISO8583 Proses Initialize

3.2. Channel JPos


Channel berfungsi agar komunikasi dengan server berjalan dengan baik. Channel harus
disesuaikan dengan terminal yang digunakan. Channel yang digunakan adalah NAC,
sehingga dalam JPos channel digunakan NACChannel.

constructs server ISOChannel associated with a Server Socket :

public NACChannel(ISOPackager p,
byte[] TPDU,
java.net.ServerSocket serverSocket)
throws java.io.IOException

Confidential 12
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

4. Database
4.1. Deskripsi
Database yang digunakan adalah menyangkut respone yang akan dikirim sebagai balasan
message dan data-data dari pesan yang masuk dan respone sebagai track message.

4.2. Tabel Database

dst

Gambar 2. Tabel Trace Message

Confidential 13
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

dst

Gambar 3. Tabel Message Value

Confidential 14
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

4.3. Detail tabel


No. Descrip Index
Nama Tabel Remarks Script
tion
1 ConfList Tabel Table yang GO CONSTRAINT
Config berisi data dari /****** Object: Table [PK_ConfList]
uration config name [dbo].[ConfList] PRIMARY KEY
List yang aktif Script Date: 8/15/2017 CLUSTERED
10:16:58 AM ******/ (
SET ANSI_NULLS ON [Indeks]
GO ASC
SET )WITH
QUOTED_IDENTIFIE (PAD_INDEX =
R ON OFF,
GO STATISTICS_N
CREATE TABLE ORECOMPUTE
[dbo].[ConfList]( = OFF,
[Indeks] [int] IGNORE_DUP_
NOT NULL, KEY = OFF,
[ConfName] ALLOW_ROW_
[nvarchar](10) NULL, LOCKS = ON,
[Choose] ALLOW_PAGE_
[tinyint] NULL, LOCKS = ON)
[LogName] ON [PRIMARY]
[nvarchar](50) NULL, ) ON
CONSTRAINT [PRIMARY]
[PK_ConfList]
PRIMARY KEY
CLUSTERED
(
[Indeks] ASC
)WITH (PAD_INDEX =
OFF,
STATISTICS_NOREC
OMPUTE = OFF,
IGNORE_DUP_KEY =
OFF,
ALLOW_ROW_LOCK
S = ON,
ALLOW_PAGE_LOCK
S = ON) ON
[PRIMARY]
) ON [PRIMARY]
2 Conf Tabel Table yang GO CONSTRAINT
Conf berisi data dari /****** Object: Table [PK_ConfList]
config yang [dbo].[Conf] Script PRIMARY KEY
akan dipakai Date: 8/15/2017 CLUSTERED
untuk 10:16:58 AM ******/ (
menentukan SET ANSI_NULLS ON [Indeks]
respone GO ASC

Confidential 15
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

message SET )WITH


berdasarkan QUOTED_IDENTIFIE (PAD_INDEX =
config name R ON OFF,
yang aktif MTI GO STATISTICS_N
dan procces CREATE TABLE ORECOMPUTE
code. [dbo].[Conf]( = OFF,
[Indeks] [int] IGNORE_DUP_
NOT NULL, KEY = OFF,
[ConfName] ALLOW_ROW_
[nvarchar](10) NULL, LOCKS = ON,
[MTIReq] ALLOW_PAGE_
[nvarchar](4) NULL, LOCKS = ON)
[MTIResp] ON [PRIMARY]
[nvarchar](4) NULL, ) ON
[BitResp] [PRIMARY]
[nvarchar](255) NULL,
[ConditionFiel
d] [tinyint] NULL,
[ConditionValu
e] [nvarchar](max)
NULL
) ON [PRIMARY]
TEXTIMAGE_ON
[PRIMARY]
3 Fieldvalue Tabel Table yang GO CONSTRAINT
Fieldva berisi data dari SET ANSI_PADDING [PK_Fieldvalue]
lue value dari OFF PRIMARY KEY
respone GO CLUSTERED
message /****** Object: Table (
[dbo].[Fieldvalue] [Indeks]
Script Date: 8/15/2017 ASC
10:16:58 AM ******/ )WITH
SET ANSI_NULLS ON (PAD_INDEX =
GO OFF,
SET STATISTICS_N
QUOTED_IDENTIFIE ORECOMPUTE
R ON = OFF,
GO IGNORE_DUP_
CREATE TABLE KEY = OFF,
[dbo].[Fieldvalue]( ALLOW_ROW_
[Indeks] [int] LOCKS = ON,
NOT NULL, ALLOW_PAGE_
[bit2] LOCKS = ON)
[nvarchar](20) NULL, ON [PRIMARY]
[bit3] ) ON
[nvarchar](6) NULL, [PRIMARY]
[bit4] TEXTIMAGE_O
[nvarchar](12) NULL, N [PRIMARY]

Confidential 16
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[bit5]
[nvarchar](12) NULL,
[bit6]
[nvarchar](12) NULL,
[bit7]
[nvarchar](10) NULL,
[bit8]
[nvarchar](8) NULL,
[bit9]
[nvarchar](8) NULL,
[bit10]
[nvarchar](8) NULL,
[bit11]
[nvarchar](6) NULL,
[bit12]
[nvarchar](6) NULL,
[bit13]
[nvarchar](4) NULL,
[bit14]
[nvarchar](4) NULL,
[bit15]
[nvarchar](4) NULL,
[bit16]
[nvarchar](4) NULL,
[bit17]
[nvarchar](4) NULL,
[bit18]
[nvarchar](4) NULL,
[bit19]
[nvarchar](3) NULL,
[bit20]
[nvarchar](3) NULL,
[bit21]
[nvarchar](3) NULL,
[bit22]
[nvarchar](3) NULL,
[bit23]
[nvarchar](3) NULL,
[bit24]
[nvarchar](3) NULL,
[bit25]
[nvarchar](2) NULL,
[bit26]
[nvarchar](2) NULL,
[bit27]
[nvarchar](1) NULL,
[bit28]
[nvarchar](8) NULL,
[bit29]
[nvarchar](8) NULL,

Confidential 17
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[bit30]
[nvarchar](8) NULL,
[bit31]
[nvarchar](8) NULL,
[bit32]
[nvarchar](11) NULL,
[bit33]
[nvarchar](11) NULL,
[bit34]
[nvarchar](28) NULL,
[bit35]
[nvarchar](40) NULL,
[bit36]
[nvarchar](105) NULL,
[bit37]
[nvarchar](12) NULL,
[bit38]
[nvarchar](6) NULL,
[bit39]
[nvarchar](2) NULL,
[bit40]
[nvarchar](3) NULL,
[bit41]
[nvarchar](8) NULL,
[bit42]
[nvarchar](15) NULL,
[bit43]
[nvarchar](40) NULL,
[bit44]
[nvarchar](25) NULL,
[bit45]
[nvarchar](78) NULL,
[bit46]
[nvarchar](max) NULL,
[bit47]
[nvarchar](max) NULL,
[bit48]
[nvarchar](max) NULL,
[bit49]
[nvarchar](3) NULL,
[bit50]
[nvarchar](3) NULL,
[bit51]
[nvarchar](3) NULL,
[bit52]
[nvarchar](16) NULL,
[bit53]
[nvarchar](18) NULL,
[bit54]
[nvarchar](120) NULL,

Confidential 18
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[bit55]
[nvarchar](max) NULL,
[bit56]
[nvarchar](max) NULL,
[bit57]
[nvarchar](max) NULL,
[bit58]
[nvarchar](max) NULL,
[bit59]
[nvarchar](max) NULL,
[bit60]
[nvarchar](7) NULL,
[bit61]
[nvarchar](max) NULL,
[bit62]
[nvarchar](max) NULL,
[bit63]
[nvarchar](max) NULL,
[bit64]
[nvarchar](16) NULL,
[bit65]
[nvarchar](50) NULL,
[bit66]
[nvarchar](50) NULL,
[bit67]
[nvarchar](50) NULL,
[bit68]
[nvarchar](50) NULL,
[bit69]
[nvarchar](50) NULL,
[bit70]
[nvarchar](50) NULL,
[bit71]
[nvarchar](50) NULL,
[bit72]
[nvarchar](50) NULL,
[bit73]
[nvarchar](50) NULL,
[bit74]
[nvarchar](50) NULL,
[bit75]
[nvarchar](50) NULL,
[bit76]
[nvarchar](50) NULL,
[bit77]
[nvarchar](50) NULL,
[bit78]
[nvarchar](50) NULL,
[bit79]
[nvarchar](50) NULL,

Confidential 19
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[bit80]
[nvarchar](50) NULL,
[bit81]
[nvarchar](50) NULL,
[bit82]
[nvarchar](50) NULL,
[bit83]
[nvarchar](50) NULL,
[bit84]
[nvarchar](50) NULL,
[bit85]
[nvarchar](50) NULL,
[bit86]
[nvarchar](50) NULL,
[bit87]
[nvarchar](50) NULL,
[bit88]
[nvarchar](50) NULL,
[bit89]
[nvarchar](50) NULL,
[bit90]
[nvarchar](50) NULL,
[bit91]
[nvarchar](50) NULL,
[bit92]
[nvarchar](50) NULL,
[bit93]
[nvarchar](50) NULL,
[bit94]
[nvarchar](50) NULL,
[bit95]
[nvarchar](50) NULL,
[bit96]
[nvarchar](50) NULL,
[bit97]
[nvarchar](50) NULL,
[bit98]
[nvarchar](50) NULL,
[bit99]
[nvarchar](50) NULL,
[bit100]
[nvarchar](50) NULL,
[bit101]
[nvarchar](50) NULL,
[bit102]
[nvarchar](50) NULL,
[bit103]
[nvarchar](50) NULL,
[bit104]
[nvarchar](50) NULL,

Confidential 20
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[bit105]
[nvarchar](max) NULL,
[bit106]
[nvarchar](max) NULL,
[bit107]
[nvarchar](max) NULL,
[bit108]
[nvarchar](max) NULL,
[bit109]
[nvarchar](max) NULL,
[bit110]
[nvarchar](max) NULL,
[bit111]
[nvarchar](max) NULL,
[bit112]
[nvarchar](max) NULL,
[bit113]
[nvarchar](12) NULL,
[bit114]
[nvarchar](max) NULL,
[bit115]
[nvarchar](max) NULL,
[bit116]
[nvarchar](max) NULL,
[bit117]
[nvarchar](max) NULL,
[bit118]
[nvarchar](max) NULL,
[bit119]
[nvarchar](max) NULL,
[bit120]
[nvarchar](max) NULL,
[bit121]
[nvarchar](max) NULL,
[bit122]
[nvarchar](max) NULL,
[bit123]
[nvarchar](max) NULL,
[bit124]
[nvarchar](255) NULL,
[bit125]
[nvarchar](50) NULL,
[bit126]
[nvarchar](6) NULL,
[bit127]
[nvarchar](max) NULL,
[bit128]
[nvarchar](50) NULL,
CONSTRAINT
[PK_Fieldvalue]

Confidential 21
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

PRIMARY KEY
CLUSTERED
(
[Indeks] ASC
)WITH (PAD_INDEX =
OFF,
STATISTICS_NOREC
OMPUTE = OFF,
IGNORE_DUP_KEY =
OFF,
ALLOW_ROW_LOCK
S = ON,
ALLOW_PAGE_LOCK
S = ON) ON
[PRIMARY]
) ON [PRIMARY]
TEXTIMAGE_ON
[PRIMARY]
4 Log Tabel Menyimpan data GO CONSTRAINT
Log berupa log /****** Object: Table [PK_msg_netwo
messa message [dbo].[Log] Script rk_international_
ge Date: 8/15/2017 identifier]
10:16:58 AM ******/ PRIMARY KEY
SET ANSI_NULLS ON CLUSTERED
GO (
SET [id_netw
QUOTED_IDENTIFIE ork_international
R ON _identifier] ASC
GO )WITH
SET ANSI_PADDING (PAD_INDEX =
ON OFF,
GO STATISTICS_N
CREATE TABLE ORECOMPUTE
[dbo].[Log]( = OFF,
[id] [int] IGNORE_DUP_
IDENTITY(1,1) NOT KEY = OFF,
NULL, ALLOW_ROW_
[tipe] LOCKS = ON,
[varchar](50) NULL, ALLOW_PAGE_
[mti] [char](10) LOCKS = ON)
NULL, ON [PRIMARY]
[msg] [text] ) ON
NULL, [PRIMARY]
[date] [date]
NULL,
[time] [time](0)
NULL,

Confidential 22
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

CONSTRAINT
[PK_Log] PRIMARY
KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX =
OFF,
STATISTICS_NOREC
OMPUTE = OFF,
IGNORE_DUP_KEY =
OFF,
ALLOW_ROW_LOCK
S = ON,
ALLOW_PAGE_LOCK
S = ON) ON
[PRIMARY]
) ON [PRIMARY]
TEXTIMAGE_ON
[PRIMARY]

GO
SET ANSI_PADDING
OFF
GO
5 DetailMessag Tabel Menyimpan data CONSTRAINT
e DetailM Detail dari GO [PK_msg_proce
essage Message baik /****** Object: Table ssing_code]
request ataupun [dbo].[DetailMessage] PRIMARY KEY
respone Script Date: 8/15/2017 CLUSTERED
10:16:58 AM ******/ (
SET ANSI_NULLS ON [id_proc
GO essing_code]
SET ASC
QUOTED_IDENTIFIE )WITH
R ON (PAD_INDEX =
GO OFF,
SET ANSI_PADDING STATISTICS_N
ON ORECOMPUTE
GO = OFF,
CREATE TABLE IGNORE_DUP_
[dbo].[DetailMessage]( KEY = OFF,
[id] [int] ALLOW_ROW_
IDENTITY(1,1) NOT LOCKS = ON,
NULL, ALLOW_PAGE_
[tipe] LOCKS = ON)
[varchar](50) NULL, ON [PRIMARY]
[date] [date] ) ON
NULL, [PRIMARY]

Confidential 23
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[time] [time](0)
NULL,
[bit0] [text]
NULL,
[bit1] [text]
NULL,
[bit2] [text]
NULL,
[bit3] [text]
NULL,
[bit4] [text]
NULL,
[bit5] [text]
NULL,
[bit6] [text]
NULL,
[bit7] [text]
NULL,
[bit8] [text]
NULL,
[bit9] [text]
NULL,
[bit10] [text]
NULL,
[bit11] [text]
NULL,
[bit12] [text]
NULL,
[bit13] [text]
NULL,
[bit14] [text]
NULL,
[bit15] [text]
NULL,
[bit16] [text]
NULL,
[bit17] [text]
NULL,
[bit18] [text]
NULL,
[bit19] [text]
NULL,
[bit20] [text]
NULL,
[bit21] [text]
NULL,
[bit22] [text]
NULL,
[bit23] [text]
NULL,

Confidential 24
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[bit24] [text]
NULL,
[bit25] [text]
NULL,
[bit26] [text]
NULL,
[bit27] [text]
NULL,
[bit28] [text]
NULL,
[bit29] [text]
NULL,
[bit30] [text]
NULL,
[bit31] [text]
NULL,
[bit32] [text]
NULL,
[bit33] [text]
NULL,
[bit34] [text]
NULL,
[bit35] [text]
NULL,
[bit36] [text]
NULL,
[bit37] [text]
NULL,
[bit38] [text]
NULL,
[bit39] [text]
NULL,
[bit40] [text]
NULL,
[bit41] [text]
NULL,
[bit42] [text]
NULL,
[bit43] [text]
NULL,
[bit44] [text]
NULL,
[bit45] [text]
NULL,
[bit46] [text]
NULL,
[bit47] [text]
NULL,
[bit48] [text]
NULL,

Confidential 25
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[bit49] [text]
NULL,
[bit50] [text]
NULL,
[bit51] [text]
NULL,
[bit52] [text]
NULL,
[bit53] [text]
NULL,
[bit54] [text]
NULL,
[bit55] [text]
NULL,
[bit56] [text]
NULL,
[bit57] [text]
NULL,
[bit58] [text]
NULL,
[bit59] [text]
NULL,
[bit60] [text]
NULL,
[bit61] [text]
NULL,
[bit62] [text]
NULL,
[bit63] [text]
NULL,
[bit64] [text]
NULL,
[bit65] [text]
NULL,
[bit66] [text]
NULL,
[bit67] [text]
NULL,
[bit68] [text]
NULL,
[bit69] [text]
NULL,
[bit70] [text]
NULL,
[bit71] [text]
NULL,
[bit72] [text]
NULL,
[bit73] [text]
NULL,

Confidential 26
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[bit74] [text]
NULL,
[bit75] [text]
NULL,
[bit76] [text]
NULL,
[bit77] [text]
NULL,
[bit78] [text]
NULL,
[bit79] [text]
NULL,
[bit80] [text]
NULL,
[bit81] [text]
NULL,
[bit82] [text]
NULL,
[bit83] [text]
NULL,
[bit84] [text]
NULL,
[bit85] [text]
NULL,
[bit86] [text]
NULL,
[bit87] [text]
NULL,
[bit88] [text]
NULL,
[bit89] [text]
NULL,
[bit90] [text]
NULL,
[bit91] [text]
NULL,
[bit92] [text]
NULL,
[bit93] [text]
NULL,
[bit94] [text]
NULL,
[bit95] [text]
NULL,
[bit96] [text]
NULL,
[bit97] [text]
NULL,
[bit98] [text]
NULL,

Confidential 27
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[bit99] [text]
NULL,
[bit100] [text]
NULL,
[bit101] [text]
NULL,
[bit102] [text]
NULL,
[bit103] [text]
NULL,
[bit104] [text]
NULL,
[bit105] [text]
NULL,
[bit106] [text]
NULL,
[bit107] [text]
NULL,
[bit108] [text]
NULL,
[bit109] [text]
NULL,
[bit110] [text]
NULL,
[bit111] [text]
NULL,
[bit112] [text]
NULL,
[bit113] [text]
NULL,
[bit114] [text]
NULL,
[bit115] [text]
NULL,
[bit116] [text]
NULL,
[bit117] [text]
NULL,
[bit118] [text]
NULL,
[bit119] [text]
NULL,
[bit120] [text]
NULL,
[bit121] [text]
NULL,
[bit122] [text]
NULL,
[bit123] [text]
NULL,

Confidential 28
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

[bit124] [text]
NULL,
[bit125] [text]
NULL,
[bit126] [text]
NULL,
[bit127] [text]
NULL,
[bit128] [text]
NULL,
CONSTRAINT
[PK_DetailMessage]
PRIMARY KEY
CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX =
OFF,
STATISTICS_NOREC
OMPUTE = OFF,
IGNORE_DUP_KEY =
OFF,
ALLOW_ROW_LOCK
S = ON,
ALLOW_PAGE_LOCK
S = ON) ON
[PRIMARY]
) ON [PRIMARY]
TEXTIMAGE_ON
[PRIMARY]
Tb. 2. Daftar tabel-tabel di database

Confidential 29
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

5. Function
5.1. Table Function

No Name Fuction Description


static ISOPackager Memanggil ISO87BPackager menjadi variable baru yaitu
packager = new ISOPackager yang digunakan untuk mengepack Message
1
ISO87BPackager(); ISO8583 dalam format Binnary packager.

Properties properties Memanggil propertis yaitu file tempat menyimpan setting


2
= new Properties(); port server jpos dan port server broadcast
koneksi con = new Memanggil kelas koneksi untuk database
3
koneksi();
properties.load(new Menload data dari file port.properties
4 FileInputStream("port
.properties"));
String port_server = Menyimpan data port server dalam varialbel string
5 properties.getPropert port_server
y("port_server");
jTextField1.setText(p Menampilkan port_server ke jTextField1
6
ort_server);
String port_server = Menyimpan data port server dalam varialbel string
7 properties.getPropert port_server
y("port_server");
jTextField3.setText(p Menampilkan port_server ke jTextField3
8
ort_server);
String port_broadcast Menyimpan data port broadcast dalam variabel string
9 =properties.getProper host_ broadcast
ty("host_server");
jTextField4.setText(p Menampilkan port_broadcast ke jTextField4
10
ort_broadcast);
int port = Mengambil nilai port dai jTextField1 dan mengubah
11 Integer.parseInt(jText nilainya menjadi integer
Field1.getText());
byte[] TPDU = new Menginisialisasi nilai TPDU header yaitu 5 byte
12
byte[5];
NACChannel channel Meberikan deklarasi awal channel NACChannel adalah
13
= null; kosong.
channel = new Membuat nilai baru channel NACChannel berisi packager
14 NACChannel(packag dan TPDU
er, TPDU);
15 Logger.getLogger Membuat logger
org.jpos.util.Logger Mamanggil jpos util untuk ungsi logger
16 jposLogger = new
org.jpos.util.Logger();
Log4JListener Logger menggunakan log4JListener
17 log4JListener = new
Log4JListener();
jposLogger.addListen Memasukan listener ke logger
18
er(log4JListener);
ISOServer server = Memasukan port dan channel ke dalam variable isoserver
19 new ISOServer(port,
channel, null);

Confidential 18
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

server.addISOReque Membuat listener untuk menunggu pesan dari client dari


stListener(new port yang sudah di tentukan.
20
ISORequestListener()
{
21 con.setkoneksi(); Memanggil class koneksi
conn.createStatemen Mengeksekusi statement query yang di buat
22
t().execute(
String date = Menampilkan data tanggal saat ini dan menyimpanya
"CONVERT dalam variable date
23 (VARCHAR (19),
SYSDATETIME (),
120)";
new Menampilkan pesan dari bit ke 0 yaitu MTI
24 String(msg.getString(
0)
String time = Menampilkan waktu saat ini dan menyimpanya dalam
"CONVERT variable time
25
(time(0),SYSDATETI
ME())";
insert Log Menyimpan pesan di database pada table log
values('Request','"+n
ew
26 String(msg.getString(
0))+"','"+new
String(msg.pack())+"',
"+date+","+time+")
"insert DetailMessage Menyimpan pesan di database pada table detail message
values('Request',"+da
27
te+","+time+",'"+msg.
getString()
MTI mtik = new Memanggil class MTI untuk validasi MTI request sesuai
MTI(); tidak dengan respone yang di tentukan pada configure
28 database.
mtik.validasiMTI(MTI
Req, Proscode);
con.resul = Memvalidasi MTI request sesuai tidak dengan respone
con.conn.createState yang di tentukan pada configure database, jika valid maka
ment().executeQuery proses akan di lanjutkan
("select * from Conf
where
29 ConfName='"+conna
me+"' and MTIReq =
'"+MTIReq+"' and
ConditionValue='"+Pr
oscode+"'"); if
(con.resul.next()) {
String [] bit_split = Mengambil nilai bitmap respone pada database untuk
30 bitmap.split("(?<=\\G. melihat bit mana saja yang aktif
{1})");
for (int Melakukan perulanga untuk menampilkan seluruh isi
bitaktif=0;bitaktif<bit_ bitmap untuk mengecek bit aktif
31
split.length;
bitaktif++){

Confidential 19
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

int Mengubah bitmap menjadi bentuk integer


32 bitmap2=Integer.pars
eInt(bit_split[bitaktif]);
if(bitmap2==1){ Mengambil nilai bitmap bernilai 1
33
String ba=bitaktif}
ISOMsg sendp = Menyalin data messeage ISO pada variable sendp
34 (ISOMsg)
msg.clone();
String msg = Menamilkan hasil koneksi yang masuk ke server
"Connection broadcast
accepted " +
35
socket.getInetAddres
s() + ":" +
socket.getPort();
socket = new Membuat socket untuk menembak ke server broadcast
36
Socket(server, port);
input = new Mengambil nilai input dan output pesan dari server
ObjectInputStream(s broadcast
ocket.getInputStream
());
37
output = new
ObjectOutputStream(
socket.getOutputStre
am());
output.writeObject("lo Menampilkan user yang loggin
gin~" + username +
38 "~" + username + "
sedang
login...~server~\n");
String msg = (String) Menampilkan pesan hasi dari broadcast
input.readObject();
String res;
39 String type =
msg.split("~")[0];
String pengirim =
msg.split("~")[1];
int rows = Membuat table row bertambah saat user masuk.
text.split(":").length -
1;Object[][] data =
new Object[rows][1];
40
for (int i = 0; i < rows;
i++) { String t =
text.split(":")[i];
data[i][0] = t;
41 src.send(reply); Mengirim balasan respon message
if (selectedOption == Membuat kondisi jika memilih tombos yes
42 JOptionPane.YES_O
PTION)
43 System.exit(0); Mematikan system
Database a = new Memanggil form database
44
Database();
45 a.setVisible(true); Menampilkan form database
46 dispose(); Menutup form database

Confidential 20
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

Report a = new Memanggil form report


47
Report();
Setting a = new Memanggil form setting
48
Setting();
properties.setPropert Memasukan data dalam text field ke dalam property driver
49 y("driver",
JTdriver.getText());
properties.setPropert Memasukan data dalam text field ke dalam property jdbc
50 y("jdbc",
JTjdbc.getText());
properties.setPropert Memasukan data dalam text field ke dalam property host
51 y("host",
jTextField3.getText())
properties.setPropert Memasukan data dalam text field ke dalam property
52 y("database", database
jTextField5.getText())
properties.setPropert Memasukan data dalam text field ke dalam property user
53 y("user",
jTextField6.getText())
properties.setPropert Memasukan data dalam text field ke dalam property
54 y("password", password
jTextField7.getText()
properties.store(new menyimpan data dari property yang sudah di get ke dalam
FileOutputStream("da file bernama database.properties dengan judul database
55 tabase.properties"), konfigurasi
"Database
Konfigurasi")
if Mengeset driver menggunakan database mysql
(jComboBox1.getSel
ectedItem() ==
"Mysql") {
56
JTdriver.setText("co
m.mysql.jdbc.Driver")
JTjdbc.setText("jdbc:
mysql://");
else if Mengeset driver menggunakan database Sql Server
(jComboBox1.getSel
ectedItem() == "Sql
Server") {
57 JTdriver.setText("net.
sourceforge.jtds.jdbc.
Driver");
JTjdbc.setText("jdbc:j
tds:sqlserver://");
else if Mengeset driver menggunakan database Oracle
(jComboBox1.getSel
ectedItem() ==
"Oracle") {
58 JTdriver.setText("ora
cle.jdbc.driver.oracle
driver");
JTjdbc.setText("jdbc:
oracle:thin:@");

Confidential 21
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

public static Menginisialisasi sql Connection menjadi variabel conn


59
Connection conn;
public static Menginisialisasi sql statement menjadi variable stat
60
Statement stat;
public static Menginisialisasi sql resulset menjadi resul
61
ResultSet resul;
Class.forName(driver Menginisialisasi database driver berdasarkan variable
62
); driver yang di ambil dari file properties
conn = Membuat koneksi database berdasarkan url, username,
DriverManager.getCo dan password database yang sudah di inisialisasi pada
63
nnection(url, user, file properties
password);
stat = Mengeksekusi statement ke database
64 conn.createStatemen
t();
65 private String pass; menginisialisasi variable pass menjadi khusus
login log = new Memanggil class login
66
login();
pass = Mengambi nilai password
67
jtaps.getText();
68 idd = jtaid.getText(); Mengabil nilai id pada textfield
69 log.masuk(idd, pass); Mengirim variable idd dan pass ke class login
con.resul = Mengecek apakah username dari database yaitu table
con.conn.createState admin sesuai tidak dengan variable idd dan password
ment().executeQuery sesuai tidak dengan variable pass
("select * from admin
70
value where
username= '" + idd +
"' and password = '" +
pass + "'");
if (con.resul.next()) { Jika kondisi sesuai resulset sql akan melanjutkan untuk
71
Menu =new Menu(); menampilkan from menu
DefaultTableModel Membuat default table model menjadi tabmodel
72 TabModel = new
DefaultTableModel();
Runtime.getRuntime( Fungsi untuk mejalankan file batch untuk merestart
).exec("cmd /c start service windows
73
"+jTextField9.getText
());
Object[] Membuat judul kolom
judul_kolom={"Indeks
74 ", "ConfName",
"Choose",
"LogName"};
con.resul.getString(" Mengambil nilai dari database berdasarkan colom
75
"),
TabModel.addRow(d Memasukan data ke row
76
ata);
con.resul = Menampilkan config name yang aktif
con.conn.createState
77
ment().executeQuery
("select * from

Confidential 22
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

ConfList where
Choose=1")
con.resul = Membuat combobox dinamis, pilihan combobox
con.conn.createState berdasarkan dari database
ment().executeQuery
("select * from
78 ConfList");while(con.r
esul.next()){
jComboBox1.addItem
(con.resul.getString("
ConfName")); }
con.conn.createState Mengubah configlist yang aktif
ment().execute("UPD
ATE ConfList SET
79
choose = '1' WHERE
ConfName='"+newC+
"'");
con.conn.createState Membuat configlist lama menjadi tidak aktif
ment().execute("UPD
ATE ConfList SET
80
choose = '0' WHERE
ConfName='"+ownC+
"'");
setExtendedState(M Membuat frame menjadi full screen
AXIMIZED_BOTH);
Dimension
screenSize =
81 Toolkit.getDefaultToo
lkit().getScreenSize();
.. setBounds(a, b,
frameSize.width,
frameSize.height);
jTable1.setModel(Tab Membuat jtabel1 dengan isi seperti tabmodel
82
Model);
jPanel6.setVisible(fal Membuat panel tidak aktif
83
se);
TableColumnModel Membuat table colom auto resize
modelKolom =
jTable1.getColumnM
odel();
for (int kol =
0; kol <
modelKolom.getColu
84
mnCount(); kol++) {
TableColumn
kolom =
modelKolom.getColu
mn(kol);kolom.setPre
ferredWidth(lebarKol
omMax); }
UPDATE Fieldvalue Mengubah nilai pada field value
SET
85
bit"+namabit+"='"+isib
it+"' WHERE

Confidential 23
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

Indeks="+indeks_sel
ect.getText()
indeks_select.setText Mengambil nilai dari table yang diklik/dipilih.
(""+tabmodel.getValu
86
eAt(jTable1.getSelect
edRow()));
while (keepGoing) { Membuat server broadcast tetap running.
System.out.println("C
hatServer waiting for
Clients on port " +
87
port + ".");Socket
socket =
serverSocket.accept(
);
serverSocket.close(); Melihat saat client menutup koneksi
for (int i = 0; i <
clients.size(); ++i)
88
{ChatServer.ClientTh
read tc =
clients.get(i);
for (int i = Mengirim message
clients.size(); --i >=
0;)
{ChatServer.ClientTh
89
read ct =
clients.get(i); if
(!ct.writeMsg(messag
e)) {clients.remove(i);
String s = "";for Mengambil client yang masuk
(ClientThread
clientThread : clients)
90
{s +=
clientThread.usernam
e + ":";
sOutput = new Membuat Object Input/Output Streams
ObjectOutputStream(
socket.getOutputStre
am());
sInput =
new
ObjectInputStream(s
91 ocket.getInputStream
());
String
message = (String)
sInput.readObject();
username
=
message.split("~")[1];
switch (type) { Menampilkan pesan sesuai dengan case.
case "postText":
92 response =
"recieveText~" +
pengirim + "~" + text

Confidential 24
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

+ "~" + kepada +
"~\n";
send(response);
break;
case
"postPrivateText":res
ponse =
"recievePrivateText~"
+ pengirim + "~" +
text + "~" + kepada +
"~\n";
send(response);
break;
Tabel 3. Function yang digunakan Server JPos

5.2. Function View pada Form Setting Database


No Name View Description
1 jComboBox1 Untuk menampilkan jenis Driver database
2 jTextField3 Untuk menampilkan dan menyimpan data Host
3 jTextField5 Untuk menampilkan dan menyimpan data DB name
4 jTextField6 Untuk menampilkan dan menyimpan data User
5 jTextField7 Untuk menampilkan dan menyimpan data Password
6 jButton1 Untuk menyimpan data dari inputan
7 jButton2 Untuk kembali ke menu sebelumnya
Tabel 4. View yang digunakan pada Form Setting Database

5.3. Function View pada Form Menu_server


No Name View Description
1 jButton1 Untuk menampilkan form setting port
2 jButton2 Untuk menampilkan form setting database
3 jButton3 Untuk menampilkan form Setting Config Name
4 jButton4 Untuk menampilkan form Report Log
5 jButton5 Untuk menampilkan form Config value
6 jButton6 Untuk menampilkan form Track Message
7 jButton7 Untuk menampilkan form Detail Message
8 jButton8 Untuk keluar dari system
Tabel 5. View yang digunakan pada Form Menu Server

Confidential 25
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

5.4. Function View pada Form Menu_Client


No Name View Description
1 jButton1 Untuk menampilkan form Setting Config Name
2 jButton2 Untuk menampilkan form Config value
3 jButton3 Untuk menampilkan form Track Message
4 jButton4 Untuk menampilkan form Detail Message
5 jButton5 Untuk menampilkan form Setting Database
Tabel 6. View yang digunakan pada Form Menu Client

5.5 Function View pada Form Log


No Name View Description
1 jTable1 Untuk menampilkan table logger
2 jButton2 Untuk kembali ke form menu
Tabel 7. View yang digunakan pada Form Log

5.6 Function View pada Form Setting Detail Message


No Name View Description
1 jTable1 Untuk menampilkan table derail message
2 jButton2 Untuk kembali ke form menu
3 jButton1 Untuk Merefresh tabel
Tabel 8. View yang digunakan pada Form Detail Message

5.7 Function View pada Form Setting Track Message


No Name View Description
1 jTable1 Untuk menampilkan table message respone dan
request pack
2 jButton2 Untuk kembali ke form menu
3 jButton1 Untuk Merefresh tabel
Tabel 9. View yang digunakan pada Form Track Message

5.8 Function View pada Form Setting Config Name


No Name View Description
1 jTable1 Menampilkan data dari Config List
2 jButton2 Untuk menset config name yang telah di pilih
pada combobox
3 jButton1 Kembai ke menu
4 jComboBox1 Menampilkan daftar config name
5 jLabel1 Untuk menampilkan config name aktif
Tabel 10. View yang digunakan pada Form Config Name

Confidential 26
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

5.9 Function View pada Form Setting Config value


No Name View Description
1 jLabel1 Untuk menampilkan config name aktif
2 jLabel2 Untuk menampilkan Indeks Select
3 jLabel3 Untuk menampilkan Config Name Select
4 jLabel4 Untuk menampilkan MTI Req
5 jLabel5 Untuk menampilkan MTI Resp
6. jTable1 Untuk menampilkan data value berdasarkan
configname aktif
7. jTable2 Untuk menampilkan data seluruh value
berdasarkan index select dari jtabel1
Tabel 11. View yang digunakan pada Form Config Value

6.0 Function View pada Form Setting Port


No Name View Description
1 jTextField4 Untuk menampilkan dan menyimpan data port
server broadcast
2 jTextField1 Untuk menampilkan dan menyimpan data port
server JPos
3 jTextField9 Untuk menampilkan letak data file batch
4 jButton1 Menyimpan data dari inputan
5 jButton2 Untuk kembali ke form menu
Tabel 12. View yang digunakan pada Form Setting Port

Confidential 27
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

7.0 Class Library


7.1 Deskripsi
Untuk mengembangkan aplikasi Server JPos Ini terdapat beberapa library yang
digunakan. Library ini gunakan dalam server service dan server menu sehingga
apilkasi dapat berjalan dengan sebagaimana mestinya.
7.2 Library File
No. Nama File Nama Class Remarks
1 AbsoluteLayout.jar AbsoluteLayout Library ini digunakan dalam
desain GUI dimana Posisi
dan ukuran elemen anak
sebanding dengan ukuran
dan posisinya sendiri atau
dengan nilai absolut.
2 bsh-2.0b6.jar BeanShell BeanShell secara dinamis
menjalankan sintaks Java
standar dan memperluasnya
dengan kenyamanan scripting
umum.
3 commons-cli.jar commons-cli Perpustakaan Apache
Commons CLI menyediakan
opsi parsing perintah untuk
meluruskan API ke program.
Ini juga mampu mencetak
pesan bantuan yang merinci
pilihan yang tersedia untuk
alat baris perintah.
4 commons-collections4- commons-collections Paket Apache Commons
4.1.jar Collections berisi jenis yang
memperpanjang dan
menambah Java Collections
Framework.
5 commons-lang-2.6.jar commons-lang Commons Lang, paket kelas
utilitas Java untuk kelas yang
berada dalam hirarki
java.lang
6 commons-logging.jar commons-logging berguna untuk mencatat
informasi (log)
7 groovy-all-1.7.5.jar groovy Bahasa dinamis dan kuat
untuk JVM
8 HdrHistogram-2.1.9.jar HdrHistogram HdrHistogram mendukung
perekaman dan analisis
jumlah nilai data sampel di
antara rentang nilai integer
yang dapat dikonfigurasi
dengan presisi nilai yang
dapat dikonfigurasi dalam
jangkauan
9 javassist-3.21.0-GA.jar javassist Javassist (JAVA
programming ASSISTANT)
membuat manipulasi

Confidential 28
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

bytecode Java sederhana. Ini


adalah lib class untuk
mengedit bytecode di Java.
10 jdbm-1.0.jar jdbm mesin persistensi
transaksional untuk Java
11 jdom2-2.0.6.jar jdom Solusi berbasis Java yang
lengkap untuk mengakses,
memanipulasi, dan
mengeluarkan data XML
12 jline-3.2.0.jar jline Terminal untuk jna
13 jpos-2.1.1.jar jpos Lib untuk mengakses jpos,
jpos yaitu kerangka transaksi
keuangan berbasis Java.
14 jpos-controls-110.jar jpos-controls Library untuk dapat
mengontrol packager dari
jpos
15 jpos-dep.jar jpos-dep Untuk membuat Kerangka
kerja yang bisa disesuaikan
dan diperluas agar bisa
menerapkan financial
interchanges.
16 jpos-util-src.jar jpos-util-src Lib untuk mengambil fungsi
jpos util dari library.
17 jtds-1.3.12.jar jtds Library untuk menggunakan
driver JDBC untuk SQL
Server dan Sybase. JTDS
mendukung ResultSets yang
dapat diteruskan dan dapat
digulirkan / diperbarui dan
menerapkan semua metode
DatabaseMetaData dan
ResultSetMetaData.
18 junit-4.12.jar junit kerangka pengujian unit untuk
Java
19 log4j-1.2.17.jar log4j Merupakan lib untuk
menggunakan Apache Log4j
2 sebagai fungsi logger
20 mx4j-jmx.jar mx4j-jmx paket opsional untuk J2SE
yang menyediakan cara
standar untuk mengelola
aplikasi. Ini juga bisa
digunakan untuk
membungkus sistem warisan
dan menyediakan antarmuka
standar ke luar system.
21 mx4j-tools.jar mx4j-tools Lib untuk menggunakan tools
dari jmx
22 org.osgi.core-6.0.0.jar org.osgi.core-6.0.0 Antarmuka dan Kelas untuk
digunakan dalam kumpulan
class
23 slf4j.log4j12_1.5.2.jar slf4j.log4j12 Lib untuk menggunakan API
log4j, JCL dan
java.util.logging

Confidential 29
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

24 sqljdbc4-3.0.jar sqljdbc4-3.0 Library untuk MSSQL jdbc


driver
25 sshd-core-1.3.0.jar sshd-core-1.3.0 Lib untuk menngunakan
Apache Mina SSHD :: Core
xalan_2_0_0.jar xalan_2_0_0 svn.apache untuk
mengcompile lib jpos
xdoclet-1.2.jar xdoclet-1.2 Mesin generasi kode
berdasarkan data meta yang
digunakan dalam javadoc
xercesImpl-2.6.2.jar xercesImpl-2.6.2 Class untuk parser XML
berperforma tinggi yang
sepenuhnya sesuai dengan
Apache Xerces
xjavadoc-1.0.2.jar xjavadoc-1.0.2 Lib untuk menggunakan java
doc membaca file di luar
class java, Mesin XJavaDoc
adalah penulisan ulang
lengkap mesin JavaDoc Sun
yang lebih cepat dan lebih
sesuai
xml-apis-2.6.2.jar xml-apis-2.6.2 Digunakan untuk parser XML
berperforma tinggi yang
sesuai dengan Apache
Xerces
Tb. 13. Daftar file Library

Confidential 30
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

8.0 Modeling Diagram System


8.1 Flow/Activicty System

Confidential 31
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

Confidential 32
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

Confidential 33
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

Confidential 34
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

Gambar 4. Activity Server JPos

Confidential 35
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

9.0 Interface Server


9.1 Server JPos
Server JPos merupakan Server yang berjalan diservice windows, sehingga akan
lebih mudah untuk membuat server menjadi start up windows dan membuat schedulernya.
Server service dapat berjalan sesuai dengan port yang di tentukan pada file port properties
yang dapat di setting pada menu server. Server jpos service ini menggunakan packager
binary dan channel NACChannel.

Gambar 5. Server JPos berjalan di windows service

Gambar 6. Regedit Server JPos

Confidential 36
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

9.2 Server Broadcast


Server Broadcast merupakan Server yang membroadcastkan komunikasi yang
dilakukan oleh Server JPos ke client. Server Broadcast berjalan diservice windows,
sehingga akan lebih mudah untuk membuat server menjadi start up windows dan membuat
schedulernya. Server Broadcast dapat berjalan sesuai dengan port yang di tentukan pada
file port properties yang dapat di setting pada menu server.

Gambar 7. Server Broadcast berjalan di windows service

Gambar 8. Regedit Server Broadcast

Confidential 37
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

9.3 Client Broadcast


Client Broadcast mempunyai fungsi utama sebagai client yang menerima pesan dari
server broadcast. Server broadcast ini yang akan mengirim detail message yang masuk
atau yang dikirim oleh server kemduain membroadcastnya kepada client yang terhubungan
denganya. Fungsi tambahan dari client broadcast yaitu dapat mengirim pesan text kepada
client yang juga terkoneksi ke server broadcast. Client Broadcast dapat lihat pada gambar
berikut :

Gambar 9. Client Broadcast

Confidential 38
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

9.4 Menu Setting

9.4.1 Menu Utama


Server menu terdiri dari form setting port, setting database, Setting
Config Name, Config Value, Tack Message, Detail Message, report log, dan
exit untuk keluar dari system. Untuk mengakses menu dari server ini dengan
mengklik button yang tersedia. Lebih jelasnya dapat dilihat pada gambar
berikut :

Gambar 10. Daftar menu server jpos

Confidential 39
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

9.4.2 Server Menu Setting Port


Menu yang pertama yaitu setting port, disini server jpos yang berjalan
dapat di ganti portnya sesuai dengan kebutuhan kita dan saat mengganti port
service server akan otomatis direstart untuk menjalankan port baru yang
diinisialisasi sebelumnya. Menu setting port ini juga dapat menyetting port dari
server broadcast yang akan dikoneksikan, sehingga bila terdapat perubahan
server akan lebih mudah untuk menggani tujuan server broadcast. menu
setting server jpos dapat dilihat pada gambar berikut :

Gambar 11. setting port

Confidential 40
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

9.4.3 Server Menu Setting Database


Menu yang kedua yatu setting database, pada menu ini dapat mengatur
koneksi database yang diganakan. Mulai dari driver yang duganakan yaitu sql
server, mysql, dan oracle. Kemudian menyeting host dan port, diamana
terdapat ip location dari database yang digunakan. Selanjutnya dapat
mengatur database name yaitu nama dari database yang digunakan serta
dapat mengatur username dan password pengguna.

Gambar 12. Setting Database

Confidential 41
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

9.4.4 Server Menu Config List


Menu Config List ini untuk mengatur Config Name yang aktif dengan
memilih pada combo box dan mengklik set, maka config name yang aktif
akan berubah sesuai yang dipilih. Tampilan menu config list dapat dilihat
pada gambar berikut :

Gambar 13. Setting Config List

Confidential 42
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

9.4.5 Report Log


Menu Selanjutnya adalah Report Log, dimenu ini akan menampilkan
data log dari message ISO8583 yang masuk ke server. Data yang di tampilkan
berupa: type yaitu respone atau request, MTI, Message, Date, dan Time.
Fungsi menampilkan date dan time yang bukan pesan iso8583 ini adalah
untuk melihat waktu dan tanggal pesanya masuk.

Gambar 14. Report log server

Confidential 43
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

5.4.1. Detail Message


Menu Detail message akan menampilkan detail dari keseluruhan
message yang masuk ke server. Dan untuk melakukan refresh table dengan
mengklik pada tombol refresh yang tersedia. Untuk lebih jelasnya dapat
diihat pada gambar berikut :

Gambar 15. Detail Message

Confidential 44
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

5.4.2. Track Message


Pada menu Report Log ini akan menampilkan data log dari message
ISO8583 yang masuk ke server. Data yang di tampilkan berupa: type yaitu
respone atau request, MTI, Message, Date, dan Time. Fungsi menampilkan
date dan time yang bukan pesan iso8583 ini adalah untuk melihat waktu dan
tanggal pesanya masuk. Untuk merefresh table dengan menglik tombol
refresh.

Gambar 16. Track Message

Confidential 45
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

5.4.3. Config Value


Pada Menu Config Value ini akan menampilkan data config list
berdasarkan config name yang aktif. Untuk mengedit datanya klik pada table
dan pilih set maka data value sesuai bit active akan muncul. Untuk merubah
datanya dengan mengganti data yang di tampilkan pada textfield kemudian
klik set di bawah textfieldnya. Dan akan muncul notifikasi bahwa data berhasil
diedit.

Gambar 17. Config Value

Confidential 46
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

10.0 ISO Message


Message :
00 6A 60 00 00 04 47 08 00 20 20 01 00 00 80 00 84 98 00 00 00 00 02 00 00 4E 41 4F
30 30 30 30 31 00 34 16 32 33 30 31 38 31 37 39 20 20 20 20 20 20 20 20 16 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 37 16 32 33 30 31 38 31 37 39 20 20 20 20 20 20
20 20 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Description Message :
Header message : 00 6A
TPDU : 60 00 00 04 47
MTI : 08 00
BITMAP : 20 20 01 00 00 80 00 84
Active : 0, 3, 11, 24, 41, 57, 62

Data Element :
98 00 00 00 00 02 00 00 4E 41 4F 30 30 30 30 31 00 34 16 32 33 30 31 38 31 37 39 20 20
20 20 20 20 20 20 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 16 32 33 30
31 38 31 37 39 20 20 20 20 20 20 20 20 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00

- Send
Bit Data Element Name Attribute Comments
0 MESSAGE TYPE B_NUMERIC 4 0800
INDICATOR
3 PROCESSING CODE B_NUMERIC 6 980000
11 SYSTEM TRACE B_NUMERIC 6 000002
AUDIT NUMBER
24 NETWORK B_NUMERIC 3 000
INTERNATIONAL
IDENTIFIEER
41 CARD ACCEPTOR CHAR 8 NAO00001
TERMINAL
IDENTIFICACION
57 RESERVED B_LLLCHAR 00341632333031383137392020202
NATIONAL 999 02020202016000000000000000000
0000000000000000
62 RESERVED PRIVATE B_LLLCHAR 37163233303138313739202020202
999 02020201600000000000000000000
00000000000000000000

Confidential 47
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

- Respone

Conf name active :

Yatu Config name Supri

Balasan untuk configname supri dan MTI Req 0800 yaitu pada indeks 4

Bit yang aktif yaitu

Confidential 48
Internal Documentation Document

INTERNAL DOCUMENTATION DOCUMENT


PROJECT: JPOS SERVER 2017

Balasan dari server dapat dilihat pada Client Broadcast

Balasan akan disesuaikan dengan database.

Bit Data Element Name Attribute Comments


0 MESSAGE TYPE B_NUMERIC 4 0810
INDICATOR
3 PROCESSING CODE B_NUMERIC 6 990000
12 TIME, LOCAL B_NUMERIC 6 12
TRANSACTION
13 DATE, LOCAL B_NUMERIC 4 13
TRANSACTION
24 NETWORK B_NUMERIC 3 24
INTERNATIONAL
IDENTIFIEER
39 RESPONSE CODE CHAR 2 00
41 CARD ACCEPTOR CHAR 8 41
TERMINAL
IDENTIFICACION
62 RESERVED PRIVATE B_LLLCHAR 008111111111111111111111111111
999 1111111111111111111111111111111
111111111111111

Confidential 49

Anda mungkin juga menyukai