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, 1981; Moto-oka, 1981). Salah satu dari tujuan utamanya adalah mengembangkan intelligent machines, dan Prolog dipilih sebagai basis dalam upaya tersebut.

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 calculus.

Memilih Mobile Web App vs Mobile Native App

Bagi banyak perusahaan yang sudah menggunakan website untuk membangun 'brand awareness' dan menjual produknya, saat ini hampir sulit untuk mengabaikan pertumbuhan perangkat mobile yang sangat tinggi. Tetapi meskipun banyak perusahaan sangat ingin dan bertekad untuk masuk ke arena aplikasi e-commerce ke para pengguna mobile, mereka seringkali ragu-ragu untuk bergerak maju. Apakah sebaiknya membuat app khusus untuk semua perangkat mobile? Mobile app yang berfungsi untuk menunjang website yang sudah ada? Membuat semacam solusi kombinasi antara keduanya? Apakah hal-hal yang harus dipikirkan bila membuat konten dan app ke komunitas pengguna mobile?

Bagaimana strategi yang tepat untuk membuat native app atau web app?

Mobile Web Apps vs Mobile Native Apps

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)

Mempersiapkan Proses Delivery Proyek Multimedia

Jika proyek multimedia kita yang sudah selesai akan dikirim ke konsumen atau ke lien yang akan menginstal proyek di banyak komputer, kita harus menyiapkan file-file kita sehingga dapat dengan mudah ditransfer dari media kita ke platform pengguna. Seringkali hanya dengan cara me-copy file-file proyek ke hard disk pengguna tidaklah cukup untuk proses instalasi yang benar; seringnya adalah bahwa kita juga perlu menginstal sistem khusus dan file-file run-time.

Supaya pengguna akhir dapat dengan mudah dan otomatis mengatur proyek kita atau aplikasi di komputer mereka sendiri, kita mungkin perlu menyediakan satu program yang bertindak sebagai penginstal.

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 maupun cooperation synchronization

Empat Tahap Dasar Dalam Proyek Multimedia

Sebagian besar proyek multimedia harus dilakukan dalam berbagai tahapan. Beberapa tahap harus diselesaikan sebelum tahap lain dimulai, dan beberapa tahapan dapat dilewati atau digabungkan. Berikut adalah empat tahapan dasar dalam proyek multimedia:


1. Perencanaan dan penetapan biaya (planning and costing). Sebuah proyek selalu dimulai dengan ide atau kebutuhan yang kemudian kita perbaiki dengan menguraikan pesan dan tujuannya. Identifikasi bagaimana kita akan membuat setiap pesan dan tujuan berfungsi dalam sistem authoring yang kita gunakan. Sebelum kita mulai mengembangkan, rencanakan keterampilan menulis, seni grafis, musik, video, dan skill multimedia lainnya yang kita perlukan. Kembangkan "tampilan dan nuansa" (look and feel) yang kreatif (apa yang dilihat pengguna di layar dan bagaimana ia berinteraksi dengannya), serta struktur dan sistem navigasi yang akan memungkinkan pengunjung untuk mengunjungi pesan dan konten. Perkirakan waktu yang kita perlukan untuk melakukan semua elemen tersebut, dan kemudian menyiapkan anggaran. Buat prototipe pendek atau suatu proof-of-concept, contoh sederhana yang berfungsi untuk menunjukkan apakah ide kita layak atau tidak. Berbagai macam kemudahan dari tool yang kita gunakan untuk membuat materi dan penulisan saat ini selalu menggoda kita untuk segera beralih ke produksi — ingin melompat masuk sebelum merencanakan. Ini seringkali menghasilkan awalan yang salah dan waktu yang terbuang dan, dalam jangka panjang mengakibatkan biaya pengembangan yang lebih tinggi. Semakin banyak waktu yang kita habiskan untuk menangani proyek dengan mendefinisikan konten dan strukturnya pada awalnya, semakin cepat kita bisa membangunnya, dan lebih sedikit pengerjaan ulang dan penataan ulang akan diperlukan di tengah jalan. Pikirkan baik-baik sebelum kita mulai! Gagasan dan percobaan kreatif kita akan tumbuh menjadi tampilan layar dan tombol (atau look and feel), dan concept-of-proof kita akan membantu kita menguji apakah gagasan kita akan berhasil atau tidak. Kita mungkin menemukan bahwa dengan melanggar aturan, kita dapat menciptakan sesuatu yang hebat!

Pengembangan Alpha dan Beta Dalam Proyek Multimedia

Pengembangan alpha dalam kesluruhan proses pembuatan multimedia dibagi menjadi

a. Storyboard dan flowchart
Dalam bagian ini pembuatan konten sudah detail. Misal warna yang ada di dalamnya warna hitam , dan gambaran animasi nya juga sudah jelas.
b. Finalize story
Proyek yang kita buat juga sudah di finalisasi atau sudah fix dan alur ceritanya seperti apa.
c. Graphic art
Bagian ini berisi tentang skala besar mengenai proyek kita sudah jadi atau terbangun.