Tuesday 17 November 2020

Aplikasi Berbasis Microservices dalam dunia Komputasi Cloud

Kita tentu pernah menggunakan aplikasi atau software untuk keperluan bisnis atau menjalankan sebuah aktifitas yang memertlukan alat bantu aplikasi berbasis komputer. Aplikasi ini sebenarnya berjalan dalam sebuah infratruktur yang kemungkinan rumit untuk dapat selalu dikembangkan atau dikelola secara baik dan cepat.

Kini muncul sebuah konsep pengembangan atau membangun aplikasi berbasis Microservices yang mampu mengubah cara kita mengelola aplikasi yang rumit dan selalu berkembang karena perubahan kebutuhan yang cepat.

Monolitik (Monolithic) vs Microservices

Cara yang paling gampang, untuk menggambarkan apa itu Microservice adalah dengan membandingkannya dengan cara lama yang kini kita kenal sebagai Monolitik.


Sebuah aplikasi besar akan memiliki banyak service (layanan, fungsi atau tugas) yang saling terkait satu sama lain untuk menghasilkan sebuah hasil kerja yang diharapkan.

Dalam aplikasi berbasis Monolitik, semua service, fungsi atau tugas itu sudah saling diikat atau dibungkus dalam satu kemasan yang tidak dapat dipisahkan kembali. Mereka sudah terikat dalam satu ikatan sebagai sebuah produk.

Aplikasi berbasis Microservices tidak membungkus service yang ada dalam satu kemasan, melainkan masing-masing berdiri sendiri sebagai sebuah microservices. Kita bisa merangkai masing-masing fungsi itu sesuai dengan kebutuhan yang kita inginkan dan juga kita bisa menentukan berapa banyak service yang dibutuhkan untuk memaksimalkan peran aplikasi secara keseluruhan.

Apa Keuntungan dari Aplikasi Berbasis MicroServices

Pada aplikasi berbasis MicroServices, jika service atau fungsi atau tugas nomor 2 ditemukan bug atau masalah yang harus diperbaiki, maka kita hanya perlu fokus memperbaiki potongan program yang terdapat pada service nomor 2 tanpa mengubah atau menyentuh potongan program yang terdapat pada service yang lain serta mengaktifkannya kembali setelah perbaikan. Mari kita bandingkan dengan aplikasi berbasis Monolitik, kita harus membuka ikatan-ikatan itu dan menjaga ikatan tersebut agar bisa digabungkan kembali pada saat kita selesai memberbaiki. Sehingga perbaikan di dalam aplikasi berbasis MicroServices bisa berjalan lebih cepat dan dengan resiko yang kecil.

Aplikasi berbasis Microservices akan berjalan dalam sebuah environment atau infrastruktur tertentu, yang memudahkan kita untuk bertindak lebih cepat jika dibutuhkan. Mari kita ilustrasikan, service 1 adalah potongan program yang berfungsi untuk menginput data yang dilakukan oleh pengguna aplikasi. Ternyata, setelah jumlah pengguna bertambah menjadi 2 kali lipat sehingga proses input menjadi lambat karena melayani banyak input data. Sedangkan service 2 adalah proses untuk melakukan update ke database tetap berjalan sangat cepat.

Dengan aplikasi berbasis Microservices, dengan mudah, kita bisa menambah jumlah service 1 berjalan lebih banyak di environment tanpa perlu melakukan perubahan di dalam program. Dengan penambahan ini, pengguna yang banyak akan dilayani oleh beberapa proses yang berjalan paralel sedangkan service 2 ternyata masih cukup cepat untuk bekerja dengan 1 proses saja.  


Microservices dan Container

Container adalah sebuah konsep dimana program-program microservices bisa berjalan secara independent dan tidak tergantung oleh bahasa pemprograman apapun. Kita bisa saja membuat potongan program microservices menggunakan bahasa Java, Python, PERL atau bahasa lainnya. Potongan program ini, kemudian akan dibuild atau dibentuk sebagai sebuah Image. Pada saat sebuah potongan program sudah berubah menjadi image, dia bisa berjalan di Container Engine sebagai sebuah microservices yang berjalan secara independent. Image akan terbentuk dengan menggabungkan potongan program yang kita buat termasuk semua objek yang diperlukan sehingga begitu menjadi Image, dia siap untuk berjalan sebagai proses yang berdiri sendiri.

Apa yang perlu kita lakukan untuk mengimplementasikan semua ini? Kita cukup melakukan instalasi software yang berfungsi sebagai Container Engine (misal , softwareyang populer saaat ini adalah Docker). Pada saat Docket terinstall di komputer kita, kita dengan mudah dapat memasukkan semua image yang kita inginkan (atau potongan program yang sudah di-build untuk berjalan di Container, apapun bahasa pemprogrammannya).  



