Skip to main content

Posts

Showing posts with the label Programming Languages Concepts

Sekilas Tentang Express.js

Express.js Express.js adalah framework aplikasi web yang ditemukan oleh TJ Holowaychuk pada tahun 2010 dan telah dilisensikan oleh MIT . Framework ini menyediakan alat yang dibutuhkan pengembang untuk membangun back–end aplikasi dengan mudah.  Hubungan Express.Js & Node.js Express.js dibangun di Node.js . Node.js sendiri adalah lingkungan runtime JavaScript open source lintas platform untuk mengembangkan aplikasi server dan jaringan. Express.js sendiri berjalan di sisi server , jadi kode akan berjalan di sisi server , dan kemudian kode hasil yang berjalan akan dikirim ke klien untuk ditampilkan.

Sekilas Tentang Angular.Js

Angular.js & MVC Angular.js adalah framework JavaScript yang dapat digunakan untuk membangun front - end aplikasi web dinamis. Sejak Google Corp  meluncurkan framework ini pada tahun 2012, framework tersebut menjadi framework JavaScript yang paling terkenal. Angular.js adalah framework yang berjalan di sisi klien. Berjalan di klien berarti bahwa ketika pengguna mengunjungi halaman, kode pada halaman tersebut akan diunduh, dijalankan, dan ditampilkan di browser pengguna. Gambar Arsitektur MVC Framework Angular dibuat berdasarkan konsep model-view-controller (MVC) . Seperti yang dapat dilihat dari gambar di atas konsep MVC terdiri dari:

JavaScript dan Sejarahnya

Hubungan Javascript & Java JavaScript adalah bahasa pemrograman yang dibuat oleh karyawan Netscape Brendan Eich pada tahun 1995. Netscape adalah perusahaan perangkat lunak terkenal, yang dikenal dengan browser web nya sendiri (yaitu Netscape Navigator ). Brendan Eich pada awalnya diminta untuk membuat bahasa pemrograman seperti Java , tetapi dapat diterapkan pada browser . Saat itu, bahasa yang dia ciptakan bernama Mocha dan menggunakan fitur-fitur yang terinspirasi dari bahasa Java . Namun, dalam rilis Netscape 2.0 , namanya telah diubah menjadi LiveScript . Netscape kemudian bermitra dengan Sun (sekarang Oracle ), yang memiliki lisensi Java pada saat itu. Kerja sama ini memungkinkan Netscape untuk mengubah nama LiveScript menjadi JavaScript karena permintaan pasar.

Cara Kerja Proses Hybrid (Kombinasi) Antara Kompilasi dan Interpretasi

Beberapa sistem implementasi bahasa pemrograman merupakan kompromi/kombinasi antara teknik kompilasi ( compilers ) dan interpretasi murni ( pure interpreters ) ; Cara kerja implementasi bahasa-bahasa tersebut adalah dengan cara menerjemahkan program/kode bahasa tingkat tinggi ke bahasa menengah/perantara yang dirancang untuk proses interpretasi yang mudah. Metode ini lebih cepat daripada interpretasi murni ( pure interpretation ) karena statemen-statemen bahasa sumber di- decode hanya sekali. Implementasi semacam ini disebut sistem implementasi hybrid . Proses yang digunakan dalam sistem implementasi hybrid ditunjukkan pada gambar di bawah ini. Alih-alih menerjemahkan kode bahasa menengah/perantara ke kode mesin, proses tersebut hanya melakukan interpret kode menengah/perantara tersebut. Cara kerja sistem hybrid antara kompilasi dan interpretasi

Cara Kerja Proses Interpretasi dalam Bahasa Pemrograman

