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

Sunday, 27 April 2014

Co-Curricular sebagai bagian Sistem Pendidikan Holistik

Topik ini terlintas dalam benak saya, selama saya mengikuti aktifitas SYF (Singapore Youth Festival) sebagai salah seorang relawan (tenaga helper) untuk membantu pihak sekolah dimana anak saya terlibat sebagai salah satu anggota team pada saat "Art Presentation" untuk Guzheng Ensemble. Pada saat inilah saya merasakan sebuah lingkungan yang membangun siswa untuk belajar sebuah kehidupan nyata yang akan mereka hadapi kelak saat dewasa.

Aktifitas Co-Curricular

Istilah ini memiliki makna yang sama dengan "ekskul" atau ektra kurikulum yang sering kita dengar di sekolah. Secara akademik, aktifitas yang dijalani siswa dalam kegiatan ini tidak akan memberikan dampak kepada nilai akademi yang diujikan oleh pihak sekolah sebagai sebuah standar "konvensional" untuk melihat kemajuan siswa. Kita banyak melihat bahwa kegiatan ini lebih cenderung kepada pengembangan hobby atau sekedar tambahan aktifitas untuk menghindari kegiatan yang monoton terhadap aktifitas akademis.

Tetapi dengan sebuah sistem yang dirancang dan dikelola dengan baik, aktifitas ini justru menurut saya akan memberikan kontribusi yang cukup penting kepada siswa SD dalam mempersiapkan masa depan mereka kelak. Menurut saya, pendidikan holistik adalah membangun kemampuan akademik dan juga membangun soft-skill yang dapat dirancang melalui kegiatan-kegiatan di luar kurikulum.

Saya akan memulai sebuah cerita hanya berdasarkan pengamatan dan pengalaman selama mendampingi anak-anak saya yang saat ini sedang menempuh pendidikan sekolah dasar di Singapura. Mereka telah diminta secara sukarela untuk memilih kegiatan CCA (Co-Curricular Activity) sejak dari kelas 1 SD walaupun bukan merupakan sebuah keharusan, hanya merupakan sebuah pilihan sukarela.

Co-Curricular Membangun Sistem Pendidikan Holistik

Secara kebetulan, anak-anak saya diminta untuk berpartisipasi dalam kegiatan SYF yang merupakan sebuah kegiatan tahunan tingkat nasional yang membuka peluang bagi siswa-siswa Sekolah Dasar untuk dapat menampilkan kemampuan mereka. Kegiatan yang bersifat nasional ini tentu saja akan menggugah para siswa untuk mencari dan belajar agar dapat berpartisipasi secara maksimal.

Dari keterlibatan saya dalam membantu anak-anak mempersiapkan SYF, saya mendapatkan sebuah kesan bahwa program co-currricular ini dapat dijadikan sebagai sebuah konsep dalam membangun karakter dan mempersiapkan anak didik untuk dapat memahami proses kehidupan secara holistik. Saya melihat bahwa, yang terpenting bukan menjadi juara dalam bidang art yang mereka tekuni pada kegiatan co-curricular tertentu. Melainkan bagaimana mereka membangun proses, mulai dari mempersiapkan diri, berkomitmen terhadap 'goal' bersama, saling mengisi kekurangan dan bekerja sama antara para siswa, guru dan orang tua.

Selama kita mampu untuk menjaga motivasi anak-anak dan tidak memaksakan target yang kita miliki kepada mereka, saya mellihat mereka akan sangat menikmati proses tersebut secara maksimal dan menarik pelajaran yang cukup penting dalam kehidupan mereka kelak. Biarkan mereka menetapkan target mereka sendiri dan menikmati kegiatan tersebut secara maksimal. Dalam sebuah briefing persiapan menuju pentas di SYF, sang guru memang memiliki target agar tim ini bisa mendapatkan award "Distiction", dan saya kira itu sangat wajar dan natural. Tetapi apa yang dia sampaikan kepada para anak didiknya tentu dengan cara yang berbeda. Dia senantiasa mengatakan "just try the best we can do" atau "do with the best level of effort" yang lebih menekankan untuk memberikan motivasi untuk selalu melakukan sesuatu secara maksimal. Sementara itu, sang guru sering menutup kalimatnya dengan mengatakan bahwa "apapun hasil dari SYF, akan membuat dia selalu senang selama semua muridnya telah melakukan yang terbaik untuk itu".

