Mengintip Cara Perhitungan Klasemen pada PSB Solok 2009

Penerimaan Siswa Baru (PSB) Solok 2009 sudah dimulai sejak beberapa hari yang lalu. Antusiasme positif dari siswa sangat tinggi terhadap sistem online yang ditawarkan oleh Dinas Pendidikan Kota Solok tahun ini dengan memberikan fasilitas pendaftaran siswa baru melalui beragam media interaktif seperti web (http://psb.solokcerdas.com) dan SMS Server dengan mengirimkan sms menggunakan format tertentu ke nomor 0811665540.

Banyak feedback yang diterima oleh Dinas Pendidikan Kota Solok mengenai sistem PSB Online ini, terutama pertanyaan mengenai bagaimana sesungguhnya cara perhitungan klasemen pada PSB Solok 2009. Hal ini sebenarnya telah dijelaskan secara detail oleh Team ICT Dinas Pendidikan Kota Solok pada roadshow sosialisasi PSB Online 2009 yang telah dilakukan di semua sekolah di Kota Solok sejak bulan lalu. Namun ada baiknya jika kami jelaskan ulang melalui website ini.


Perhitungan dan penentuan peringkat dalam klasemen untuk setiap sekolah secara mendasar mengacu pada :
  1. Jumlah kuota yang disediakan masing-masing sekolah, meliputi:
    • kuota dalam rayon
    • kuota luar rayon (untuk siswa yang berasal dari sekolah luar rayon dan dari luar kota)
  2. Batas minimal Nilai UN yang ditetapkan oleh masing-masing sekolah
Adapun mekanisme pengurutan (sorting) untuk menentukan posisi siswa dalam tabel klasemen per masing-masing sekolah adalah berdasarkan :
  1. Nilai UN Total
  2. Nilai Bhs Indonesia
  3. Nilai Matematika
  4. Nilai IPA
  5. Nilai Bahasa Inggris
  6. Tanggal & Jam Melakukan Pendaftaran
Jika seorang siswa memiliki nilai UN total yang sama besar dengan siswa lain, maka sebagai komparasi akan dibandingkan lagi nilai UN per mata pelajaran dengan urutan nilai Bahasa Indonesia dilakukan perbandingan terlebih dahulu, baru setelah itu Matematika, dan seterusnya. Jika nilai-nilai mata pelajaran antara siswa tersebut masih sama -- yang mana hal ini kecil kemungkinannya untuk terjadi -- pengurutan untuk memperoleh peringkat yang lebih tinggi antara kedua siswa tersebut akan dilakukan berdasarkan tanggal dan jam siswa tersebut melakukan pendaftaran ke sekolah tersebut.

Peringkat dalam klasemen ini akan terus bergeser mengikuti dinamika jumlah siswa pendaftar yang telah terverifikasi oleh Panitia PSB sampai batas waktu terakhir klasemen memasuki tanggal penutupan.

Untuk siswa-siswa yang sudah berada di luar kuota dari tabel klasemen di masing-masing sekolah, disarankan untuk segera mengganti pilihan sekolahnya ke sekolah lain. Penggantian sekolah pilihan ini hanya bisa dilakukan untuk siswa yang sudah melaporkan nilai DANUN-nya ke Panitia PSB di posko-posko PSB yang tersebar di semua sekolah peserta PSB Online ini.

Untuk siswa-siswa yang saat ini sudah berada di "zona degradasi" alias di papan bawah klasemen masing-masing sekolah, juga amat disarankan untuk mengganti pilihan sekolahnya, dengan harapan kemungkinan di tabel klasemen sekolah lain siswa tersebut masih memiliki posisi aman untuk menempati papan atas atau papan tengah klasemen.

PSB Solok 2009 ini diselenggarakan dalam 2 gelombang klasemen, yaitu :
  • Gelombang 1, dilaksanakan pada tanggal 22 Juni 2009 hingga 30 Juni 2009
  • Gelombang 2, dilaksanakan pada tanggal 8 Juli 2009 hingga 9 Juli 2009
Mekanisme perhitungan dan pengurutan pada kedua gelombang klasemen itu adalah sama dan mengikuti pola perhitungan yang sama seperti yang telah dijelaskan di atas. Sedangkan ketika Klasemen Gelombang 2 berakhir, proses penerimaan siswa baru bagi siswa-siswa yang masih berada di luar kuota akan dilakukan oleh Dinas Pendidikan Kota Solok bekerjasama dengan seluruh sekolah peserta PSB di Kota Solok melalui proses Bursa Calon Siswa.

Demikian penjelasan dari Team ICT Diknas Kota Solok mengenai 'dapur' sistem PSB Online 2009 ini, semoga dapat dipahami oleh segenap siswa di Kota Solok yang tengah berjuang meraih mimpi dan harapan di calon sekolah baru. Kami ucapkan selamat melaksanakan PSB Online 2009 ini, semoga sukses!


_______________________


Rizky Prihanto
Software Architect PT Cinox Media Insani

Baca Selengkapnya...

Mendistribusikan MyODBC dalam Installer Aplikasi

Ada yang nanya di milis mysql-indonesia@googlegroups.com tentang bagaimana caranya nginstall MyODBC secara otomatis dalam mendistribusikan aplikasi kita. Kadang, ketika kita memaketkan produk software kita (platform desktop, windows) -- kita ngga bisa menjamin apakah di komputer client sudah terinstall MyODBC yang diperlukan supaya aplikasi kita bisa connect ke database MySQL (tentunya bagi yang mempergunakan ODBC sebagai bridge koneksi. Kalo yang makae native API seperti vbmysqldirect, MyDAC, dbExpress, atau MySQL Connector yang lain -- ya ngga perlu MyODBC).
Gw jadi ingat jaman-jaman kelam dulu, pas masih develop pakae VB6, ribet bangedd rasanya 'menginstallkan' pre-requisites aplikasi kita ke client macam OCX, DLL, flash player plugins, dan tentu saja.. MyODBC. Tapi sejak gw mulai bosan ama keribetan itu -- gw akhirnya riset mengenai teknik-teknik membuat instalasi yang membuat gw sempet terjerembab 'sedikit alih profesi' jadi Deployment Engineer di tim gw dulu. Tentu saja gw musti memastikan bahwa aplikasi gw ketika di-distribusikan ngga bakal gagal di-execute selain di kompie gw sendiri, termasuk diantaranya menjalin koneksi dengan MySQL melalui MyODBC.
Di artikel kali ini gw mencoba mengupas mengenai teknik-teknik 'memaksakan' client menginstall secara otomatis MyODBC supaya program kita bisa running well.



caranya (gw asumsikan kita akan redistribute-kan MyODBC 5.1) :

1. di installer loe, u copy-kan file2 berikut ke %SYSDIR% (terserah sih mo dimana sebenarnya):
    a) libmysql.dll
    b) myodbc5.dll
    c) myodbc5.lib
    d) myodbc5S.dll
    e) myodbc5S.lib