Metode interpretasi murni Metode interpretasi murni adalah kebalikan dari metode kompilasi . Dengan pendekatan ini, program di- interpret (ditafsirkan) oleh suatu program lain yang disebut interpreter . Program interpreter tersebut bertindak sebagai simulasi software dari mesin yang siklus fetch-execute (pengambilan-eksekusi) - nya berkaitan dengan statemen-statemen program dengan bahasa tingkat tinggi alih-alih instruksi mesin. Simulasi software ini menyediakan mesin virtual untuk bahasa tersebut. Metode interpretasi murni memiliki keuntungan yaitu memungkinkan implementasi yang mudah dari banyak operasi debug pada tingkat kode (sumber), karena semua pesan kesalahan run-time dapat merujuk ke unit-unit pada tingkat kode (sumber). Misalnya, jika indeks array ditemukan di luar jangkauan, pesan kesalahan dapat dengan mudah menunjukkan baris kode sumber dan nama array . 

Cara Kerja Proses Kompilasi dalam Bahasa Pemrograman

Bahasa pemrograman dapat diimplementasikan dengan salah satu dari tiga metode yang dikenal secara umum, yaitu compile (kompilasi), interpret , dan hybrid . Salah satu teknik (yang ekstrim), adalah bahwa program/kode dapat diterjemahkan ke dalam bahasa mesin, yang kemudian dapat dieksekusi langsung di komputer. Metode ini disebut dengan implementasi compiler dan memiliki keuntungan bahwa eksekusi program tersebut sangat cepat, setelah proses penerjemahan selesai. Sebagian besar implementasi bahasa, seperti C, COBOL, C ++, dan Ada , dilakukan oleh compiler . Bahasa pemrograman yang diterjemahkan oleh compiler disebut sebagai bahasa sumber ( source language / source code ). Proses kompilasi dan eksekusi program berlangsung dalam beberapa fase, yang paling penting ditunjukkan pada gambar di bawah ini. Proses Kompilasi Suatu piranti yang disebut dengan lexical analyzer (berfungsi untuk analisa leksikal) akan mengumpulkan karakter-karakter dari program sumber ke dalam unit-unit...

Perkembangan Jenis-jenis (Tipe Data) Karakter Dalam (Bahasa Pemrograman) Komputer

Data karakter disimpan di dalam komputer dalam bentuk peng-kode-an secara numerik. Generasi awal, pengkodean yang paling umum digunakan adalah 8-bit kode ASCII ( American Standard Code for Information Interchange ), yang menggunakan nilai antara 0 hingga 127 untuk mengkodekan 128 karakter yang berbeda. ISO 8859-1 adalah kode karakter 8-bit lainnya, tetapi memungkinkan 256 karakter yang berbeda. Bahasa pemrograman Ada 95+ menggunakan ISO 8859-1 . Karena pengaruh globalisasi dalam dunia bisnis dan juga karena kebutuhan komputer untuk saling berkomunikasi dengan komputer lain di seluruh dunia, rangkaian karakter ( character set ) ASCII menjadi tidak lagi memadai. Sebagai solusinya, pada tahun 1991, Unicode Consortium menerbitkan standar UCS-2 , yaitu character set dengan 16-bit . Kode karakter ini sering disebut dengan Unicode . Unicode mencakup karakter-karakter dari sebagian besar bahasa alami dunia. Misalnya, Unicode menyertakan alfabet Cyrillic , seperti yang digunakan ...

Pengertian Tipe Data Primitif dalam Bahasa Pemrograman

Tipe data primitif adalah tipe data yang tidak didefinisikan di dalam tipe data yang lain. Bandingkan dengan tipe data String yang terdiri dari rangkaian karakter - atau array of characters. Jadi String bukan tipe data primitif karena mengandung tipe data lain yaitu char (karakter). Tetapi ada sebagian kecil bahasa pemrograman yang sudah tua yang menjadikan String sebagai tipe data primitif. Tipe-tipe data yang termasuk tipe data primitif antara lain: Tipe Numerik . Banyak sekali bahasa pemrograman di masa-masa awal hanya memiliki tipe data primitif numerik. Tipe numerik masih memainkan peranan utama diantara berbagai macam kumpulan tipe data lain yang ada dalam bahasa pemrograman modern. Yang termasuk tipe data numerik antara lain:

