Cara Membuat Poster Acara yang Kece Badai

Hi guys!

Bingung dengan post-post sebelumnya? Sama saya juga. Eh ga deng. Mimin ngerti dikit-dikit kok hehehe :v.

Yo tanpa basa-basi lagi kita masuk ke topik pembahasan kita “ Cara Membuat Poster Acara yang Kece Badai”. Lho OmahTI bukannya isinya tentang IT doang min? FYI, salah satu divisi yang ada di OmahTI ialah Multimedia. Masih masuk IT kok, ya bedanya “cuma” ga ada ngoding :v.

To the point kenapa poster acara harus keren?
Lanjutkan membaca

Menyangkilkan Algoritma

“Menyangkilkan” berasal dari kata “sangkil”, yang salah satu artinya adalah “berdaya guna/efisien” (artinya ada di situ).

Baru denger kan? Hehe. Sama. Penulis juga.

Mengapa perlu algoritma yang sangkil?

  • Algoritma yang sangkil akan membuat program yang kita buat menjadi bekerja lebih cepat, karena kembali lagi ke fungsi komputer yang sebenarnya, yaitu mempercepat pekerjaan yang lambat dikerjakan oleh manusia secara langsung.
  • Selain itu, algoritma yang sangkil tentu akan memperingan kerja mesin, terlebih bagi mesin yang kemampuannya hanya bisa melakukan sedikit operasi per satuan waktu.

Lanjutkan membaca

Social Engineering – The Art of Human Hacking

Terinspirasi dari sebuah film layar lebar yang dirilis pada tahun 2014.
Tidak ada sistem yang aman di dunia ini. Bagaimanapun kalian merancangnya, tetaplah tak akan bisa untuk menutupi celah tersebut.

Mengapa?
Karena celah tersebut adalah kita sendiri, makhluk yang menganggap dirinya sendiri sempurna yang tak lain ialah manusia.

Kembali ke diri masing-masing, sadarilah bahwa kita adalah makhluk fana yang jauh dari kata sempurna, salah satunya terdapat didalam hati kita.
Qalbu atau hati nurani adalah hal yang sangat luar biasa, yang membedakan kita dari spesies lain. Namun, justu hal itulah yang dapat membuat kita lemah.

Manusia adalah rantai terlemah dalam sistem keamanan/jaringan komputer.

Oke, kita lanjutkan 🙂
Pernahkah anda merasa iba saat melihat orang yang sedang kesulitan dan meminta pertolongan kepada anda ?
Pernahkah anda merasa mempercayai orang lain karena baik kepada anda ?
Pernahkah anda merasa ingin membalas budi karena orang lain pernah membantu anda ?
Pernahkah anda mengikuti apa yang orang lain instruksikan karena terlihat meyakinkan ?

Jika ya, selamat anda memiliki kerentanan terhadap Social Engineering 🙂 (TS pun juga sama karena TS juga manusia, punya rasa dan punya hati)

Namun, yang lebih mengerikan ialah apabila tidak memiliki kerentanan terhadap social engineering.
Jauh lebih berbahaya dari pelaku yang mungkin yah bisa disebut bermuka dua, musang berbulu domba, penipu, dll
Cukup bayangkan saja, bisa disebut apakah jika seseorang memiliki sistem yang benar-benar aman 🙂

Oke, kembali ke kampus untuk kuliah topik Social Engineering

Sebenarnya disini TS hanya ingin sharing dan meningkatkan awareness sang pembaca, agar tak mudah terkena Social Engineering (walaupun TS juga kadang sering kena tipu dan tak sadar akan sesuatu 🙁 ).
Yah apa salahnya kita saling berbagi, “Sampaikanlah dariku walau hanya satu ayat” (HR. Bukhari)

Banyak sekali motif dibalik pelaku Social Engineering, namun hal yang paling sering terjadi disebabkan karena faktor finansial.
Yap dikarenakan salah satu faktor tersebut, banyak sekali tindak penipuan di dunia maya.

Salah satunya yang pernah TS alami. Kisah ini bermula saat si dia Jadi waktu itu ntah kapan saat TS ingin berbelanja di salah satu Online Shop ternama (saya tidak sebut merek karena nanti takut terciduk tim merah). Saat TS melihat-lihat barang, mata TS langsung terfokus (Awtofocus) ke salah satu barang yang harganya paling murah (Yah namanya juga manusia). Ceritanya TS merasa yakin karena meyakinkan wkakaka :v, tapi ternyata itu hanya tipu tipu sayangnya 🙁 . Singkat cerita setelah saya order, si pelapak tiba” mengirimkan sebuah pesan singkat kepada TS yang menginstruksikan bahwa untuk mengkonfirmasi pembayaran, TS disuruh untuk men-SS detail transaksi dan diberi sebuah URL yang menuju login page. Awalnya TS hampir saja kena typu, namun setelah diperhatikan ada yang janggal dari desain webnya yang kurang menarik dan ternyata domainnya juga bukan official, namun ada subdomainnya (Ciri social engineer yang gak mau keluar modal). Seketika TS langsung menerka itu FIX PENIPU !!! 😀

^ Iklan dulu yah 🙂 (Selingan agar tak jenuh membaca postingan nirfaedah ini)