2. Lakukan install driver manual dengan nge-add registry berikut ini :
  classkey = HKEY_LOCAL_MACHINE
  sectionkey = "SOFTWARE\ODBC\ODBCINST.INI\MySQL ODBC 5.1 Driver"
    trus bikin beberapa key yaitu :
  a) nama key = "Driver"
     tipe = REG_SZ
     value = "C:\WINDOWS\System32\myodbc5.dll" --> sesuaikan ini dgn tempat di mana u nge-extract (step 1)
  b) nama key = "Setup"
     tipe = REG_SZ
     value = "C:\WINDOWS\System32\myodbc5S.dll"
  c) nama key = "UsageCount"
     tipe = REG_DWORD
     value = 1

3. Langkah terakhir, lakukan register driver ke ODBC driver, juga dgn maen-maen registry berikut :
    classkey = HKEY_LOCAL_MACHINE
    sectionkey = "SOFTWARE\ODBC\ODBCINST.INI\ODBC Driver"
    bikin key :
    nama = "MySQL ODBC 5.1 Driver"
    tipe = REG_SZ
    value = "installed"

udah. itu cara bikin installer sendiri utk MyODBC 5.1
kalo utk versi MyODBC 3.51, silakan sesuaikan sendiri (tapi buat apa makae 3.51 hare gene?)

