Membuat page dengan HTML dan CSS, lalu membuat page tersebut live dengan Github Pages. Dengan sedikit latihan bisa memberikan hasil yang maksimal.
Materi Algoritma dapat dimengerti dengan cepat, algoritma bagiku adalah alur jalan data yang sedang di proses. Dengan logika, kita bisa mengatur cara perubahan data menjadi informasi yang diinginkan.
Pseudocode adalah konsep awal atau rough draft dari algoritma tadi. Ada standar dasar dasar yang perlu diikuti dalam penulisan pseudocode agar dapat dimengerti semua orang.
Saat coding saya banyak memikirkan tentang cara penulisan pseudocode, apakah terlalu rumit jika menggunakan syntax coding, apa cara baiknya agar masih rapi dan gampang diikuti. Contoh-contoh dari referensi yang diberikan sangat membantu.
Codecademy JS Intro dan Control Flow mengajarkan basis JavaScript. Saya telah melihat sedikit syntax nya seperti apa, dan cara agar hasil algoritma nya kelihatan user bisa menggunakan console.log(hasil).
Setelah menggunakan If Else dan Switch-Case, saya mencoba-coba mengubah dari satu format ke yang lain. Cara penulisannya sedikit berbeda, dan penggunaan yang tepat akan sangat membantu merapikan kode sehingga logika nya gampang diikuti.
String itu menarik. String bisa di akses satu per satu langsung dengan index nya.
Looping itu membuatku sadar kalau cara berpikir di dunia programming berbeda dengan cara berpikir "pada umumnya". Hal ini karena pada umumnya menggambar bintang ber kali kali dilakukan secara instan, gambar 10 langsung gambar 10. Tetapi saat looping, kita memecah cara pemikiran ini menjadi gambar 1x sebanyak 10x. Kita membagi hal yang dilakukan menjadi bagian lebih kecil yang bisa dilakukan berulang kali.
Lalu yang membuat lebih menarik lagi adalah, digabungkan dengan If Else dan tools lainnya, looping bisa menjadi lebih complex. Kita bisa menambahkan kondisi dan membuat hasil yang berbeda, untuk setiap perulangan, atau untuk perulangan jika (kondisi). Hasilnya benar-benar bebas tergantung dari kondisi yang kita buat.
Functions itu seperti memberi nama ke sebuah algoritma agar bisa dipanggil berulang kali. Saya harus berhati-hati dengan Scope variabel yang digunakan agar Function berjalan sesuai ekspektasi. Amannya, variabel yang akan digunakan oleh Function diberikan ke Function tersebut melalui parameter sehingga saya akan selalu ingat data apa yang telah diberikan, dan hasilnya akan selalu sesuai ekspektasi.
Jika Function menggunakan atau mengubah variabel yang Scope nya diluar Function tersebut, saya rasa sulit untuk mengingat kenapa kita membuat perubahan tersebut, kapan terjadinya, dan bahkan bisa lupa apakah kita sudah mengubah variabel tersebut sebelumnya. jika nanti kita mulai menggunakan banyak Functions dan Variables, akan lebih rumit untuk mengikuti alur programnya.
Latihannya sangat menyenangkan. Akhirnya bisa menggabungkan seluruh konsep yang dipelajari dan menyelesaikan soal.
Live Coding memberikan latihan untuk bekerja dengan cepat dalam tekanan deadline yang singkat.
Codecademy JS Arrays mengajarkan tentang Array. Banyak built-in function yang memudahkan kita untuk memanipulasi data dalam array. Latihan ke-empat menggunakan Join, Split, Slice, Splice, Sort, dan saya menggukanan Pop juga.
Saya merasa bagian latihannya tentang slice dan splice lumayan membantu. Push dan Pop gampang dimengerti, tetapi splice lebih rumit. Splice bisa menjadi insert, menjadi slice, atau menjadi edit item in array tergantung cara pemakaiannya.
Kalau untuk penggabungan looping dengan array, lumayan lancar lancar saja, straight-forward. Akan tetapi harus hati-hati menggunakan index nya. Tergantung soalnya, ada saatnya membutuhkan angka index, dan ada saatnya membutuhkan item dalam array tersebut dengan index tertentu.
Menurut saya ini adalah titik dimana coding mulai jadi menarik. Dengan bebas, kita bisa membuat algoritma sendiri untuk menyelesaikan masalah yang pasti. Satu soal yang terlihat simpel ternyata bisa diselesaikan dengan beragam cara berbeda.
Jika pada rabu soalnya kebanyakan logic dengan memainkan string, hari ini kita bermain dengan numbers. Banyak kali saya merubah numbers tersebut menjadi string untuk bisa memastikan saat dimanipulasi datanya akan sesuai yang saya inginkan, contoh seperti 01 tidak berubah menjadi 1.
Saya rasa latihan kali ini memberi petunjuk kalau programming tidak hanya kode saja. Perlu pengertian akan data apa yang sedang di manipulasi dan hasil seperti apa yang seharusnya dikembalikan.
Array dalam Array seperti Matrices dalam matematika menjadi bahan pokok latihan hari ini. Sepertinya untuk membiasakan diri dengan cara penggunaan Array dan cara memanipulasi nested Array. Looping juga jadi banyak yang nested.
Live Coding kali ini juga merangkum hasil pelajaran minggu lalu.
Permainan Angka dan Logic ini mungkin terlihat sulit untuk yang belum pernah membuat pola dengan loop, tetapi dengan sering latihan akan semakin mudah mencari solusi untuk soal soal jenis ini. #1 Angka Prima dapat diselesaikan dengan baik. Selain menyelesaikan soal, sebagai coder kita juga harus memikirkan cara meng-handle input yang invalid.
#2 Faktor Persekutuan Terbesar bisa dikatakan menarik, karena solusi nya secara coding berbeda dengan logika umum. Dimana secara umum kita mencari jumlah angka dari faktor, secara coding kita cukup menggabungkan semua angka setiap faktor menjadi satu string, lalu membandingkan panjang string tersebut.
Untuk #3 median dan #4 modus, kurasa lebih banyak untuk latihan menggunakan % (modulus), dan mengikuti index dalam array. Untuk #5 Ubah Huruf, saya baru sadar kalau string dan array sangat berbeda pada satu hal. Hasil yang dibaca dari string menggunakan str[index] hanyalah read-only, jadi kita tidak bisa mengubah str[index] = "string baru". Yang bisa read-write dengan index seperti itu adalah array.
Latihan-latihan hari ini berfokus ke hal yang sering dilakukan terhadap sebuah objek data di JavaScript. Tanpa menggunakan built-in function, dan dengan membuat sendiri function yang dibutuhkan dengan loop & if-else, kita mengerti cara kerja built-in function. Saat diperlukan nanti, kita bisa "membuka" built-in function yang biasa dipakai dan memodifikasi sesuai keperluan.
Dengan banyaknya latihan mengubah objek, saya semakin yakin dengan penguasaan objek di JavaScript. Isi-isi objek yang menarik lumayan menghibur dan membuat latihan ini menyenangkan.
Baik juga untuk selalu membaca soal, dan dicerna, dan di pikirkan dahulu sebelum langsung memulai coding. Saat coding pun baik juga untuk membaca ulang soal dan mengikutinya.
Latihan #13 Deep Sum menunjukkan kalau array dalam array dalam array dan seterusnya bukanlah hal yang menyeramkan. Jika kode kita mengikuti bentuk data dengan benar, maka hasilnya akan selalu sesuai keinginan kita. Tidak perduli seberapa banyak nested array yang ada.
Latihan #15 Highest Score dan #16 Graduates menunjukkan hal yang sama tetapi dengan object. Nested object pun bukan masalah jika kita dapat mengikuti bentuk datanya dengan benar di kode kita. Dua latihan terakhir ini seperti inception, mengingatkan kita score yang diperlukan untuk lulus.
Semakin terbiasa dengan live coding. Perlu sering coding tanpa melihat kode lama agar cepat saat live coding.
Modular function konsepnya ke memecahkan function besar menjadi bagian bagian kecil yang masing-masing bisa dipakai secara terpisah. Tidak terlalu rumit, hanya perlu berhati-hati, dan kalau bisa menambagkan komen untuk menjelaskan apa yang sedang dilakukan function masing-masing.
Recursion sangat cantik. Kodenya pendek tapi berbobot berat. Konsepnya seperti kotak dalam kotak, berbeda dengan looping yang berputar-putar. Ujung dari recursion akan dipakai saat pertama kali function dipanggil. Jika di analogikan itu seperti boneka matrioska. Saya harus mengerti apa yang perlu dilakukan boneka paling kecilnya dan apa yang perlu dibungkus oleh boneka yang satu level diatasnya. Selain itu juga perlu memastikan pembungkusannya selalu berlaku, tidak perduli dibungkus 1 atau berapa kali.
Saya merasa dua latihan kali ini adalah untuk melatih kapan dan dimana baiknya menggunakan teknik yang telah dipelajari. Saya merasa #6 Damage Calculation lebih mudah dilakukan secara rekursif, tapi #7 Melee Ranged Grouping lebih mudah diikuti alurnya secara looping.
Latihan regex yang sangat straight-forward. Masih banyak yang perlu dilatih untuk bisa benar-benar nyaman dengan regex. Tapi untuk sekarang ini, dua latihan ini cukup untuk basis awal cara baca dan cara pakai regex.
Live Code lagi agar terbiasa untuk coding dengan cepat dan tepat.
Penggabungan seluruh skill yang telah dipelajari di 5 minggu terakhir. Mungkin akan lebih mudah jika ada lebih banyak latihan yang bisa dikerjakan.
Pembuatan game bebas dengan HTML, CSS, dan JS.