CCA di Sekolah Dasar

CCA sendiri bukan meruapakan sebuah pilihan wajib bagi seluruh siswa untuk berpartisipasi. Sekolah hanya membuka kesempatan kepada semua siswa untuk memilih sendiri kegiatan ekskul mereka sesuai dengan minat mereka. Tentu saya, sekolah sangat menekankan bahwa semua siswanya untuk memilih CCA walaupun bukan merupakan sesuatu yang wajib.

Di setiap awal tahun, sekolah membuka "bazar CCA" dengan mengundang orang-tua dan seluruh siswa untuk hadir di sekolah. Selama bazar ini berlangsung, orang tua dan siswa dapat bertanya lansung kepada guru yang mengelola masing-masing CCA tentang apa saja, misal prestasi selama ini, bagaimana bentuk kegiatannya, apa saja syaratnya dan lain-lain sebagaimana. Umumnya, setiap stand CCA memiliki alat peraga atau sesuatu yang bisa dicoba oleh para siswa selama bazar berlangsung, bisa sebuah stick softball bersama bolanya, hasil kegiatan "pramuka", alat-alat musik tertentu, hasil pemotretan "club fotografi" atau hasil software game oleh club game programmer.

Pada saat bazar ini berlangsung, siswa dapat melakukan registrasi langsung dengan persetujuan atau tanda tangan orang tua masing-masing. Atau bisa saja, melihat-lihat terlebih dahulu untuk selanjutnya berdiskusi di rumah sebelum memutuskan CCA apa yang akan dipilih selama tahun berjalan.

Program Nasional Berkaitan CCA

Kegiatan CCA ternyata tidak hanya ber-skala sekolah. Di tingkat nasional, terdapat event-event yang dirancang dan dipersiapkan oleh kementrian pendidikan guna memberikan motivasi siswa dan sekolah untuk berpartisipasi yang pada akhirnya dapat memberikan sebuah proses pendidikan yang holistik. Siswa dan sekolah ber-proses untuk belajar membangun kebersamaan sebagai sebuah tim.

Secara kebetulan anak-anak saya pernah ikut serta dalam kejuaraan softball nasional tingkat "junior boy", pernah berpartisipasi dalam "pameran lukisan dalam kegiatan "SYF - art Exhibition" dan juga pernah berpartisipasi dalam "SYF-Guzhen competition".

Dalam beberapa hal saya ikut terlibat langsung dalam kegiatan tersebut baik sebagai orang tua maupun secara sukarela menjadi "helper" dapat proses tersebut. Dari sinilah, saya melihat nilai-nilai penting yang secara tidak langsung dapat menempa anak-anak kita menjadi terbiasa dalam membangun sebuah proses dalam kehidupan mereka kelak.

Sedikit Mengenai Pengalaman Saya

