Transportasi Online: Perusahaan IT atau Transportasi?

Transportasi Online: Perusahaan IT atau Transportasi?

Sekitar 8 tahun lalu, perusahaan penyedia transportasi berbasis online mulai bermunculan. Kehadirannya disambut baik oleh masyarakat dunia dan juga masyarakat Indonesia. Di negara kita, layanan yang ditawarkan perusahaan ini bagaikan oase di padang pasir, memuaskan kehausan masyarakat akan transportasi yang aman, nyaman dan tentu saja murah.

Namun di sisi lain, perusahaan transportasi online memicu kemarahan pengemudi transportasi konvensional yang merasa mata pencahariannya terusik akibat persaingan yang tidak sebanding.

Di tengah perdebatan, pemerintah pun turut memperhatikan perusahaan transportasi yang berteknologi canggih ini. Perdebatan di kalangan pemangku kebijakan, lebih banyak mengenai “jenis kelamin” perusahaan. Pertanyaan besar yang seringkali muncul adalah “Apakah perusahaan transportasi online termasuk dalam perusahaan teknologi informasi atau perusahaan transportasi?” Jenis perusahaan tentu penting untuk diidentifikasi, untuk memutuskan konsekuensi yang akan diterima oleh perusahaan.

Perdebatan ini ternyata tak hanya terjadi di Indonesia. Perkumpulan pengemudi taksi di Barcelona, Spanyol, membawa permasalahan ini ke European Court of Justice (pengadilan hukum Eropa). Secara khusus, mereka mengajukan perusahaan Uber ke pengadilan untuk memutuskan, apakah Uber termasuk dalam perusahaan teknologi informasi atau perusahaan transportasi?

Transportasi Online: Perusahaan IT atau Transportasi? 1

Pada 20 Desember 2017, akhirnya European Court of Justice memutuskan bahwa Uber adalah perusahaan transportasi. Keputusan ini membuat Uber harus mematuhi aturan Uni Eropa yang ketat dalam masalah transportasi. Keputusan yang diambil di Luxemberg ini akan berlaku di seluruh Uni Eropa, termasuk Inggris Raya, dan Uber tidak bisa mengajukan banding.

Dalam keputusannya, European Court of Justice mengatakan bahwa Uber adalah layanan perantara yang tujuannya menghubungkan penumpang dengan pengemudi non-profesional yang menggunakan kendaraan mereka sendiri. Model bisnis semacam ini harus diklasifikasikan sebagai layanan di bidang transportasi sesuai dengan Undang-undang Uni Eropa. Konsekuensinya, layanan ini dikategorikan tidak temasuk dalam layanan umum, juga tidak termasuk dalam perdagangan elektronik.

European Court of Justice menemukan bahwa layanan Uber lebih dari layanan perantara. Mereka mengamati bahwa layanan ini sangat diperlukan oleh pengemudi dan penumpang. Pengadilan juga menunjukkan bahwa Uber memiliki pengaruh untuk menentukan, dalam kondisi bagaimana pengemudi bisa memberikan layanan mereka. Situasi seperti ini disimpulkan sebagai bagian dari layanan, yang komponen utamanya adalah transportasi.

Meskipun demikian, Uber menyangkal bahwa perusahaannya termasuk dalam perusahaan transportasi. Mereka beranggapan, Uber adalah perusahaan teknologi dan seharusnya tunduk pada regulasi Uni Eropa yang mengatur tentang perusahaan e-commerce.

Transportasi Online: Perusahaan IT atau Transportasi? 2

Seperti dikutip dari theguardian.com , Uber mengatakan “Peraturan ini tidak akan mengubah banyak hal di sebagian besar negara Uni Eropa. Kami telah mengikuti Undang-undang transportasi, namun jutaan warga Eropa masih terhalang untuk menggunakan aplikasi kami.”

“Seperti yang dikatakan CEO baru kami, adalah tepat untuk mengatur layanan seperti Uber, dan kami kami akan terus berdialog dengan kota-kota di seluruh Eropa. Inilah pendekatan yang akan kami lakukan untuk memastikan setiap orang bisa mendapatkan tumpangan yang andal hanya dengan menekan sebuah tombol,” ujar juru bicara Uber di Inggris.

