Minggu, 26 Januari 2014

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

4 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