Simpel bukan ?
TS yakin pastinya bakal banyak yang tertipu dengan trik seperti itu, apalagi untuk orang awam yang tak mengerti IT.
Loh kok TS bisa tau ?
Bisa dong, karena dulu TS pernah melakukan hal tersebut (Masa jahiliah bertahun tahun yang lalu)
Tenang TS gk ada niatan merusak kok, yah cuma iseng nyoba aja sih 🙂

Untuk ukuran orang indonesia, tak perlu menggunakan trik ini itu karena banyak sekali yang masih awam terhadap IT.
Cukup tebar garam saja banyak yang terpelatuk, komentar lebih seru daripada posting aslinya wkakaka 😀
Karena itulah awalnya TS merasa kecewa karena kurikulum IT dihapus, dengan alasan pelajar di Indo sudah melek IT. Nyatanya tidak demikian, iya secara teknis, namun belum secara etik dan awareness.

Buktinya?
Waktu dulu saat zaman jahiliah, TS pernah mencoba menebar phising (phising untuk salah satu game onlen di FB) dan nyatanya banyak sekali yang terperangkap. Alhasil dulu TS mendapat banyak akun Facebook yang valid (percayalah, semua akun aman kok) ._.

Bukti lagi?
Waktu masih zaman SMA, TS pernah mencoba ke beberapa siswa lain dan juga guru-guru, dan ternyata password socmed mereka bisa didapatkan dengan mudah (cm iseng doang kok) 😀

Masih banyak contoh lainnya, mulai dari ibu” yang gk punya ongkos pulang minta dikasih ongkos, nawarin tiket promo ini itu dengan kedok sumbangan untuk anak yatim lah, dll.
Yang jelas cara yang mereka lakukan itu benar-benar tricky, susah bagi orang awam untuk mengelaknya.

Jadi, kesimpulan yang dapat kita ambil dari artikel diatas ialah untuk selalu aware terhadap apapun.
Jangan mudah mempercayai apa yang kita lihat (walau TS pun kadang sering gak sadar) karena kita adalah makhluk fana yang bisa dieksploitasi kapan saja, dimana saja, dan oleh siapa saja.

Sekian artikel dari TS, semoga dapat membawa manfaat dan berkah untuk kita semua.
Terima kasih, dan Salam OmahTI.

Solusi Soal A Kontes Hello 2018 Codeforces

Bismillaah.

Halo pembaca semua! Apa kabar? Semoga sehat ya, terutama setelah membaca pos ini semoga semakin mual-mual sehat jasmani dan rohani.

Pos ini membahas salah satu soal kontes yg diadakan di Codeforces kemarin. Buat yang belum tau apa itu Codeforces, situs tersebut adalah situs untuk berlatih soal-soal pemrograman yang mengedepankan kemampuan problem solving. Oke, langsung aja yaa pembahasannya.

Lanjutkan membaca

Writeups SQLi CTFSme

Writeups SQLi CTFSme – Halo semuanya, sepertinya sudah lama mimin tak posting. Kali ini mimin ingin sharing lagi terkait Keamanan jaringan yaitu tentang Capture The Flag atau CTF, tapi kali ini kita akan membahas penyelesaian soal-soal yang terdapat pada web ctfs.me

Untuk mengetahui apa itu CTF  bisa dilihat melalui https://yohan.es/ctf/

Daripada kelamaan basa basi, langsung saja kita bahas 🙂

Sebelumnya, bagi yang belum tau soalnya secara lengkap bisa dilihat melalui http://35.184.20.243:8003/, jika sudah mari kita lanjutkan.

SQLi Level 1 

Terdapat query

Solusi ? Kita tinggal masukkan payload

pada form session_id, maka langsung dapat flagnya

CTFS{disamarkan}

SQLi Level 2

Perhatikan source codenya

Kita lihat query pertama yang diberi komentar sepertinya sangat menarique dan sangat jelas itulah lokasi flagnya :v
Solusi ? Kita pakai UNION Operator untuk dapat mengakses flagnya

Kemudian violaaa dapet flagnya 🙂

Welcome
CTFS{disamarkan}! Here’s some green text for you.
CTFS{disamarkan2}

SQLi Level 3
Perhatikan source code berikut

Wah ada filternya, hemm kerad juga kamu ya

ehem, balik ke topik awal. Sepertinya yang difilter hanya union dan select
lagipula proses filter hanya menggunakan preg_replace sehingga kita bisa akali dengan cara mengganti union dengan UNIunionON dan select dengan SELselectECT

Kemudian, lihat querynya

Query seperti ini bisa langsung kita hajar dengan menggunakan UNION operator, oke langsung saja ikuzo minna !!!

wah dan ternyata nongol angka 1, 2, dan 3 pada hasil pencarian, artinya terdapat 3 kolom.
lansung hajaaar !!! IKUZOOOO !!!

Violaa dapat flagnya yay

CTFS{disamarkan}

SQLi Level 4
Perhatikan source code berikut

Waw filter lagi afuuu, tapi sepertinya ez karena menggunakan strpos dan hanya mengecek string yg semua kapital atau semua non kapital. Akan tetapi kita bisa akali dengan mengubah salah satu karakter saja menjadi kapital agar tidak terkena filter yang menyebalkan, lagipula sama seperti diatas juga querynya. Langsung saja hajar IKUZOOO !!!

Nais, dapat flag lagi

CTFS{disamarkan}

SQLi Level 5
Masih sama seperti diatas, tapi kita perhatikan lagi source codenya