Saya tidak dapat melakukan validasi atau verifikasi yang komprehensif mengenai pengalaman dan pandangan saya, tetapi saya hanya melihat dengan opini saya pribadi beberapa hal selama mengikuti kegiatan ini.
  • Kegiatan sekolah yang didukung oleh program yang lebih luas akan menjadi sebuah infrastruktur yang kuat guna membangun pendidikan yang holistik. Jika kita melihat banyak sekola kegiatan siswa di luar sekolah yang tidak terkontrol, bisa jadi itu karena tidak adanya sarana atau tempat bagi siswa untuk ber-ekspeesi di luar kegiatan akademik mereka.
  • Kegiatan kompetisi tidak harus memilih seorang juara. Kompetisi antar sekolah SYF, tidak dirancang untuk mencari juara. Kegiatan ini tidak dirancang agar sebuah sekolah dapat mengalahkan sekolah yang lain. SYF lebih membangun siswa untuk berkompetisi dengan diri sendiri. SYF akan memberikan award bagi siswa yang berpartisipasi berdasarkan kemampuan mereka. Misal adanya award "gold", "silver" dan "bronze". Ada level skill tertentu untuk mencapai award tersebut, sehingga para siswa tidak bersaing dengan siswa yang lain. Mereka memotivasi diri mereka sendiri untuk mencapai target mereka. Semua siswa akan mendapatkan award berdasarkan pencapaian mereka. Minimal mereka akan mendapatkan "bronze" sebagai sebuah penghargaan atas usaha untuk berani tampil dan mempersiapkan diri dalam kegiatan tersebut.
  • Kegiatan ini akan memotivasi siswa untuk selalu memiliki rencana atau program kerja sehingga sang siswa akan mengalami sebuah proses bagaimana membangun sebuah rencana, mempersipkannya dan meraihnya. 
  • Kegiatannya membangun sebuah kebersamaan atau team building sebagai sebuah kekuatan fundamental untuk kehidupan bermasyarakat dan dunia kerja kelak.
Semoga bermanfaat.


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

Saturday, 25 January 2014

Pengamanan (Security) pada Komunikasi Data

Tujuan dari tulisan ini, lebih kurang akan memberikan gambaran yang cukup sederhana mengenai aspek pengamanan, jika kita ingin membangun sebuah solusi yang menuntut adanya komunikasi data antar sistem atau institusi. Tulisan ini tidak menyajikan aspek teknis yang cukup detail, tetapi mencoba mengkaji beberapa hal yang akan menciptakan keamanan yang optimal bagi data atau informasi yang kita memiliki terutama pada saat data atau informasi tersebut harus kita kirimkan ke institusi yang lain.

Kita sering menjumpai suatu kondisi dimana proyek perangkat lunak, lebih banyak berdiskusi tentang functional design dari aplikasi yang sedang dikembangkan. Sementara itu, diskusi mengenai aspek pengamanan terkadang luput dari item yang seharusnya menjadi kunci jika aplikasi yang sedang kita kembangkan berkaitan dengan komunikasi data dengan pihak luar, baik interaksi dengan menggunakan internet atau komunikasi yang dedicated host-to-host.

Terdapat beberapa item pengamanan yang harus kita perhatikan atau kita pertanyakan dalam setiap proyek yang melibatkan komunikasi dengan pihak luar. Tujuan utama dari tulisan ini adalah, kita mencoba melihat topik atau item apa saja yang harus kita perhatikan dalam pengamanan data kita dan pilihan pengamanan yang ada dalam rekayasa perangkat lunak.

Tujuan Pengamanan Data

Dalam pengaman, kita akan berhubungan dengan koncep yang sering kita sebut Cryptography. Cryptography adalah sebuah study atau kajian praktis dalam menggunakan teknik matematika atau lebih dikenal sebagai algoritma untuk mengamankan data atau informasi yang kita miliki.

Dalam cryptography, ada beberapa mekanisme atau tujuan yang ingin kita capai dalam pengamanan data/informasi. Secara sederhana, makna atau tujuan dari sebuah pengamanan data memiliki 4 hal, yaitu data integrity, confidentiality, authentication dan non-repudiation.

Data Integrity Data integrity dalam cryptography adalah sebuah mekanisme untuk menjamin bahwa data yang kita transfer atau kirimkan dari satu titik ke titik lainnya tidak akan mengalami perubahan selama proses transmisi. Jika kita mengirimkan sebuah berita untuk "kiriman uang sejumlah satu juta rupiah", kita tentu berharap data tersebut tidak mengalami perubahan selama proses transmisi. Sangat tidak diharapkan, jika kemudian berita tersebut berubah selama proses transmisi menjadi "kiriman uang sejumlah lima juta rupiah". 
Ilmu cryptography mencoba menciptakan mekanisme untuk menjamin sang penerima berita bahwa data yang telah dia terima tidak mengalami perubahan selama perjalanannya.