Java Spring Boot

Bagi programmer yang terbiasa menggunakan Java, kini terdapat sebuah framework yang namanya Java Spring Boot. Dengan menggunakan framework ini, kita bisa membuat potongan program dengan Java, kemudian kita bisa membuat paket yang berisi semua object yang dibutuhkan agar potongan program java kita bisa berjalan independent.

Mari kita lihat, jika saat ini kita memiliki website yang dibangun dengan Java. Kita perlu menginstall Tomcat sebagai application server, kita perlu mengatur konfigurasi tomcat dan kita perlu mengatur semua library yang dibutuhkan. Artinya potongan program Java kita tidak dapat berjalan sendirian, saya perlu menjalankan tomcat terlebih dahulu, kemudian tomcat akan memanggil program website saya.

Bandingkan jika kita menggunakan framework Java Spring Boot, potongan program website yang kita buat akan dibentuk menjadi sebuah paket (misal menghasilkan satu file program_saya.jar) yang sudah menggabungkan semua kebutuhan library dan konfigurasi untuk berjalan secara independent. Saya hanya butuh memanggil program_saya.jar, tanpa perlu tambahan apapun.

Itu sebabnya, framework Java Spring Boot cukup populer dalam pengembangan aplikasi berbasis microservices, jika anda adalah programmer yang terbiasa menggunakan Java.

Bagi anda yang tidak terbiasa menggunakan Java, jangan kuatir karena anda bisa menggunakan bahasa yang anda kuasai untuk membangun Image yang juga siap berjalan di Container.


--------
Link:
Topik tentang mengenai kehidupan di Singapura: Kehidupan di Singapura 
Topik tentang mengenali teknologi informasi: Mengenali Teknologi Informasi

Bagaimana Singapura Mengelola Ketersediaan Air Bersih

Salah satu hal yang saya lakukan pada saat luang adalah bersepeda sendirian untuk sekedar membakar kalori dan mengeluarkan lemak dalam bentuk keringat. Secara kebetulan saya sampai di Bedok Reservoir dan terlintas bagaimana kota Singapura mengelola supply air bersih ke penduduk.  

 

Mungkin ada yang bertanya 
  • Bagaimana air didistribusikan semua rumah di singapura dan dapat diminum langsung dari keran
  • Apakah Singapura tidak pernah mengalami kemarau panjang?
  • Pernahkan air PAM berhenti mengalir, sehingga rumah-rumah tidak memperoleh air? Saya bersyukur selama 15 tahun, air selalu mengalir ke rumah-rumah.
  • Bagaimana Singapura membangun cadangan supply air bersih?
Tertarik untuk tahu ?




Mari kita mulai dari gambar adalah suasana di Bedok Reservoir dan ini adalah salah satu reservoir di Singapura yang kebetulan dekat dengan rumah saya (lebih kurang 3 km dari rumah).

Apa itu RESERVOIR ?

Reservoir adalah kawasan yang sengaja dibentuk untuk menampung atau mengumpulkan air. Dengan sebuah prinsip bahwa air bisa dikumpulkan atau diarahkan ke reservoir. Saat ini, terdapat lebih kurang 17 reservoir di Singapura. Dan kita tidak diperkenankan untuk mengambil air tanah atau menggali air tanah.

Semua keperluan air di Singapura diperoleh dari reservoir-reservoir ini. Air dari reservoir diolah terlebih dahulu di sebuah induk pengolahan di masing-masing reservoir. Kemudian air itulah yang didistribusikan ke rumah-rumah dengan kendali kesehatan level tertentu. Sehingga, air tersebut bisa kita minum pada saat keluar dari keran.

Reservoir juga bisa dijadikan sebagai taman atau park buat warga untuk berinteraksi, bermain atau berolahraga. Terdapat track buat jogging, kita juga bersepeda dan ada kawasan bermain serta arena kumpul lainnya seperti komunitas penggemar burung dan lain-lain.

Kawasan reservoir juga dapat dijadikan sebagai sarana fisik untuk pusat olah raga air. Kita juga akan menemui kegiatan olah raga seperti kanoe, dragon boat dan sky air. Dan dengan 17 reservoir atau tempat pengumpul atau tempat penampungan air itulah sumber utama air di rumah-rumah.

Apakah ada sumber lain? Ternyata jawabannya masih ada.


Bendungan Marina atau Marina Barrage

Ini dia kekuatan atau pertahanan air berikutnya, Itu adalah bendungan MARINA atau marina barrage. Di sisi kanan atau sisi yang menjauh, adalah lautan lepas dimana kita bisa berenang sampe ke pulau jawa jika kita seorang Manusia Ikan  yang cukup kuat untuk berenang sejauh itu.😀😀.

