---
title: Berkenalan dengan OCaml
created: 28-07-2021
update: -
---
OCaml merupakan singkatan dari Objective Categorial Abstract Machine Language, sebuah bahasa pemrograman serba guna dan mendukung variasi paradigma (seperti, Imperatif, Berbasis-Objek dan Fungsional).
OCaml dapat berjalan di sistem operasi desktop seperti MacOS, Linux dan Windows (Dengan bantuan chocolatey), infomasi lebih lanjut hubungi dokter disini.
Caml pertama kali di but pada tahun 1987 oleh Ascander Suarez yang dikembangkan sampai Tahun 1992, Caml dikembangkan oleh Pierre Weis and Michel Mauny karena kepergian Ascander pada tahun 1988. Kala itu Caml ditulis diatas LLM3 (mesin virtual dari sistem Le_Lisp).
Pada tahun 1990, Xavier Leroy menulis impelmentasi Caml dalam bahasa C yang menjadi Caml Light.
Tahun 1995, Xavier Leroy dan Damien Doligez membuat bahasa pengembangan dari Caml Light yang diberi nama Caml Special Light dengan dukungan pembangkit bytecode.
Seiring perkembanganya , Caml Special Light memiliki generator byte code yang lebih effisen, mengadopsi fitur StandardML.
Seiring perkembangan dan penambahan fitur pada tahun 2010, Caml Special Light berganti nama menjadi OCaml dengan dukungan banyak paradigma seperti Imperatif, Berbasis Objek dan Fungsional.
OCaml dapat di coba tanpa memasang kompiler secara online di TryOCamlPro.
-
Mencetak ke Konsol
let () = print_endline "Ora Bliding Ej, Ora Umum";;
-
Variabel
let nama = "Ayunda Mostovoy";; let () = print_endline("Hi, " ^ nama);; (* Hi, Ayunda Mostovoy *)
-
Pemilihan
let () = let kamu_orang = true and p = print_endline in if kamu_orang then p "Bukan Hantu" else if kamu_orang = false then p "Hantu" else p "Hantu" ;;
-
Perulangan Tidak ada while atau for hanya ada
loop
(infinite loop), fungsi rekursif dan iterator.let () = let kantong = [2;3;4;5;6;7;10] in (List.filter (fun y -> y mod 2 = 0) kantong) |> List.iter print_int |> ignore (* Membuang hasil List.iter*) ;;
-
Fungsi
let sapa_dia (nama: string): string = "Здравствуйте, " ^ nama ;; let () = print_endline(sapa_dia("dari LaodeAI")) ;;
-
Kombinator fungsi (
|>
)Kombinator fungsi menyambungkan output dari suatu ekspresi akan menjadi input bagi ekspresi lain.
let tambah a b = a + b;; let kurang c d = c - d;; let () = (* print_int(kurang(tambah(1 2) 3)) *) 2 |> tambah 1 |> kurang 3 |> print_int ; ;;
-
-
Modul
module Contoh = struct let fungsi_modul = print_endline("Dari Dalam Modul") end let () = Contoh.fungsi_modul ;;
[WIP]
[WIP]
[WIP]
OCaml tidak populer, ekosistem yang kecil dan banyak library yang cukup berumur tetapi masih bisa berjalan (abandon but not obsolete).
Mesikpun salah satu pustaka besar seperti mirage (unikernel) memiliki banyak pustaka pembantu, namun adopsi komunitas lebih memilih membuat alternatif lain (decision backslash).
OCaml sudah dipakai dalam taraf produksi, contoh beberapa perusahaan yang menggunakan OCaml dalam platform nya :