NANI !!!? FILTER LAGI ??? Afuuuu
Tapi sepertinya msh mudah, karena cuma filter spasi saja :v
Tenang, bisa diakali menggunakan /**/

Oke, langsung kita hajar ikuzoo !!!

Hore dapet flag

CTFS{disamarkan}

SQLi Level 6
Yak, masih dunia SQLi
Kita perhatikan lagi source codenya

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA FILTER LAGIIIIIIII 🙁
Mana yang difiler itu tanda petik pula, oke kali ini lumayan kerad yah kamu

Loh, kalau tanda petik bagaimana cara kita membypassnya ?
Mudah, cukup menggunakan backslash \
Ayo saatnya kita sleding kids !!!

Akhirnya dapet flag yay

CTFS{disamarkan}

SQLi Level 8
Ano . . sepertinya kita ke level 8 dlu yah untuk nyari flag level 7 wkakak
Kali ini kita tidak diberikan source, namun ada hint yg menarik

Ini dia bagian yang paling menarik, let’s pop a shell :v
Kita perhatikan source html nya

Waduu ada folder uploads dan phpinfo nya 🙂
Berarti sudah jelas klo kita harus meng-upload shell kita pada folder uploads, untuk itu kita perlu melihat phpinfo nya

Bagian yang paling penting ialah DOCUMENT_ROOT, karena rootnya berada di /var/www/html maka kita perlu menguploadnya di /var/www/html/uploads

Bagaimana cara menguploadnya ? kita akan memanfaatkan fungsi dari MySQL yang bernama INTO OUTFILE

Kemudian kita akses http://35.184.20.243:8003/uploads/sayahekel.php?cmd=id melalui browser, dan akan muncul seperti ini

Artinya shell yang kita tanam berhasil kita akses, setelah ini kita langsung aja cari flagnya

Nais, kiita dapat flag horeee

CTFS{disamarkan}

SQLi Level 7
Oke, baru kali ini kita akan cari flag level 7
Hint sudah jelas, suruh cek /etc/passwd
Sebenernya kalau kita menggunakan SQL Injection, kita bisa menggunakan fungsi load_file, namun entah knp /etc/passwd nya gk bsa dibuka, terpaksa kita gunakan shell dari level 8

Sehingga, dengan menggunakan shell yang sudah kita tanam, mari kita akses /etc/passwd nya 😀

Yes flag terakhir dari Challenge SQLi kita dapatkan 🙂

CTFS{disamarkan}

Yap, mungkin hanya sekian yang dapat saya berikan untuk kalian semua
Jika ada pertanyaan silakan tanya saja di kolom komentar 😀
Maaf kalau kurang jelas, karena mimin juga masih belajar hehehe

Salam damai ~ ( web ini jgn dirusak yah :v )

SQLi Level 8
Ano . . sepertinya kita ke level 8 dlu yah untuk nyari flag level 7 wkakak
Kali ini kita tidak diberikan source, namun ada hint yg menarik

Ini dia bagian yang paling menarik, let’s pop a shell :v
Kita perhatikan source html nya

Waduu ada folder uploads dan phpinfo nya 🙂
Berarti sudah jelas klo kita harus meng-upload shell kita pada folder uploads, untuk itu kita perlu melihat phpinfo nya

Bagian yang paling penting ialah DOCUMENT_ROOT, karena rootnya berada di /var/www/html maka kita perlu menguploadnya di /var/www/html/uploads

Bagaimana cara menguploadnya ? kita akan memanfaatkan fungsi dari MySQL yang bernama INTO OUTFILE

Kemudian kita akses http://35.184.20.243:8003/uploads/sayahekel.php?cmd=id melalui browser, dan akan muncul seperti ini

Artinya shell yang kita tanam berhasil kita akses, setelah ini kita langsung aja cari flagnya

Nais, kiita dapat flag horeee

CTFS{1n_mysql_w3_tru5t}

SQLi Level 7
Oke, baru kali ini kita akan cari flag level 7
Sebenernya hint sudah jelas, suruh cek /etc/passwd

Sehingga, dengan menggunakan shell yang sudah kita tanam, mari kita akses /etc/passwd nya 😀

Yes flag terakhir dari Challenge SQLi kita dapatkan 🙂

CTFS{596edd3089c594f26d032a95097f4df2}

Yap, mungkin hanya sekian yang dapat saya berikan untuk kalian semua
Jika ada pertanyaan silakan tanya saja di kolom komentar 😀
Maaf kalau kurang jelas, karena mimin juga masih belajar hehehe

Salam damai ~ ( web ini jgn dirusak yah :v )

SQLi Level 8
Ano . . sepertinya kita ke level 8 dlu yah untuk nyari flag level 7 wkakak
Kali ini kita tidak diberikan source, namun ada hint yg menarik

Ini dia bagian yang paling menarik, let’s pop a shell :v
Kita perhatikan source html nya

Waduu ada folder uploads dan phpinfo nya 🙂
Berarti sudah jelas klo kita harus meng-upload shell kita pada folder uploads, untuk itu kita perlu melihat phpinfo nya

Bagian yang paling penting ialah DOCUMENT_ROOT, karena rootnya berada di /var/www/html maka kita perlu menguploadnya di /var/www/html/uploads

Bagaimana cara menguploadnya ? kita akan memanfaatkan fungsi dari MySQL yang bernama INTO OUTFILE

