Kota Salatiga Menuju Optimalisasi Teknologi Informasi

Kota Salatiga Menuju Optimalisasi Teknologi Informasi

Dalam rangka mendukung Pemerintah Kota Salatiga untuk mewujudkan optimalisasi penggunaan TI di Kota Salatiga, Inixindo Jogja bekerja sama dengan Pemerintah Kota Salatiga dan didukung oleh Kementerian Kominfo Republik Indonesia, mengadakan forum diskusi bertajuk :

“Kota Salatiga Menuju Optimalisasi Pemanfaatan Teknologi Informasi”

Acara ini dikemas dengan model paparan dan talk show untuk membuka wawasan ASN agar mampu menggunakan IT secara optimal. Dengan kemampuan penguasaan IT, diharapkan akan berdampak pada peningkatan pelayanan yang diberikan ASN kepada masyarakat.

Dengan menghadirkan Wali Kota Salatiga, Bapak Yuliyanto, S.E., M.M, Kasubdit Teknologi dan Infrastruktur e-Government, Bapak Bambang Dwi Anggono, S.T., M.Eng, dan Direktur Inixindo Jogja, Bapak Andi Yuniantoro sebagai narasumber, materi paparan ketiga narasumber dapat diunduh di bawah ini :

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

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:

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:

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:

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:

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:

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

Memulai Machine Learning di Python (Bagian 2)

Memulai Machine Learning di Python (Bagian 2)

Pada artikel Memulai Machine Learning di 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.

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

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

 

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

  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.

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.

 

 

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

 

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

 

  • Membuat Prediksi

 

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

 

 

Menghasilkan output :

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.

 

 

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

Mustofa

Manager Edukasi Inixindo Jogja

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)

Memulai Machine Learning di Python (Bagian 1)

Memulai Machine Learning di Python (Bagian 1)

Di artikel sebelumnya, sudah dibahas tentang apa itu Machine Learning. Kali ini, akan dibahas cara menerapkan Machine Learning dengan menggunakan bahasa Python.

Python adalah bahasa interpeter yang populer dan powerful. Tidak seperti R, Python adalah bahasa yang memiliki fitur yang lengkap dan memiliki platform yang dapat digunakan baik untuk riset maupun untuk membangun production system. Ada banyak modul dan library yang dapat digunakan untuk menerapkan Machine Learning di dalam Python.

Untuk memulai proyek Machine Learning, harus mengetahui langkah-langkah sebagai berikut:

  1. Mendefinisikan masalah
  2. Menyiapkan Data
  3. Mengevaluasi Algoritma
  4. Memperbarui Hasil
  5. Menyajikan Hasil

 

Langkah-langkah menerapkan Machine Learning dengan Python

  1. Instalasi Platform Python dan Scipy

Untuk mendapatkan software aplikasi Python dan Scipy, dapat mengunjungi situs scipy.org. Disana akan diberikan petunjuk yang lengkap untuk menginstall python dan library yang dibutuhkan, baik dalam platform Linux, Mac OS X maupun Windows. Ada 5 library utama yang perlu diinstall untuk tutorial ini: Scipy, Numpy, Matplotlib, Panda, dan Sklearn.

Memulai Python

Untuk memastikan lingkungan Python sudah berhasil diinstall, berikut langkah-langkah yang bisa dilakukan:

  • Buka baris perintah dan memulai python, di console command prompt

  • Ketik atau copy dan paste script berikut:

 

Data yang Digunakan

Untuk latihan proyek Machine Learning ini menggunakan dataset klasifikasi Bunga Iris. Dataset ini dikenal dengan dataset “hello world” dalam Machine Learning dan Statistik, yang dipakai oleh hampir semua orang.

Dataset ini berisi 150 pengamatan bunga Iris. Ada empat kolom pengukuran bunga dalam centimeter. Kolom kelima adalah spesies bunga yang diamati. Anda dapat mempelajari lebih lajut tentang dataset ini di Wikipedia.

 

Impor Library

Sebelum memuat dataset terlebih dahulu impor semua modul, fungsi dan obyek yang akan digunakan dalam tutorial ini.

 

2. Memuat Dataset

Untuk memuat dataset, dapat langsung diambil dari alamat repository UCI Machine Learning. Berikut script untuk memuat dataset:

Jika tidak ada koneksi internet, file iris.data dapat download terlebih dahulu, diletakkan di file local. Untuk memuat data-nya dapat dilakukan dengan metode yang sama, dengan mengubah URL ke file local.

3. Melakukan Summary Dataset

Pada langkah ini, kita akan melihat data dari beberapa sisi yang berbeda:

  • Dimensi Dataset

Hal ini dilakukan untuk mendapatkan gambaran singkat tentang berapa banyak baris dan atribut data.

Selanjutnya akan terlihat output : (150,50)

Yang berarti 150 baris dan 5 atribut data

  • Melihat Isi Data

Berikut perintah untuk melihat 20 baris data pertama:

  • Ringkasan Statistik

Berikut untuk melihat statistik data termasuk count, mean, nilai min dan max serta beberapa persentase

  • Distribusi Class Data

Sekarang mari kita lihat jumlah baris untk setiap class.

print(dataset.groupby(‘class’).size())

Akan terlihat bahwa setiap class memiliki jumlah kasus yang sama (50 atau 33% dari kumpulan data)

 

Bersambung ke Memulai Machine Learning di Python (Bagian 2)

Mustofa

Manager Edukasi Inixindo Jogja

Chat via Whatsapp