Di sisi sebelahnya adalah sungai yang membentang di pusat kota Singapura. Mungkin kita pernah berjalan-jalan di Singapura dan bertemu dengan sebuah kawasan patung Singa yang sedang menyemburkan airnya, patung tersebut terletak tidak jauh dari kawasan ini. Rasanya, kita belum ke Singapura, jika belum mendapatkan foto di kawasan patung Singa tersebut..

Bendungan ini, akan menghalangi air sungai untuk bertemu langsung dengan air laut. Dan air sungai tertahan dapat diolah untuk dijadikan sumber air cadangan di kota Singapura.

Di atas kantor pengelola bendungan ini, beratap rumput.. biasanya di situlah para penggemar layang-layang berkumpul untuk memaainkan layangannya. Dan kembali, kawasan ini dijadikan sebagai taman Bendungan Marina, serta kita bisa melihat penduduk berkumpul, jogging, bersepeda atau bermain layang-layang.



--------
Link:
Topik tentang mengenai kehidupan di Singapura: Kehidupan di Singapura 
Topik tentang mengenali teknologi informasi: Mengenali Teknologi Informasi

Wednesday 14 January 2015

Menggunakan Lean Management dalam Pendekatan AGILE atau SCRUM

Prinsip-prinsip dasar manajemen Lean telah lama diterapkan dan teraplikasi dengan baik dalam industri terutama dalam operasi produksi di pabrik Toyota. Dalam beberapa riset saat ini, ternyata terapan Lean dapat diadaptasikan dalam industri Teknologi Informasi terutama dalam pengembangan software yang menggunakan metodologi Agile, terutama Scrum sebagai salah satu bentuk metodologi Agile.

Tulisan ini bertujuan untuk melihat secara ringkas bagaimana prinsip-prinsip Lean dapat diterapkan dalam pengembangan software atau perangkat lunak dalam industri Teknologi Informasi. Sebelum kita menuju ke sana, mungkin kita akan melihat terlebih dahulu secara singkat apa itu manajemen Lean.

Manajemen dan Prinsip dari Lean

Secara sederhana, saya dapat mengatakan 3 point penting disini, yaitu dalam sebuah kegiatan industri atau proses dari input menjadi output kita harus mengendalikan hal-hal sbagai berikut:
  • Selalu focus kepada membangun added-value kepada customer atau klien. Kita sering mengenalnya sebagai customer-driven.
  • Kedua adalah fokus kepada menghilangkan proses/kegiatan yang tidak berkaitan secara langsung terhadap peningkatan added value.
  • Dan yang ketiga adalah proses ini harus berjalan secara terus menerus dan berkelanjutan.
Dalam pelaksanaannya, program ini harus dijalankan secara menyeluruh dengan melibatkan semua unsur mulai dari supplier sampai customer dan semua pihak yang terlibat di dalam proses transformasi dari input menjadi output. 

Mari kita mencoba untuk melihat ilustrasi mengenai prinsip-prinsip Lean secara singkat dan sederhana. Salah satu contoh prinsip Lean, adalah menemukan defect atau kesalahan atau ketimpangan secara dini. Adalah sebuah fakta, pada saat defect baru ditemukan diakhir proses, banyak sekali waktu dan tenaga yang telah terbuang untuk sampai di proses akhir. Bayangkan karena asumsi yang salah dalam proses design dan baru terdeteksi ditahapan akhir, maka seluruh waktu, tenaga dan uang yang dikeluarkan akan menjadi sangat signifikan hilang percuma. 

Salah satu cara untuk mengimplementasikan prinsip manajemen Lean pada kasus di atas, maka manajemen meminta bahwa selalu ada review dari semua pihak baik itu customer, supplier dan pihak-pihak yang terlibat langsung dalam proses secara reguler. Kebanyakan kelayakan atau review menyeluruh baru dilakukan pada saat testing akhir. Effort yang sedikit kita keluarkan untuk review jauh lebih baik dibandingkan effort yang akan terbuang banyak jika kita hanya melakukan review diakhir. Ini sesuai dengan prinsip Lean untuk meng-eliminasi kegiatan yang sebenarnya dilakukan terhadap produk yang defect (elimate waste of making defective product).

Terdapat 7 prinsip pemborosan (atau kegiatan yang tidak berkaitan langsung terhadap pningkatan added-value) yang harus dihilangkan. Semua pihak terlibat mencoba untuk mengidentifikasi kemungkinan munculnya hal ini dan menyiapkan strategi untuk menghilangkannya.
  • Eliminate waste of overproduction
  • Eliminate waste of time on hand (waiting)
  • Eliminate waste of transportation
  • Eliminate waste of processing itself
  • Eliminate waste of stock on hand (inventory)
  • Eliminate waste of movement
  • Eliminate waste of making defective product