Namun Jason Moyer-Lee, sekjen Serikat Pekerja Independen Inggris Raya yang mewakili pengemudi Uber mengatakan, “Keputusan hari ini menjelaskan apa yang semua orang sudah tahu sebagai masalah akal sehat: Uber menyediakan jasa transportasi, bukan jasa teknologi,” ujarnya seperti dilansir dari theguardian.com.

Nah..memang kalau ngomogin masalah transportasi online pasti selalu ada pro dan kontranya. Hasil keputusan European Court of Justice ini mungkin bisa dijadikan gambaran mengenai perusahaan yang juga semakin menjamur di Indonesia ini. Namun bagaimana landasan hukumnya, tentu berbeda-beda tergantung negara dimana perusahaan ini beroperasi. Menurut anda, apakah transportasi online termasuk perusahaan teknologi informasi atau perusahaan transportasi?

Lemahnya Perkembangan Internet di Indonesia

Lemahnya Perkembangan Internet di Indonesia

Saat ini, internet sudah tidak bisa dipisahkan dari kehidupan kita sehari-hari. Bayangkan bagaimana jika kehidupan kita sehari saja tanpa internet. Mungkin pekerjaan akan jadi berantakan, komunikasi dengan teman dan keluarga terganggu, atau bahkan bisa mendatangkan kerugian materil.

Jika dulu kita mengenal pribahasa “Buku adalah jendela dunia”, kiranya tidak berlebihan jika saat ini kita menggantinya dengan sebutan “Internet adalah jendela dunia”. Melalui internet, kita telah menghilangkan sekat-sekat ruang dan waktu. Begitu pentingnya peran internet dalam kehidupan manusia modern, yang pasti hidup kita akan hampa tanpa internet.

Namun siapa sangka, di tengah masifnya penggunaan internet di kota-kota besar di Indonesia, ternyata perkembangan dan penyebaran internet di Indonesia masih jauh tertinggal dibanding negara-negara lain.

Saat ini, kita mengenal ICT Development Index (IDI) sebagai indikator pengembangan teknologi internet di suatu negara. Indikator ini dapat menjadi alat untuk membandingkan perkembangan teknologi informasi antar negara. Publikasi indeks ini dimulai sejak tahun 2009 oleh International Telecommunication Union.

Lemahnya Perkembangan Internet di Indonesia 3

Tujuan IDI adalah mengetahui level dan perkembangan indeks antar negara, mengetahui perkembangan IDI di negara berkembang dan negara maju, mengukur digital divide dan perbedaan IDI antarnegara. IDI mengombinasi 11 indikator menjadi satu buah ukuran perbandingan. Melalui indeks inilah, kita bisa mengukur diri sudah sejauh mana perkembangan teknologi internet Indonesia.

Ternyata posisi Indonesia saat ini masih belum menggembirakan. Pada tahun 2017, Indonesia memiliki nilai IDI sebesar 4.33 dan berada di peringkat 111 dunia, dari keseluruhan sebanyak 176 negara yang dinilai. Bahkan posisi Indonesia masih berada di bawah Botswana (peringkat 105), Fiji (peringkat  107), Kyrgyztan (peringkat 109) dan Tonga (peringkat 110).

Sedangkan pada tahun 2016, Indonesia menduduki peringkat 114 dunia dengan nilai IDI sebesar 3.85. Meskipun ada peningkatan dibandingkan tahun sebelumnya, namun Indonesia tetap harus banyak berbenah untuk mengejar ketertinggalan ini.

Untuk meningkatkan nilai IDI, pada bulan Desember 2017 lalu diadakanlah kegiatan urun rembug dalam bentuk simposium yang mendatangkan para ahli ICT dan stakeholder data IDI. Ikut hadir dalam simposium ini adalah Kementerian Komunikasi dan Informatika, Kementerian Pendidikan Nasional, Biro Pusat Statistik dan operator. Dengan diadakannya simposium, diharapkan dapat memberikan inisiatif, pemikiran dan pengetahuan untuk meningkatkan IDI Indonesia.