Confidentiality
Kita tidak dapat mencegah orang lain untuk "mencuri" data yang kita miliki, baik tercuri pada saat transmisi maupun dari tempat penyimpanan data. Cryptography mengkaji bagaimana agar data yang kita miliki hanya dapat dimengerti oleh pihak-pihak yang berkepentingan. Layaknya sebuah sandi atau kode rahasia dalam surat yang kita kirimkan kepada pihak luar. Dengan menuliskan informasi yang kita miliki dengan menggunakan sandi atau kode rahasia, maka kita berharap jika seandainya data kita tercuri, pihak yang mencoba melakukan niat jahat ini tetap tidak akan berhasil untuk mengerti isi dari berita yang kita kirimkan.

Authentication
Pada saat kita menerima surat, dokumen atau berita dari pihak lain, pernahkah kita bertanya bahwa pengirim berita tersebut sebenarnya telah dikirimkan oleh orang lain dengan menggunakan nama yang kita kenal. Dalam keseharian, kita sering menggunakan tanda tangan secara cara untuk melihat apakah sebuah surat benar-benar dari pihak yang kita harapkan. Tetapi kita akan tetap memiliki kesulitan untuk benar-benar menjamin apakah tanda tangan tersebut adalah otentik atau palsu. Cryptography mencoba memberikan beberapa alternatif solusi untuk melakukan identifikasi apakah sang pengirim adalah otentik atau pengirim palsu.

Non-Repudiation
Pada saat kita menerima sebuah dokumen atau berita, kita terkadang langsung meng-eksekusi berita tersebut. Tetapi kemudian, pihak pengirim mengatakan bahwa dia tidak pernah merasa mengirim berita yang kita maksudkan. Dalam Cryptography, terdapat kajian untuk meminimalkan situasi seperti ini, dengan mengenalkan konsep non-repudiation.


Metode/Teknik Pengaman Informasi

Setelah kita mengetahui secara garis besar tujuan dari Cryptography, mari kita melihat secara sederhana mengenai teknik pengaman atau dikenal dengan Cryptography Primitive. Cryptography Primitive adalah algorima matematika atau kumpulan instruksi yang dapat kita gunakan untuk mengamankan data atau informasi yang kita miliki.

Encryption
adalah sebuah proses untuk melakukan transformasi dari sebuah "plaintext" (text atau data yang dapat dibaca dan dimengerti) menjadi sesuatu yang tidak bisa dimengerti kecuali pihak yang kita inginkan. Umumnya akan menggunakan kunci-kunci (key) tertentu untuk melakukan ini.

Gambar di bawah ini contoh yang cukup sederhana dari implementasi "encryption". Jika saya ingin mengirimkan data "Kusuma", saya mencoba untuk meng-encrypt data saya dengan cara menggeser urutan abjad. Dalam hal ini, saya menggunakan kunci(key) yang bernilai "2". Huruf "K", jika saya geser 2 langkah dari abjad, akan menjadi huruf "M". 


Tentu saya, ilmu Cryptography memiliki algoritma yang jauh lebih komplek dan rumit. Yang saya coba tampilkan disini adalah sebuah contoh sederhana mengenail enkripsi data. Teknik ini, dapat kita gunakan untuk mewujudkan salah satu tujuan dari funsi cryptography yang telah kita lihat sebelumnya, yaitu "confidentiality". Jika akhirnya data ini tercuri oleh pihak lain, mereka tetap akan kesulitan untuk mengerti makna dari berita tersebut.

Hash Function
Sebuah fungsi matematika yang melakukan konversi dari sekumpulan data/text yang panjang menjadi sebuah kode tertentu. Teknik ini menggunakan formula matematika yang cukup komplek. Seluruh isi berita yang kita miliki akan digunakan sebagai input pada saat formula ini dijalankan. Formula ini kemudian akan menghasilkan kode tertentu (dalam contoh gambar di bawah ini, menghasilkan kode dalam 6 digit). Kode 6 digit ini kemudian yang kita kenal sebagai Hash Number.


