Sublime Text GCC C

Pada beberapa post sebelumnya telah saya perkenalkan Sublime Text, dengan contoh untuk pemrograman Arduino dan Atmel AVR, bahasa Python, maupun bahasa Lua. Untuk kali ini saya hanya akan pasting catatan mengenai konfigurasi Sublime Text (baik Sublime Text 2 maupun Sublime Text 3) untuk kode program dalam bahasa C. Tepatnya dengan GCC non AVR (misalnya untuk PC berbasis Intel).

Yang saya temukan konfigurasi untuk ST 2 agak berbeda dengan konfigurasi ST 3 (yang sampai saat saya tulis ini masih dalam tahap beta).

Pertama dimulai dari konfigurasi untuk Sublime Text 2 (yang kadang-kadang disebut sebagai ST2 atau ST 2). Terlebih dahulu pengguna perlu membuat Build System yang baru. Caranya adalah dengan memilih Tools > Build System > New Build System… . Lihat Gambar 1 berikut.

Gambar 1.

Dalam Gambar 1 terlihat file  yang disediakan masih dalam bentuk dasar dan harus diisi oleh pengguna sesuai keperluan. Untuk pengaturan kali ini hasilnya nanti akan seperti pada Gambar 2. File itu bisa disimpan dengan diberi nama yang berarti, misalnya saja saya pilih kata gcc sehingga nama file  yang tadinya untitled.sublime-build menjadi gcc.sublime-build.

Gambar 2. Teks yang perlu diisi untuk konfigurasi gcc

Teks yang perlu diisikan di file seperti pada Gambar 2 dapat disalin sebagai berikut:

Setelah konfigurasi disimpan seperti pada Gambar 2, kemudian akan tersedia pilihan untuk Build System gcc seperti terlihat pada Gambar 1.

Gambar 3. Hasil uji coba

Kode untuk uji coba pada Gambar 3 adalah sebagai berikut:

Untuk melakukan Build, tekan tahan kombinasi kunci Ctrl+B.  Untuk melakukan Run, tekan tahan kombinasi kunci Crtl+Shift+B.  

Sumber rujukan:

Berikutnya adalah konfigurasi untuk Sublime Text 3 (yang kdang disingkat ST3 atau atau ST 3). Urutan langkahnya hampir persis sama dengan pengaturan untuk ST2, letak perbedaan yang saya temukan ada pada isi konfigurasinya. Pertama pilih Tools > Build System > New Build System…, seperti pada Gambar 1 atau bisa juga dengan cara manual yaitu membuat file  baru di:

~/.config/sublime-text-3/Packages/User/gcc.sublime-build.

Perlu  diingat folder  .config dalam kondisi hidden  tersembunyi, gunakan Ctrl+H untuk menampilkannya. Penamaan file  masih tetap sama seperti pada ST 2, file itu bisa disimpan dengan diberi nama yang berarti, misalnya saja saya pilih kata gcc sehingga nama file  yang tadinya untitled.sublime-build menjadi gcc.sublime-build. Isi file konfigurasi sebagai berikut:

Cara penggunaan, build dan run sama seperti pada ST2.

Sumber rujukan:

Sebagai catatan akhir, dalam post  ini dapat terlihat bahwa untuk cukup banyak hal, informasi yang kita perlukan sebenarnya sudah tersedia di Internet. Tinggal bagaimana kita mencarinya, kita pelajari, kita pahami dan kita perbandingkan. Terutama sekali untuk hal-hal yang berkenaan engineering dan technology, ada banyak hal yang sudah pernah dipikirkan, dilakukan/dicoba oleh orang-orang di tempat/negara yang lebih maju. Pada cukup banyak hal, yang sering kurang adalah ketersediaan waktu atau bahkan sekadar kemauan kita untuk berusaha menemukannya.

 

Sublime Text Lua

 

Sublime Text sebagai text editor dapat dipergunakan untuk untuk melakukan pemrograman dalam berbagai bahasa pemrograman. Pada tulisan yang lalu sudah coba saya tampilkan Sublime Text dengan contoh untuk melakukan pemrograman dalam bahasa C (termasuk dialect untuk Arduino), pada artikel berikutnya telah saya sampaikan secara singkat penggunaannya untuk mempermudah pemrograman dalam bahasa Python. Pada artikel ini saya coba sampaikan secara singkat penggunaan ST (Sublime Text) untuk pemrograman dalam bahasa Lua.

