Tag

, , , , ,


Pengantar

Programming

Programming

Bismillah. Algoritma Pemrograman adalah salah satu mata kuliah untuk jurusan Ilmu Komputer atau Teknik Informatika yang menitikberatkan pada bagaimana memahami dan membuat sebuah Algoritma untuk menyelesaikan permasalahan. Algoritma yang dibuat dirancang sedemikian rupa agar dapat diimplementasikan dengan Bahasa Pemrograman tertentu misalnya C, C++, Pascal, Java, atau lainnya. Perkuliahan ini biasanya didampingi dengan praktikum di Laboratorium untuk memberikan pemahaman yang lebih mendalam mengenai bagaimana pengimplementasian algoritma yang telah dipeljari pada perkuliahan ke dalam sebuah program. Sedangkan Struktur data adalah mata kuliah lanjutan dari Algoritma dan Pemrograman yang menitik beratkan pada pembuatan dan perancangan algorima untuk mengolah data-data sehingga data-data tersebut dapat digunakan secara efisien.

Pada kesempatan kali ini, saya akan mengantarkan sedikit mengenai bagaimana melakukan migrasi dari Praktikum Algoritma dan Pemrograman atau Struktur Data berbasis C/C++ yang biasanya dikerjakan pada Lab menggunakan Windows ke Linux.

Apa saja yang perlu disiapkan?

Permrograman di Linux pada dasarnya tidak jauh berbeda dengan di Windows. Tool-tool yang perlu disiapkan ini antara lain Compiler (pada kesempatan kali ini C/C++) dan Editor atau IDE (Integrated Development Environment).

Kompiler

Kompiler adalah program (atau kumpulan program) yang dapat mengubah source code program yang ditulis dalam bahasa pemrograman tertentu menjadi bahasa lainnya yang dapat dikenal/dieksekusi oleh komputer (binary program atau sering disebut dengan object code atau executable). Pada praktikum berbasis Windows, terkadang peserta didik langsung diberikan sebuah IDE yang didalamnya telah dilengkapi dengan Kompiler C/C++ dan Editor. Ada banyak jenis compiler yang biasa dipakai pada praktikum dengan menggunakan Windows, namun yang paling sering digunakan yakni: Borland C++, C++ Bilder, Turbo C++, MinGW (GCC), CodeWarrior, dan lainnya. Kopiler-kompiler ini biasanya telah disertakan sepaket dengan IDE yang mungkin lebih sering kita kenal nama-namanya diantaranya: Borland C++ Builder, MinGW Studio, Bloodshed DevC++, Turbo C++, Visual Studio, dan lainnya.

Untuk di Linux, terdapat banyak pula kompiler yang dapat digunakan, namun diantara kompiler-kompiler yang ada tersebut, yang paling sering digunakan yakni GCC. GCC adalah singkatan dari GNU Compiler Collection, seperti namanya GCC berisi kumpulan kompiler-kompiler yang dibuat berlisensi GNU. Beberapa kompiler yang ada dalam GCC diantaranya yakni: Objective-C, Objective-C++, Fortran, Java, Ada, dan Go.

Pada umumnya, sebagian besar Linux telah dilengkapi dengan GCC kecuali yang minimalis. Oleh karena itu, kita perlu memastikan terlebih dahulu apakah GCC telah terinstall dengan baik pada system. Pengecekan dapat dilakukan dengan cara mengetikkan perintah gcc atau g++ (untuk kompiler C++) di terminal:

home@linux$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
...
gcc version 4.8.0 20130502 (prerelease) (GCC)

Namun jika yang tampil adalah:

home@linux$ gcc
bash: gcc: command not found

Maka dapat dipastikan GCC belum terinstall pada system. Untuk itu kita perlu menginstall GCC terlebih dahulu. Installasi dapat dilakukan dengan cara:

  • Ubuntu dan turunannya:
home@linux$ sudo apt-get install build-essential
  • Slackware dan turunan (paket txz). Umumnya GCC-G++ telah terinstall pada Slackware dan turunannya, namun jika masih belum paket dapat dicari di pkgs.org atau slackbuilds.org, atau langsung disini untuk Slakware 13.1.
  • Arch Linux
