Menggunakan Iterator dan Generator pada JavaScript

Pernahkah Anda perlu untuk mengulang daftar, tetapi sistem operasinya menghabiskan banyak waktu untuk menyelesaikannya? Pernahkah Anda mengalami sebuah crash program karena sistem operasi menggunakan terlalu banyak memori? Hal ini tentunya terjadi pada beberapa orang ketika mencoba untuk mengimplementasikan fungsi yang dapat menghasilkan sebuah bilangan prima.

Menghasilkan sebuah bilangan prima hingga satu juta kali lebih banyak dibandingkan yang diinginkan. Tetapi menghasilkan angka hingga 10 juta tidaklah mungkin. Program saya biasanya akan crash atau hanya menggantung. Beberapa ada yang menggunakan saringan Eratosthenes, yang seharusnya lebih efisien dalam menghasilkan sebuah bilangan prima daripada pendekatan brute force.

Menggunakan Iterator dan Generator pada JavaScript

Jika Anda berada di dalam situasi yang sama, Anda dapat mencoba menggunakan sebuah algoritma yang berbeda. Ada sebuah algoritma pencarian dan algoritma penyortiran yang dapat bekerja lebih baik pada jumlah input yang lebih besar. Kelemahannya adalah algoritma tersebut mungkin akan lebih sulit untuk dipahami dengan cepat. Pilihan lainnya adalah dengan menggunakan sebuah bahasa pemrograman yang berbeda.

Bahasa yang biasanya dikompilasi mungkin dapat memproses beberapa kode secara signifikan dan juta lebih cepat. Tetapi menggunakan sebuah bahasa lain mungkin tidak praktis. Anda juga nantinya dapat mencoba menggunakan multiple thread. Sekali lagi, ini mungkin tidak praktis karena bahasa pemrograman Anda harus dapat mendukung ini.

Untungnya, dengan menggunakan bahasa pemrograman JavaScript, ada pilihan lain. Jika Anda memiliki sebuah tugas komputasi intensif, Anda dapat menggunakan sebuah iterator dan generator untuk mendapatkan beberapa efisiensi. Iterator ini adalah properti dari kumpulan JavaScript.

Iterator berfungsi untuk dapat meningkatkan efisiensi dengan memungkinkan Anda dapat mengonsumsi item yang ada di dalam daftar satu per satu seolah-olah itu adalah aliran. Generator adalah salah satu yang fungsi khusus untuk dapat menghentikan eksekusi. Menerapkan generator memungkinkan anda menghasilkan data satu potong sekaligus tanpa perlu menyimpan dalam daftar terlebih dahulu.

Iterator

Pertama-tama, mari kita tinjau berbagai macam cara yang dapat Anda lakukan agar mendapatkan sebuah perulangan melalui kumpulan dari bahasa JavaScript. Sebuah loop dari bentuk for nantinya akan menjalankan perintah-perintah dalam sistem tersebut beberapa kali. Demikian juga, perulangan jenis while nantinya akan menjalankan perintah di dalam tubuhnya selama kondisinya benar.

Anda dapat menggunakan perulangan tersebut untuk melintasi daftar dengan cara menaikkan variabel indeks pada setiap iterasi yang ada. Iterasi Sendiri adalah cara eksekusi dari tubuh perulangan. Perulangan ini tidak tahu tentang struktur daftar Anda. Mereka bertindak sebagai sebuah penghitung.

Perulangan for/in dan perulangan for/of biasanya akan dirancang untuk melakukan iterasi pada struktur data tertentu. Iterasi atas struktur data berarti Anda akan dapat melangkah melalui masing-masing elemennya. Perulangan for/in melakukan iterasi atas kunci dalam sebuah objek JavaScript yang sederhana. Perulangan for/of melakukan sebuah iterasi atas nilai-nilai iterable. Apa itu nilai iterable? Sederhananya, sebuah iterable adalah sebuah objek yang memiliki iterator. Contoh iterable sendiri adalah array dan set. Iterator adalah properti yang digunakan objek yang menyediakan sebuah mekanisme untuk melintasi objek.

Apa yang membuat iterator menjadi istimewa adalah bagaimana ia dapat melintasi suatu kumpulan data. Perulangan lain biasanya perlu memuat seluruh kumpulan data di depan untuk dapat mengulanginya, sedangkan iterator sendiri hanya perlu mengetahui posisi saat ada di dalam kumpulan data.

