Langsung ke konten utama

Cara Mengompilasi Bahasa Pemrograman BAIK Versi 8 di Linux Mint 13 Berbasis Ubuntu 12.04 LTS

Bahasa pemrograman BAIK adalah bahasa pemrograman yang menggunakan perintah sintaks dalam Bahasa Indonesia. Bahasa pemrograman ini dikembangkan oleh Bapak Haris Hasanudin (https://www.facebook.com/hariscom). 

Belum lama ini, Bahasa pemrograman BAIK versi terbaru, yaitu BAIK versi 8 dirilis dengan penambahan fitur dan perbaikan bugs seperti yang dijelaskan pada press release.

BAIK versi 8.0 (Istana Buitenzorg) Press Release
----------------------------------------------------------

Bogor, 30 Juli 2012

Pada Hari ini, Haris Hasanudin meluncurkan bahasa pemrograman komputer dalam bahasa Indonesia yang diberi nama BAIK (Bahasa Anak Indonesia untuk Komputer) versi 8.0.
BAIK versi 8.0 dirilis dalam bentuk open source yang boleh dipakai untuk tujuan  pendidikan, hobi maupun komersil.

BAIK (Bahasa Anak Indonesia untuk Komputer) adalah bahasa pemrograman komputer ala bahasa skrip yang didesain untuk bisa dijalankan di semua sistem operasi (OS), seperti Windows(2000/XP/Vista/7/2003/2008) maupun Linux , Unix termasuk Mac OSX.

BAIK versi 8.0 merupakan upgrade dari Baik 7.1.

1. Telah dites pada Arm Linux
2. Penambahan GPIO functions
2. Pembetulan DB functions


Selain itu BAIK memiliki fitur-fitur kemudahan sebagai berikut:
  • Kode ditulis dalam bentuk plain text dalam ejaan bahasa Indonesia. 
  • Text editor (misal: Notepad di windows, Emacs di Linux) bisa dipakai untuk menulis kode.
  • Kode program tidak perlu di-compile. Kode source sebaiknya berakhiran .ina (indonesia).
  • Variable dalam BAIK tidak memerlukan pendefinisian terlebih dahulu.
  • Pendefinisian Fungsi/Sub Prosedur.
  • Array/Larik (dalam BAIK disebut Untaian) hanya ada dalam satu dimensi.
  • BAIK bisa digunakan untuk Web System melalui CGI (Common Gateway Interface).
  • BAIK bisa juga digunakan untuk membuat network program (TCP/IP sederhana).
  • BAIK memiliki ukuran yang sangat kecil, sehingga bisa juga diterapkan untuk embeded system berbasis Linux/Unix, misalnya robot.
  • Mengakses Database: Mysql, SQLite, Postgresql, Oracle (bukan default)
  • Menulis kalimat SQL dengan ejaan Indonesia (translasi sql)
  • Membuat file gambar dengan grafik pustaka : GD versi 2.0 ke atas.
  • fungsi pengolahan data statistik
  • fungsi pengecek koneksi jaringan dengan Ping
  • membuat file gambar dengan format PNG and JPG
  • pembuatan aplikasi desktop dengan GTK+ versi 2.10 ke atas.
  • Fitur mencetak dengan Printer pada program aplikasi desktop
  • Penambaham komponen GUI untuk program aplikasi desktop: Komponen BUKU (Multi Tab), Komponen RANTING_POHON (Tree), Komponen TOMBOL_BERIKON.
  • Karakter Multi Byte pada program aplikasi desktop
Menurut Pak Haris Hasanudin, BAIK sangat fleksible dalam kompilasi. Kita bisa kompilasi dengan fitur yg kita butuhkan saja. Misalnya kita tidak perlu fungsi Sqlite, maka tinggal hapus -DUSE_SQLITE dan -lsqlite3 di opsi kompilasinya yang ada di berkas shell didalam zip source. Pemilihan fitur yg perlu saja, bisa meningkatkan kecepatan eksekusi BAIK.
Library yang dibutuhkan untuk kompilasi semua fitur yaitu:
  • atk-dev
  • cairo-dev
  • gd
  • glib-dev
  • gtk+-dev
  • alsa-dev (asound-dev)
  • pthread
  • libharu (hpdf-dev)
  • libpng
  • mysql5-dev (mysqlclient-dev)
  • ocilib
  • openssl
  • pango-dev
  • posgresql-dev (pq-dev)
  • sqlite3-dev
Langkah-langkah melakukan kompilasi :
  • Sebelum mengompilasi BAIK, unduh dulu source BAIK di sourceforge
  • Ekstraksi hasil unduhan dan masuk ke foldernya.
  • Install library yang dibutuhkan untuk kompilasi, saya tidak menggunakan fitur untuk database oracle sehingga tidak membutuhkan library ocilib. Instalasi paket library tersebut pada Linux Mint 13 saya seperti berikut:
sudo apt-get install libatk1.0-dev libcairo2-dev libglib2.0-dev libgtk2.0-dev libasound2-dev libhpdf-dev libpng12-dev libmysqlclient-dev libssl-dev libpango1.0-dev libpq-dev libsqlite3-dev libgd2-xpm-dev libgtk-3-dev
  • Pada berkas shell yang ada di folder baik ada sedikit pengubahan lokasi dari /usr/lib/mysql ke /usr/lib/i386-linux-gnu. Karena beberapa library diinstalasikan di /usr/lib/i386-linux-gnu , seperti library libmysqlclient.so ,  libatk-1.0.so , libasound.so , libcairo.so , libgd.so , libglib-2.0.so, dll menjadi seperti berikut:
gcc -o baik -DUSE_ALSA -DUSE_PDF -DUSE_CGI -DUSE_WEBSTYLE -DUSE_SSL -DUSE_GTK2 -DUSE_MYSQL -DUSE_SQLITE -DUSE_PGSQL -DLINUX -I/usr/include -I/usr/include/postgresql -I/usr/include/mysql -I/usr/local/include -L/usr/lib -L/usr/local/lib -L/usr/lib/i386-linux-gnu `pkg-config --cflags --libs gtk+-2.0` tbaik.c baik_ident.c baik_stack.c baik_expression.c baik_compare.c baik_factor.c interpreter.c interpreterSub.c interpreterClass.c my_common.c sqlite_common.c pq_common.c -lpthread -lm -lhpdf -lssl -lsqlite3 -lmysqlclient -lpq -lgd -lasound `pkg-config --cflags --libs gtk+-2.0`
  • Kemudian open in terminal pada folder baik dan ketik sh ./compile_lnx_full.sh
  • Untuk mengeksekusi, ketikkan ./baik
  • Selesai
NB:
  • Kompilasi gagal di Linux Mint 15 dan ada pengguna Ubuntu 12.04 LTS mengalami hal yang sama. Muncul seperti berikut:
/usr/bin/ld: /tmp/cc5uVI1I.o: undefined reference to symbol 'EVP_EncryptInit@@OPENSSL_1.0.0'
/usr/bin/ld: note: 'EVP_EncryptInit@@OPENSSL_1.0.0' is defined in DSO /lib/i386-linux-gnu/libcrypto.so.1.0.0 so try adding it to the linker command line
/lib/i386-linux-gnu/libcrypto.so.1.0.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
  • Kemungkinan besar terjadi pada paket libssl-dev atau libssl1.0.0 versi >= 1.0.1c-4ubuntu8.2
  • Pada komputer yang saya gunakan, paket libssl menggunakan versi 1.0.1-4ubuntu5.11
Referensi:
Berkenalan dengan Bahasa Pengnaskahan BAIK (BAIK Scripting Language)
BAIK Scripting Language Facebook Group
Project BAIK Scripting Language di Sourceforge

Komentar

  1. itu scriptnya ada yang di rubah?

    BalasHapus
    Balasan
    1. iya ada yang diubah, saya pakai file kompilasi compile_lnx_full.sh, saya ubah lokasi dari /usr/lib/mysql ke /usr/lib/i386-linux-gnu

      Hapus
  2. saya menemukan error berikut ketika install
    /opt/baik# ./compile_lnx_full.sh
    In file included from baik_header.h:98:0,
    from tbaik.c:70:
    multiplatform.h: In function ‘ux_bacaSocket’:
    multiplatform.h:132:7: warning: passing argument 1 of ‘write’ makes integer from pointer without a cast [enabled by default]
    In file included from baik_header.h:37:0,
    from tbaik.c:70:
    /usr/include/unistd.h:363:16: note: expected ‘int’ but argument is of type ‘char *’
    In file included from FactorIdent.h:38:0,
    from baik_factor.c:270:
    funcPostgreSql.h: In function ‘funcPGSQL_KONEKSI’:
    funcPostgreSql.h:227:28: warning: comparison between pointer and integer [enabled by default]

    itu kenapa ya ?

    BalasHapus
    Balasan
    1. itu cuma warning, tapi kompilasinya berhasil

      Hapus
  3. /usr/bin/x86_64-linux-gnu-ld: tidak dapat menemukan -lgd
    collect2: error: ld returned 1 exit status

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

Lokasi untuk Legalisasi Copy Akreditasi Jurusan di BAN PT

Untuk melegalisir akreditasi BAN-PT, bawa KTP untuk mendapatkan visitor pass di Lobby di frontdesk, kemudian menuju ke lift yang ada di sebelah kanan.Di Lantai 17, temui dulu petugas keamanan dan bilang mau legalisir copy akreditasi.

Terkait copy-an Sertifikat/Surat Keterangan Akreditasi BANPT bisa diminta kepada Perguruan Tinggi terkait dikarenakan Hasil Surat Keputusan Akreditasi BANPT dan Sertifikat kami serahkan ke Perguruan Tinggi.
Terkait legalisir silahkan membawa:

1. Copy Sertifikat/Surat Keputusan BAN-PT sesuai prodi/institusi Saudara
2. SKL/Ijazah prodi (hanya menunjukan ke pihak bagian legalisir)

Untuk jam operasional layanan legalisir pada:

Senin, Selasa, Rabu pk. 09:00 s.d 16:00
Kamis pk 09:00 s.d 12:00

Alamat:
Gedung II Badan Pengkajian dan Penerapan Teknologi (BPPT) Lt, 17.
Jl. M.H. Thamrin 8, Kebon Sirih, Menteng, Jakarta Pusat. 10340.


sumber : Sekretariat BANPT

Mudahnya Membeli LM di Butik Emas Logam Mulia ANTAM Unit Sarinah

Udah lama banget nih gak nulis blog lagi. Sekarang baru punya ide buat nulis lagi. Kali ini, saya ingin berbagi pengalaman membeli logam mulia di Butik Emas LM unit Sarinah.


Setelah sekian lama nabung dan punya budget buat beli, akhirnya saya beli juga.😄

Waktu itu datang ke lokasi sekitaran jam 1 siang hampir menjelang tutup, karena waktu itu hari sabtu dan pas ada event promo harga pabrik (re: harga pabrik Pulogadung).


Oiya, untuk jam operasionalnya bisa dilihat di website resminya disini. Buat yang di luar daerah yang tidak ada Butik LM bisa delivery order lhoh, jadi mudah kan, disini. Oiya, sebelum beli pastiin dulu update harga terbaru untuk hari dimana kamu mau beli ya, soalnya harga bisa berubah sewaktu-waktu dan stok juga bisa berubah. Jadi, dipastikan dulu ya, kalo saya waktu itu langsung ke lokasi aja.😅

Kita balik lagi ke topik, pas masuk ke butik, kamu bakalan disambut oleh petugas keamanan internal butik LM-nya lhoh, oiya demi menjaga keamanan di situ, waktu saya kesana ada p…

[Belajar JavaFX] Membuat Program Form Login Sederhana dengan JavaFX dan CSS di Netbeans

Sebelum membuat program form login sederhana ini yang dibuat dengan bahasa pemrograman Java, terlebih dahulu kita memasang peralatan yang dibutuhkan. Saya menggunakan IDE Netbeans 8.0.2 versi All yang didalamnya sudah memasukan banyak dukungan termasuk JavaFX dan JDK 1.8.0 update 25 ( sudah termasuk JRE dan untuk saat ini sudah termasuk JavaFX ).
Membuat Project di Netbeans  Klik FileNew Project. Pada bagian Categories, pilih JavaFX dan pada bagian Projects pilih JavaFX ApplicationsNext. Kemudian masukan nama proyeknya dan pastikan JDK sudah dipasang.Project Name : FormFXExampleKlik Finish.Buatlah kode  didalam file FormFXExample.java seperti berikut.


Setelah membuat FormFXExample.java, kemudian kita buat file baru dengan nama CSSExample.java didalam folder formfxexample. Cara untuk membuat file baru tersebut dengan cara klik kanan pada formfxexample yang berada dibawah Source Packages → New → Other → pilih Categories ( JavaFX ) dan Filetypes ( JavaFX Main Class ) → Next.Cla…