Kemudian kita akses http://35.184.20.243:8003/uploads/sayahekel.php?cmd=id melalui browser, dan akan muncul seperti ini

Artinya shell yang kita tanam berhasil kita akses, setelah ini kita langsung aja cari flagnya

Nais, kiita dapat flag horeee

CTFS{1n_mysql_w3_tru5t}

SQLi Level 7
Oke, baru kali ini kita akan cari flag level 7
Sebenernya hint sudah jelas, suruh cek /etc/passwd

Sehingga, dengan menggunakan shell yang sudah kita tanam, mari kita akses /etc/passwd nya 😀

Yes flag terakhir dari Challenge SQLi kita dapatkan 🙂

CTFS{596edd3089c594f26d032a95097f4df2}

Yap, mungkin hanya sekian yang dapat saya berikan untuk kalian semua
Jika ada pertanyaan silakan tanya saja di kolom komentar 😀
Maaf kalau kurang jelas, karena mimin juga masih belajar hehehe

Salam damai ~ ( web ini jgn dirusak yah :v )

SQLi Level 8
Ano . . sepertinya kita ke level 8 dlu yah untuk nyari flag level 7 wkakak
Kali ini kita tidak diberikan source, namun ada hint yg menarik

Ini dia bagian yang paling menarik, let’s pop a shell :v
Kita perhatikan source html nya

Waduu ada folder uploads dan phpinfo nya 🙂
Berarti sudah jelas klo kita harus meng-upload shell kita pada folder uploads, untuk itu kita perlu melihat phpinfo nya

Bagian yang paling penting ialah DOCUMENT_ROOT, karena rootnya berada di /var/www/html maka kita perlu menguploadnya di /var/www/html/uploads

Bagaimana cara menguploadnya ? kita akan memanfaatkan fungsi dari MySQL yang bernama INTO OUTFILE

Kemudian kita akses http://35.184.20.243:8003/uploads/sayahekel.php?cmd=id melalui browser, dan akan muncul seperti ini

Artinya shell yang kita tanam berhasil kita akses, setelah ini kita langsung aja cari flagnya

Nais, kiita dapat flag horeee

CTFS{1n_mysql_w3_tru5t}

SQLi Level 7
Oke, baru kali ini kita akan cari flag level 7
Sebenernya hint sudah jelas, suruh cek /etc/passwd

Sehingga, dengan menggunakan shell yang sudah kita tanam, mari kita akses /etc/passwd nya 😀

Yes flag terakhir dari Challenge SQLi kita dapatkan 🙂

CTFS{596edd3089c594f26d032a95097f4df2}

Yap, mungkin hanya sekian yang dapat saya berikan untuk kalian semua
Jika ada pertanyaan silakan tanya saja di kolom komentar 😀
Maaf kalau kurang jelas, karena mimin juga masih belajar hehehe

Salam damai ~ ( web ini jgn dirusak yah :v )

SQLi Level 8
Ano . . sepertinya kita ke level 8 dlu yah untuk nyari flag level 7 wkakak
Kali ini kita tidak diberikan source, namun ada hint yg menarik

Ini dia bagian yang paling menarik, let’s pop a shell :v
Kita perhatikan source html nya

Waduu ada folder uploads dan phpinfo nya 🙂
Berarti sudah jelas klo kita harus meng-upload shell kita pada folder uploads, untuk itu kita perlu melihat phpinfo nya

Bagian yang paling penting ialah DOCUMENT_ROOT, karena rootnya berada di /var/www/html maka kita perlu menguploadnya di /var/www/html/uploads

Bagaimana cara menguploadnya ? kita akan memanfaatkan fungsi dari MySQL yang bernama INTO OUTFILE

Kemudian kita akses http://35.184.20.243:8003/uploads/sayahekel.php?cmd=id melalui browser, dan akan muncul seperti ini

Artinya shell yang kita tanam berhasil kita akses, setelah ini kita langsung aja cari flagnya

Nais, kiita dapat flag horeee

CTFS{1n_mysql_w3_tru5t}

SQLi Level 7
Oke, baru kali ini kita akan cari flag level 7
Sebenernya hint sudah jelas, suruh cek /etc/passwd

Sehingga, dengan menggunakan shell yang sudah kita tanam, mari kita akses /etc/passwd nya 😀

Yes flag terakhir dari Challenge SQLi kita dapatkan 🙂

CTFS{596edd3089c594f26d032a95097f4df2}

Yap, mungkin hanya sekian yang dapat saya berikan untuk kalian semua
Jika ada pertanyaan silakan tanya saja di kolom komentar 😀
Maaf kalau kurang jelas, karena mimin juga masih belajar hehehe

Salam damai ~ ( web ini jgn dirusak yah :v )

Linear Regression

1. Supervised Learning : Linear Regression
Dalam statistik, linear regression adalah pendekatan linier untuk memodelkan hubungan antara variabel dependen yang dilambangkan Y dan satu atau lebih variabel independen yang dilambangkan X. Model Persamaan Regresi Linear Sederhana adalah seperti berikut ini :
Y = a + bX
Dimana :

Y = Variabel Dependen atau Variabel Akibat(Response)

X = Variabel Independen atau Variabel Faktor Penyebab (Predictor)

a = konstanta

