10 URUSAN DISKOMINFO DALAM IMPLEMENTASI E-GOVERNMENT

10 URUSAN DISKOMINFO DALAM IMPLEMENTASI E-GOVERNMENT

10 URUSAN DISKOMINFO DALAM IMPLEMENTASI E-GOVERNMENT

Rencana strategis 2015 – 2019 yang dicanangkan Kementrian Kominfo adalah menjadikan Dinas Kominfo sebagai perpanjangan tangan di daerah dalam pengelolaan pemerintahan berbasis elektronik. Dengan demikian Dinas Kominfo memiliki tugas utama untuk melakukan implementasi E-Government.

Mengusung program E-Government bukan suatu pekerjaan mudah. Dinas Kominfo yang dalam hal ini merupakan leading sector penerapan E-Government harus mampu menerjemahkan layanan apa saja yang harus dimiliki untuk mencapai predikat E-Government.

Inixindo Jogja sebagai partner pengembangan SDM Dinas Kominfo, mengundang Bapak/Ibu dalam acara community day yang akan diisi dengan sharing session mengenai :

10 URUSAN DISKOMINFO DALAM IMPLEMENTASI E-GOVERNMENT

Acara ini akan membahas mengenai 10 urusan layanan E-Government yang diturunkan menjadi kelompok tugas, petunjuk teknis dan pelaksanaan, kompetensi, serta pelatihan SDM untuk pemenuhan kompetensi.

Adapun detail pelaksanakan acara tersebut adalah sebagai berikut :

Hari/Tanggal : Kamis, 27 Juli 2017
Waktu : 14.00 – selesai
Tempat : INIXINDO Jogja, Jalan Kenari No. 69 Yogyakarta
Biaya Kontribusi : GRATIS  (undangan berlaku untuk 2 orang)

Belajar Machine Learning Dengan Python (Bagian 2)

Belajar Machine Learning Dengan Python (Bagian 2)

Belajar Machine Learning Dengan Python (Bagian 2)

Pada artikel Belajar Machine Learning Dengan Python (Bagian 1) , kita telah membahas mengenai  langkah 1 sampai 3. Artikel ini adalah lanjutan langkah  untuk memulai proyek Machine Learning.

  • Visualisasi Data

Dalam melakukan visualisasi data, ada dua jenis plot:

  1. Plot Univariate

Kita mulai dengan beberapa plot univariat, yaitu plot dari masing-masing variabel individu. Mengingat bahwa variabel inputnya numerik, kita bisa membuat jenis plot box.

# box and whisker plots

dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)

plt.show()

Belajar Machine Learning Dengan Python (Bagian 2) 1

Selanjutnya juga bisa membuat histogram masing-masing variabel input untuk mendapatkan ide tentang distribusi.

# histograms

dataset.hist()

plt.show()

Belajar Machine Learning Dengan Python (Bagian 2) 2

2. Plot Multivariate

Selanjutnya kita bisa melihat interaksi antar variabel. Pertama, kita lihat scatterplots dari semua pasang atribut. Hal ini dapat membantu melihat hubungan terstruktur antara variabel input

# scatter plot matrix

scatter_matrix(dataset)

plt.show()

 

Dari hasil output dapat dilihat pengelompokan diagonal beberapa pasang atribut. Hal ini menunjukkan korelasi yang tinggi dan hubungan yang dapat diprediksi.

Belajar Machine Learning Dengan Python (Bagian 2) 3

  1. Evaluasi Beberapa Algoritma

 

Langkah berikutnya adalah membuat beberapa model data dan memperkirakan akurasi mereka pada data yang tidak terlihat.

Beberapa hal yang dapat dilakukan di langkah ini adalah:

  1. Pisahkan dataset validasi
  2. Set up test harness untuk menggunakan validasi silang 10 kali lipat
  3. Bangun 5 model yang berbeda untuk memprediksi spesies dari pengukuran bunga
  4. Pilih model yang terbaik

 

  • Membuat validasi dataset

Validasi ini dilakukan untuk mengetahui bahwa model yang dibuat itu bagus. Kita akan menggunakan metode statistik untuk memperkirakan keakuratan model yang dibuat pada data yang tidak terlihat. Juga diinginkan perkiraan yang lebih konkret mengenai keakuratan model teraik pada data yang tidak terlihat dengan mengevaluasi data aktual yang tidak terlihat.

 

