ISBN : 9 78 - 9 79 - 19 888 - 1 - 0
Pro sid ing : SEMINA R NA SIO NA L 2012
”Te knik Ele ktro Da n Info rm a tika Da la m Pe ng e m b a ng a n Te kno lo g i Be rke la njuta n”
Jurusa n Te knik Ele ktro UNRA M – Ma ta ra m , 17 Juli 201 2 275
Gambar 5 Proses Bisnis Konsumer Konsumsi eServis Provider Diagram BPMN
4.2 Hasil Sementara Interoperabilitas Sistem
Informasi Secara umum gambar 6 mengilustrasikan
pertukaran data dan protokol yang digunakan oleh partisipan PIE. Platform teknologi untuk berintegrasi
partisipan-partisipan tersebut, menggunakan teknologi yang populer di pakai pada saat ini,
misalnya rest representational state transfer, JMS Java Message Services dengan Apache ActiveMQ,
dan Web Service.
Gambar 6 Interoperabilitas Komponen PIE Sebagai contoh pada makalah ini akan
mengintegrasikan Sistem Informasi Apotik Rumah Sakit SIAR dan Sistem Informasi Administrasi
Kependudukan SIAK, seperti yang digambarkan pada gambar 7 berikut.
Gambar 7 Skenario Integrasi SIAR dan SIAK Melalui PIE
SIAR adalah sistem yang digunakan untuk membantu Apoteker dalam mengelola Apotik.
SIARS dikembangkan menggunakan bahasa pemrograman Visual Basic .Net. Salah satu program
Pemerintah Kota Denpasar adalah menggratiskan biaya pengobatan beserta resepnya di rumah sakit
pemerintah. Program ini memiliki syarat dan ketentuan yaitu hanya berlaku bagi warga kota
Denpasar yang dibuktikan dengan cara menunjukan KTP. Supaya program ini tepat sasaran maka
diperlukan verifikasi keabsahan KTP ke SIAK Sistem Informasi Administrasi Kependudukan di
Dinas Catatan Sipil.
Berdasarkan skenario tersebut maka SIARS akan mengkonsumsi eService yang disediakan oleh
SIAK dengan cara melakukan request http http:192.168.10.1:8001noktp8292929
sedangkan SIAK akan mempublis eService melalui JMS Java Server Message Queue. Broker yang
digunakan adalah Apache ActiveMQ. Selanjutnya PIE melakukan transformasi message dari satu sisi
ke sisi lain.
Petugas apoteker di Rumah Sakit menginputkan data pasien melalui form pasien
gambar 8. Didalam form tersebut terdapat beberapa isian diantaranya nomor pasien, nama
pasien, dan yang penting adalah nomor ktp.
Gambar 8 Form Input Data Pasien
Pro sid ing : SEMINA R NA SIO NA L 2012
”Te knik Ele ktro Da n Info rm a tika Da la m Pe ng e m b a ng a n Te kno lo g i Be rke la njuta n” ISBN : 9 7 8- 97 9 - 198 88- 1- 0
276 Jurusa n Te knik Ele ktro UNRA M - Ma ta ra m , 17 Juli 201 2
Di saat petugas menekan tombol save maka SIARS akan menghubungi PIE untuk mendapatkan
validitas no. KTP. PIE mengirim message ke ActiveMQ, secara random SIAK melakukan
pengecekan Queue di ActiveMQ, bila terdapat message di Queue maka akan diproses; hasilnya
dikirim kembali ke ActiveMQ, selanjutnya PIE akan melakukan transformasi ke dalam bentuk
JSON. Berikut adalah potongan kode dalam VB.Net, untuk request http ke PIE.
SIARS akan melakukan validasi nomor ktp menggunakan metod isNoKTPValid pada objek
objKTP, yang di instansiasi dari kelas KTP. Keluaran dari metod tersebut, disimpan pada
variabel bool yang bernilai true atau false. Deserialize JSON ke dalam bentuk Objek dibantu
oleh pustaka Newtonsoft.
Gambar 9 Form Daftar Master Penduduk SIAK Sistem Informasi Administrasi
Akademik, pada skenario ini dikembangkan menggunakan bahasa pemrograman Java dengan
Netbeans IDE. Sebagai contoh dibuat sebuah form untuk menampilkan data penduduk gambar 9.
Sesuai skenario, SIAK akan mempublis eService dalam bentuk JMS dengan broker Apache
ActiveMQ. Berikut adalah potongan kode JMS untuk menerima message atau mengambil message
queue dari broker : kode untuk mengirim message queue ke ActiveMQ :
private String receiveMessage { String noKTP=null;
try { Session session =
conn.createSessionfalse,Session.AUTO_AC KNOWLEDGE;
Queue queue = session.createQueueNoKTPQueueIN;
MessageConsumer consumer = session.createConsumerqueue;
Message message = consumer.receive10000;
if message instanceof TextMessage {
TextMessage msg = TextMessagemessage;
noKTP = msg.getText; }
session.close; conn.close;
} catch JMSException ex { System.out.printlnex.getMessage;
} return noKTP;
}
Dim bool As Boolean = False Dim strError As String =
Dim noktp As String Try
noktp=Me .txt_NOKTP.Text
Dim objKTP
As New
KTP noktp
, http:192.168.10.1:8001noktp
+ noktp
bool = objKTP.isNoKTPValid Catch
ex As
Exception strError = ex.Message
End Try
private void sendMessage String noktp {
try { Session session =
conn.createSessionfalse, Session.AUTO_ACKNOWLEDGE;
Queue queue = session.createQueueNoKTPQueueOUT;
MessageProducer producer = session.createProducerqueue;
producer.setDeliveryModeDeliveryMode.NO N_PERSISTENT;
TextMessage message = session.createTextMessagenoktp;
System.out.println sent message = +message.hashCode;
producer.sendmessage; session.close;
conn.close; }catch JMSException ex {
Logger.getLoggerSiakJMS.class.getName .logLevel.SEVERE, null, ex;
} }