Dalam implementasi komunikasi data, kita dapat menyertakan kode Hash Number ini sebagai attachment atau sebagai trailer/header dari berita yang kita kirimkan. Dalam komunikasi data kita mengenal istilah "envelope" dalam komunikasi data untuk membedakan antara berita yang kita kirimkan dengan informasi tambahan mengenai surat kita. Dalam keseharian, kita sering membungkus surat kita dengan amplop, dimana amplop digunakan untuk memberikan informasi mengenai penerima, alamatnya dan informasi lainnya (misal apakah ini kiriman kilat, rahasia dan lain-lain).

Kode HASH ini, dapat kita gunakan dalam rangka implementasi "Data Integrity" yang menjadi salah satu tujuan dalam cryptography. Pada saat kita menerima berita di aplikasi kita, kode hash ini akan kita coba hitung ulang untuk memastikan bahwa data tidak berubah selama proses transmisi.

Terkadang juga kita pernah mendengar istilah 'CHECKSUM' yang memiliki kesamaan dengan konsep HASH ini. Pada saat kita akan men-download sebuah file dari internet, penyedia file terkadang mencantumkan kode checksum, sehingga kita dapat mengidentifikasi atau yakin bahwa hasil download file kita adalah valid.

Message Authentication Code (MAC)
Metode ini hampir sama dengan metode HASH, tetapi akan menggunakan kunci atau key tertentu dalam proses perhitungannya. Untuk memberikan pengamanan yang lebih kuat, kita dapat menambah kunci (key) sebagai input tambahan dari formula atau algoritma Hash. Key ini akan tersimpan pada setiap pihak yang punya kepentingan terhadap data tersebut. Key ini, juga bisa bersifat bilateral yang hanya berlaku antara dua pihak.

Dengan adanya tambahan key atau kunci ini, kita juga bisa menjamin proses "Authentication" yang menjadi salah satu tujuan cryptography. Hal ini karena, kita meyakini bahwa kunci ini hanya berlaku dalam kalangan terbatas.


Pada saat, kita menerima berita dengan tambahan MAC, kita dapat menjamin bahwa data tidak mengalami perubahan selama transmisi dan kita juga yakin bahwa data tersebut dari orang yang kita kenali karena memiliki kunci yang telah disepakati.

Digital Signature
Adalah mekanisme atau algoritma untuk menunjukan otentikasi terhadap sebuah data atau dokumen digital. Beberapa algoritma yang kita kenal seperti RSA, DSA, ECDSA, ElGamal.

Dalam teknik ini, kita akan mengenail adanya "Private Key" dan "Public Key". Konsep yang sederhana adalah, pada saat sebuah data terbungkus oleh apmplop yang dikunci dengan "Private Key", maka hanya orang yang memiliki "pasangan Public Key" yang dapat membukanya. Sebelum implementasi ini, semua pihak akan membuat pasangan kunci "Private" dan "Public". "Private Key" akan disimpan dalam kondisi yang paling aman oleh pemiliknya. Sedangkan "Public Key" akan diberika kepada pihak-pihak dalam kalangan terbatas.


Sesuai dengan namanya, teknik ini digunakan untuk menjamin bahwa berita yang kita terima berasal dari orang yang otentik. Karena berita ini tadinya terkunci oleh sebuah private key yang dimiliki oleh satu pihak tertentu dan kita menggunakan sebuah public key yang kita terima dari pihak tertentu. Dengan metode algoritma tertentu, data tersebut dapat terbuka dengan menggunakan public key yang kita miliki.

Mekanisme ini, juga dapat digunakan untuk "non-repudiation", karena kita menjamin bahwa hanya satu orang yang memiliki private key dan private key adalah sesuatu yang unik dan tersimpan dengan baik oleh pemiliknya.


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


Semoga Bermanfaat
Singapore, Januari 2014
"Di publish dari dalam Tampines Library, sambil menunggu anak saya yang sedang mengikuti kegiatan tidak jauh dari perpustakaan ini."



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...