home@linux$ pacman -S base-devel

Editor dan IDE

Editor akan kita gunakan untuk menulis kode program. Editor yang bisa digunakan bebas, asalkan bukan Word Processor. Perli di ingat, eitor yang digunakan untuk membuat program adalah text editor, bukan word processor. Mengapa demikian? berikut perbedaan singkat antara text editor dengan word processor.

  • Text Editor, digunakan untuk membuat plain text, dimana text yang ada di dalamnya tidak bisa diformat sedemikian rupa misalnya seperti format Bold, Italic, dll. Beberapa contoh Text Editor yakni: Notepad, Notepad++, JEdit, GEdit, geany, dan lainnya.
  • Word Processor, digunakan untuk membuat file atau dokumen yang memiliki format khusus, sehingga memungkinkan untuk text yang ada di dalamnya dibuat tebal, cetak miring, berbeda ukuran satu sama lain dan lainnya. Beberapa contoh word processor ini antara lain: Ms Word, Open Office, Libre Office, dll.

Nah, dari penjelasan singkat di atas dapat kita bedakan mana saja yang termasuk text editor di Linux, diantaranya:

GUI Based

  • Geany (bisa dikategorikan IDE juga), *
  • GEdit,*
  • Pluma,
  • Kate, *
  • Cream,
  • Sublime text, *
  • Mousepad, dan lainnya.

Console Based

  • Vi, *
  • Vim, *
  • nano,
  • ed,
  • emacs, dan lainnya.

*) Recomended

Sedangkan IDE atau Integrated Development Environment seperti telah dijelaskan secara singkat di atas adalah alat yang bisa digunakan untuk membuat program yang telah dilengkapi dengan kompiler, editor dan tool-tool lain yang penting dalam pengembangan perangkat lunak. Untuk di Windows, praktikum Algoritma dan Pemrograman, dan praktikum Struktur Data biasanya telah langsung menggunakan IDE misalnya seperti Borland C++ Builder, Turbo C++, MinGW, Dev C++, dan lainnya. Untuk di Linux, IDE yang bisa digunakan untuk pembuatan aplikasi berbasis C++ diantaranya yakni:

  • Eclipse (CDT), *
  • Netbeans dengan plugin C/C++, *
  • Code::Blocks, *
  • Code Lite, *
  • GNAT,
  • KDevelop,
  • Qt Creator, *
  • Ultimate++,
  • Anjuta, dan masih banyak lagi yang lainnya.

*) Recomended

Installasi Editor/IDE

Installasi Editor atau IDE dapat dilakukan dengan mencari editor-editor dan IDE yang diinginkan melalui Package manager di masing-masing Distor Linux yang digunakan. Misalnya untuk di Arch Linux, cukup jalankan pacman -Ss [nama editor] melalui terminal untuk mencari nama paket untuk editor tersebut.

Memulai Praktikum dengan Linux

Praktikum dengan Linux secara garis besar tidak jauh berbeda dengan di Windows. Hanya saja perlu diperhatikan nantinya akan ada beberapa syntax program yang mungkin tidak berjalan di Linux karena membutuhkan library yang berasal dari IDE yang digunakan. Namun peserta didik/prkatikan tidak perlu khawatir, karena secara umum semua kode program untuk praktikum di Windows dapat dijalankan di Linux, dengan catatan praktikan memahami konsep pemrograman itu sendiri. Berikut beberapa contoh pembuatan program untuk Algoritma dan Pemrograman dengan bahasa C++ di Linux.

Menghitung luas segitiga

Source Code, pada contoh ini kita akan mencoba menggunakan editor basic yakni Vim. Vim menjadi pilhan karena telah dilengkapi dengan Syntax highlighter yang membuatnya menjadi menarik untuk digunakan membuat program. Langkah-langkanya:

  • Buka terminal, dan jalankan perintah berikut: (bila perlu pindahlah ke direktory kerja terlebih dahulu)
$ vim segitiga.cpp
    • Tekan tombol Insert yang ada pada keyboard atau tombol “i”, kemudian mulailah menulis kode programnya
#include <iostream>