Ada beberapa sumber yang menarik untuk dibaca supaya bisa mengerti apakah Lua itu. Setelah saya seleksi beberapa yang paling menarik akan saya cantumkan dalam bentuk tautan (link). Tetapi mari mulai dengan mengutip salah satu sumber, yaitu situs utama Lua:

What is Lua?

Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.

Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode with a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping. lua.org >> about.html

Secara sederhana bahasa pemrograman Lua cenderung lebih dekat dengan pola penggunaan bahasa Python daripada bahasa C. Pengguna dapat langsung mencoba tiap baris kode dan memperhatikan hasil eksekusinya. Sebelum melanjutkan, Lua perlu diunduh (download) di link ini dan diinstal di sistem.

Lebih lanjut untuk mempelajari Lua, ada beberapa tutorial yang memudahkan untuk mengawali belajar memprogram dalam bahasa Lua. Saya urutkan sebagai berikut:

Setelah mengenal apakah bahasa Lua itu, maka langkah selanjutnya adalah bagaimana malakukan pengaturan agar Sublime Text dapat dipergunakan untuk mempermudah proses pengerjaan program dalam bahasa Lua.

Sebagaimana plugin atau paket lain (semisal untuk bahasa Python), instalasi paket-paket tambahan yang diperlukan untuk bahasa Lua ini akan lebih mudah dilakukan jika menggunakan Package Control.  Jika belum ter-install maka cara instalasi Package Control bisa dibaca dan diikuti pada link ini.

Gambar 1. Package Control telah terinstal dan siap untuk dipergunakan

Dua sumber informasi yang baik yang dapat dipakai untuk memandu instalasi paket untuk Lua adalah:

Berikut adalah paket-paket yang saya instal di Sublime Text untuk pemrograman dalam bahasa Lua:

LuaLove is a package for Sublime Text 2/3 with support for the Love2D API. It is based on SublimeLove, LuaSublime, and lua_snippet.

LuaExtended is a syntax definition and snippet package for Sublime Text 3.

Meskipun tertulis untuk ST 3, paket ini juga dapat berfungsi di ST 2.

Gambar 2. Contoh penggunaan LuaExtended [sumber]

Paket ini berfungsi untuk menyediakan interpreter internal sehingga pengguna dapat mencoba kode program secara interaktif. Sama seperti penggunaannya untuk bahasa Python , paket ini juga berfungsi baik untuk bahasa Lua.

Gambar 3. Penggunan REPL untuk Lua

Terakhir, kita dapat mencoba kode-kode contoh dari link pada bagian pertama artikel ini dengan Sublime Text yang telah konfigurasi sebagaimana pada bagian dua.

Gambar 4. Hasil uji Lua dengan menggunakan build (Ctrl+B)

Sublime Text Python

Sebagai text editor tentu saja Sublime Text bisa dipergunakan untuk mengerjakan berbagai program dalam banyak bahasa pemrograman. Jika pada artikel yang lalu sebagai contoh saya menunjukkan bagaimana ST (Sublime Text) bisa dipergunakan untuk program dalam bahasa C (juga dialek seperti kode program untuk papan Arduino), maka kali ini saya coba tunjukkan bagaimana ST dapat mempermudah pemrograman dalam bahasa Python.

Berbeda dengan sistem pemrogaraman dengan kompilasi seperti pada bahasa C/C++ atau Pascal, pada Python kode program “tidak dikompilasi”. Secara sederhana pemrograman di sistem Python menggunakan interpreter. Mengutip sumber rujukan FAQ pada dokumen di situs Python.org

What is Python?

Python is an interpreted, interactive, object-oriented programming language. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes. Python combines remarkable power with very clear syntax. It has interfaces to many system calls and libraries, as well as to various window systems, and is extensible in C or C++. It is also usable as an extension language for applications that need a programmable interface. Finally, Python is portable: it runs on many Unix variants, on the Mac, and on Windows 2000 and later.

To find out more, start with The Python Tutorial. The Beginner’s Guide to Python links to other introductory tutorials and resources for learning Python.https://docs.python.org/3.6/faq/general.html

Jika tertarik untuk menelusuri lebih lanjut tentang diskusi seputar apakah Python merupakan bahasa yang interpreted atau compiled pembaca dapat mengakses di dua situs berikut:

  1. Is Python interpreted or compiled or both?  [stackoverflow]
  2. Is Python compiled or interpreted or both ? [quora]