Artinya, kita akan menahan beberapa data yang tidak dapat dilihat oleh algoritma dan akan menggunakan data ini untuk mendapatkan informasi tentang seberapa akurat model terbaik sebenarnya.

 

Kita akan membagi datateset yang telah dimuat menjadi dua, 80% diantaranya akan digunakan untuk melatih model dan 20% digunakan untuk data validasi.

# Split-out validation dataset

array = dataset.values

X = array[:,0:4]

Y = array[:,4]

validation_size = 0.20

seed = 7

X_train, X_validation, Y_train, Y_validation = model_selection.train_test_split(X, Y, test_size=validation_size, random_state=seed)

Setelah perintah di atas dieksekusi, kita sudah memiliki dua data yaitu X_train dan Y_train untuk mempersiapkan model dan rangkaian X_validation dan Y_validation yang dapat digunakan selanjutnya.

 

  • Test Harness

 

Kita akan menggunakan validasi silang 10 kali lipat untuk memperkirakan akurasi. Untuk itu dataset dibagi menjadi 10 bagian, 9 untuk latihan dan 1 untuk pengujian dan ulangi untuk semua kombinasi.

 

# Test options and evaluation metric

seed = 7

scoring = 'accuracy'

 

Perintah di atas menggunakan metrik “accuracy” untuk mengevaluasi model. Ini adalah rasio dari jumlah kejadia yang diprediksi dengan benar dibagi dengan jumlah total kasus dalam dataset dikalikan dengan 100 untuk memberikan persentase (misalnya 95% akurat).  Kita akan menggunakan variabel penilaian saat menjalankan build dan mengevaluasi setiap model di langkah selanjutnya

 

  • Membangun Model

Kita tidak tahu algoritma mana yang bagus dalam masalah ini atau konfigurasi apa yang akan digunakan. Untuk itu kita evaluasi 6 algoritma yang berbeda:

 

  • Logistic Regression (LR)
  • Linear Discriminant Analysis (LDA)
  • K-Nearest Neighbors (KNN).
  • Classification and Regression Trees (CART).
  • Gaussian Naive Bayes (NB).
  • Support Vector Machines (SVM).
# Spot Check Algorithms

models = []

models.append(('LR', LogisticRegression()))

models.append(('LDA', LinearDiscriminantAnalysis()))

models.append(('KNN', KNeighborsClassifier()))

models.append(('CART', DecisionTreeClassifier()))

models.append(('NB', GaussianNB()))

models.append(('SVM', SVC()))







# evaluate each model in turn

results = []

names = []

for name, model in models:

kfold = model_selection.KFold(n_splits=10, random_state=seed)

cv_results = model_selection.cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring)

results.append(cv_results)

names.append(name)

msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std())

print(msg)

 

  • Memilih Model Terbaik

 

Kita sudah memiliki 6 model dan estimasi akurasi untuk masing-masing. Selanjutnya perlu membandingkan model satu dengan lainnya dan pilih yang paling akurat.

 

Dari eksekusi script di atas, kita mendapatkan hasil mentah sebagai berikut:

 

LR: 0.966667 (0.040825)

LDA: 0.975000 (0.038188)

KNN: 0.983333 (0.033333)

CART: 0.975000 (0.038188)

NB: 0.975000 (0.053359)

SVM: 0.991667 (0.025000)

 

Dari hasil output di atas, kita dapat melihat bahwa SVM memiliki nilai akurasi perkiraan terbesar.

Kita juga dapat membuat plot hasil evaluasi model  dan membandingkan penyebaran dan akurasi rata-rata masing-masing model.

 

# Compare Algorithms

fig = plt.figure()

fig.suptitle('Algorithm Comparison')

ax = fig.add_subplot(111)

plt.boxplot(results)

ax.set_xticklabels(names)

plt.show()


Belajar Machine Learning Dengan Python (Bagian 2) 4

  • Membuat Prediksi

 

Setelah mengetahui model yang paling akurat yaitu SVM, selanjutnya kita dapat mencoba melakukan pengujian tentang keakuratan model SVM terhadap data yang ada.

 

# Make predictions on validation dataset

svm = SVC()

svm.fit(X_train, Y_train)

predictions = svm.predict(X_validation)

print(accuracy_score(Y_validation, predictions))

print(confusion_matrix(Y_validation, predictions))

print(classification_report(Y_validation, predictions))

 