Anda nantinya akan dapat mengakses beberapa item saat ini dengan memanggil method iterator berikutnya. Metode selanjutnya tersebut nantinya akan dapat mengembalikan beberapa nilai item pada saat ini dan boolean untuk menunjukkan ketika Anda nantinya telah mencapai akhir dari kumpulan data. Berikut ini adalah beberapa contoh pembuatan iterator dengan array.

Anda juga dapat melakukan berbagai iterasi atas nilai-nilai iterator menggunakan perulangan for/of. Gunakan metode ini ketika Anda tahu Anda ingin mengakses semua item yang ada di dalam objek. Ini adalah bagaimana Anda akan menggunakan perulangan untuk iterasi melalui daftar sebelumnya:

Perlu Menggunakan Iterator

Mengapa Anda menggunakan iterator? Menggunakan iterator bermanfaat ketika biaya komputasi untuk memproses daftar menjadi lebih tinggi. Jika Anda memiliki sumber data yang sangat besar, ini dapat menyebabkan masalah di dalam program Anda jika Anda mencoba untuk mengulanginya karena seluruh kumpulan data tersebut harus dimuat.

Dengan iterator, Anda juga nantinya dapat memuat data dalam potongan. Ini lebih efisien karena Anda hanya perlu memanipulasi bagian daftar yang nantinya Anda butuhkan, tanpa mengeluarkan berbagai biaya tambahan untuk memproses seluruh daftar yang ada.

Contohnya adalah Anda memuat data dari file atau database, dan Anda kemudian anda ingin secara progresif menampilkan berbagai informasi yang ada di layar. Anda bisa membuat iterator dari data dan kemudian mengatur event handler untuk mengambil beberapa item yang ada di setiap kali peristiwa terjadi. Ini adalah contoh implementasi.

Jika Anda ingin membangun sebuah collection, Anda dapat melakukannya dengan menggunakan generator. Fungsi generator sendiri dapat mengembalikan nilai satu per satu dengan menghentikan sebuah eksekusi pada setiap iterasi. Saat Anda membuat sebuah instance dari generator, item ini nantinya dapat diakses menggunakan iterator. Ini adalah sintaks umum untuk membuat sebuah fungsi generator

Menandakan bahwa ini adalah fungsi dari sebuah generator. Kata kunci yield menghentikan fungsi dan kemudian menyuplai kondisi generator pada saat itu. Mengapa Anda nantinya harus menggunakan generator? Anda nantinya harus menggunakan sebuah generator jika anda ingin secara algoritma menghasilkan nilai dalam kumpulan data. Hal ini tentunya sangat berguna ketika anda memiliki kumpulan data yang sangat besar atau tidak terbatas. Mari kita lihat salah satu contoh untuk memahami bagaimana hal tersebut akan membantu anda.

Misalnya Anda memiliki sebuah game billiard online yang Anda buat, dan Anda ingin mencocokkan pemain dengan ruang permainan tersebut. Tujuan Anda adalah untuk menghasilkan beberapa cara yang dapat anda gunakan untuk memilih dua pemain berbeda dari daftar 2.000 gamer. Kombinasi dua pemain yang nantinya dihasilkan dari daftar [‘a’, ‘b’, ‘c’, ‘d’] adalah ab, ac, ad, bc, bd, cd. Ini adalah sebuah solusi menggunakan perulangan bersarang.

Generator

Sekarang coba jalankan fungsi tersebut dengan daftar 2.000 elemen. (Anda dapat menginisialisasi daftar yang nantinya Anda menggunakan perulangan untuk menambahkan angka 1 hingga dengan 2.000 ke array). Nantinya apa yang akan terjadi jika anda menjalankan kode anda tersebut ? Ketika saya menjalankan kode di editor online, yang ada di halaman web macet. Saat anda nantinya mencobanya di konsol di Chrome, anda dapat melihat hasil outputnya mencetak perlahan. Namun, CPU komputer anda nantinya sudah mulai bekerja dengan kondisi yang begitu berat, dan anda harus memaksa keluar dari Chrome. Ini adalah kode yang direvisi dengan menggunakan fungsi generator:

Biasanya, perulangan tersebut tidak terbatas akan merusak program Anda. Fungsi fibGen nantinya akan mampu berjalan selamanya karena tidak ada kondisi untuk berhenti. Tetapi karena ini adalah generator, Anda dapat mengontrol kapan setiap langkah yang nantinya akan dijalankan.