Pada ilustrasi sebelumnya, kondisi tersebut mengacu pada prinsip yang terakhir yaitu menghilang pemborosan yang terjadi karena produk yang kita bangun adalah produk defect. Kiini mari kita lihat ilustrasi yang lain. 

Lean adalah proses berkelanjutan, sedapat mungkin kita dapat memenuhi kebutuhan dan memberikan added value yang cepat kepada customer atau client sehingga mereka para client dapat memanfaatkan added value dari produk kita secara cepat. Selanjutnya kita bisa menambahkan added value berikutnya secara berkelanjutan. 

Kita sering melihat sebuah situasi dimana kita berlama-lama untuk menghasilkan sesuatu yang cukup "sophisticated" menurut kita, tetapi belum tentu semua itu kan dibutuhkan oleh client atau customer kita. Pendekatan Lean, lebih menekankan added-value yang bertahap dan berkelanjutan. Added value apa yang paling diperlukan oleh client atau customer pada saat ini (penekanan "paling diperlukan pada saat ini"), maka kita akan fokus hanya itu yang akan kita lakukan dan implementasi secepatnya. Selanjutnya akan berjalan secara terus menerus berkelanjutan sesuai dengan pembelajaran semua pihak yang terlibat.

Kita tidak perlu melakukan "overproduction" dengan mengembangkan sendiri keinginan atau imajinasi kita, sementara hal tersebut belum tentu dibutuhkan pada saat ini. Jika pada saat pengembangan muncul ide-ide tambahan, jadikan itu sebagai catatan untuk pengembangan yang selanjutkan. Kita harus fokus kepada kebutuhan saat ini.


Manajemen Lean dan Metodelogi PengembanganSoftware AGILE/SCRUM 

Prinsip-prinsip yang dimiliki oleh Manajemen berbasis Lean memiliki kesamaan dengan metodologi pengembangan software yang saat ini lebih dikenal dengan sebutan metode AGILE. Metode pengembangan software menggunakan Agile memiliki kesamaan prinsip dengan Lean. 

Agile adalah salah satu metodologi pengembangan software yang menekankan proses kolaborasi, adanya iterasi proses pengembangan yang terus menerus dan adanya incremental product (silahkan baca tulisan saya mengenai Agile di blog ini "Tentang Agile"). Situasi atau prinsip ini sangat menyatu dengan Lean. Untuk itu, banyak beberapa buku yang menyatakan bahwa Lean adalah salah satu metode pengembangan software di bawah Agile. 

Dalam praktek pengembangan software, prinsip-prinsip Lean sering digunakan secara bersama-sama (incorporated) dengan metode pengembangan Agile. Dan salah satu metode Agile yang populer saat ini adalah Scrum. Proyek pengembangan software yang berjalan menggunakan metode Scrum dapat memasukkan prinsip-prinsip Lean. (silahkan baca juga metode Scrum di blog ini "Tentang Scrum")


Lean Software Development 

Sekarang, mari kita lihat bagaimana kita dapat mengadopsi prinsip-prinsip Lean dalam pengembangan software dan prinsip ini dapat disatukan pada saat kita menjalan proyek IT menggunakan Scrum. Kita dapat meng-ilustrasi-kan proyek yang diajalankan dengan cara Scrum adalah membagi proyek yang besar menjadi beberapa bagian dan setiap bagian akan menghasilkan incremental product. 

Kita mengenal konsep yang namanya "sprint", katakanlah tim Scrum ini menetapkan setiap sprint adalah 3 minggu. Maka tim ini akan menetapkan sub-produk apa saja yang akan dihasilkan dari sprint pertama sampe sprint terakhir dimana setiap sprint akan berjalan 3 minggu. Selama 3 minggu (1 sprint), mereka akan fokus dengan satu added value atau "running version software". Kemudian, mereka akan fokus kepada potongan running version berikutnya dan dikerjakan dalam waktu yang sama (sprint kedua) dan begitu seterusnya.

Tentu saja, prinsip-prinsip Lean dapat disinergikan dengan pelaksaan pengembangan proyek menggunakan Scrum.

a. Menghilangkan aktifitas yang tidak berkaitan langsung dengan End Product
Fokuskan waktu dan tenaga serta diskusi kita dengan spesifik added value yang kita harapkan sebagai sebuah End Product. Software atau aplikasi yang kita kembangkan harus berdasarkan keinginan client. Imajinasi atau ide sesaat yang muncul pada saat pembuatan program, cukup menjadi catatan terlebih dahulu dan nantinya akan menjadi bahan untuk pengembangan selanjutnya. Kita tidak terlalu perlu untuk berlama-lama dengan ide-ide baru yang tiba-tiba datang. Fokus dengan apa yang diinginkan client saat ini dan diskusikan nanti ide-ide baru setelah bagian ini selesai. 