Menghasilkan output :

Belajar Machine Learning Dengan Python (Bagian 2) 5

Confusion matrix memberikan indikasi dari tiga kesalahan yang dibuat.

Akhirnya, laporan klasifikasi (classification report) memberikan rincian setiap kelas (class-species) dengan precision, recall, f1-score dan support yang menunjukkan hasil yang sangat baik.

***

Jika Anda ingin mempelajari machine learning lebih dalam lagi, Anda bisa mengikuti kelas pelatihan machine learning di Inixindo Jogja

 

Sumber: Article “Your First Machine Learning Project in Python Step-By-Step”, http://machinelearningmastery.com

Mustofa

Manager Edukasi Inixindo Jogja

Diskusi Bersama Persiapan Implementasi E-Government Dinas Kominfo Se-Kalimantan Tengah

Diskusi Bersama Persiapan Implementasi E-Government Dinas Kominfo Se-Kalimantan Tengah

Diskusi Bersama Persiapan Implementasi E-Government Dinas Kominfo Se-Kalimantan Tengah

Memasuki tahun 2017, Pemerintah Republik Indonesia melalui Kementerian Komunikasi dan Informatika membuat peraturan mengenai pendirian Dinas Komunikasi dan Informatika di seluruh kabupaten/kota di Indonesia. Hal ini dilakukan untuk percepatan implementasi e-government di Indonesia. Sebagai perpanjangan tangan pemerintah pusat, Dinas Komunikasi dan Informatika menjadi Organisasi Perangkat Daerah (OPD) utama dalam urusan komunikasi, informatika, dan termasuk statistik serta persandian.

Diskusi Bersama Persiapan Implementasi E-Government Dinas Kominfo Se-Kalimantan Tengah 6

Sebagi OPD baru, banyak aparatur sipil negara (ASN) yang menduduki jabatan di Dinas Kominfo belum memahami benar mengenai tugas pokok dan fungsinya dalam kegiatan sehari-hari. Inixindo Jogja bekerja sama dengan Dinas Komunikasi Informatika Statistik dan Persandian Provinsi Kalimantan Tengah dan didukung oleh Kementerian Kominfo Republik Indonesia mengadakan Forum Diskusi bertajuk “Mempersiapkan Dinas Kominfo Sebagai Leading Sector Penerapan E – Government Di Daerah” pada hari Senin, 24 Juli 2017. Bertempat di Aula Dinas Komunikasi Informatika Statistik dan Persandian Provinsi Kalimantan Tengah, acara ini dihadiri oleh seluruh perwakilan dari 14 kabupaten/kota yang ada di Provinsi Kalimantan Tengah.

Diskusi Bersama Persiapan Implementasi E-Government Dinas Kominfo Se-Kalimantan Tengah 7

Bapak Bambang Dwi Anggono atau yang akrab disapa Pak Ibenk yang merupakan Kasubdit Teknologi dan Infrastruktur e-Government Kementerian Kominfo Republik Indonesia didaulat menjadi narasumber bersama dengan Bapak Andi Yuniantoro, Direktur Inixindo Jogja. Dalam forum diskusi, Pak Ibenk banyak memaparkan mengenai anjuran pemerintah pusat tentang implementasi e-government yang menjadi tugas pokok Dinas Kominfo. Pak Ibenk juga banyak memberikan arahan mengenai pentingnya pelatihan dan pengembangan SDM untuk memenuhi kompetensi yang dibutuhkan oleh ASN Dinas Kominfo. Bapak Andi Yuniantoro selaku Direktur Inixindo Jogja memberikan paparan mengenai perkembangan dunia dan teknologi di masa kini, bagaimana informasi dapat memberikan pengaruh besar termasuk di bidang pemerintahan. Beliau juga memberikan paparan mengenai 10 urusan Dinas Kominfo yang sudah disusun oleh tim Inixindo Jogja.

Diskusi Bersama Persiapan Implementasi E-Government Dinas Kominfo Se-Kalimantan Tengah 8

Perwakilan dari masing-masing kabupaten/kota sangat antusian dan menyambut baik kegiatan yang digagas oleh Inixindo Jogja dan Dinas Komunikasi Informatika Statistik dan Persandian Provinsi Kalimantan Tengah ini. Para peserta sangat terbantu dengan paparan dan diskusi yang diadakan sehingga mereka mulai memahami mengenai tupoksi Dinas Kominfo dengan masing-masing bidang jabatannya.