bisa loe adopsi di :

  1. jalankan ntu script di setiap app.initialization (tentu cek dulu, execute cuman kalo if not exists)
  2. atau embedd ke dalam script installer loe (semua installer pastinya bisa nge-manipulate registry kan?)
  3. atau bikin program exe sendiri yang akan menjalankan "silent-install" ntu proses, trus masukin ke script installer loe n loe program supaya ntar installer akan jalanin otomatis ntu myodbc-silent-installer setelah proses nginstall aplikasi loe selesai.
mau cara gampang?
Bikin installer-nya pakae NSIS (Nullsoft Scriptable Install System). Berhubung output installer dia bukan berbasis *.msi, loe bisa lakukan proses instalasi paralel (installer dalam installer) dengan file-file setup laen (pre-requisites software) yg mungkin elo butuhkan dalam redistribute aplikasi loe (misal : driver, connector, plugins, codec, bahkan automatic-install server mysql sendiri!).

Cara :
1. siapkan installer MySQL ODBC 5.1 terbaru (anggap namanya : mysql-connector-odbc-5.1.5-win32.msi)
2. sisipkan di script NSIS loe begini :
  SetOutPath "$TEMP"
  SetOverwrite On
  File "..\resources\mysql-connector-odbc-5.1.5-win32.msi"
  ExecWait 'msiexec /i "$TEMP\mysql-connector-odbc-5.1.5-win32.msi"' $0
3. compile script installer loe untuk menghasilkan 1 file installer (aplikasi loe + prerequisites-nya)

Penjelasan Script NSIS:
baris pertama, itu akan melakukan change-dir ke direktori tujuan ekstrak sebuah file (dalam hal ini TEMP DIR)
baris kedua, itu akan melakukan flagging kalo file yg akan di-ekstrak udah ada, dia akan di-overwrite
baris ketiga, itu meng-copy-kan dari installer berupa file setup mysql-connector-odbc-5.1.5-win32.msi ke TEMP DIR. parameter dari File itu adalah alamat dari paket instalan mysql-connector-odbc-5.1.5-win32.msi ketika installer sedang dibentuk
baris keempat, itu akan melakukan eksekusi file installer mysql-connector-odbc-5.1.5-win32.msi -- efeknya, ntar user pas nginstall aplikasi loe, dia akan "dipaksa" masuk ke installer MyODBC. ExecWait adalah sebuah mekanisme shell-execute yang akan menunggu proses sampai proses instalasi MyODBC selesai dijalanin user, baru kemudian lanjut ke proses install sisanya.

kelebihan dari cara gampang ini?
  • loe gag perlu pusing2 ria maen2 registry (seperti cara "manual" gw di atas -- walo ada kelebihannya juga cara manual ini : loe jadi ngerti struktur registrasi ODBC Driver di sistem operasi loe. Jadi klo mo pakae connector apapun utk connect ke DBMS apapun: mudah!)
  • loe bisa replace source install-an mysql odbc versi berapapun dgn mudah
  • file installer yang kelak akan di-distribusikan ke user cuman 1 doank. udah all in one.
Kira-kira begitu...
Happy exploring...
_______________________


Rizky Prihanto
Software Architect PT Cinox Media Insani

Baca Selengkapnya...

Konsep Sistem Terintegrasi

Dalam konteks sistem informasi, sistem terintegrasi (integrated system) merupakan sebuah rangkaian proses untuk menghubungkan beberapa sistem-sistem komputerisasi dan software aplikasi baik secara fisik maupun secara fungsional. Sistem terintegrasi akan menggabungkan komponen sub-sub sistem ke dalam satu sistem dan menjamin fungsi-fungsi dari sub sistem tersebut sebagai satu kesatuan sistem.