b = koefisien regresi (kemiringan); besaran Response yang ditimbulkan oleh Predictor.
Kali ini kita akan memprediksi harga rumah dengan menggunakan Linear Regression. Dataset yang akan digunakan adalah dataset dari sklearn, yaitu dataset harga rumah Boston.

1.0.1  Step 1: Menyiapkan Data
Pertama, kita import terlebih dahulu library yang dibutuhkan

import dataset dari sklearn

download dataset

1.0.2  Step 2: Visualisasi data

Selanjutnya, kita lihat scatter plot dari salah satu feature dengan target, yaitu jumlah kamar dengan harga rumah.

Dari plot diatas, kita bisa melihat bahwa harga meningkat seiring dengan jumlah kamar, yang secara intuitif masuk akal. Selanjutnya, kita akan menggunakan scikit-learn untuk melihat apakah kita bisa memasukkan data secara linier. Sebelum itu, kita harus mengubah dataset ke dalam bentuk DataFrame.

1.0.3 Step 3: gunakan scikit learn untuk implementasi multivariate regression

Linear regression terbagi menjadi univariate regression dan multivariate regression. kita menggunakan univariate regression ketika hanya ada satu variabel data(feature) yang mempengaruhi target. Namun jika yang mempengaruhi target ada lebih dari satu feature, maka kita gunakan multivariate regression.
Pertama, kita import library linear regression dari sklearn

sklearn.linear_model.LinearRegression merupakan sebuah estimator. estimator memprediksi sebuah nilai berdasarkan data yang diobservasi. dalam scikit learn, semua estimator menerapkan metode fit() dan predict(). metode fit() digunakan untuk mengetahui parameter model, sedangkan metode predict() digunakan untuk memprediksi nilai target dengan menggunakan parameter yang diperoleh dari fit().

kita pisahkan kolom features dan kolom target pada dataframe

Dari tabel diatas kita dapat melihat korelasi antar kolom pada dataframe. Korelasi paling tinggi dari harga rumah adalah dengan jumlah kamar. Kita juga bisa melihat atribut apa yang paling berpengaruh terhadap target dengan menggunakan Lasso Regression yang juga bisa digunakan
untuk melakukan feature selection.


In [ ]: Dapat dilihat bahwa jumlah kamar ialah atribut yang paling berpengaruh dan berkontribusi penting untuk menentukan target variable.

1.0.4 Step 4: Training and Validation

Dalam dataset, sebuah training set diimplementasikan untuk membangun sebuah model, sementara validation set digunakan untuk memvalidasi model yang dibangun. pemilihan sampel dari dataset untuk dijadikan training set atau validation set dilakukan secara acak. Kita akan menggunakan dua teknik validasi untuk membandingkan akurasinya, K-cross validation dan train test split.

[ 0.72590475 0.71326269 0.73320728]
Average K-Fold CV Score: 0.7241249084434545

Rˆ2: 0.7109203586326283

1.0.5 Step 5: prediksi harga
kita telah memiliki data training dan data test. selanjutnya kita gunakan data training tersebut
untuk memprediksi harga rumah, kemudian gunakan data test untuk validasi.

2. Train Test Split

Rˆ2: 0.7109203586326283

3. K-Cross Validation

cross predict accuracy: 0.717669565673

In [ ]: Dapat dilihat perbandingan bahwa validasi train test split mendapat akurasi 0.7109203586326283, sedangkan untuk cross validation adalah 0.717669565673. Cross validation lebih tinggi karena ketika menggunakan train test split,

Mengenal apa itu Binary Search

Halo! Kali ini OmahTI akan membahas tentang apa itu binary search. Mungkin mendengar namanya saja kita sudah dibuat kebingunan, karena bahasanya saja sudah terdengar asing. Tapi tenang saja, binary search itu sebenarnya adalah hal yang sangat alami, sesuatu yang sering kita jumpai dalam kehidupan sehari-hari.

Mungkin banyak di antara kita yang sudah pernah mencari sesuatu yang sudah diurutkan terlebih dahulu sebelumnya. Seperti mencari KTP milik kita diantara puluhan KTP lain saat kita mengembalikan DVD sewaan, atau mencari lembar jawab kita yang sudah dinilai diantara tumpukan lembar jawab. Ketika kita melakukan hal tersebut, mungkin banyak diantara kita yang mencari satu persatu sampai apa yang kita cari ketemu. Tapi apa yang akan kamu lakukan jika ternyata sesuatu yang akan kita cari berada di dalam suatu tumpukan yang sangat banyak? Mencari satu persatu tentu saja akan memakan waktu yang sangat banyak juga.

Insting awal kita akan menyuruh kita untuk melihat bagian tengah dari tumpukan tersebut dan membagi tumpukan tersebut menjadi dua, kemudian menentukan apakah sesuatu yang kita cari ada di bagian sebelum tengah, atau di bagian setelah tengah. Kemudian kita mengulangi lagi hal yang sama, dengan tumpukan yang baru, sampai kita mendapatkan apa yang kita mau.

Paragraf di atas tadi sesungguhnya adalah bagaimana binary search itu bekerja. Dengan membuat  ruang pencarian menjadi setengah dari semula pada setiap langkah, kita dapat membuat pencarian yang mulanya memakan waktu sangat banyak, menjadi sangat sebentar. Kompleksitas dari binary search ini adalah O(2log n), jauh lebih singkat dari pencarian satu-satu yang sebesar O(n). Hal ini membuat pencarian dengan jumlah tumpukan sebesar 1.000.000 hanya memakan kurang lebih 20 langkah saja.

