Advertisement
  1. Code
  2. JavaScript

Apakah JavaScript Itu?

by
Read Time:10 minsLanguages:

Indonesian (Bahasa Indonesia) translation by Yosef Andreas (you can also view the original English article)

Untuk mengatakan bahwa JavaScript sedang meningkat dalam pengembangan web akan menjadi sebuah hal yang meremehkan. Nyatanya, bertahun-tahun yang lalu, programmer terkenal Jeff Atwood menciptakan Hukum Atwood dimana dia menyatakan:

Tiap aplikasi yang dapat ditulis dalam JavaScript, akan segera ditulis dalam JavaScript.

Pada waktu penulisan artikel ini, ada begitu banyak framework dan librari JavaScript sehingga sulit untuk mengetahui dimana memulainya, khususnya jika kamu seorang pemula.

Dan saya tahu, kebanyakan dari apa yang kami terbitkan di sini diarahkan kepada mereka yang telah memiliki pengalaman dalam penulisan aplikasi web atau melakukan sesuatu di dalam pengembangan web. Namun itu bukanlah audiens target untuk artikel ini.

Sebagai gantinya, ini ditulis secara khusus bagi kamu yang tidak pernah (atau hampir tidak pernah) menuliskan baris JavaScript, dan ingin mempelajari lebih lanjut tentang bahasa dan mengerti apa yang ada di luar sana. Lebih jauh lagi, kami ingin membahas bagaimana itu digunakan dan apa yang dapat diharapkan dari itu.

Singkatnya, jika kamu adalah seorang profesional veteran, maka artikel ini bukan untukmu; namun bagaimana pun juga, jika kamu penasaran tentang memulai dalam JavaScript namun tidak yakin dimana memulainya, maka barangkali panduan ini akan membantumu mendapatkan arahan yang tepat.

Mari kita mulai.

Pengertian JavaScript

Kamu mungkin pernah mendengar JavaScript disebut sebagai "bahasa scripting sisi klien", yaitu merupakan cara lain untuk mengatakan bahwa itu adalah bahasa pemrograman yang berjalan dalam browser web.

Sebagai alternatif, Wikipedia mengartikannya dalam cara ini:

JavaScript adalah bahasa pemrograman dinamis, tidak diketik, dan diinterpretasikan tingkat tinggi. Itu telah distandarisasi di dalam spesifikasi bahasa ECMAScript.

Semua di atas adalah benar (dengan berbagai derajat kompleksitas), namun juga layak dicatat bahwa JavaScript dapat berjalan pada sisi server juga. Itu juga telah mendahului diri kita sendiri. Sebagai gantinya, mari terlebih dahulu kita bicarakan tentang beberapa poin di atas dan kita akan membicarakan tentang JavaScript sisi server nantinya di dalam artikel ini.

  • Tingkat Tinggi. Ketika sebuah bahasa pemrograman berada pada tingkat tinggi, itu dianggap sebagai yang dibangun tanpa perlu mengetahui detail yang lebih jelas tentang komputer yang mendasarinya. Kamu tidak harus mengelola memory, kamu tidak harus tahu tentang jenis prosesor apa yang berjalan, dan kamu tidak harus berurusan dengan hal-hal seperti pointer (seperti dalam bahasa seperti C atau Assembly).
  • Dinamis. Bahasa yang dinamis memungkinkan pengembang memperluas aspek tertentu dari bahasa tersebut dengan menambahkan kode baru atau memperkenalkan obyek baru (seperti obyek Post) sementara program sedang berjalan versus kebutuhan untuk mengkompilasi program. Ini merupakan fitur JavaScript yang ampuh.
  • Tidak diketik. Jika kamu memiliki pengalaman pemrograman, maka kamu cenderung menemui jenis bahasa tertentu yang memerlukanmu untuk menyatakan jenis variabel yang sedang kamu kerjakan. Sebagai contoh, barangkali variabelmu akan menyimpan sebuah string atau boolean. Dalam JavaScript, ini tidaklah diperlukan. Sebagai gantinya, kamu cukup menyatakan sebuah variabel dengan kata kunci var.
  • Diinterpretasikan. Ketika sebuah bahasa adalah sebuah bahasa yang dikompilasi, kode yang kamu tuliskan diubah menjadi sebuah binari yang dapat dijalankan yang dapat kamu distribusikan ke yang lainnya. Dalam Windows, file ini dikenal sebagai file EXE. Pada OS X, ini seringkali merupakan program yang kamu unduh dari App Store atau yang kamu tarik ke dalam direktori Applications. JavaScript diintrepretasikan, yang berarti tidak ada compiler. Sebagai gantinya, kode diinterpretasikan (seperti PHP), sehingga ada bagian antara pada software yang disebut interpreter yang berada di antara kode yang telah kamu tulis dan komputer untuk menerjemahkan instruksi secara bolak-balik.
  • Terstandar. JavaScript terstandarisasi (nama resminya adalah ECMAScript) yang berarti bahwa tiap browser yang menerapkan standar ini akan menawarkan fitur yang sama seperti browser lainnya. Jika itu tidak terstandar maka Chrome akan menawarkan beberapa fitur yang tidak ditawarkan Edge dan begitu pula sebaliknya.