Sistem terintegrasi merupakan tantangan menarik dalam software development karena pengembangannya harus terus mengacu pada konsistensi sistem, agar sub-sub sistem yang sudah ada dan tetap dimanfaatkan secara operasional masih tetap berfungsi sebagaimana mestinya baik ketika proses mengintegrasikan sistem maupun setelah terintegrasi. Tantangannya adalah bagaimana merancang sebuah mekanisme mengintegrasikan sistem-sistem tersebut dengan effort paling minimal – bahkan jika diperlukan, tidak harus melakukan refactoring atau re-developing lagi sistem-sistem yang sudah ada.


Ada beberapa metode yang dapat dipergunakan dalam membangun sistem terintegrasi, sebagaimana yang direferensikan berdasarkan artikel dari Wikipedia yaitu :
  • Vertical Integration, merupakan proses mengintegrasikan sub-sub sistem berdasarkan fungsionalitas dengan menghubungkan sub-sub sistem yang sudah ada tersebut supaya bisa berinteraksi dengan sistem terpusat dengan tetap berpijak pada arsitektur sub sistem yang lama. Metode ini memiliki keuntungan yaitu dapat dilakukan dengan cepat dan hanya melibatkan beberapa entitas development yang terkait dalam proses pembuatan sistem lama. Kelemahannya, metode ini tidak memungkinkan untuk mengimplementasikan fungsi-fungsi baru atau proses bisnis baru ke dalam sub-sistem yang sudah ada – karena effort lebih tinggi ada di proses “mempelajari” arsitektur sistem lama dan menjadikannya acuan untuk membuat sistem terintegrasi. Untuk menghadirkan ekspansi fungsionalitas atau proses bisnis baru adalah harus membuat sub-sistem baru.
  • Star Integration, atau lebih dikenal sebagai spaghetti integration, adalah proses mengintegrasikan sistem dengan cara menghubungkan satu sub sistem ke semua sub-sub sistem lainnya. Sebuah fungsi bisnis yang diimplementasikan dalam sebuah sub sistem akan di-broadcast ke semua sub-sub sistem lain yang dependen terhadap fungsi bisnis tersebut supaya dapat dipergunakan sebagaimana mestinya. Untuk integrasi sistem dengan ruang lingkup kecil atau menengah dan dengan pemisahan fungsi bisnis yang jelas dan spesifik, metode integrasi ini layak untuk dipertimbangkan. Namun jika fungsi bisnis banyak terlibat di beberapa sub sistem secara dependen, pada akhir proses integrasi sistem akan terlihat sedikit “kekacauan” dalam diagram – proses interkoneksi antar sub sistem akan tampak seperti spaghetti. Efeknya, biaya perawatan dan ekspansi sistem di masa yang akan datang akan memerlukan effort yang sangat berat untuk mempelajari skema integrasi sistem berikut dependency-nya.
  • Horizontal Integration, atau ada yang mengistilahkan dengan Enterprise Service Bus (ESB), merupakan sebuah metode yang mengintegrasikan sistem dengan cara membuat suatu layer khusus yang berfungsi sebagai interpreter, dimana semua sub-sub sistem yang sudah ada akan berkomunikasi ke layer tersebut. Model ini lebih menawarkan fleksibilitas dan menghemat biaya integrasi, karena yang perlu difokuskan dalam implementasi proses pengintegrasian hanya layer interpreter tersebut.  Untuk menangani ekspansi proses bisnis juga hanya perlu diimplementasikan di layer interpreter itu juga, dan sub sistem baru yang akan menangani interface dari proses bisnis ekstensi tersebut akan berkomunikasi langsung ke layer dan layer akan menyediakan keperluan-keperluan data/interface untuk sub sistem lain yang memerlukannya.
Metode Enterprise Service Bus (ESB) ini – seperti yang dilansir dari Wikipedia juga – memiliki banyak kelebihan jika diadopsi dalam merancang arsitektur sistem terintegrasi, yaitu antara lain :
  1. Lebih cepat dalam melakukan penyesuaian dengan sistem yang telah ada
  2. Meningkatkan fleksibilitas, mudah untuk diperbaharui mengikuti perubahan keperluan sistem (system requirements)
  3. Membuat standar sistem sehingga bisa diaplikasikan di sub sistem mana pun
  4. Porsi pekerjaan software development lebih banyak di “konfigurasi” daripada “menulis code” untuk integrasi
  5. Dapat diterapkan mulai ruang lingkup kecil hingga di level enterprise
