Python 101: List & Tuple

List & tuple adalah tipe data yang mirip Array di JavaScript. List seperti Array biasa. Kita bisa nambah elemen & ngapus elemen. Tuple adalah list yang konstan, kalo udah dibuat nggak bisa diubah-ubah lagi. List & tuple bisa dikombinasi. List bisa berisi tuple & sebaliknya.

Untuk bikin list kita pake notasi [ ]. Untuk tuple kita pake ( ).

mylist = [ 1, 2, 3 ]
mytuple = ( 4, 5, 6 )

Elemen-elemen dalam list & tuple bisa diakses lewat nomer indeksnya, sama kayak Array. Tapi indeksnya ga harus positif, bisa juga negatif. Kalo negatif berarti itu indeks dihitung dari belakang, -1 berarti elemen paling belakang.

mylist[-1] #3
mytuple[-2] #5

Operasi Dasar

Karena list adalah sebuah deretan nilai, dia punya beberapa fungsi yang sama dengan String.

Continue reading →

Seting Minimal Webpack & React

Bikin project React paling gampang memang pake create-react-app. Tapi itu lebih cocok untuk belajar ( dokumentasinya juga bilang begitu ). Untuk project beneran, kita bisa pake tool lain yang lebih fleksibel & bisa dikustom atau bikin sendiri dari nol pake bundler semacem Webpack, Parcel atau Rollup.

Untuk bikin project minimalis pake Webpack cukup gampang. Pertama ya bikin direktori, terus inisialisasi NPM.

$ mkdir myproject
$ npm init -y

Instal paket NPM

Instal paket-paket Babel.

$ npm i -D @babel/core @babel/plugin-transform-runtime @babel/preset-env @babel/preset-react @babel/plugin-proposal-class-properties
$ npm i @babel/runtime

Terus instal webpack.

$ npm i -D webpack webpack-cli webpack-dev-server babel-loader

Lanjut instal paket untuk compile CSS & SCSS ( bisa diganti LESS atau CSS-preprocessor yg lain kalo mau).

Continue reading →

Python 101: Input Output

Jadi hari ini saya mulai belajar Python. Rencana ke depannya, semua skrip yg saya tulis selama belajar saya dokumentasiin di sini. Selain untuk catatan pribadi, siapa tau berguna buat orang lain yg mau belajar juga. Saya skip skrip Hello World karena itu contoh yg ga berguna. Mending langsung aja belajar tentang input & output. Gimana cara nerima input dari user & nampilin output.

Untuk ambil input dari user, kita pake fungsi input(<prompt>). <prompt> adalah teks yg mau kita tampilin di terminal. Untuk nampilin output atau teks apapun di terminal yang bukan prompt, kita pake fungsi print(<string>.format()). <string> berisi template-string ( programmer JS pasti ngerti lah apa itu ), yang isinya disubstitusi lewat fungsi format().

Jadi kalo kita punya template-string begini:

'{0} itu {1}'.format('Pemrograman', 'asik')

Output di terminal jadi Pemrograman itu asik.

Skrip pertama, tampilin tabel perkalian.

Continue reading →

React: Context

Sebelum React 16.3, satu-satunya cara untuk ngirim state dari komponen parent ke komponen child adalah pake props. Jadi nggak jarang kita bikin komponen yang punya prop xyz tapi nggak memproses nilai prop itu, dia punya prop itu cuma biar bisa ngirim lagi ke komponen child di bawahnya lagi. Istilahnya props chain.

Jadi bisa dibilang komponen Child A sia-sia punya prop xyz karena dia sebenernya nggak butuh. Tapi karena Child B perlu prop itu, mau nggak mau Child A harus punya prop xyz. Mungkin kalo strukturnya nggak panjang, cuma ada 2 komponen child, masih okelah. Tapi kalo strukturnya panjang, jadi jelek & ribet sekali. Kita harus nambahin kode yang nggak perlu di banyak komponen sekedar biar bisa transfer prop xyz ke bawah. Alternatifnya, ya pake state-manager seperti Redux. Tapi pake Redux juga jadi beban tersendiri terutama kalo proyeknya nggak terlalu rumit. Bisa-bisa malah over-engineering.

Continue reading →

Membuat Tooltip dengan CSS

Dalam artikel ini saya bahas cara cepat bikin tooltip dengan CSS (SCSS), tanpa JavaScript. Di sini saya bikin tooltip yang tampil di atas dan di samping elemen parent-nya. Saya mulai dari struktur HTML & CSS dasarnya dulu:

Jadi kelas utamanya .tooltip & untuk ngatur posisinya ada kelas .top untuk tampilan tooltip di atas & kelas .right untuk tampilan di samping kanan.

Bukan tooltip namanya kalo nggak ada pointer segitiganya. Caranya saya kopas aja dari sini: CSS Triangle.

Yang pertama, saya bikin tooltip tanpa border. Ini gampang sekali. Tinggal nempelin segitiga di bawah atau di samping. Untuk nampilin segitiga, saya pake pseudo-element :after.

Continue reading →