Awal Mula Bahasa Pemrograman Prolog

Alain Calmerauer dan Philippe Roussel , dari University of Aix Marseille , dengan batuan Robert Kowalski dari University of Edinburgh adalah tiga orang yang telah menghasilkan rancangan dasar dari bahasa Prolog . Alain Calmerauer dan Philippe Roussel menekuni bidang pemrosesan bahasa alami ( Natural Language Processing ), sedangkan Robert Kowalski menekuni Automated Theorem Proving . Kolaborasi antara University of Aix Marseille dan University of Edinburgh berlangsung hingga pertengahan 1970. Sejak saat itu, riset terkait pengembangan dan penggunaan bahasa Prolog maju pesat secara sendiri-sendiri pada kedua lokasi. Diantara hasilnya, diperoleh dua dialects Prolog yang berbeda secara syntactic . Upaya pengembangan Prolog dan riset tentang logic programming mendapatkan perhatian yang terbatas di luar dari Edinburgh dan Marseille hingga tahun 1981 dimana pemerintah Jepang meluncurkan projek riset besar yang dinamakan Fifth Generation Computing Systems (FGCS; Fuchi, 1...

Area Penerapan Bahasa-bahasa Pemrograman Logic (Logic Programming Languages)

Penerapan-penerapan Logic Programming Relational database management systems (RDBMSs) menyimpan data dalam bentuk table. Queries terhadap databases sering dinyatakan dalam Structured Query Language (SQL) . SQL adalah non-procedural dengan pengertian yang sama bahwa logic programming juga non-procedural . Pengguna tidak perlu mendeskripsikan bagaimana hasil diperoleh; melainkan, hanya menyatakan karakteristik dari hasil yang diinginkan. Expert systems adalah computer systems yang dirancang untuk meniru kepakaran manusia dalam domain tertentu. Expert system terdiri dari database berisi facts , inferencing process , dan heuristics terkait domain , serta friendly interface yang menjadikan system seolah olah konsultan ahli. Prolog dapat dan telah digunakan untuk mewujudkan expert systems .

Bahasa Pemrograman Logic - Tinjauan Sekilas

Sama halnya dengan functional programming , logic programming merupakan alternatif/pendekatan lain dari metode pemrograman. Programs di dalam logic languages dituliskan dalam bentuk symbolic logic, dan menggunakan metode logical inferencing untuk memberikan suatu hasil. Logic programming bersifat declarative , konstras dengan procedural . Dengan kata lain, program fokus pada menyatakan spesifikasi dari yang akan dihasilkan, bukan langkah langkah detil untuk mencapai hasil. Pemrograman yang menggunakan suatu bentuk symbolic logic sebagai bahasa untuk memprogram biasa disebut logic programming , dan bahasa yang didasarkan pada symbolic logic biasa disebut logic programming languages atau declarative languages . Salah satu bahasa tersebut adalah Prolog . Symbolic logic yang digunakan di dalam Logic Programming dinamakan first order predicate calculus , atau ringkasnya predicate calculus . Berikut ini adalah beberapa terminologi yang  digunakan di dalam predicate calc...

Kata Kunci (Keyword) vs Kata Tercadang (Reserved Word) Dalam Bahasa Pemrograman

Kata-kata khusus ( Special Words ) bahasa pemrograman Kata-kata khusus ( Special Words ) dalam bahasa pemrograman digunakan untuk membuat program lebih mudah dibaca dengan memberi nama tindakan-tindakan yang akan dilakukan. Mereka juga digunakan untuk memisahkan antara bagian sintaksis dari statements dengan program. Dalam sebagian besar bahasa pemrograman, kata-kata khusus ( special words ) diklasifikasikan sebagai kata-kata yang dicadangkan (reserved words), yang berarti kata-kata tersebut tidak dapat didefinisikan ulang oleh si programmer, tetapi dalam beberapa bahasa pemrograman yang lain kata-kata tersebut hanya sebagai kata kunci ( keywords ), yang berarti kata-kata semacam itu dapat didefinisikan ulang. Kata kunci ( keyword )

Cara Kerja Semaphore Sebagai Salah Satu Teknik Sinkronisasi Task

Metode dalam sinkronisasi Dikenal tiga alternatif dalam menyediakan sinkronisasi task , yaitu: Semaphores Monitors Message Passing Semaphores Semaphore dimanfaatkan oleh Dijkstra (1965) dalam upaya menyediakan competition synchronization melalui mutually exclusive access pada shared data structures. Berikut beberapa karakteristik dari semaphore : Semaphore adalah suatu struktur data yang terdiri dari sebuah counter dan antrian ( queue ) untuk menyimpan task descriptors Task descriptor adalah suatu struktur data yang menyimpan informasi yang berkaitan dengan execution state dari suatu task Semaphores dapat juga digunakan untuk mengimplementasi guards , cara untuk memungkinkan suatu guarded code yang mengakses shared data structures , dieksekusi hanya jika suatu kondisi terpenuhi Semaphores hanya mempunyai dua operasi, wait dan release  (asalnya disebut P and V oleh Dijkstra) Semaphores dapat digunakan untuk menyediakan competition synchronization maup...

Penyembunyian Data dalam Encapsulasi

Penyembunyian Data Penyembunyian Data (Information Hiding) dalam Encapsulasi secara umum menggunakan klausa Private, Protected, Public (dan ada beberapa tanpa klausa sebagai default). Umumnya klausa tersebut berlaku sebagai berikut:  Private:  digunakan untuk entititas yang tersembunyi dari unit manapun kecuali dari class itu sendiri. Public: bisa diakses olehclass lain manapun. Protected: bisa diakses oleh class sendiri beserta turunannya. Beberapa bahasa pemrograman menggunakan tanpa klausa sebagai default: bisa diakses oleh class lain dalam satu package yang sama

Pewarisan Dalam Object Oriented Programming (OOP)

Pewarisan atau Inheritance Sekitar pertengahan tahun 1980, para software developer s berkeyakinan bahwa produktivitas mereka dapat ditingkatkan melalui konsep yang disebut sebagai software reuse . Abstract Data Types (ADT / Tipe Data Abstrak), dengan fitur encapsulation dan acess control, sepertinya menyediakan kemudahan untuk digunakan kembali untuk tujuan lain ( software reuse ). Namun penggunaan ADT semata untuk mendukung software reuse berhadapan dengan dua permasalahan: Tidak mudah melakukan reuse dengan cara modifkasi terhadap ADT yang dibuat oleh orang lain. (Dalam banyak kasus orang yang memodifikasi bukanlah si penulis kode). Setiap ADT yang dibuat akan bersifat independent (tidak ada kaitan satu sama lain) dan berada pada level yang sama, sehingga sulit untuk memenuhi kebutuhan akan dua atau lebih ADT yang berkaitan satu sama lain. Dengan pewarisan/inheritance, suatu ADT (class) yang baru dapat didefinisikan atas dasar ADT yang sudah ada, tanpa harus memodif...

Enkapsulasi Multiple Tipe

Enkapsulasi (Multiple Tipe) Tipe data abstrak adalah suatu bentuk enkapsulasi yang minimal, yaitu enkapsulasi antara data dan method (data members dan member functions). Diperlukan suatu enkapsulasi multiple tipe (multiple-type encapsulation) untuk memecahkan problem-problem yang ada dalam suatu program yang sangat besar. Ketika ukuran suatu suatu program menjadi besar hingga ribuan baris kode, maka program ukuran besar tersebut akan menimbulkan dua permasalahan yang perlu dicari solusinya: Program besar yang diorganisasi ke dalam sejumlah subprogram atau tipe data abstrak (abstract data types), belum memadai dalam konteks pengelolaan program (managable code). Diperlukan suatu cara pengorganisasian program tertentu, bukan sekedar memecah program menjadi sejumlah subprograms. Program besar akan memerlukan waktu yang tidak singkat jika memerlukan kompilasi ulang (recompilation), misalnya setelah mengalami modifikasi. Untuk program-program yang kecil, kompilasi ulang (recom...

Perbedaan Antara Array dan Associative Array

Perbedaan Array dan Associative Array, secara singkat adalah pada indeks yang digunakan untuk mengakses elemen dalam array. Array menggunakan indeks bertipe integer yang terurut dimulai dari 0. Sedangkan Associative Array menggunakan indeks yang didefinisikan sendiri oleh pemrogram. Berikut deskripsi lebih detail perbedaan antara Array vs Associative Array: 1. Array Array adalah agregat homogen dari elemen data di mana elemen individual diidentifikasi oleh posisinya dalam agregat, relatif terhadap elemen pertama. Elemen data individual dari suatu array adalah dari tipe yang sama. Referensi ke masing-masing elemen array ditentukan menggunakan ekspresi subskrip.

User-defined Ordinal Types dalam Bahasa Pemrograman

Dalam bahasa pemrograman, Ordinal Type adalah tipe data dimana rentang nilainya dapat diasosiasikan menggunakan himpunan bilangan bulat positif. User-defined ordinal types artinya ordinal type yang dapat didefinisikan sendiri oleh user. User-defined ordinal types terdiri dari: 1. Enumeration type adalah satu di mana semua nilai yang mungkin, yang dinamakan konstanta, disediakan, atau disebutkan, dalam definisi. Enumeration menyediakan cara mendefinisikan dan mengelompokkan koleksi konstanta bernama, yang disebut enumeration constants. Bahasa pemrograman yang menggunakannya adalah C, Pascal, C++, Java, C#, dan F#.

Pengertian Type Checking dalam Bahasa Pemrograman

Dalam konteks type checking , konsep tentang operand dan operator perlu diperluas untuk juga mencakup subprogram dan assignment statement. Subprogram dipandang sebagai operator, dan parameter nya berperan sebagai operand. Simbol yang digunakan pada assignment dipandang sebagai operator, dan target variable serta expression berperan sebagai operand nya. Dengan demikian, pengertian type checking dapat dinyatakan sebagai aktivitas untuk memastikan bahwa operands dari suatu operator adalah compatible types. Compatible type diartikan sebagai type yang legal bagi suatu operator, atau diperbolehkan berdasarkan rule dari bahasa pemrograman, untuk dikonversi secara implicit (implicitly converted), oleh compiler-generated code (ataupun interpreter), ke suatu legal type. Implicit atau automatic conversion tersebut biasa disebut coercion. Sebagai contoh pada bahasa Java, jika suatu variable dari tipe int dan suatu variable dari tipe float ditambahkan, maka nilai dari variable tipe int d...

Concurrency dan Synchronization dalam Pemrograman

Concurrency Concurrency pada tingkat unit-level merupakan eksekusi dua atau lebih subprogram secara bersamaan. “Unit” yang dimaksudkan untuk dieksekusi secara bersamaan biasanya didefinisikan oleh bahasa pemrograman. Sedangkan concurrency pada tingkat program-level merupakan eksekusi dua atau lebih program secara bersamaan. Concurrency pada tingkat program-level biasanya diatur oleh operating system yang menjalankan program tersebut. Sehingga tidak ada isu desain bahasa pemrograman terkait dengan concurrency pada tingkat program-level. Task vs Subprogram Task merupakan sebuah unit dalam suatu program, mirip dengan sebuah subprogram, task dapat dieksekusi secara bersamaan dengan (concurrent) dengan unit lainnya dalam program yang sama. Terdapat tiga karakteristik yang membedakan task dengan subprogram yaitu:  task dapat dijalankan secara implisit, sedangkan subprogram harus dijalankan secara eksplisit eksekusi dari unit program yang menjalankan suatu task, tidak ha...