Sangat hebat bukan?

Saking hebatnya, hampir semua teknologi di zaman sekarang menggunakan binary search sebagai metode pencarian utama. Google, Facebook, Microsoft, bahkan website ini sekalipun juga menggunakan binary search. Bayangkan saja jika perusahaan-perusahaan terkenal di atas tidak memakai binary search. Siapa yang mau googling jika kita harus menunggu 10 menit untuk sekali search?

Tapi ingat, seperti yang dibilang di awal, agar kita dapat melakukan binary search, kita harus mengurutkan terlebih dahulu semua data yang ada dan binary search belum tentu menjadi cara yang paling efisien. Terkadang, untuk data dengan jumlah yang sedikit atau pencarian hanya dilakukan sekali saja, metode satu-satu sudah cukup untuk menyelesaikan suatu masalah.

Kegunaan binary search tidak terbatas oleh pencarian sesuatu di suatu tumpukan saja. Namun informasi tentang itu kami serahkan kepada pembaca untuk mencarinya sendiri. Cara tercepat untuk mencari informasi tersebut adalah dengan membuka tab baru pada browser. Kemudian menggunakan search engine (yang tentu saja menggunakan binary search di dalamnya) untuk mencari informasi tentang binary search.

Mengenal SQL Injection dan Pencegahannya

Mengenal SQL Injection

Halo semua, sudah lama gak ngepost materi lagi, yah mungkin efek pasca liburan
Kali ini admin mau ngepost materi yang mungkin bagi kalian antara penting dan gak penting sih
Ya mungkin aja bakalan jadi penting bagi manusia-manusia yang ingin belajar Pemrograman Web
Oiya btw, kali ini admin males pake bahasa yang baku, tujuannya biar lebih mudah dimengerti oleh kalian semua :3
Lagipula saya admin baru, jd ini ya terhitung posting pertamax saya hehehe 😀
Setidaknya biarkanlah admin gabut ini untuk memberikan sedikit ilmu (padahal msh nubi) untuk kalian pembaca setia

Sebelum saya mulai menjelaskan materi yang sebenernya tergolong ilmuhitam, saya ingin berpesan kepada kalian wahai pembaca setia untuk tidak melakukan peretasan yang dapat merugikan pihak lain.
Ingat! gunakan untuk hal defensif ya jangan ofensif (walaupun kadang admin sendiri pernah khilaf)  😀

Pernahkah anda mendengar istilah SQL Injection ?
Saya rasa pasti kalian pernah mendengar hal tersebut, bahkan mungkin diantara kalian para pembaca ada yang pernah khilaf juga wkakak

Oke, jadi SQL Injection itu merupakan sebuah teknik memanipulasi Query Language yang berdampak pada database/basis data sehingga dapat menjalankan/mengeksekusi perintah sesuai yang diinginkan pelaku peretasan.

Jadi, apa aja yang bisa dilakukan dengan SQL Injection?
Jawabannya buanyaak, mulai dari bypass login, mencuri data pada database (misal username dan pass), dll
Dalam kasus yang lebih ekstrim, celah ini dimanfaatkan oleh para Carder untuk mencurry kartu kredit 🙁
Gak bsa bayangin kan klo tiba” pas akhir bulan disamperin pencabut dompet (sebut saja ia debt collector) dan bayarannya bengkak

Selanjutnya kita langsung praktik aja ya 🙂
Kita perhatikan kodingan tsb :

Kode diatas jelas bukan kode untuk kodein gebetan
Kode diatas merupakan kode PHP yang berfungsi sebagai koneksi ke database serta mengambil data dari database
Bagian terpentingnya terdapat pada kode berikut :

Kode diatas merupakan Query Language yang tergolong sebagai DML (Data Manipulation Language) yang berfungsi untuk mengambil/menampilkan data semua kolom/atribut yang berada di dalam tabel postingan yang dimana kolom/atribut dari id memiliki nilai yang sama dengan nilai yang tersimpan pada variabel $id

Oke, lanjut gimana cara ngeheknya

Oke, perhatikan urlnya

Terlihat bagaimana sistem tsb menampilkan data postingan yang menggunakan GET Method (p=1)
Artinya bisa kita simpulkan bahwa posting yang ditampilkan memiliki id bernilai 1 (perhatikan kodingan phpnya)

Okay, sekarang coba kita beri tanda petik satu untuk mengetes apakah sistem tersebut vulnerable terhadap SQL Injection atau tidak (‘)

Wohoooo, dan ternyata muncul notif error yang menandakan bahwa sistem tsb vulnerable 😀
*Selamat anda sudah jadi hekel
Btw, pada url %27 merupakan tanda petik satu yang diencode  otomatis oleh browser
Kenapa bisa error ? oke, kita lihat kode SQL yang telah kita injeksi

Error disebabkan karena kelebihan tanda petik satu, sehingga kita bisa lanjut memanipulasinya agar tidak error dan mendapatkan sesuatu

Waw, dan ternyata judul postingan menjadi 2 dan konten menjadi 3
Bagaimana bisa ???
Perhatikan url, ayo kita decode

Kemudian gabungkan dengan SQL Aslinya
Maka hasilnya membuat netizen terkejut