Gambar 1. Python di Sublime Text 2

 

  • SublimeRope

Plugin SublimeRope pada Sublime Text 2 berguna untuk membantu programmer agar dapat mendeteksi, menemukan dan mengusulkan rujukan ke suatu deklarasi. Baik pada file yang sama maupun di file yang berbeda. Contoh dapat dilihat pada Gambar 2.

Gambar 2. Contoh penggunaan SublimeRope

 

  • SublimeREPL

Salah satu kemudahan yang disediakan sedari awal pada sistem Python adalah cara pemrograman yang interaktif. Pemrogram dapat langsung melihat hasil dari perintah yang diberikannya melalui kode program. Agar kemudahan ini juga dapat dimanfaatkan di Sublime Text maka kita perlu menginstal plugin SublimeREPL.

Gambar 3. SublimeREPL dengan Python 2 sebagai default

 

Gambar 4. Penggunaan Python 3 sebagai pengganti Python 2 di SublimeREPL

 

  • SublimeLinter

SublimeLinter 3 berfungsi untuk memberikan keterangan tambahan apabila programmer melakukan kesalahan penulisan kode program. Lebih jauh mengenai linter:

A linter is a small program that checks code for stylistic or programming errors. Linters are available for most syntaxes, from Python to HTML.

SublimeLinter does not do the linting itself; it acts as a host for linting plugins. The linting plugins themselves usually do not perform linting either; they just act as a bridge between the code you type in Sublime Text and the actual linter.

Instalasi dapat dilakukan dengan menggunakan Package Control ataupun dengan cara manual, petunjuk lebih lanjut dapat dibaca di halaman ini.

Gambar 5. Pesan kesalahan berupa kesalahan identasi pada kode program

 

Sublime Text editor

Pada post sebelumnya, saya sudah coba memperkenalkan Atom text editor yang dilengkapi dengan PlatformIO. Maka untuk artikel ini saya mencoba untuk memperkenalkan text editor lain yang juga memiliki penggemar aktif, bahkan mungkin penggunanya lebih banyak dari Atom. Text editor yang akan saya perkenalkan (tentu bagi yang belum kenal) adalah Sublime Text. Sampai saat saya menulis ini terdapat dua versi, yaitu versi dua (lazim juga disingkat sebagai ST 2) dan versi tiga (ST 3).

Para programmer yang menyukai editor Sublime Text biasanya mengungkapkan beberapa alasan seperti banyaknya plugin yang memudahkan dan mempercepat kerja, program yang ringan dan cepat dalam proses loading, dan bebas untuk dipergunakan. Sebagaimana IDE (Integrated Development Environment) maupun text editor yang baik lainnya, ST memberikan fasilitas untuk pewarnaan yang berbeda untuk tiap kata kunci dalam berbagai bahasa pemrograman. Misalnya untuk C/C++, Python, atau JavaScript.

Gambar 1 Pewarnaan kata kunci untuk bahasa C (AVR GCC)

Selain fasilitas yang lazim ditemui di banyak editor seperti pada Gambar 1, ST juga memberikan kemudahan bagi programmer untuk mendapatkan plugin yang mempermudah pekerjaan mereka. Salah satu contoh adalah plugin Stino yang memungkinkan pengguna untuk mengerjakan program untuk sistem Arduino langsung dari ST (Sublime Text) tanpa perlu mempergunakan Arduino IDE. Kemudahan ini terutama sangat menarik pada beberapa tahun yang lalu karena saat itu Arduino IDE masih dalam bentuk yang lebih sederhana daripada versi yang sekarang. Namun demikian menurut saya sendiri, untuk program yang memiliki banyak baris kode (program yang relatif panjang) menggunakan ST masih lebih memudahkan dan menyenangkan bila dibandingkan dengan menggunakan Arduino IDE.

Gambar 2. ST 2 dan Stino untuk pemrograman sistem Arduino

Gambar 2 menunjukkan penggunaan Sublime Text (ST) dengan Stino untuk pemrograman papan Arduino. Gambar 3 menunjukkan hasil dari build untuk program contoh sederhana (Hello World) dalam bahasa C untuk PC (GCC non Arduino). Program ini kemudian dieksekusi dengan perintah run dalam Gambar 4.

Gambar 3. Contoh hasil build program dalam bahasa C

Gambar 4. Hasil uji coba eksekusi (run) program sederhana dalam bahasa C (non Arduino)