b. Melakukan pembelajaran secara berkelanjutan
Pada saat pengembangan berlangsung, kita dapat selalu melibatkan user atau klien untuk mencoba atau mereview atau pengecek apakah progress pengembangan dan memberikan kesempatan kepada mereka untuk menyampaikan feedback. Sedapat mungkin kita sudah melibatkan user dari awal selain sebagai sarana untuk mendapatkan early feedback, juga dapat dijadikan wahana untuk proses pembelajaran guna pengembangan yang berkelanjutan.

c. Menunda sesuatu sampai memang dibutuhkan
Pada saat program/software sedang dibuat, begitu banyak ide yang tiba-tiba datang dan mengalir begitu deras. Dalam prinsip Lean, sebaiknya kita menunda untuk mengimplementasikan sesuatu yang bukan menjadi tujuan utama saat ini. Kita harus fokus untuk memenuhi added value yang sangat ini telah ditunggu oleh klien kita, karena bisa jadi, jika kita terlambat sedikit saja, kerugian besar terhadap peluang bisnis menjadi hilang. Yang kedua, apa yang kita inginkan atau kita pikirkan adalah sesuatu yang belum tentu benar-benar dibutuhkan klien kita saat ini.

d. Deliver Software as fast as possible
Klien kita adalah pihak yang berperang dengan waktu karena kesempatan memiliki parameter waktu. Suatu kesempatan bisnis akan menjadi hilang dan effort yang kita keluarkan menjadi tidak bermakna jika kita terlambat mengantisipasinya. Untuk itu, Lean menekankan untuk fokus kepada kebutuhan klien "saat ini". Secepatnya selesaikan modul utama yang dibutuhkan, untuk kemudian dapat dikembangkan sebagai proses belajar yang berkelanjutan.

e. Empower Programming Team
Berikan para programmer kesempatan untuk juga mengakses informasi dan libatkan mereka mulai dari awal sampai akhir. Akan banyak hal yang dapat didefiniskan secara bersama mengenai End-Product jika programmer diberikan kesempatan untuk juga meng-akses semua informasi yang ada serta dilibatkan.
Selama proses pngembangan, kita cukup berdiskusi dengan programmer mengenai timeline secara bersama. Pada saat timeline itu disepakati, maka berikan mereka power dan otoritas untuk memutuskan bagaimana dia membuat program, selama itu berfokus kepada end-product dan memenuhi target timeline.

f. Pengujian sistem atau testing terintegrasi selama proses development
Selama proses pengembangan, Lean mngharapkan kita untuk selalu dapat melakukan testing dan sesi customer/client feedback, yang sebisa mungkin dilakukan secara reguler sebagai bagian yang terintegrasi selama proses pengembangan (dari awal sampai akhir). Lean tidak mengharapkan bahwa pegujian sistem hanya akan dilakukan diakhir proses, melainkan sebagai aktifitas yang reguler dan tidak hanya dilakukan diakhir proses sehingga kesalahan asumsi dapat dideteksi lebih awal.

g. Focus kepada system secara penyeluruh
Ongoing testing tidak hanya dilakukan di level unit testing, Lean mengharapkan aktifitas ongoing testing (yang dilakukan sebagai bagian dari proses development) juga mencakup system level. Dan aktifitas ini diharapkan sebagai sebuah kolaborasi antar tim untuk melihat kemungkinan adanya defect lebih awal.



--------
Link:
Topik tentang mengenai kehidupan di Singapura: Kehidupan di Singapura 
Topik tentang mengenali teknologi informasi: Mengenali Teknologi Informasi


#### 2015 ####
Semoga Bermanfaat
"Suatu hari di tahun 2015. Saat itu, terlihat beberapa buku Lean Management di Tampines Library sewaktu menemani anak-anak di sana dan tiba-tiba ingat beberapa beberapa bacaan sebelumnya di kantor."

Saturday 3 January 2015

Cerita Singkat ISO20022 Sebagai Salah Satu Standard Messaging Industri Keuangan

Saat ini dan masa lalu

Sejak tahun 1970-an, kemampuan IT telah memulai terbentuknya interaksi dan integrasi yang bersifat global antar bank. Kunci dari keberhasilan ini adalah terciptanya standarisasi dokumen atau message yang berlaku dan disepakati secara global di industri perbankan pada saat mereka saling beriteraksi.