Lemahnya Perkembangan Internet di Indonesia 4

“Dengan sharing ilmu pengetahuan, kita bisa tahu kalau memang ada kekurangan-kekurangan dalam menghitung indeks ini. Kita jadi tahu ternyata ini yang kita perlukan. Umpamanya digital literasi di Indonesia rendah atau ICT digital skillnya yang perlu ditingkatkan,” ujar Dirjen Aplikasi Informatika Samuel Abrijani Pangerapan dalam siaran pers Kementerian Komunikasi dan Informatika.

Selanjutnya, hasil karya dan simposium akan digunakan dalam pembahasan lanjutan para ahli hingga menghasilkan dokumen acuan langkah strategis Indonesia dalam meningkatkan IDI. Hasil simposium akan dipergunakan pemerintah sebagai acuan pengembangan teknologi informasi di Indonesia.

Meskipun IDI penting untuk mengukur perkembangan teknologi informasi di Indonesia, namun semoga bukan hanya peningkatan nilai IDI yang menjadi tujuan utama pemerintah. Yang lebih penting dari IDI sejatinya adalah lebih meratanya penyebaran dan akses internet di Indonesia, juga peningkatan kualitasnya. Sehingga informasi dan pengetahuan bisa turut dinikmati oleh saudara-saudara kita yang ada di pedalaman Indonesia.

Bitcoin di Tahun 2018: Akankah Terbang Tinggi atau Meletus?

Bitcoin di Tahun 2018: Akankah Terbang Tinggi atau Meletus?

Cryptocurrency (mata uang kripto) sedang naik daun belakangan ini. Sepanjang tahun 2017, Bitcoin adalah cryptocurrency paling bersinar karena nilainya yang terus naik. Lalu bagaimanakah di tahun 2018? Apakah nilai Bitcoin bisa semakin melambung di tahun ini?

Bitcoin adalah mata uang kripto dengan teknologi Blockchain yang mustahil nilainya ditentukan oleh institusi, pemerintah, atau bahkan oleh penciptanya sendiri. Jadi pertumbuhan nilai Bitcoin murni hanya dipegaruhi oleh kekuatan supply (penawaran) dan demand (permintaan saja).

Tahun 2017 adalah masa-masa pembuktian bagi Bitcoin sebagai cryptocurrency paling bernilai. Rekor tertinggi yang didapatkan Bitcoin selama tahun 2017 mencapai nilai USD 19.796 (Rp 268 juta) pada 17 Desember 2017 lalu. Para ahli banyak yang memprediksi tren Bitcoin yang terus naik akan berlanjut pada 2018.

“Bitcoin dapat mencapai USD 60 ribu (Rp 814 juta) pada Desember 2018,” ujar Mike Dumont, Senior Editor Bitcoin.com seperti dikutip dari Futurism.

Bitcoin di Tahun 2018: Akankah Terbang Tinggi atau Meletus? 5

Hal senada disampaikan juga oleh Jeremy Epstein, CEO Never Stop Marketing, startup firma pemasaran berbasis Blockchain.

“Dengan catatan sepanjang 2017, saya tidak akan terkejut jika Bitcoin akan menyentuh angka USD 250 ribu (Rp 3,39 Miliar) atau lebih dalam waktu lima tahun. Meskipun begitu, masih ada kemungkinan 50:50 antara sukses besar atau gagal total,” tutur Epstein menjelaskan seperti dilansir dari detik.com.

Meskipun banyak yang memprediksi nilai Bitcoin akan terus naik selama 2018, namun ada juga yang mengkhawatirkan cryptocurrency ini suatu saat akan mengalami gelembung yang terus terbang tinggi, namun dapat meletus kapan saja.