Diskusi Bersama Persiapan Implementasi E-Government Dinas Kominfo Se-Kalimantan Tengah 9 Diskusi Bersama Persiapan Implementasi E-Government Dinas Kominfo Se-Kalimantan Tengah 10  Diskusi Bersama Persiapan Implementasi E-Government Dinas Kominfo Se-Kalimantan Tengah 11
Benarkah Open Source adalah Solusi?

Benarkah Open Source adalah Solusi?

Benarkah Open Source adalah Solusi?

Sesuai dengan program Migrasi Menuju Open Source yang diusung Pemerintah Kabupaten Wonogiri, melalui Dinas Kominukasi dan Informatika Kabupaten Wonogiri mengadakan kegiatan bimbingan teknis dan sosialisasi Migrasi Menuju Open Source bagi operator komputer/petugas input data dari seluruh OPD di Kabupaten Wonogiri. Acara ini diadakan pada hari Selasa, 25 Juli 2017 dan bertempat di Ruang Khayangan Setda Kabupaten Wonogiri.

Benarkah Open Source adalah Solusi? 12

Inixindo Jogja dalam acara ini didaulat untuk menjadi narasumber. Sebagai praktisi di bidang IT dan penerapannya, Inixindo jogja membagikan wawasan mengenai perbedaan antara open source dengan close source. Kelebihan dan kekurangan masing-masing dari open maupun close source. Selain itu, Inixindo Jogja juga memberikan wawasan mengenai bagaimana dan hal-hal apa saja yang perlu dipertimbangkan dalam memilih menggunakan open source atau close source. Dengan berbagi informasi dengan operator komputer dari masing-masing OPD di Kabupaten Wonogiri diharapkan dapat membuka wawasan peserta yang selama ini masih belum banyak mengetahui dan terbiasa menggunakan open source.

Benarkah Open Source adalah Solusi? 13

Wacana mengenai migrasi ke open source di Indonesia sebenarnya sudah didengungkan sejak tahun 2005 lalu. Pada saat itu pemerintah melalui Kemkominfo dan Kemenristek menargetkan pada tahun 2010 seluruh instansi pemerintah sudah menggunakan piranti lunak yang legal. Meski sampai saat ini hal tersebut belum bisa diwujudkan sepenuhnya, namun upaya untuk migrasi ke open source masih terus digalakan.

Berdasarkan pertimbangan Pemerintah cecara teoritis, penggunaan open source dapat menghemat sampai 40%-60% dibanding penggunaan peranti lunak berbayar atau proprietary software. Diharapkan open source dapat menjadi solusi untuk mengatasi belanja TI negara yang besar. Pemerintah berkomitmen terhadap program ini melalui Surat Edaran Menteri Negara PAN (Pemberdayaan Aparatur Negara) No 1/2009 yang diterbitkan pada Maret 2009. Dalam surat edaran ini Kemenpan mewajibkan seluruh instansi pemerintah dari pusat hingga daerah harus bermigrasi ke sistem terbuka.

Pada dasarnya migrasi ke open source memang bisa menjadi pilihan yang bijaksana jika dilakukan dengan komitmen yang kuat. Bukan hal yang mudah untuk “memaksa” departemen dan pemda beralih ke open source karena belum terbiasa dengan environment open source. Meskipun banyak peranti lunak open source yang mirip dengan peranti lunak yang sudah biasa kita gunakan, diperlukan proses migrasi yang bertahap dan komitmen untuk kesiapan infrastruktur serta kemampuan SDM.

 

Hacking Fitur Wrap di Oracle PL/SQL

Hacking Fitur Wrap di Oracle PL/SQL

Hacking Fitur Wrap di Oracle PL/SQL

Dalam artikel sebelumnya berjudul Proteksi Kode Oracle PL/SQL dengan Fitur Wrap telah dibahas cara melakukan proteksi terhadap source code atau kode sumber PL/SQL untuk triggerfunction, serta stored procedure sehingga tidak bisa terlihat oleh orang lain. Fitur yang digunakan untuk memproteksi source code PL/SQL tersebut adalah fitur wrap untuk melakukan semacam enkripsi terhadap kode sumber PL/SQL sehingga orang lain tidak bisa membaca kode sumber tersebut.