Sekarang setelah kita membahas atribut bahasa ini, kita dapat mendisuksikan aspek dan nuansa tertentu tentang bahasa.

Walaupun semua di atas penting, merupakan hal yang esensial untuk diketahui bagaimana cara kerja bahasa ini (khususnya jika kamu berkerja dengan bahasa lainnya) sehingga kamu tidak memasuki pengembangan dengan ide prasangka akan bagaimana itu mungkin berkerja atau bagaimana itu seharusnya berkerja.

Sebagai gantinya, saya akan membahas bagaimana itu berkerja sehingga kamu dapat mulai menuliskan kode dan mengerti dengan persis apa yang sedang kamu lakukan.

Tentang Bahasa

Di atas semuanya, JavaScript adalah bahasa pemrograman yang berorientasi pada obyek, namun itu cenderung sedikit berbeda dari apa yang biasanya kamu lihat (jika kamu sebelumnya telah menggunakan bahasa pemrograman berorientasi obyek).

JavaScript adalah apa yang disebut bahasa prototip. Ini berarti bahwa semua obyek di dalam JavaScript, seperti String, berdasarkan pada prototip.

Ini memungkinkan kita, sebagai pengembang, untuk menambahkan fungsionalitas tambahan pada obyek melalui penggunaan prototypal inheritance:

Pemrograman berbasis prototipe adalah gaya pemrograman berbasis obyek dimana penggunaan ulang perilaku (dikenal sebagai inheritance) dilakukan via sebuah proses mengklon obyek yang ada yang bertindak sebagai prototipe.

Saya akan membantah bahwa jika kamu tidak pernah berkerja dengan bahasa berorientasi obyek sebelumnya, maka kamu memiliki keuntungan pada titik ini karena kamu tidak memiliki model konseptual untuk dimasuki untuk memikirkan bagaimana cara kerja ini.

Jika, pada sisi lain, kamu telah berkerja dengan jenis bahasa ini maka saya kira layak untuk mengkhususkan bagaimana prototypal inheritance berbeda dari classical inheritance:

  • Di dalam classical inheritance, kita sebagai pengembang, akan menuliskan sebuah class. Obyek berganda dapat dibuat dari class tunggal ini. Lebih jauh lagi, kita dapat menuliskan class lainnya yang diwariskan dari class ini dan kemudian membuat contoh class tersebut. Di dalam situasi ini, subclass berbagi kode dengan class dasarnya. Jadi ketika kamu membuat sebuah contoh subclass, kamu mendapatkan fungsionalitas baik subclass dan parent class.
  • Dalam prototypal inheritance, tidak ada hal seperti class. Sebagai gantinya, kamu cukup menjelaskan sebuah obyek dan memperkenalkan fungsionalitas apapun yang perlu. Ketika kamu ingin menambahkan fungsionalitas pada obyek yang ada, kamu melakukannya dengan menambahkan itu pada prototype obyek. Jika kamu berusaha untuk memanggil sebuah metode pada sebuah obyek seperti Number maka itu terlebih dahulu akan mencari metode untuk obyek tersebut. Jika itu tidak menemukannya, maka itu akan bergerak ke atas rantai hingga menemukan metodenya (yang mungkin berada pada Object basis).

Terakhir, dan barangkali hal terpenting untuk dicatat, adalah bahwa ketika kamu membuat perubahan pada sebuah obyek via prototipe, maka itu dapat diakses oleh semua orang yang menggunakan obyek tersebut (paling tidak di dalam konteks lingkunganmu).

Itu sangat bertenaga, sangat keren, namun juga memerlukan sedikit perubahan cara berpikir jika kamu tidak terbiasa berkerja di dalam lingkungan seperti itu.

Bagaimana Kita Menggunakan JavaScript?

Dalam keadaan bagaimana kita sebenarnya menggunakan JavaScript, itu benar-benar tergantung pada apa tujuanmu. Pada satu titik, berkerja dengan JavaScript berarti kamu perlu "membuat sesuatu terjadi" pada sebuah halaman web. Itu dimaksudkan untuk mengendalikan perilaku.

Ini dapat berupa memperkenalkan sebuah elemen, menghapus (atau menyembunyikan) sebuah elemen, atau sesuatu seperti itu. Lalu web sedikit berkembang dan browser dapat membuat panggilan yang tidak singkron ke server, menangani respon, dan kemudian mengubah keadaan halaman berdasarkan respon ini.