Armindo Araujo, Kepala Divisi Finansial dari NATIXIS, Bank asal Perancis mengatakan, “Ya, Bitcoin merupakan ‘gelembung’. Permintaan terhadapnya akan terus membuatnya naik dan naik, dan saya cukup penasaran kapan ini akan terus terjadi. Menurut saya, posisi Bitcoin dalam setahun ke depan akan ditentukan oleh regulasi serta penerapannya di pasar global.”

Namun pernyataan Araujo ini dibantah oleh Dumont. Dumont mengatakan bahwa terdapat tiga faktor yang membuat Bitcoin bukanlah ‘gelembung’, yaitu terbatasnya pasokan Bitcoin hingga 21juta. Pemberitaan media serta minat investor membuat orang-orang akan tetap membelinya, dan kapasitasnya masih sangat kecil dibandingkan investasi konvensional.

Epstein juga menyampaikan hal serupa. “Kata ‘gelembung’ hanya digunakan oleh orang-orang yang tidak memahami Bitcoin itu sendiri,” katanya.

Bitcoin memang menciptakan pro dan kontra untuk industri keuangan dan bisnis di dunia. Tahun lalu, CEO JP Morgan Jamie Dimon sempat menyebut Bitcoin sebagai alat penipuan. Beberapa negara pun melarang penggunaan Bitcoin di wilayahnya.

Bitcoin di Tahun 2018: Akankah Terbang Tinggi atau Meletus? 6

Bahkan Mufti Besar Mesir Shawki Allam mengeluarkan fatwa yang mengharamkan Bitcoin. Menurutnya Bitcoin mirip dengan judi yang diharamkan dalam ajaran Islam. Fatwa itu dikeluarkan setelah melakukan perundingan dengan beberapa ahli ekonomi.

Mufti Besar Mesir menganggap pertukaran perdagangan cryptocurrency seperti berjudi dengan alasan karena dampak langsungnya dalam kehancuran finansial untuk individu. Ulama ini juga mengungkap dampak lain yang disebabkan oleh Bitcoin, yaitu memberikan kemudahan dalam pencucian uang dan penyelundupan.

Pernyataan bernada kontra akan Bitcoin juga diungkapkan oleh Joseph Stiglitz, Peraih Nobel di bidang ekonomi. Menurut Stiglitz, Bitcoin adalah uang yang tidak bermanfaat secara sosial. “Bitcoin bisa melambung tinggi karena supply dan demand, namun tidak bermanfaat secara sosial,” ujarnya seperti dikutip dari detik.com.

Pro dan kontra selalu membayangi cryptocurrency yang diciptakan oleh Satoshi Nakamoto ini karena pergerakan harganya yang sangat liar. Bagaimana dengan Anda? Apakah Anda termasuk yang berminat untuk berinvestasi Bitcoin? Atau malah Anda termasuk yang berhati-hati karena bisa saja suatu saat nilai Bitcoin yang sedang terbang tinggi, lalu tiba-tiba meletus begitu saja.

Keamanan Cyber Semakin Penting, Presiden Bentuk BSSN

Keamanan Cyber Semakin Penting, Presiden Bentuk BSSN

Masalah keamanan siber (cyber), saat ini sudah merupakan suatu hal yang sangat penting. Tidak kokohnya keamanan siber bahkan bisa mengancam keamanan suatu bangsa. Sebagai contoh adalah kasus Nigerian Scammer yang menjaring korban dengan berbagai modus. Nigerian Scammer menyebabkan kerugian hingga mencapai Rp 500 miliar per tahun.

Pada tingkatan yang lebih tinggi, cyber crime bahkan bisa mengancam kedaulatan negara. Kasus cyber crime pada saat pemilihan Presiden Amerika Serikat pada 2016 silam bahkan membuat Secret Service turun tangan.

Karena permasalahan cyber crime yang semakin pelik, pada 3 Januari lalu, Presiden Joko Widodo membentuk Lembaga Badan Siber dan Sandi Negara (BSSN). Lembaga ini dipimpin oleh Djoko Setiadi dan bertanggung jawab langsung pada Presiden.