Kita perhatikan kode diatas, padahal kelebihan petik tapi tidak error, hmm
Itu karena ada sebuah comment yang ditulis dengan tanda dash dua kali (–)
Sehingga tanda petik tsb akan diabaikan

Kembali ke kodingan, kita pasti tau kan kalau 1 and 1=2 itu akan menghasilkan false
Sehingga query tidak ditampilkan, lalu kita beri union atau kita gabungkan dengan data lain (kali ini kita beri data palsu)
Karena pada tabel terdapat 3 kolom, maka kita gabungkan dengan 3 data, sehingga yang akan diambil adalah ketiga data palsu tersebut
Alhasil yang muncul adalah 2 dan 3, artinya judul terdapat pada kolom kedua dan konten terdapat pada kolom ketiga
Kemudian, kita lakukan manipulasi sampai mendapatkan sebuah data yang sangat krusial (Misal username dan password) dengan menggunakan payload : (mungkin akan dijelaskan pada posting selanjutnya)

Hasilnya :

Yay, akhirnya kita bisa dapet username dan passwod admin nya :3

Bagaimana ? anda terkedjoet ?
Inilah bahaya yang ditimbulkan dari SQL Injection, oleh karena itu kita harus tau bagaimana cara mencegahnya

Oke langsung aja, kali ini kita akan menggunakan sebuah teknik yang disebut Prepared Statement (https://www.w3schools.com/php/php_mysql_prepared_statements.asp)
Sehingga kita akan merubah kodingan menjadi seperti berikut :

Tadaa, akhirnya sistem yang kita buat sudah aman dari serangan SQL Injection
Kesimpulannya, jangan pernah memberi celah pada hacker
Kita harus selalu awas akan pentingnya Cyber Security, karena mencegah lebih baik daripada mengobati 😀

Mungkin cukup sekian saja yang dapat saya sampaikan
Mohon maaf apabila ada kata-kata yang kurang berkenan
Sekali lagi mohon diingat, jadikan hal ini sebagai bahan pembelajaran, bukan untuk ajang peretasan

Terima Kasih,

*Postingan ini hanyalah sebuah coretan dari seseorang yang sedang gabut

Langkah pertama belajar Machine Learning menggunakan Python Part 2

Yak..

Artikel ini membahas pembahasan lanjutan mengenai Machine Learning.
Langsung saja

.

.

.

 

4. Visualisasi data

Kita sekarang punya ide dasar tentang data. Kita perlu memperluasnya dengan beberapa visualisasi.

Kita akan melihat dua jenis plot:

  • Plot univariat untuk lebih memahami setiap atribut.
  • Plot multivariat untuk lebih memahami hubungan antar atribut

A. Plot univariat

B. Plot Multivariat

5. Mengevaluasi Algoritma

Sekarang saatnya membuat beberapa model data dan memperkirakan akurasi mereka pada data yang belum terlihat. Inilah yang akan kita bahas di langkah ini:

  • Pisahkan dataset validasi.
  • Test kekuatan.
  • Bangun 5 model yang berbeda untuk memprediksi spesies dari pengukuran bunga
  • Pilih model terbaik.

A. Membuat Validasi Dataset

Kita perlu tahu bahwa model yang kita buat nanti akan bagus. Nantinya, kita akan menggunakan metode statistik untuk memperkirakan keakuratan model yang kita buat pada data yang belum terlihat. Kami juga menginginkan perkiraan yang lebih konkrit tentang keakuratan model terbaik pada data yang tidak terlihat dengan mengevaluasi data aktual yang tidak terlihat.

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

Kami akan membagi dataset yang dimuat menjadi dua, 80% di antaranya akan kami gunakan untuk melatih model kami dan 20% bahwa kami akan menahan diri sebagai kumpulan data validasi

B. Menguji kekuatan

Kami akan menggunakan validasi silang 10 kali lipat untuk memperkirakan akurasi. Ini akan membagi dataset kami menjadi 10 bagian, berlatih 9 dan menguji 1 dan ulangi untuk semua kombinasi split tes kereta.

Kami menggunakan metrik ‘accuracy’ untuk mengevaluasi model. Ini adalah rasio jumlah kejadian yang diprediksi dengan benar dalam dibagi dengan jumlah total kasus dalam dataset dikalikan dengan 100 untuk memberikan persentase (misalnya 95% akurat). Kami akan menggunakan variabel penilaian saat kita menjalankan build dan mengevaluasi setiap model selanjutnya.

C. Membuat model

Kami tidak tahu algoritma mana yang bagus dalam masalah ini atau konfigurasi apa yang akan digunakan. Kami mendapatkan ide dari plot bahwa beberapa kelas dipisahkan secara parsial dalam beberapa dimensi, jadi kami mengharapkan hasil yang baik secara umum. Mari 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).

Ini adalah campuran yang baik dari algoritma LR dan LDA sederhana, nonlinier (KNN, CART, NB dan SVM). Kami mereset nomor acak benih sebelum menjalankan masing-masing untuk memastikan bahwa evaluasi masing-masing algoritma dilakukan dengan menggunakan pemisahan data yang sama persis. Ini memastikan hasilnya sebanding secara langsung. Mari membangun dan mengevaluasi kelima model kami:

D. Memilih model terbaik