Semua ini dicapai via Ajax. Jika kamu membaca ini, kemungkinannya kamu telah akrab dengan istilah ini. Jika tidak, kamu dapat memikirkan itu sebagai sebuah cara bagi JavaScript untuk membuat panggilan ke server hosting halaman dan kemudian menangani respon yang diterima semuanya tanpa memuat ulang halaman.

Namun itu telah matang melebihi itu.

Google telah mengembangkan sebuah mesin parsing JavaScript yang sangat rumit dikenal dengan V8, dan browser lainnya berkerja untuk menyediakan kinerja JavaScript yang optimal.

The landing page for Chrome V8 Googles JavaScript EngineThe landing page for Chrome V8 Googles JavaScript EngineThe landing page for Chrome V8 Googles JavaScript Engine

Nyatanya, kita sekarang dapat menuliskan JavaScript pada server dengan menggunakan alat seperti Node.js. Lebih jauh lagi, kita bahkan dapat membangun aplikasi hibrida yang berjalan pada perangkat mobile. Ini berarti kita dapat membuat solusi untuk ponsel, tablet, dan komputer desktop kita melalui penggunaan JavaScript.

The homepage for Nodejs a runtime engine for writing JavaScript on the serverThe homepage for Nodejs a runtime engine for writing JavaScript on the serverThe homepage for Nodejs a runtime engine for writing JavaScript on the server

Dan ini datang dari sebuah bahasa yang pernah digunakan sebagai cara untuk menggerakkan benda pada layar. Semua ini untuk mengatakan bahwa jika kamu baru dalam JavaScript, jangan meremehkan itu.

"Apa Yang Seharusnya Saya Harapkan Dari Bahasa Ini?"

Semua di atas menarik untuk dibaca, dan menyenangkan untuk melihat apa yang dapat kita lakukan, namun dari sudut pandang yang murni praktis, apa yang dapat kita harapkan dari bahasa JavaScript?

Terlepas dari apakah kamu baru dalam bahasa atau kamu sedang mencari untuk belajar sebuah bahasa baru ketika kamu datang dari latar belakang yang berbeda, kamu mendapatkan tingkat ekspektasi pada apa yang dapat ditawarkan bahasa ini.

Dan walaupun kita telah membicarakan tentang bagaimana cara kerja bahasa dari sebuah sudut pandang internal, kita tidak benar-benar membicarakan tentang obyek yang tersedia di dalam bahasa, belum membahas API. Jujur saja, membahas API dan fungsi bawaan di dalam bahasa akan menjadi artikel tersendiri.

Namun membahas obyek bawaan? Itu merupakan sesuatu yang dapat kita ulas sebelum akhir artikel ini:

  • Object. Obyek dasar dimana beberapa fungsionalitas dasarnya diwariskan semua obyek lainnya.
  • Function. Karena JavaScript benar-benar berorientasi obyek, ini berarti bahwa semuanya adalah sebuah obyek, termasuk fungsi. Jadi ketika kamu membuat sebuah fungsi baru, kamu membuat sebuah acuan pada sebuah obyek dengan jenis Function. Dan fungsi memiliki properti yang dapat kamu inspeksi selama waktu pelaksanaan (seperti argumen yang dilewatkan ke dalamnya).
  • Boolean. Obyek ini bertindak sebagai pembungkus obyek untuk sebuah nilai boolean. Dalam banyak bahasa, boolean merupakan sebuah jenis data yang entah sebagai true atau false. Di dalam JavaScript, kamu tetap dapat berkerja dengan nilai-nilai ini, namun mereka dimengerti sebagai obyek.
  • Number. Dalam kebanyakan bahasa pemrograman, mereka merupakan jenis primitif seperti float, int, double, dan sebagainya. Di dalam JavaScript, hanya ada sebuah jenis angka, dan itu juga merupakan sebuah obyek.
  • Date. Berkerja dengan tanggal dalam pemrograman tidak pernah menyenangkan, khususnya ketika kamu memperkenalkan zona waktu. Saya tidak dapat mengatakan bahwa JavaScript akan menyelesaikan semua permasalahan saat itu terkait dengan zona waktu, namun itu dapat membuatnya sedikit lebih mudah dalam berkerja dengan tanggal (semua dari tahun dan bulan ke hari, jam, menit, dan detik).
  • String. Hampir setiap bahasa pemrograman memiliki jenis data string yang primitif. JavaScript tidak jauh berbeda kecuali bahwa, seperti yang kamu kira, string adalah obyek dengan propertinya sendiri.