Namun metode horizontal integration atau Enterprise System Bus (ESB) yang tampaknya ideal ini bukan berarti tidak ada kelemahan. Beberapa kelemahan yang cukup signifikan pengaruhnya antara lain :
  1. Pembuatan standar sistem dalam Enterprise Message Model banyak berkutat di aspek analisis dan manajerial, biaya analisis benar-benar tinggi karena perlu berkolaborasi dengan analis-analis yang bertanggung jawab terhadap arsitektur dan desain sistem-sistem yang telah ada.
  2. Secara khusus memerlukan perangkat keras (hardware) yang spesifik, seperti misalnya business-logic-server yang independen dan tidak integral dengan salah satu atau sebagian dari sub sistem yang telah ada.
  3. Perlu tambahan tenaga (SDM) berupa Middleware Analyst yang akan mengkonfigurasi, merawat, dan mengoperasikan layer Enterprise Service Bus.
  4. Karena biasanya ESB mempergunakan XML sebagai bahasa komunikasi antar sistem, tentu akan memerlukan resources dan komputasi berlebih untuk melakukan parsing-reparsing dalam komunikasi data.
  5. Memerlukan effort yang cukup tinggi dalam mengimplementasikan ESB karena cukup banyak layer/tingkatan aplikasi yang harus ditangani, tidak hanya aplikasi-aplikasi interface dari sub-sub sistem saja, melainkan juga layer interpreter yang juga memiliki karakteristik sebagai aplikasi juga.
Pada akhir kisah, merancang dan membuat sebuah sistem terintegrasi -- memang bukan merupakan pekerjaan yang ringan. Apalagi kalau sejak awal pengembangan sistem-sistem terpisah yg sudah ada itu tidak dirancang untuk saling diintegrasikan satu sama lain. 
Tapi itulah hidup..., kita tidak bisa tau (sistem kita) besok bakal jadi bagaimana -- terus berkembang, atau berakhir di rak-rak penyimpanan CD usang di ruang arsip yang berdebu.

_______________________


Rizky Prihanto
Software Architect PT Cinox Media Insani

Baca Selengkapnya...

Dampak Evaluasi Implementasi dalam SDLC

Di facebook gw, ada message di inbox yg berasal dari salah satu friend gw. Isinya *dia nanya* begini :
Maaf baru aja add tp dah repoti

need help u makalah gw, sebenernya sumber kesalahan suaru software tu dari mananya? apakah selalu desainnya, atau mungkin ga implementasinya? need referensi yang sahih buat dasarnya
thx 4 ur att.
Gw bukan mo mengomentari "kenapa beliau ngga nanya via imel aja? tp kenapa lewat FB yg mana fungsi utamanya bukan untuk imel-imel-an, melainkan untuk narcis-narcis-an.." ~ bukan. Gw mo nyoba jawab pertanyaan dia, coz sebenarnya gw juga sering (SERING-BANGEDD) mengalami masalah berupa kesalahan di software yg tim gw bikin, itu sebenarnya karena kita kurang evaluasi di faktor mana-nya?
Kira-kira begini hasil pemikiran gw :


Kalo dirunut-runut, ada beberapa tahap dasar dari sebuah siklus pengembangan sistem (SDLC), yaitu :
  1. Perencanaan
  2. Analisis
  3. Desain
  4. Konstruksi
  5. Implementasi
  6. Maintenance/support