Mari kita lihat salah satu contoh dokumen transfer uang sederhana berikut ini. Dokumen ini memiliki fungsi yang hampir sama pada saat kita mengisikan form untuk menabung atau mengambil uang dalam berinteraksi dengan sebuah bank.

:32A:150105USD1000,
:50K:MR. ANDI
JAKARTA
:59:/987654321
MR. ANDA
NEW YORK

Sebagai sebuah ilustrasi, sebuah bank A di Jakarta mengirinkan sebuah dokumen transfer dengan isi seperti di atas kepada bank B yang berdomisili di New York. Karena semua bank di dunia telah sepakat dengan format tersebut, maka bank B dapat menterjemahkan dokumen tersebut sebagai berikut :

  • kode :32A: menunjukan bahwa bank A mengirimkan uang sebanyak USD1000, yang akan efektif terhitung sejak tanggal 05 Januari 2015.
  • kode :50K: menunjukan seseorang bernama Mr. Andi (sebagai nasabah bank A) telah meminta bank A untuk mengirimkan uang tersebut kepada bank B.
  • kode :59: menunjukkan bahwa uang tersebut akan ditransfer kepada seseorang bernama Mr. Anda dengan nomor rekening '987654321' sebagai nasabah bank B.
Dapat dibayangkan jika semua bank di dunia bisa memahami kode-kode tersebut dan menjadikannya sebagai sebuah standard. Itulah yang terjadi saat ini, komunitas perbankan di dunia telah menciptakan ratusan dokumen standar guna memudahkan mereka berinteraksi secara global dengan mudah dan cepat.

Jika kita berniat menyelami lebih jauh dokumentasi yang telah dipublish oleh komunitas ini, maka kita akan melihat pengelompokan dokumen, nama dokumen yang saat ini digunakan, kode-kode apa saja yang terdapat pada setiap dokumen, contoh penggunaan dokumen dan lain sebagainya. 

Saat Ini Dan Masa Depan

Keunggulan atau keuntungan serta keberhasilan standarisasi ini, membuka peluang bagi industri perbankan untuk membangun infrastruktur yang lebih flexible dan mudah dalam pengembangannya. 

Secara perlahan banyak korporasi (atau perusahaan besar yang menjadi nasabah bank) mulai melirik kemampuan ini dan berharap untuk dapat memanfaatkan standarisasi ini sehingga mereka dapat berhubungan atau berinteraksi dengan bank mana saja di dunia. Tidak sedikit sebuah korporasi global selalu berinteraksi dengan beberapa bank. Dengan tergabungnya mereka dengan standarisasi ini, sistem informasi mereka dapat dengan mudah berhubungan dengan bank dalam menjalankan fungsi-fungsi keuanganya seperti urusan eksport/impor atau cash management.

Di industri keuangan sendiri, perbankan bukanlah satu-satunya pemain dalam industri ini. Pasar bursa, komunitas keuangan dan kalangan regulasi juga mulai menggunakan standarisasi ini. Mungkin kita pernah mendengar beberapa financial market infrastructure seperti CREST (regulator di bursa london), SEPA atau TARGET2 (sebuah infrastruktur payment dan cash management berbasis mata uang EURO) atau T2S (TARGET2 Securities) yang mencoba mengintegrasikan regulator custody dan Central Bank. Di kawasan Asia, misal di Singapore, mereka telah mulai mengintegrasikan RTGS dan SGS (Securities atau transaksi surat berharga) dengan standarisasi yang sama.

Dengan perkembangan yang cukup pesat tersebut, maka kini diperkenalkan sebuah standarisasi yang disebut dengan ISO20022. Sama dengan kondep ISO yang lain, standarisasi ini relah didaftarkan ke OSI sebagai salah satu standard dunia dimana SWIFT adalah organisasi yang berhak untuk mereview, melakukan approval dan melakukan registrasi terhadap semua dokumen yang terdaftar di dalam ISO20022.

Secara teknis, ISO20022 adalah sebuah kumpulan standard dokumen yang secara khusus dibangun guna mengintegrasikan dunia financial market infrastructure. Dokumen tersebut dibangun dengan mengimplementasikan XML format, dimana hampir semua tool perangkat lunak memiliki API atau interface yang dapat diprogram dengan mudah guna membaca atau membuat dokumen berbasis XML.

Mengapa XML Format Menjadi Populer

Bagi kalangan IT, istilah XML bukanlah sesuatu yang asing dengan fleksibiltas dan kemudahan programming yang sangat tersedia hampir pada semua tool programming atau aplikasi di pasaran IT saat ini.

Agar lebih mudah memahami keuntungan XML bagi yang baru saja mengenal istilah XML, mari kita lihat format XML secara sederhana. XML adalah sebuah cara me-representasi-kan data menggunakan pola tag pembuka dan penutup. Saya begitu yakin bahwa representasi data berikut akan lebih mudah dipahami oleh kita.