Namun semua proteksi buatan manusia tidak ada yang sempurna, pasti ada kelemahannya. Fitur wrap di Oracle PL/SQL pun juga bisa di-hack sehingga hasil enkripsi terhadap source code PL/SQL masih bisa dikembalikan lagi seperti semula sehingga kode sumber aslinya masih bisa dibaca kembali oleh orang lain. Proses ini disebut sebagai unwrap.

Ada beberapa cara untuk melakukan proses unwrap. Cara yang paling mudah untuk mengembalikan hasil wrap PL/SQL menjadi kode sumber aslinya adalah dengan bantuan tool Oracle SQL Developer dengan tambahan plug-in atau extension untuk melakukan proses unwrap. Oracle SQL Developer versi terbaru adalah versi 4.2 yang bisa diunduh secara gratis dari:

http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

Hacking Fitur Wrap di Oracle PL/SQL 14

Sebagai contoh, bila kita melihat kembali fungsi HITUNG_PAJAK di Oracle SQL Developer yang sudah di-wrap seperti yang telah dibahas di artikel sebelumnya, hasilnya adalah sebagai berikut:

Hacking Fitur Wrap di Oracle PL/SQL 15

Perhatikan bahwa source code atau kode sumber PL/SQL asli untuk fungsi HITUNG_PAJAK saat ini tidak bisa dipahami karena telah dienkripsi melalui fitur wrap di Oracle Database.

Untuk bisa memulihkan kode sumber PL/SQL yang telah di-wrap sehingga menjadi kembali seperti semula untuk bisa dipahami dan dipelajari cara kerjanya, perlu melakukan instalasi extension tambahan di Oracle SQL Developer yaitu Unwrapper. Unwrapper merupakan extension atau plug-in tambahan untuk Oracle SQL Developer yang bisa diundah secara gratis dari alamat situs web berikut:

https://www.salvis.com/blog/plsql-unwrapper-for-sql-developer/

Setelah mengunduh file extension Unwrapper tersebut bernama Unwrapper_for_SQLDev_1.0.0.zip, jangan melakukan ekstraksi terhadap file ZIP tersebut namun tetap biarkan sebagai file ZIP. Jalankan Oracle SQL Developer dan lakukan instalasi terhadap extension Unwrapper tersebut melalui menu “Help” kemudian pilih “Check for Updates” seperti berikut ini:

Hacking Fitur Wrap di Oracle PL/SQL 16

Setelah muncul wizard untuk “Check for Updates” di SQL Developer, pilih “Install From Local File” dan kemudian klik “Browse” untuk memilih file Unwrapper_for_SQLDev_1.0.0.zip yang barusan diunduh. Hasilnya menjadi seperti berikut ini:

Hacking Fitur Wrap di Oracle PL/SQL 17

Klik pada tombol “Next” terus hingga proses instalasi extension Unwrapper selesai. Supaya extension Unwrapper tersebut aktif maka harus melakukan restart terhadap aplikasi Oracle SQL Developer, yaitu menutup aplikasi dan kemudian menjalankan kembali aplikasi Oracle SQL Developer.

Setelah melakukan proses restart terhadap aplikasi Oracle SQL Developer, buka kembali fungsi HITUNG_PAJAK di editor Oracle SQL Developer. Source code yang tampil masih dalam bentuk wrap. Untuk melakukan unwrap terhadap kode sumber tersebut, lakukan klik kanan mouse di dalam editor Oracle SQL Developer untuk menampilkan menu sebagai berikut:

Hacking Fitur Wrap di Oracle PL/SQL 18

Pilih “Unwrap” pada menu tersebut atau bisa juga dengan menekan keyboard shortcut Ctrl+Shift+U untuk menjalankan proses unwrap melalui extension Unwrapper di Oracle SQL Developer. Begitu proses unwrap dijalankan, maka langsung akan terlihat kembali kode sumber aslinya sebagai berikut:

Hacking Fitur Wrap di Oracle PL/SQL 19

Perhatikan bahwa source code fungsi HITUNG_PAJAK yang sebelumnya telah di-wrap tersebut sudah bisa dipahami kembali untuk dipelajari cara kerjanya. Dengan demikian, proteksi terhadap kode sumber PL/SQL melalui fitur wrap sudah tidak efektif lagi karena bisa di-hack secara mudah dengan bantuan Oracle SQL Developer dan extension Unwrapper yang semuanya gratis.

Selamat mencoba!

Andrian The

Instruktur Senior