Produk sistem yang dihasilkan itu sendiri, akan dinikmati oleh user di dalam fase IMPLEMENTASI (beda artinya dengan KONSTRUKSI -- walau banyak miskonsepsi mengenai ini dalam materi-materi Rekayasa Perangkat Lunak, bahwa proses "coding" itu adalah proses "implementasi". Bukan! Itu konstruksi.).
Nah, masalahnya -- seperti case yang coba dibedah temen gw tsb, kalo ada kesalahan dalam suatu produk software -- itu yang salah ada di fase mana?
Hmm... jawabannya : semua fase dalam SDLC selalu menimbulkan potensi munculnya sebuah kesalahan.
Yaa, kita ngga perlu membahas kalo programmer juga manusia, punya rasa punya hati, juga punya khilaf ^_^ ~ itu manusiawi. Tapi mari sekali-sekali kita simak bagaimana sebenarnya SDLC itu sendiri. Silakan perhatikan gambar di bawah ini : 
http://qvezst.googlepages.com/sdlc_feedback.JPG


Dari gambar di atas, dapat dideduksikan bahwa sebuah "perulangan" fase terjadi jika : 
  • kesalahan program (error/bug)
  • ketidakcocokan solusi sistem (software) dengan teknologi baru
  • terdapat masalah-masalah dan keperluan bisnis yang baru
  • solusi sistem (software) sudah tidak layak lagi
Untuk proses terjadinya "revisi" karena kesalahan program, step dalam SDLC yang harus di-ulangi adalah di fase KONSTRUKSI. Artinya, perbaiki code atau mungkin coding ulang.
Sedangkan kalo ketidak-cocokan solusi dengan teknologi baru -- misalnya, ekspansi pembayaran cash menjadi pembayaran debit/kartu kredit atau karena upgrading DBMS atau karena pengen dirombak ke platform teknologi terbaru (contohnya, yg tadinya di-coding-in under DOS menjadi di-coding-in under Windows, atau dibikin dari VB6 pengen diganti jadi .NET) -- fase DESAIN harus diulangi dan implikasinya, fase KONSTRUKSI juga harus diulangi.
Kalo terdapat masalah-masalah dan proses bisnis baru? Misalnya: ternyata sistem yg udah terimplementasi dengan baik ini diharuskan TERINTEGRASI dengan sistem di atasnya yg lebih besar; atau terdapat penambahan beberapa requirement baru yang belum terfasilitasi di sistem existing. Kalo itu yang terjadi, proses SDLC mau-ngga-mau harus diulangi dari fase ANALISIS, trus DESAIN lagi, trus CODING lagi deh...

Dan yang paling parah, yg ini nih : ternyata setelah IMPLEMENTASI sekian tahun lamanya, solusi sistem yang terimplementasi di aplikasi existing ini udah bener-bener usang dan ngga layak pakai. Mau tetap dipertahankan untuk dioperasikan, salah. Kalo itu yang terjadi, PERENCANAAN ULANG! ~ tapi, diambil sisi positifnya aja. Perencanaan ulang dan mengulang segalanya dari awal lagi, kan artinya PROJECT BARU. hehehe... loemayan laah daripada loe manyun. ^_^

Sebagaimana lagu PeterPan, memang benar bahwa TAK ADA YANG ABADI. Bahkan sistem dan aplikasi. Tahun 2000 lalu, seiring dengan launching-nya Windows Millennium, Bill Gates mengatakan : DOS udah mati. Sah-sah saja. Ngga ada yang benar-benar perlu disesali.

Kalo dapat komplain dari end-user atau stakeholder pemesan sistem yang kita bangun, syukurilah... Itu artinya kita tetap menjaga relasi dengan dia dan menjaga perputaran siklus development kita tetap berjalan. Stakeholder yang bijaksana, tentunya mengerti sedalam-dalamnya bahwa setiap terjadi perubahan sistem PASCA-IMPLEMENTASI akibat ini-itu, pasti ada biayanya. Dan pada kenyataannya pun, kita sebagai system-developer juga sering mbikin proposal bukan cuman judulnya "proposal pembuatan sistem" atau "proposal pengembangan sistem" -- tapi juga "proposal pemutakhiran sistem". Waaa, sering bangedd nie muncul di Media Indonesia tender-tender di instansi pemerintah yang bertemakan PEMUTAKHIRAN. Artinya : update sistem lama, entah starting point-nya dari re-code, re-design, re-analysis, atau ... REVOLUSI!


_______________________


Rizky Prihanto
Software Architect PT Cinox Media Insani

Baca Selengkapnya...