<personalinfo>
      <nama>Eko Kusuma</nama>
      <alamat>Singapore</alamat>
</personalinfo>

Dengan menggunakan konsep tag pembuka dan penutup, kita dapat mengenali bahwa data di atas merepresentasikan personal information dari seseorang yang memiliki 'nama' sebagai 'Eko Kusuma' dan yang bersangkutan memiliki 'alamat' di 'Singapore'.

Mari kita kembali lagi contoh dokumen pertama di atas pada kode ':50K'.

:50K:MR. ANDI
JAKARTA

Dengan menggunakan XML, informasi tersebut dapat direpresentasikan sebagai berikut.

<Debitor>
       <Name>MR. ANDI</Name>
       <Address>JAKARTA</Address>
</Debitor>

Representasi yang sangat "human readable" ini, ternyata juga menghasilkan kemudahan dan fleksibelitas yang tinggi bagi komputer dalam pemproses informasi dalam bentuk tersebut. Inilah yang dimaksud dengan format XML di dunia IT.

Satu hal yang sangat berbeda antara konsep lama dengan konsep ISO20022 adalah penggunaan XML dalam merepresentasikan informasi. 

Bagaimana Identifikasi Dokumen ISO20022

Terdapat ratusan jenis dokumen yang telah distandarisasi dalam repository ISO20022 dan setiap jenis dokumen adalah sebuah representasi proses bisnis yang terjadi antar institusi. Untuk memudahkan proses repository dan penggunaan dokumen, setiap dokumen memiliki penamaan atau disebut juga message identifier menggunakan format "xxxx.nnn.nnn.nn". 

Untuk menggambarkan makna identifikasi tersebut secara mudah, mari kita lihat salah satu dokumen atau 'message identifier' dengan nama 'pacs.008.001.02'.
  • Satu set 4 huruf pertama menunjukkan kategori dari dokumen tersebut. Dalam contoh di atas, "pacs" bermakna 'Payment Clearing & Settlement". Artinya, semua dokumen yang berkaitan dengan aktifitas pembayaran atau transfer uang akan berada pada kelompok ini. Hal ini juga berarti bahwa, pada saat kita melihat sebuah dokumen yang namanya diawali dengan 'pacs', maka kita dapat mengatakan bahwa dokumen tersebut terkait dengan transaksi payment.
  • 3 angka yang mengikuti kode ini menunjukkan fungsi yang sebenarnya dari dokumen ini. Dalam contoh di atas, kode '008' bermakna bahwa dokumen ini secara spesifik memiliki fungsi "Financial Institution to Financial Institution Credit Transfer". Dokumen ini akan digunakan, jika sebuah bank ingin mengirimkan uang ke bank lain (tanpa melibatkan nasabah). Dalam hal ini, tentu saja dalam kelompok dokumen 'pacs', masih terdapat beberapa lagi dokumen dengan nomor berbeda untuk tujuan berbeda tetapi masih dalam kategori payment.
  • 3 angka berikutnya menunjukkan varian dari dokumen ini. Umumnya akan memiliki angka '001' sebagai base definition. Varian ini akan terlhat, jika dalam satu komunitas keuangan menggunakan dokumen ini, tetapi memiliki format sedikit berbeda guna kebutuhan khusus yang tidak dapat dipenuhi oleh definisi dasar.
  • Dan 2 angka terakhir menunjukkan versi dari dokumen. Dalam contoh di atas, dokumen ini merupakan versi atau release kedua yang pernah ada dalam repository ISO20022.
SEG (Standard Evaluation Group) untuk ISO20022 telah menetapkan beberapa kategori dokumen yang dapat digunakan sebagai 4 huruf pertama dalam message identifier. Beberapa kategori dokumen  dapat dilihat di bawah ini :

acmt [1] – Account Management
admi [2] – Administration
caaa [3] – Acceptor to Acquirer Card Transactions
camt [4] – Cash Management
catm [5] – Terminal Management
pacs [6] – Payments Clearing & Settlement 
pain [7] – Payments Initiation
reda [8] – Reference Data
seev [9] – Securities Events
semt [10] – Securities Management
sese [11] – Securities Settlement
setr [12] – Securities Trade
trea [13] – Treasury
tsmt [14] – Trade Services Management 
tsin [15] – Trade Services Initiation

Sebuah Infrastruktur IT Yang Mengintegrasikan Semua Infrastruktur Financial Market 