using namespace std;
int main() {
    int alas, tinggi;

    cout << "Program: Menghitung Luas segi tiga" << endl;
    cout << "Masukkan alas: ";
    cin >> alas;
    cout << "Masukkan tinggi: ";
    cin >> tinggi;
    cout << endl << "Luas segitiga = " << (alas * tinggi)/2 << endl;
    return 0;
}

Jangan lupa untuk menyisakan satu baris kosong di bawah setelah tutup kurung kurawal “}”.

  • Setelah semua kode program ditulis, tekan tombol “Esc” pada pojok kiri atas keyboard. Kemudian ketikkan :wq (titik dua + w + q), atau tekan tombol Shift+Z+Z (pastikan Caps lock mati). Untuk menyimpan dan langsung keluar dari editor vim.
  • Selanjutnya pada terminal (masih di direktory tempat membuat file segitiga.cpp tadi) ketikkan perintah berikut untuk melakukan kompilasi:
c++@linux$ ls  #untuk memastikan file segitiga.cpp ada
segitiga.cpp
c++@linux$ g++ segitiga.cpp -o hasil
c++@linux$ ls
hasil  segitiga.cpp

Perhatikan: pada perintah “ls” pertama hanya ada file segitiga.cpp. Perintah g++ segitiga.cpp -o hasil digunakan untuk melakukan kompilasi file segitiga.cpp dengan hasil keluaran yakni file “hasil”. FIle “hasil” ini sudah siap untuk dieksekusi. Namun sebelumnya mari kita lihat dulu status dari kedua file di atas. Ketikkan perintah berikut di terminal:

c++@linux$ file segitiga.cpp hasil 
segitiga.cpp: C source, ASCII text
hasil:        ELF 32-bit LSB  executable, Intel 80386, ...

Perhatikan perbedaan kedua file. File segitiga.cpp dideteksi sebagai file C source, ASCII text (namun ini tidak terlalu penting, karena struktur C dan C++ hampir sama), sedangkan file “hasil” dideteksi sebagai file “ELF 32-bit LSB  executable,…”. File ini adalah file hasil kompilasi yang berupa executable, sehingga dapat secara langsung dieksekusi melalui terminal.

Cara mengeksekusi file executable ini yakni:

c++@linux$ ./hasil 
Program: Menghitung Luas segi tiga
Masukkan alas: 65
Masukkan tinggi: 12

Luas segitiga = 390

Perhatikan: ada tanda titik dan garis miring di depan nama file yang akan dieksekusi (./namafile).

Contoh lainnya (menggunakan editor GUI).

Menggunakan editor GUI tidak jauh berbeda dengan menggunakan Editor terminal. Pada contoh ini saya akan menggunakan editor Sublime text (recomended karena sudah ada Syntax highlighting dan auto completer).Berikut kode programnya (modifikasi dari tutorial ini):

#include <iostream>
using namespace std;

struct movies_t {
  string judul;
  int tahun;
} filmku;

void printmovie (movies_t movie);

int main ()
{
  filmku.judul = "Spongs Bob";
  filmku.tahun = 2009;

  cout << "My favorite movie is:\n ";
  printmovie (filmku);
  return 0;
}

void printmovie (movies_t m)
{
  cout << m.judul;
  cout << " (" << m.tahun << ")\n";
}

Pembuatan di Editor

Sublime Text: C++

Sublime Text: C++

Untuk melakukan kompilasi dan eksekusi program caranya sama seperti pada contoh segitiga di atas.

Kompilasi dengan g++

Kompilasi dengan g++

Demikian catatan singkat mengenai bagaimana beralih dari Praktikum Pemrograman C++ dengan menggunakan Windows ke Linux. Tidak begitu sulit selama anda mau belajar dan berkembang. Kelebihan lainnya yang bisa anda dapatkan ketika menggunakan Linux adalah anda bisa memahami bagaimana proses pembuatan program secara step-by-step mulai dari penulisan kode sampai eksekusi. Tidak hanya sekedar copas kode program dan menekan tombol “Run” untuk mengeksekusi program, akan tetapi kita tidak tau apa yang dilakukan oleh IDE yang kita gunakan tersebut.

Terimakasih, dan semoga bermanfaat. CMIW.