Badan ini dibentuk melalui Peraturan Presiden nomor 53 tahun 2017 yang kemudian direvisi dengan Perpres nomor 133 tahun 2017. Dalam tugasnya, Kepala BSSN akan dibantu oleh sekretariat utama dan empat deputi, yakni Deputi Bidang Identifikasi dan Deteksi, Deputi Bidang Proteksi, Deputi Bidang Penanggulangan dan Pemulihan dan Deputi Bidang Pemantauan dan Pengendalian.

Dalam Perpres, disebutkan bahwa BSSN bertugas melaksanakan keamanan siber secara efektif dan efisien dengan memanfaatkan, mengembangkan dan mengonsolidasikan semua unsur yang terkait dengan keamanan siber.

Dijelaskan pula, BSSN punya delapan fungsi. Di antaranya terkait dengan identifikasi, deteksi, proteksi dan penanggulangan e-commerce, persandian, diplomasi siber, pusat manajeman krisis siber, pemulihan penanggulangan kerentanan, insiden dan/atau serangan siber.

Keamanan Cyber Semakin Penting, Presiden Bentuk BSSN 7

Dengan dibentuknya BSSN ini, maka untuk selanjutnya pelaksanaan seluruh tugas dan fungsi di bidang keamanan informasi, pengamanan pemanfaatan jaringan telekomunikasi berbasis protokol internet, dan keamanan jaringan dan infrastruktur telekomunikasi pada Kementerian Komunikasi dan Informatika dan Lembaga Sandi Negara akan dilaksanakan oleh BSSN.

Namun setelah dibentuknya BSSN juga timbul pertanyaan, apakah fungsi Badan ini tidak tumpang tindih dengan institusi lain yang lebih dulu ada? Menteri Koordinator Bidang Politik, Hukum dan Keamanan Wiranto menilai, tugas BSS tidak akan tumpang tindih dengan badan siber yang ada pada institusi lain. Menurut Wiranto, tugas BSSN justru memproteksi seluruh kegiatan siber secara nasional.

“Supaya tidak tumpang tindih maka dibentuk BSSN. Nanti kan ada satu sistem dimana akan justru mereduksi adanya tumpeng tindih itu,” kata Wiranto seperti dikutip dari kompas.com.

Kegiatan pengamanan siber, menurut Wiranto bukan barang baru di Indonesia, ia mengatakan, di Badan Intelijen Negara (BIN) juga ada kegiatan siber. Selain itu, Kementerian Pertahanan, TNI, Kepolisian dan bahkan para pebisnis pun memiliki divisi pengamanan siber. BSSN akan memayungi, memproteksi, menyinkronkan dan mengharmoniskan semua kegiatan siber yang ada.

“Sebab kalau itu kita lepaskan masing-masing, maka akan terjadi overlapping, terjadi cross yang kemudian tidak menguntungkan kepentingan nasional,”ujar Wiranto.

Keamanan Cyber Semakin Penting, Presiden Bentuk BSSN 8

Hal senada juga dikatakan oleh Kepolisian RI (Polri). Polri memastikan BSSN tidak akan tumpang tindih dengan Direktorat Tindak Pidana (Dittipid) Siber Polri. Sebab nantinya tugas dan kewajiban BSSN akan berbeda dengan Polri.

“Nanti akan disinkronisasi supaya tidak terjadi tumpang tindih karena semuanya untuk satu tujuan, yakni demi keamanan dan ketertiban dunia siber,” kata Kepala Divisi Hubungan Masyarakat Polri Inspektur Jenderal Setyo Wasisto seperti dikutip dari tempo.co.

Baik BSSN maupun Dittipid Siber Polri sama-sama dibentuk untuk mengantisipasi perkembangan dunia siber yang begitu cepat. Keduanya bertugas melakukan pemantauan serta mengondisikan suasana di area siber agar betul-betul tenang dan aman.

Setyo mengatakan Polri saat ini belum menerima arahan dari Presiden terkait pembagian wewenang BSSN dan Dittipid Siber Polri. “Mungkin nanti dalam waktu dekat,” kata Setyo.

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 9

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 10

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 11

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 12

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 13

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 14

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

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

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

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

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

  • 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) 19

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