Saat ini, terdapat sebuah komunitas perbankan yang berpusat di Eropa memiliki Operation Centre yang menghubungkan hampir semua Financial Institution dan juga entitas yang berhubungan dengan mereka. Jika kita melihat sebuah bank di Indonesia dengan predikat sebagai bank devisa (berarti mendapatkan lisensi untuk melakukan transaksi dengan mata uang asing), maka dapat dipastikan bahwa bank tersebut telah menjadi anggota komunitas ini dan memiliki sistem/infrastruktur untuk terhubung dengan dunia luar menggunakan Operation Centre ini.

Organisasi yang masuk dalam kategori non-profit ini (atau lebih merupakan sebuah komunitas) bernama SWIFT. Sudah ribuan bank menjadi bagian dari infrastruktur ini sejak didirikan tahun 1970-an. Berawal dari sebuah idealisme atau cita-cita mengintegrasikan semua interaksi antar bank melalui satu pintu dengan membangun Operation Centre dan mendesain standard dokumen atau messaging yang dapat digunakan bersama. 

Kini idealisme tersebut menjadi semakin berkembang dengan mengikutsertakan entittas keuangan lainnya sehingga menjadi sebuah pintu utama bagi infrastruktur financial market.
  • Korporasi sebagai nasabah dari bank misalnya, telah mulai bergeliat untuk menyatukan diri dengan komunitas ini dan telah mendapatkan ruang yang cukup untuk memudahkan mereka dalam berinteraksi dengan institusi finansial (bank) baik global maupun lokal. Dengan tergabungnya mereka dengan komunitas ini, mereka akan punya cara dan metode yang sama untuk berkomunikasi dengan semua bank.
  • Infrastruktur Bursa, Sekuritas atau kustodian, juga mulai merapatkan diri dengan komunitas ini baik dalam urusan trading maupun settlement transaksi mereka. DTCC misalnya (the Depository Trust & Clearing Corporation) yang berdomisili di US, sudah mulai mengadopsi ISO20022
  • Proyek-proyek integrasi antar institusi juga selalu mengacu kepada solusi ini dalam implementasinya. Kita bisa lihat proyek SEPA, TARGET2, TARGET2 Securities, dan lainnya.
  • Infrastruktur pembayaran lokal di beberapa negara (seperti RTGS), Bank Central mereka juga menggunakan infrastruktur ini. 
Gambar di bawah menunjukkan secara sederhana bahwa semua infrastruktur keuangan termasuk para pemegang regulasi keuangan cukup terhubung dengan satu infrastruktur untuk saling berinteraksi dan berkomunikasi untuk menjalankan transaksi bisnis mereka.



Semua institusi tersebua menggunakan dokumen format yang sama untuk berinteraksi apapun dengan institusi yang tergabung dalam komunitas ini. ISO20022 mulai secara perlahan diterapkan pada interaksi ini. Komunitas ini telah berjalan puluhan tahun menggunakan format non XML. Kini tiba saatnya mereka mendaftarkan format mereka ke OSI dengan sebutan ISO20022 sehingga mereka menjadi terbuka bagi semua komunitas keuangan. Dengan formal XML pada implementasi ISO20022, mereka memiliki fleksibilitas yang tinggi dan memudahkan semua institusi dalam pengembangan sistem.

Contoh Sederhana Dokumen ISO20022

Pada bagian ini, saya coba tampilkan contoh sederhana sebuah dokumen ISO20022 sesuai dengan gambar di bawah ini.

Pada setiap dokumen ISO20022, akan terdapat 2 bagian penting. Bagîan pertama disebut dengan 'Application Header' yang menggunakan kode tag <AppHdr> dan bagian kedua disebut dengan 'Document' yang menggunakan kode tag <Document>.

Bagian pertama, layaknya seperti sebuah amplop pada saat kita mengirimkan surat atau dokumen kepada orang lain. Pada bagian ini kita mengidentifikasikan siapa pengirim, penerima dan beberapa informasi lainnya (misal nama dokumen, surat kilat atau surat kilat khusus, dan lainnya).

Bagian kedua adalah surat atau dokumen yang sesungguhnya yang akan kita hantarkan kepada pihak penerima. Dalam contoh ini, kita sedang mempersipakan sebuah dokumen ISO20022 yang bernama 'sese.030.001.03'. Masing-masing jenis dokumen ISO20022 memiliki format dan fungsi yang berbeda. Terdapat juga informasi yang harus diisi dengan data dan ada pula informasi yang dapat dikosongkan. 






--------
Link:
Topik tentang mengenai kehidupan di Singapura: Kehidupan di Singapura 
Topik tentang mengenali teknologi informasi: Mengenali Teknologi Informasi

Catatan Pendidikan Menengah (SMP) atau Secondary School di Singapura

Perjalanan pendidikan atau education journey yang akan dilalui oleh lulusan SD atau Primary School akan berlanjut ke jenjang berikutnya yang...