Demikian itulah cara kerja dan kegunaan Iterator dan Generator pada bahasa program javascript. Semoga artikel ini dapat membantu anda menyelesaikan beberapa kendala yang sering anda temui saat menggunakan sistem javascript.

Bahasa Pemrograman Selain Javascript

Sebagai seo developer, tentunya dengan cara mengetahui berbagai macam bahasa pemrograman terbaru, baik yang sudah atau yang akan dijadikan sebagai standar komunikasi dalam sebuah data digital merupakan keharusan yang harus dimiliki. Tidak ada salahnya mencuri start, dengan cara belajar beberapa bahasa pemrograman baru yang akan kita bahas dibawah ini.

Sehingga nantinya disaat bahasa pemrograman tersebut sudah diterapkan sebagai protokol dalam sebuah pertukaran informasi dan bahasa pemrograman secara penuh, serta yang lama sudah benar-benar ditinggalkan Anda nantinya sudah bisa menguasainya.

Bahasa Pemrograman Selain Javascript

Bahasa pemrograman sendiri dikenal juga dengan nama bahasa komputer atau sebuah bahasa pemrograman dari komputer. Bahasa pemrograman merupakan kumpulan sistem yang berfungsi untuk memerintahkan perangkat lunak pada sebuah perangkat komputer. Secara singkat, bahasa ini sendiri akan dipakai untuk membuat sebuah program komputer dengan menggunakan aturan logika komputer.

Perkembangan teknologi yang ada pada saat ini, menjadi sebuah hal yang berhasil mendorong banyak orang untuk mempelajari berbagai macam jenis bahasa pemrograman lainnya. Salah tujuannya adalah untuk dapat membuat sebuah website, aplikasi, atau produk digital yang lainnya.

DART Pengganti Javascript

Bahasa pemrograman DART sendiri adalah sebuah bahasa yang dikembangkan oleh google, berbasis sebuah open source. Kelak, bahasa DART sendiri akan menggantikan bahasa Java Script. Google tersebut menjanjikan sebuah kemudahan dalam mempelajari bahasa pemrograman dari bahasa DART ini.

Kelebihan utamanya yaitu terletak pada sebuah kemampuan dalam mengelola Project besar yang bisa dikerjakan bersama-sama dengan sebuah developer lain (Multi Developer Website Project). Sementara itu Javascript sendiri tidak memungkinkan untuk dikerjakan secara multi developer.

OPA pengganti javascript

Opa adalah sebuah bahasa pemrograman untuk sebuah website dan juga untuk sebuah aplikasi website yang simple namun dapat menempatkan sebuah keamanan sebagai sebuah prioritas utama mereka. Penggagas dari bahasa pemrograman OPA juga menjamin kemudahan serta keamanan dalam hal pembuatan website ataupun juga sebuah aplikasi website. Jauh lebih simple dan juga lebih aman dibandingkan dengan menggunakan sebuah bahasa yang telah lama populer seperti halnya bahasa pemrograman PHP.

Kelebihan dari bahasa pemrograman OPA yang nantinya akan sangat disukai oleh para developer, yaitu tidak perlu menambahkan bahasa lainnya seperti Javascript, PHP, dan juga MySql untuk dapat membuat sebuah website. Anda nantinya jika menggunakan program ini hanya perlu menulis beberapa kode dalam bahasa OPA. Selain itu, Bahasa OPA juga nantinya bisa secara otomatis men-generate kode untuk server dan klien pada saat proses compile.

SCALA

Siapa dari anda yang saat ini tidak kenal dengan twitter dan linkedin saat ini? ternyata Bahasa pemrograman SCALA adalah ibu dari kedua aplikasi media sosial tersebut. Bahasa SCALA sendiri mulai diperkenalkan secara umum yaitu pada tahun 2003 dan bvahasa ini mulai banyak dilirik oleh para developer kawakan. Kemudahan dalam membangun sebuah aplikasi website berskala kecil atau besar, serta kode yang bisa dioptimalkan untuk dapat bekerja dengan Concurrency ditengarai sebagai sebuah daya tarik utamanya.

ERLANG

Sudah sangat sedikit developer yang umumnya menyadari bahwa bahasa pemrograman ERLANG sendiri sudah open source dan diperkenalkan pertama kali yaitu pada tahun 1998. Bahasa ERLANG ini juga cukup banyak digunakan oleh developer yang memang ingin membangun aplikasi website mereka berskala besar. Dengan bahasa pemrograman ERLANG, developer nantinya akan bisa dapat mengupdate kodenya tanpa harus menghentikan sistem yang sedang berjalan.