Sublime Text, baik Sublime Text 2 maupun Sublime Text 3 (yang sampai saat saya tulis ini masih dalam versi beta) dapat di-install di sistem dengan OS Microsoft Windows maupun GNU/Linux (seperti Fedora, Debian, Ubuntu, Mint). Namun sampai saat ini khusus untuk sistem GNU/Linux Mint saya masih kesulitan untuk mempergunakan ST untuk pemrograman Atmel AVR (tanpa pengaturan tambahan), meskipun tidak ada masalah jika dipergunakan untuk pemrograman Arduino. Sedangkan untuk MS Windows XP, tidak ada kesulitan baik untuk Atmel AVR maupun Arduino.

Gambar 5. Contoh pesan kesalahan

Pesan kesalahan yang mendatangkan kesulitan seperti pada Gambar 5 dapat diatasi pada ST 2 dengan mengacu dan mengikuti dua sumber. Pertama, untuk memahami proses instalasi paket otomatis menggunakan Package Control (packagecontrol.io) yang mendatangkan pesan seperti pada Gambar 5 dapat dibaca di link berikut ini. Sedangkan untuk perbaikan dengan melakukan instalasi dan pengaturan secara manual dapat dibaca dan diikuti pada halaman berikut ini.

Bagian penting dari proses perbaikan–sekalipun menyulitkan– adalah bagian berikut (saya kutip dari halaman GitHub SublimeClang):

  1. If you don’t want to use package control, you can manually install it
    1. Go to your packages directory and type:
      1. git clone –recursive https://github.com/quarnster/SublimeClang SublimeClang
      2. After this you’ll have to Compile libcache as described in the Additional Prerequisites (Linux Only) section

 

Additional Prerequisites (Linux Only)

  1. ctypes can’t be imported in the Linux version of Sublime Text 2 right now. This can however be worked around easily with the help of pythonbrew:
    1. curl -kL http://xrl.us/pythonbrewinstall | bash
    2. source “$HOME/.pythonbrew/etc/bashrc”
    3. pythonbrew install –configure=”–enable-unicode=ucs4″ 2.6
    4. ln -s $HOME/.pythonbrew/pythons/Python-2.6/lib/python2.6/ <your Sublime Text 2 folder>/lib/python2.6
  2. If you install SublimeClang via Package Control, it seems libcache and libclang will be deleted when the package is updated, so it’s recommended that you manually install the plugin by using the git commands listed in the Installation section.
  3. Once SublimeClang has been installed, libcache will have to be compiled:
    1. cd src
    2. mkdir build
    3. cd build
    4. cmake ..
    5. make
  • Note that if a usable libclang library isn’t found, it will be downloaded and built as part of the build process.

 

Sebagai catatan tambahan dari saya, berdasarkan pengalaman langkah keseluruhan langkah instalasi memerlukan waktu yang cukup lama. Waktu yang cukup untuk membuat minuman kopi panas, merebus mie, makan lalu menucuci alat masak dan alat makan. Untungnya setelah perintah kita berikan pada komputer, proses ini berjalan secara otomatis. Proses yang paling lama adalah proses perintah berikut (semuanya dalam satu baris):

git clone --recursive https://github.com/quarnster/SublimeClang SublimeClang

Setelah instalasi library (pustaka) yang diperlukan selesai, proses dapat dilanjutkan oleh pengguna dengan memberikan perintah yang sesuai seperti pada panduan.

http://i.imgur.com/62RS0C8.gifGambar 6. Contoh fasilitas pengeditan text (kode) pada ST

Sublime Text memiliki banyak fitur (fasilitas) yang dapat membantu para programer, sebagai contoh dapat dilihat pada animasi di Gambar 6. Contoh fitur yang lain dapat langsung dilihat di situs ST yaitu: https://www.sublimetext.com/.

ST 2 maupun ST 3 bisa dipakai secara gratis, meskipun jika ingin anda dapat membeli lisensinya untuk penggunaan profesional di tautan berikut: https://www.sublimetext.com/buy?v=3.  Untuk mengunduh silakan mengakses halaman berikut: download. Untuk Stino, terdapat dua versi yang bisa dipergunakan, yang lama dan yang baru. Karena saya telah cukup lama mempergunakan Stino, maka versi yang saya pergunakan adalah versi Stino di link ini. Sedangkan versi Stino yang baru (sampai saat tulisan ini saya buat) ada di link berikut ini.

Demikian, semoga bermanfaat.

 

Save

Save