Kami sekarang memiliki 6 model dan estimasi akurasi untuk masing-masing. Kita perlu membandingkan model satu sama lain dan pilih yang paling akurat. Menjalankan contoh di atas, kita mendapatkan hasil mentah berikut ini:

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.981667 (0.025000)

Kita dapat melihat bahwa KNN memiliki perkiraan nilai akurasi terbesar. Kita juga bisa membuat sebidang hasil evaluasi model dan membandingkan penyebaran dan akurasi rata-rata masing-masing model. Ada populasi ukuran akurasi untuk setiap algoritma karena setiap algoritma dievaluasi 10 kali (10 kali lipat validasi silang).

Anda dapat melihat bahwa kotak dan kotak whisker terjepit di bagian atas kisaran, dengan banyak sampel mencapai akurasi 100%.

5. Membuat Prediksi

Algoritma KNN adalah model yang paling akurat yang kami uji. Sekarang kita ingin mendapatkan gambaran tentang keakuratan model pada set validasi kami.Ini akan memberi kita pemeriksaan akhir yang independen terhadap keakuratan model terbaik. Hal ini berharga untuk menjaga agar validasi tidak dilakukan seandainya Anda melakukan slip selama pelatihan, seperti terlalu banyak pelatihan atau kebocoran data. Keduanya akan menghasilkan hasil yang terlalu optimis.

Kita dapat menjalankan model KNN secara langsung pada set validasi dan merangkum hasilnya sebagai skor akurasi akhir, matriks kebingungan dan laporan klasifikasi.

Kita dapat melihat bahwa keakuratannya adalah 0,9 atau 90%. Matriks kebingungan memberikan indikasi dari tiga kesalahan yang dibuat. Akhirnya, laporan klasifikasi memberikan rincian setiap kelas dengan presisi, daya ingat, skor akhir dan dukungan yang menunjukkan hasil yang sangat baik (memberikan dataset validasi kecil).

0.9

[[ 7  0  0]

 [ 0 11  1]

 [ 0  2  9]]

                             precision    recall  f1-score   support

Iris-setosa                  1.00      1.00      1.00         7

Iris-versicolor           0.85      0.92      0.88        12

Iris-virginica              0.90      0.82      0.86        11

avg / total                   0.90      0.90      0.90        30

YANG PENTING YAKIN !!!

Anda tidak perlu mengerti semuanya. (Setidaknya tidak sekarang) Tujuan Anda adalah menjalankan tutorial end-to-end untuk mendapatkan hasilnya. Anda tidak perlu memahami semua yang ada di jalur pertama. Cantumkan pertanyaan Anda saat Anda pergi. Gunakan bantuan berat (“FunctionName”) membantu sintaks Python untuk mempelajari semua fungsi yang Anda gunakan.

Anda tidak perlu tahu bagaimana algoritma bekerja. Penting untuk diketahui tentang keterbatasan dan cara mengkonfigurasi algoritma pembelajaran mesin. Tapi belajar tentang algoritma bisa datang nanti. Anda perlu membangun pengetahuan algoritma ini perlahan dalam jangka waktu yang lama. Hari ini, mulailah dengan merasa nyaman dengan platform.

Anda tidak perlu menjadi programmer Python. Sintaks bahasa Python bisa jadi intuitif jika Anda baru mengenalnya. Sama seperti bahasa lainnya, fokus pada pemanggilan fungsi (misalnya fungsi ()) dan tugas (misalnya a = “b”). Ini akan membuat Anda mendapatkan sebagian besar jalan. Anda adalah pengembang, Anda tahu bagaimana cara mengambil dasar-dasar bahasa dengan cepat. Mulailah dan selami detailnya nanti.

Anda tidak perlu menjadi ahli Machine Learning. Anda bisa belajar tentang manfaat dan keterbatasan berbagai algoritma nantinya, dan ada banyak posting yang bisa Anda baca nanti untuk memoles langkah-langkah proyek pembelajaran mesin dan pentingnya mengevaluasi akurasi dengan menggunakan validasi silang.

Bagaimana dengan langkah lain dalam proyek Machine Learning.

Kami tidak mencakup semua langkah dalam proyek pembelajaran mesin karena ini adalah proyek pertama Anda dan kami perlu fokus pada langkah-langkah kunci. Yakni, memuat data, melihat data, mengevaluasi beberapa algoritma dan membuat beberapa prediksi. Dalam tutorial selanjutnya kita bisa melihat persiapan data dan hasil perbaikan tugas lainnya.

 

Langkah pertama belajar Machine Learning menggunakan Python Part 1

Pengenalan Machine Learning

Machine Learning adalah pengambilan pengetahuan dari suatu data. Hal tersebut adalah bidang penelitian di antara statistik, kecerdasan buatan, dan ilmu komputer dan juga dikenal sebagai analisis prediktif atau pembelajaran statistik. Penerapan metode Machine Learning dalam beberapa tahun terakhir telah berkembang di mana-mana dalam kehidupan sehari-hari. Dari rekomendasi film, makanan apa yang harus dipesan atau produk mana yang akan dibeli, ke radio online yang  telah dipersonalisasi dan mengenali teman di foto Anda, banyak situs web dan perangkat modern memiliki algoritma Machine Learning pada intinya. Ketika Anda melihat situs web yang kompleks seperti Facebook, Amazon, atau Netflix, kemungkinan besar setiap bagian situs berisi beberapa model Machine Learning. Lanjutkan membaca