CEYLON

Bahasa pemrograman CEYLON ini mempunyai sebuah konsep yang sama dengan halnya java dan sengaja diciptakan untuk dapat membunuh berbagai eksistensi bahasa pemrograman Java. Kunci dari keberhasilan bahasa pemrograman CEYLON ini terletak pada modularitas.

GOOGLE GO

Dari namanya saja anda pastinya tidak perlu menebak lagi bahasa pemrograman baru yang satu ini di produksi oleh siapa. GOOGLE GO atau menjadi sebuah bahasa pemrograman yang akrab dipanggil GoLang adalah sebuah bahasa pemrograman open source yang mulai muncul ke permukaan yaitu pada tahun 2009.

GOOGLE GO ini mengadopsi sebuah bahasa pemrograman tradisional seperti C dan juga biasanya ditujukan bagi developer yang ingin membangun sebuah sistem Cloud. Di dalam GoLang telah tertanam juga Concurrency dan Garbage collection. Aplikasi cloud ini cukup besar bisa di compile hanya dalam hitungan detik saja dengan menggunakan satu komputer saja.

SWIFT

Bahasa pemrograman SWIFT ini diluncurkan pertama kalinya yaitu pada tahun 2014 bertepatan dengan munculnya event Appleā€™s WWDC ( world wide developer conference ). Bahasa pemrograman SWIFT ini diciptakan untuk dapat memudahkan developer software yang nantinya akan dijalankan pada beberapa produk apple. Dengan Bahasa SWIFT, anda nantinya tidak perlu menguasai keahlian objective C untuk dapat menciptakan sebuah aplikasi iOS.

HACK

Belakangan ini facebook sedang sibuk untuk mentransformasi penggunaan bahasa pemrograman PHP yang dari awal menjadi ruh yang ada di dalam website yang paling populer sejagat raya ini. Bahasa pemrograman PHP ini berada di dalam website facebook secara berangsur dan kemudian ditransformasi ke dalam bahasa pemrograman besutannya sendiri yaitu sebuah Bahasa Pemrograman HACK.

Jika anda mengakses facebook hari ini, maka nantinya anda akan disajikan sebuah halaman untuk berinteraksi .php yang telah ditransformasikan ke dalam bahasa HACK. Jika anda bertahan di dunia perangkat lunak, nantinya anda harus mulai mempelajari berbagai bahasa perangkat lunak, agar nantinya bisa menguasai salah satu bahasa pemrograman yang baru.

Objective-C

Objective-C sendiri merupakan sebuah bahasa yang berorientasi pada objek yang awalnya digunakan oleh Apple untuk dapat mengembangkan perangkatnya. Itulah mengapa iOS dikembangkan dengan bahasa pemrograman Objective-C. Objective C ini merupakan sebuah bahasa pemrograman bahasa pemrograman yang dikembangkan pada sebuah era 1983, oleh Brad Cox dan juga Tom Love. Karena berorientasi pada sebuah objek, Objective-C ini terkadang dipakai untuk membuat sebuah website.

Ruby

Merupakan sebuah bahasa programer asal Jepang yang nantinya membuat bahasa komputer Ruby. Pada tahun 1993 Yukihiro ingin membuat sebuah bahasa scripting yang memiliki orientasi objek. Pada saat pemrograman berorientasi objek sedang berkembang tetapi belum ada bahasa pemrograman scripting yang nantinya dapat mendukung pemrograman objek.

Ruby mempunyai struktur sintaks yang cukup sederhana, sehingga banyak pengembang website menggunakan bahasa programer ini. Komunitas yang berkembang dengan dukungan teknologi dan dependency pihak ketiga yang cukup lengkap menjadi faktor lain yang membuat ruby nantinya cukup populer.

Bahasa pemrograman saat ini sudah sangat bermacam-macam dan mempunyai berbagai macam fungsi masing-masing. Meskipun begitu, jika digunakan dengan cara yang tepat, semua bahasa pemrograman bisa menjadi sebuah bahasa pemrograman untuk website. Meskipun tidak menjadi sebuah bahasa utama, banyak bahasa komputer yang bisa dikombinasikan untuk dapat menghasilkan website yang andal.

Demikian itulah beberapa bahasa pemrog pengganti javascript yang dapat anda coba. Dengan mempelajari beberapa bahasa javascript tersebut anda nantinya bisa memperluas ilmu anda jika nantinya bahasa javascript tidak dipakai atau sudah tidak efisien lagi.