Ingatlah bahwa semua jenis yang kamu lihat di atas adalah obyek dengan properti (dan fungsi) mereka sendiri yang dapat kamu panggil. Ini tidak berarti bahwa kamu perlu memanggil konstruktor untuk memberi contoh variabel. Yaitu, kamu dapat membuat string dan boolean dan angka seperti ini:

Namun pada akhirnya, mereka tetaplah obyek.

Lebih jelasnya, ini merupakan obyek dasar. Ada obyek yang jauh lebih maju yang layak dijelajah, khususnya jika kamu akan berkerja dengan penanganan error, berbagai jenis koleksi di atas Array, dan sebagainya.

Jika kamu tertarik dalam membaca lebih lanjut tentang ini, maka saya sangat merekomendasikan melihat halaman ini di dalam Mozilla Developer Network.

Library dan Framework Apa Yang Tersedia?

Jika kamu telah mengikuti berbagai framework, librari, dan alat lainnya yang ada di dalam lingkungan JavaScript, maka kamu sama sekali tidak tahu betapa tegasnya lingkungan ini.

Namun artikel ini menargetkan mereka yang ingin memulai dengan JavaScript. Sekarang setelah kamu memiliki pemahaman dasar bagaimana bahasa disusun dan cara kerjanya, waktunya untuk melihat librari dan framework yang ditawarkan untuk membantu memudahkan pengembangan web dan/atau aplikasi.

  • jQuery adalah sebuah librari yang bertujuan untuk menyediakan API lintas browser yang memungkinkanmu untuk "menulis lebih sedikit, melakukan lebih banyak".
  • Angular adalah sebuah framework JavaScript yang bertujuan membuat pembangunan aplikasi halaman tunggal lebih mudah.
  • React adalah sebuah librari JavaScript untuk membangun antarmuka pengguna.
  • Backbone bertujuan untuk memberikan struktur pada aplikasi web melalui penggunaan model, koleksi, dan tampilan.
  • Ember.js adalah framework lainnya untuk "membuat aplikasi web yang ambisius".
  • Dan banyak lagi.

Ini jauh dari sebuah daftar lengkap atas apa yang tersedia, namun itu adalah sebuah awalan, dan merupakan pilihan berguna bagi mereka yang mulai akrab dengan JavaScript hendaklah paling tidak menyadarinya, bahkan jika kamu tidak mengerjakan apapun dengannya.

Dan seiring kamu mulai mempelajari JavaScript dan mulai memilih beberapa tool ini, kamu mungkin menyadari betapa populer beberapa di antaranya ketika tentang beberapa aplikasi favoritmu.

Belajar JavaScript

Seperti yang kamu harapkan, Envato adalah segalanya untuk "mengajarkan skill kepada jutaan orang di seluruh dunia". Jadi apa jadinya posting ini jika tidak mencantumkan tautan ke beberapa artikel dan kursus JavaScript populer kami?

Semua sumber tersebut ideal untuk memulai dengan JavaScript dan menambahkan itu pada daftar skill pengembangan web dirimu.

Kesimpulan

Ketika kita bicara tentang pengembangan web, JavaScript adalah salah satunya. Walaupun kamu mungkin tidak menggunakan apa yang dianggap sebagai "vanilla JavaScript" dan mencari salah satu dari banyak librari dan / atau framework yang tersedia, JavaScript adalah bahasa yang hendaknya diketahui oleh hampir setiap pengembang web.

Tentu saja, tidak setiap orang berkerja pada bidang itu. Beberapa murni pengembang dari sisi server; beberapa murni merupakan pengembang dari sisi klien. Meskipun begitu, kita semua harus berkerja bersama-sama untuk memastikan berbagai bagian aplikasi kita saling berkomunikasi.

Untuk itu, paling tidak penting untuk mengerti bagaimana data dari sisi klien dikirimkan ke sisi server via JavaScript, dan bagaimana itu diproses pada sisi server dan kemudian dikembalikan ke sisi klien untuk digunakan dalam tindakan apapun.

Jangan terlalu cepat menghapuskan JavaScript hanya karena kamu bukan pengembang front-end. Peluangnya adalah, seseorang yang sedang berkerja denganmu menggunakan itu dan akan memerlukan pekerjaanmu untuk mengikat bagian aplikasi bersama-sama.

Dijamin, artikel ini hanyalah merupakan bagian kulitnya saja. Seperti yang saya katakan di awal, tujuan artikel ini adalah untuk menjelaskan apa itu JavaScript, bagaimana itu digunakan, dan apa yang diharapkan darinya, khususnya bagi mereka yang baru saja memulai dengan bahasa ini.

Jika kamu menikmati artikel ini, kamu juga dapat melihat kursus dan tutorial saya pada halaman profil saya, dan jika kamu tertarik, kamu dapat membaca lebih banyak artikel yang dikhususkan tentang WordPress dan pengembangan WordPress di blog saya.

Sumber Tambahan

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.