Tampilkan postingan dengan label Komputasi. Tampilkan semua postingan
Tampilkan postingan dengan label Komputasi. Tampilkan semua postingan

Minggu, 07 Juli 2019

Visualisasi Data Penelitian Dalam Bentuk Grafik Menggunakan Gnuplot


Sebagai seorang pelajar atau peneliti, terkadang diperlukan penyajian data berupa grafik. Ada banyak perangkat lunak pembuat grafik yang populer, misalnya OriginPro, tapi merupakan perangkat yang berbayar. Walaupun masih bisa digunakan dengan cara ilegal, namun hal ini akan menghasilkan dosa dan menghilangkan keberkahan terhadap karya yang kita hasilkan. Anda tentunya tidak mau hal itu sampai terjadi.

Dalam tulisan ini, saya akan membahas sebuah perangkat lunak pembuat grafik gratisan. Meskipun demikian, Gnuplot seringkali digunakan oleh peneliti bertaraf internasional dalam paper-paper mereka. Contoh paper internasional yang grafiknya menggunakan Gnuplot dapat dilihat di sini.

Gnuplot merupakan suatu program yang dapat berjalan di Command Line (Terminal di Linux atau Command Prompt di Windows) untuk menghasilkan grafik 2 atau 3 dimensi. Namun, bahasan dalam tulisan ini hanya dibatasi pada grafik 2 dimensi. Jika anda pengguna Windows, Gnuplot dapat anda unduh di sini. Jika anda pengguna Linux berbaris Ubuntu, dapat menginstalnya dengan menjalankan perintah di bawah ini:

sudo apt-get install gnuplot

Dalam tulisan ini, saya menggunakan terminal Linux dalam menjalankan Gnuplot. Saya berharap, anda dapat menyesuaikan.

Data yang akan diplot dapat dimasukkan secara langsung maupun dimasukkan dari berkas (file) yang sudah ada. Namun, bahasan dalam tulisan ini hanya dibatasi pada penggunaaan data dari berkas masukan.

Dalam turorial ini digunakan 5 berkas berekstensi .dat yang merupakan data keluaran (output) dari sebuah program fisika komputasi. Nama-nama berkas tersebut adalah sebagai berikut:

  • data1.dat
  • data2.dat
  • data3.dat
  • data4.dat
  • data5.dat

Berkas-berkas di atas dapat diunduh di sini untuk dijadikan bahan ujicoba jika anda belum memiliki data sendiri.

Data dalam berkas-berkas tersebut terbagi menjadi 3 kolom sebagaimana yang diperlihatkan oleh gambar di bawah ini:

Gambar 1: Isi berkas data1.dat

Terlihat dalam gambar di atas bahwa kolom pertama hingga ketiga secara berturut-turut berisi data temperatur, energi, dan massa jenis bahan feromagnetik.

Tiap berkas di atas berisi 2002 baris. Namun baris ke-1 dan ke-2 tidak akan diproses karena diawali dengan tanda # sehingga data yang diplot hanya 2000 baris. Jika tanda tersebut terdapat pada suatu baris maka data yang terdapat di belakangnya tidak akan dibaca. Hal ini hanya berlaku pada baris itu saja.

Pengaturan-pengaturan grafik yang akan dibuat dapat ditulis baris demi baris di Command Line. Namun hal ini tidak efisien jika kita hendak mengeplot berkali-kali dengan pengaturan yang sama. Oleh karena itu kita akan membuat berkas berekstensi .gnu yang berisi perintah-perintah Gnuplot yang akan digunakan dalam mengeplot suatu data yang terdapat dalam suatu berkas. Nantinya, kita hanya mengubah beberapa baris dalam berkas berekstensi .gnu tersebut jika hendak mengeplot data dalam berkas yang lain.

Misalkan kita hendak membuat grafik hubungan antara temperatur (kolom pertama) dan massa jenis (kolom ketiga) yang terdapat pada berkas yang bernama data1.dat. Bukalah text editor kesukaan anda (di sini saya menggunakan Xed yang merupakan bawaah Linux Mint) lalu tulislah berintah di bawah ini (selain nomor baris perintah):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
set terminal x11
set key font "Courier,16"
set xlabel "T" font "Times-Italic,24"
set ylabel "C_V" font "Times-Italic,24"
set xrange [0.0:6.0]
set yrange [0.0:1.0]
set xtics 1.0
set ytics 0.2
set border linewidth 2
set lmargin 9.0
set bmargin 4.0
plot "data1.dat" using 1:3 with points linewidth 1 linetype 1 pointtype 1 pointsize 1.0 title "L=10, c=0.2"
set term post eps enhanced color solid "Helvetica" 18
set output "grafik-data1.eps"
replot

Penjelasan Baris Perintah:

  1. Perintah untuk mengubah tipe terminal menjadi x11. Hal ini lakukan untuk memperlancar proses pembuatan grafik.
  2. Mengatur jenis dan ukuran huruf legenda (keterangan) grafik. Di sini digunakan huruf yang bernama Courier dengan ukuran 16. Jenis-jenis huruf yang dapat digunakan dapat dilihat di sini.
  3. Mengatur label sumbu-x. Di sini digunakan label "T" menggunakan huruf "Times-Italic" berukuran 24.
  4. Mengatur label sumbu-y. Di sini digunakan label  "C_v" menggunakan huruf dan ukuran seperti pada nomor sebelumnya.
  5. Mengatur rentang sumbu-x. Di sini, sumbu-x akan dimulai dari 0.0 hingga 6.0.
  6. Mengatur rentang sumbu-y. Di sini, sumbu-y akan dimulai dari 0.0 hingga 1.0.
  7. Mengatur interval penomoran sumbu-x. Di sini, interval yang digunakan adalah 1.0.
  8. Mengatur interval penomoran sumbu-y. Di sini, interval yang digunakan adalah 0.2.
  9. Mengatur lebar garis pinggir grafik. Di sini digunakan ukuran 2.
  10. Mengatur margin kiri. Margin yang dimaksud adalah jarak antara garis kiri grafik dan tepi berkas sebelah kiri. Di sini digunakan ukuran 9.0.
  11. Mengatur margin bawah. Margin yang dimaksud adalah jarak antara garis bawah grafik dan tepi berkas sebelah bawah. Di sini digunakan ukuran 4.0.
  12. Memasukkan data yang akan diplot serta mengatur garis dan label grafik.  Di sini, data yang akan diplot berasal dari berkas yang bernama data1.dat sedangkan kolom yang hendak diplot adalah kolom pertama dan ketiga. Kolom pertama akan menjadi sumbu-x sedangkan kolom ketiga akan menjadi sumbu-y. Tipe plot yang digunakan adalah tipe poin (point) dengan lebar garis adalah 1, tipe poin adalah 1, ukuran poin adalah 1, dan judul grafik yang akan tertulis pada bagian legenda adalah "L=10, c=0.0".
  13. Mengatur berkas keluaran dari Guplot. Di sini telah digunakan berkas keluaran berekstensi .eps. Kami tidak menggunakan ekstensi .jpg adau .png karena dalam pengalaman kami hasilnya kurang bagus. Di sini juga telah dilakukan pengaturan huruf yang digunakan pada kedua sumbu grafik pada berkas keluaran. Di sini digunakan huruf dengan nama "Helvetica" berukuran 18.
  14. Pengaturan nama berkas keluaran. Di sini digunakan nama "grafik-data1.eps".
  15. Perintah untuk mengeplot data ke dalam berkas keluaran.
Setelah berkas di atas disimpan, masuklah ke dalam Gnuplot dengan cara menulis perintah di bawah ini di terminal:

gnuplot

Setelah menekan tombol enter maka akan diperoleh tampilan kurang lebih seperti pada gambar di bawah ini:

Gambar 2: Tampilan Gnuplot di terminal Linux
Jika berkas Gnuplot di atas tersimpan dengan nama "plot-data1.gnu" maka perintah untuk memanggil berkas tersebut adalah sebagai berikut:

load "plot-data1.gnu"

Hasilnya dapat dilihat pada gambar di bawah ini:

Gambar 3: Hasil dari berkas plot-data1.gnu
Walaupun kita menggunakan plot tipe poin tapi terlihat dalam gambar 3 bahwa sebagian plot membentuk garis. Hal ini terjadi karena jumlah data sangat banyak, poin-poin menjadi sangat berdekatan sehingga terlihat menyatu membentuk garis.

Selanjutnya, kita akan membahas tentang cara menggabungkan banyak grafik ke dalam satu gambar. Misalnya, kita hendak mengeplot semua data di atas (data1.dat, data2.dat, data3.dat, data4.dat, dan data5.dat) maka perintahnya adalah sebagai berikut:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
set terminal x11
set key spacing 1.2
set key font "Courier,16"
set xlabel "T" font "Times-Italic,24"
set ylabel "C_V" font "Times-Italic,24"
set xrange [0.0:6.0] 
set yrange [0.0:1.0] 
set xtics 1.0 
set ytics 0.2 
set border linewidth 2
set lmargin 9.0
set bmargin 4.0
plot "data1.dat" using 1:3 with points linewidth 1 linetype 1 pointtype 1 pointsize 1.0 title "L=10, c=0.2"
replot "data2.dat" using 1:3 with points linewidth 1 linetype 2 pointtype 2 pointsize 1.0 title "L=10, c=0.4"
replot "data3.dat" using 1:3 with points linewidth 1 linetype 3 pointtype 3 pointsize 1.0 title "L=10, c=0.6"
replot "data4.dat" using 1:3 with points linewidth 1 linetype 4 pointtype 4 pointsize 1.0 title "L=10, c=0.8"
replot "data5.dat" using 1:3 with points linewidth 1 linetype 5 pointtype 5 pointsize 1.0 title "L=10, c=1.0"
set term post eps enhanced color solid "Helvetica" 18
set output "grafik-gabungan.eps"
replot

Jika perintah-perintah di atas tersimpan dalam berkas yang bernama "plot-gabungan.gnu" maka perintah untuk memanggil berkas tersebut adalah sebagai berikut:

load "plot-gabungan.gnu"

Hasilnya dapat dilihat pada gambar di bawah ini:

Gambar 4: Hasil dari berkas plot-gabungan.gnu
Jika berkas keluaran berekstensi .eps hasilnya sangat bagus tapi terkadang kita kesulitan memasukkan gambar grafik tersebut ke dalam pengolah kata. Jika anda menggunakan pengolah kata Latex maka tambahkanlah perintah berikut secara berurutan pada bagian preamble agar berkas berekstensi .eps dapat diproses:

1
2
\usepackage{graphicx}
\usepackage{epstopdf}

Jika anda menggunakan MS Word dan anda gagal memasukkan gambar berekstensi .eps maka anda tidak punya pilihan lain selain mengubah ekstensinya menjadi .jpg atau .png. Untuk mengonversinya, anda dapat mengunjungi www.epsconverter.com.

Demikian tulisan kali ini. Jika ada pertanyaan, silahkan menulisnya di kolom komentar. Semoga bermanfaat!

Minggu, 15 Juli 2018

Hakikat Komputer

Sumber: Pixabay
Secara harfiah, komputer (computer) berarti alat penghitung. Memang pada mulanya istilah ini digunakan untuk menyebut alat bantu perhitungan. Namun, seiring dengan perkembangannya, istilah komputer mengalami perluasan arti yang disebabkan oleh pesatnya perkembangan teknologi informasi dan elektronika. Kamus Besar Bahasa Indonesia (KBBI) mendefinisikan komputer sebagai:
komputer /kom·pu·ter/ n alat elektronik otomatis yang dapat menghitung atau mengolah data secara cermat menurut yang diinstruksikan, dan memberikan hasil pengolahan, serta dapat menjalankan sistem multimedia (film, musik, televisi, faksimile, dan sebagainya), biasanya terdiri atas unit pemasukan, unit pengeluaran, unit penyimpanan, serta unit pengontrolan;
Saat ini komputer memiliki peranan yang sangat besar dalam menunjang kemajuan peradaban manusia. Penggunaan komputer dapat ditemukan dalam berbagai aspek kehidupan dan menampakkan diri dalam berbagai bentuk. Komputer telah menjadi salah satu kebutuhan untuk mempermudah pekerjaan sehari-hari.

Perkembangan komputer yang semakin pesat dari hari ke hari, seringkali membuat segelintir manusia lupa bahwa komputer hanyalah salah satu karya manusia. Terkadang kita menghabiskan lebih banyak waktu menikmati pelayanan yang dapat diberikan oleh sebuah komputer sehingga tidak sempat mengajukan sebuah pertanyaan "mengapa sebuah komputer bisa melakukan hal itu?"

Seberapapun canggihnya sebuah komputer, sebenarnya komputer itu hanya mengikuti instruksi-instruksi yang terdapat dalam program yang terinstal dalam sistemnya. Komputer tidak memiliki pilihan selain mengikuti instruksi-instruksi itu. Supaya program komputer dapat berjalan dengan baik maka komputer harus memiliki algoritma yang baik. Algoritma merupakan sekumpulan instruksi yang terurut langkah demi langkah untuk menyelesaikan suatu masalah.

Pada dasarnya, sebuah komputer merupakan suatu sistem digital. Pada sistem digital, suatu data diproses langkah demi langkah dimana nilai pada data yang diproses disimbolkan dengan digit. Misalnya, ketika user mengetik sebuah tombol pada keyboard komputer, tombol yang ditekan menyebabkan adanya perubahan sinyal listrik yang terdeteksi di dalam transistor. Perubahan sinyal listrik yang terekam kemudian diubah dalam bentuk data diskrit yang disimbolkan dengan bilangan biner (binary digit).

Sesuai dengan namanya, bilangan biner hanya memiliki dua nilai yaitu 0 dan 1. Seluruh karakter yang terdapat dalam keyboard suatu komputer didigitalisasikan dalam bentuk angka-angka bilangan biner. Ketika user mengetik kata "saya" dengan menggunakan keyboard komputer maka kata "saya" diubah menjadi deretan angka-angka biner yang terdiri atas empat digit. Deretan bilangan biner tersebut akan disimpan sementara di dalam RAM (Random Acces Memory) selama mengetik. Jika user memutuskan untuk menyimpan tulisannya maka data yang berupa bilangan biner tersebut dipindahkan dari RAM ke harddisk.

Demikian, semoga bermanfaat!

Senin, 13 Maret 2017

Hal-Hal Mendasar yang Perlu Dilakukan Sebelum Menggunakan Bahasa Pemrograman C/C++ di Windows


Dalam artikel sebelumnya, saya telah membahas hal-hal mendasar yang perlu dilakukan sebelum menggunakan bahasa pemrograman C/C++ di Ubuntu dan Linux Mint. Rasanya tidak adil jika saya tidak menulis topik pembahasan yang sama untuk pengguna Windows. Dalam artikel ini, saya menggunakan Windows 10.

Saya tidak akan membahas lagi pengenalan singkat bahasa pemrograman C/C++. Bagi yang belum mengenal bahasa C/C++ dapat merujuk ke artikel sebelumnya. Kita langsung masuk ke pokok bahasan.

1. Menginstal Kompiler


Mesin komputer tidak mengerti bahasa pemrograman, mesin hanya mengerti bilangan biner 1 dan 0. Supaya mesin komputer dapat melakukan instruksi-instruksi programmer yang tertuang dalam kode sumber  (source code) program maka kode sumber tersebut harus diterjemahkan  ke dalam bahasa tingkat rendah (bahasa yang dipahami oleh mesin). Kode sumber adalah adalah suatu rangkaian pernyataan atau deklarasi yang ditulis dalam bahasa pemrograman komputer yang terbaca manusia.  

Perangkat lunak yang bertugas dalam proses penerjemahan ini dinamakan penerjemah (translator). Dalam dunia pemrograman, terdapat 2 jenis penerjemah, yaitu:
  1. Interpreter : perangkat lunak yang mampu mengeksekusi kode sumber program lalu menerjemahkannya ke dalam bahasa mesin baris demi baris sambil mengikuti logika yang ada dalam program tersebut.
  2. Kompiler (compiler) : perangkat lunak yang mampu menerjemahkan kode sumber program  ke dalam bahasa mesin secara keseluruhan dan menghasilkan keluaran (output) berupa file yang dapat dieksekusi (executable). File keluaran tersebut dapat dibagikan dan dijalankan oleh orang lain tanpa harus menyertakan kode-sumbernya.
Bahasa C/C++ merupakan bahasa pemrograman yang menggunakan kompiler dalam penerjemahan. Karena itu, hal pertama yang perlu dilakukan sebelum membuat program dalam bahasa C/C++ adalah menginstal kompiler.

Ada banyak jenis kompiler bahasa C/C++ dan yang selalu saya gunakan adalah GCC. Bagaimana cara menginstal GCC di Windows? Ikutilah langkah-langkah yang dipaparkan selanjutnya.

Kunjungilah http://sourceforge.net/projects/mingw-w64/ lalu unduh wingw-w64-install.exe. Jika sudah selesai, masuklah ke folder tempat wingw-w64-install.exe tersimpan lalu klik ganda untuk memulai proses instalasi sehingga tampil jendela berikut:


Tentu saja kita klik Next hingga muncul jendela di bawah ini:


Sesuaikan Achitecture dengan jenis sistem operasi yang anda gunakan (64 bit atau 32 bit). Setelah selesai, klik Next hingga muncul tampilan di bawah ini:


Tungulah (dengan penuh kesabaran) hingga proses instalasi selesai. Setelah selesai, klik Next hingga muncul tampilan di bawah ini:


Klik Finish. Sampai di sini, kompiler telah selesai terinstal di komputer anda. Langkah selanjutnya, kita lakukan pengeditan konfigurasi sistem.

Masuklah ke folder dimana MinGW-W64 terinstal lalu masuklah ke folder bin. Dalam komputer saya, lokasinya adalah Program Files/mingw-w64/x86_64-6.3.0-posix-sjlj-rt_v5-rev1/mingw64/bin. Perhatikan gambar di bawah ini:


Kopilah lokasi folder bin (lihat coretan merah dalam gambar di atas).

Selanjutnya, masuklah ke dalam Control Panel > System and Security > System. Di bagian kiri terdapat menu Advanced System Settings, klik menu tersebut hingga muncul jendela baru. Perhatikan gambar di bawah ini:


Setelah muncul jendela baru, klik Environment Variables hingga muncul tampilan di bawah ini:


Klik Path lalu klik Edit (perhatikan warna biru mudah dan lingkaran merah dalam gambar di atas). Selanjutnya akan ditampilkan jendela di bawah ini:


Pada bagian Variable Value, paste lokasi folder bin yang telah dikopi tadi (perhatikan gambar di atas).

Pengaturan konfigurasi ini bertujuan untuk memudahkan user mengompilasi kode sumber program. Kita tidak perlu lagi masuk ke folder bin setiap kali mengompilasi kode sumber program menggunakan Command Prompt.

2. Mengetes Kompiler


Untuk mengetes kompiler yang telah kita instal di atas kita membutuhkan dua kode sumber program yaitu kode sumber yang berbahasa C dan kode sumber yang berbahasa C++. Jika anda sudah memiliki kode sumber program berbahasa C dan C++ maka anda bisa menggunakan itu. Jika belum maka tulislah script di bawah ini dalam editor (misal: notepad).

Program sederhana menggunakan bahwa C:

1
2
3
4
5
#include <stdio.h>
int main(void) {
   printf("Hello, world!\n");
   return 0;
}

Setelah selesai, simpanlah dengan ekstensi .c misalnya bahasac.c.

Program sederhana menggunakan bahasa C++:

1
2
3
4
5
6
7
#include <iostream>
using namespace std;
int main()
{
   cout <<"Hello, world!"<< endl;
   return 0;
}

Simpanlah dengan ekstensi .cpp misalnya bahasacpp.cpp.

Setelah selesai, bukalah Command Prompt lalu masuklah ke folder tempat kedua file C dan C++ di atas tersimpan. Pada komputer saya, saya menyimpannya dalam folder Desktop di partisi C.

Saya menggunakan perintah di bawah ini dalam mengompilasi dan mengeksekusi program:

1
2
3
4
5
6
cd Desktop
dir
gcc -o bahasac bahasac.c
g++ -o bahasacpp bahasacpp.cpp
bahasac
bahasacpp

Perintah cd digunakan untuk berpindah folder (direktory). Perintah cd Desktop berarti berpindah ke folder Desktop. Perintah dir digunakan untuk melihat isi folder. Perintah dalam baris ke 3 dan 4 berfungsi untuk mengompilasi dua kode sumber program yang telah dibuat. bahasac dan bahasacpp merupakan nama file hasil kompilasi sedangkan bahasac.c dan bahasacpp.cpp merupakan nama file yang akan dikompilasi.

Hasilnya dapat dilihat dalam gambar di bawah  ini:


Kedua tanda panah berwarna merah dalam gambar di atas memperlihatkan keluaran dari program.

Demikian tutorial kali ini. Jika ada yang terluput, silakan bertanya dalam kolom komentar. Semoga bermanfaat!

Rabu, 08 Maret 2017

Hal-Hal Mendasar yang Perlu Dilakukan Sebelum Menggunakan Bahasa Pemrograman C/C++ di Ubuntu dan Linux Mint


Saya telah menulis beberapa artikel pemrograman menggunakan bahasa C++ dalam blog ini. Beberapa saat kemudian, seorang kenalan saya yang tertarik dengan bahasa pemrograman C/C++ sempat menanyakan cara menginstal kompiler C/C++ di komputer beserta cara mengompilasi source code. Nah, saya pikir, mungkin ada beberapa orang yang mengalami masalah yang sama jadi saya memutuskan untuk menulis artikel yang membahas hal ini.

Mohon maaf bagi anda yang pengguna Windows. Saya belum pernah menggunakan C/C++ di Windows. Saya selalu menggunakan Linux Mint (turunan Ubuntu) ketika membuat program, jadi saya hanya bisa memaparkan hal-hal dasar yang sebaiknya dilakukan sebelum menggunakan bahasa pemrograman C/C++ di Ubuntu dan Linux Mint.

1. Mengenal Bahasa Pemrograman C dan C++


Saya mengasumsikan bahwa sebagian dari pembaca artikel ini merupakan orang-orang yang masih dalam tahap penasaran dan belum mengenal bahasa C/C++. Maka dari itu, saya terlebih dahulu mengenalkan bahasa C/C++ dalam bahasan yang seringkas mungkin.

Bahasa C dikembangkan oleh Dennis Ritchie di Bong Labs pada tahun 1972. Bahasa pemrograman C awalnya dikembangkan untuk Sistem Operasi Unix (nenek moyang Sistem Operasi Linux) namun sekarang sering digunakan dalam komputasi sains dan pengembangan software aplikasi.

Bahasa C merupakan bahasa pemrograman level menengah (midle level programming). Istilah level di sini mengacu pada kemampuan manusia memahami suatu bahasa pemrograman. Semakin tinggi level suatu bahasa pemrograman maka semakin mudah dipahami oleh manusia.

Awalnya, bahasa C dikategorikan ke dalam bahasa pemrograman level tinggi (high level programming) namun levelnya diturunkan karena sekarang sudah banyak bahasa pemrograman yang lebih mudah dimengerti daripada bahas C. Bahasa Python dan Perl merupakan salah satu contoh bahasa pemrograman level tinggi.

Nama bahasa C terbilang cukup unik karena hanya terdiri dari satu huruf padahal bahasa pemrograman lain yang kita kenal saat ini memiliki nama yang lebih dari satu huruf misalnya Python, Fortran, Pearl, dan lain-lain. Kenapa  nama bahasa ini hanya terdiri dari satu huruf yaitu C?

Bahasa C merupakan pengembangan dari bahasa sebelumnya, yaitu bahasa B. Huruf C berada setelah huruf B sehingga bahasa ini dinamai dengan bahasa C.

Pada tahun 1983, Bjarne Stroustrup menciptakan bahasa pemrograman baru yang merupakan pengembangan dari bahasa C. Bjarne Stroustrup menamai bahasa pemrograman yang baru dibuatnya dengan nama C++. Hal mendasar yang membedakan bahasa C dengan bahasa C++ adalah adanya dukungan bahasa C++ terhadap konsep pemrograman berorientasi objek (Object Oriented Programming).

2. Hal-Hal Mendasar yang Perlu Dilakukan


Supaya kita dapat membuat program menggunakan bahasa C/C++ pada distro Ubuntu atau Linux Mint maka ada beberapa hal mendasar yang perlu dilakukan. Apakah itu?

Jawabannya adalah menginstal kompiler (compiler) dan hal-hal lain yang mendukung suksesnya proses kompilasi. Bagaimana pun canggihnya program yang anda tulis (kode sumber) dengan memanfaatkan bahasa C/C++, kode sumber (source code) tersebut tidak akan berguna sebelum dikompilasi lalu dijalankan. Kenapa hal ini bisa terjadi?

Mesin komputer tidak mengerti bahasa C/C++ maupun bahasa pemrograman yang lain. Mesin komputer hanya mengerti bahasa level rendah (low level language) yang berbentuk deretan bilangan biner 0 dan 1.

Supaya mesin komputer dapat memahami keinginan programmer yang tertuang dalam kode sumber program maka kode sumber program harus dikompilasi ke dalam bahasa level rendah (bahasa mesin). Software yang bertanggung-jawab dalam proses kompilasi bahasa pemrograman ke dalam bahasa mesin disebut dengan kompiler (compiler).

Ok, kita akan menginstal kompiler dan hal-hal lain yang turut mendukung suksesnya proses kompilasi. Bukalah terminal (CTRL + ALT + T) lalu jalankanlah perintah di bawah ini baris demi baris:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo apt-get update
sudo apt-get install build-essential software-properties-common -y
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update
sudo apt-get install gcc-snapshot -y
sudo apt-get update
sudo apt-get install gcc-6 g++-6 -y
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6
sudo apt-get install gcc-4.8 g++-4.8 -y
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --config gcc

Setelah selesai, cobalah menjalankan perintah berikut di terminal:

1
2
gcc -v
g++ -v

Jika komputer menampilkan versi GCC dan G++, berarti kompiler anda berhasil terinstal dengan baik.

3. Membuat Program Sederhana dalam Bahasa C dan C++


Pembahasan dalam bagian ini telah melanggar judul artikel. Namun, bagian ini penting untuk memastikan bahwa software-software yang telah kita instal dalam bagian sebelumnya dapat bekerja sebagaimana mestinya.

Kita akan membuat program sederhana untuk menampilkan teks "Hello, world!" pada terminal. Bukalah editor favorit anda (contoh: xed, gedit) lalu tulislah script bahasa C di bawah ini:

1
2
3
4
5
#include <stdio.h>
int main(void) {
   printf("Hello, world!\n");
   return 0;
}

Setelah selesai, simpanlah dengan ekstensi .c misalnya bahasac.c.

Bukalah kembali editor lalu tulislah script bahasa C++ di bawah ini:

1
2
3
4
5
6
7
#include <iostream>
using namespace std;
int main()
{
   cout <<"Hello, world!"<< endl;
   return 0;
}

Simpanlah dengan ekstensi .cpp misalnya bahasacpp.cpp.

Bukalah terminal untuk mengompilasi kedua source code di atas lalu menjalankan program hasil kompilasi. Masuklah ke direktori tempat kedua source code di atas tersimpan lalu jalankanlah perintah di bawah ini:

1
2
3
4
gcc -o bahasac bahasac.c
g++ -o bahasacpp bahasacpp.cpp
./bahasac
./bahasacpp

Hasilnya diperlihatkan oleh gambar di bawah ini:


Semoga berhasil. Jika ada yang kurang jelas, silakan bertanya di kolom komentar!

Komputasi Jumlah dan Selisih Dua Buah Matriks Menggunakan Bahasa Pemrograman C++


Dua buah matriks yang akan dikenai operasi penjumlahan dan pengurangan haruslah berukuran sama. Dua buah matriks dikatakan memiliki ukuran yang sama jika dan hanya jika jumlah baris matriks pertama sama dengan jumlah baris matriks kedua dan jumlah kolom matriks pertama sama dengan jumlah kolom matriks kedua.

Matriks $\mathbf{A}$ berukuran $3 \times 3$:
\begin{align}
\mathbf{A} = \begin{bmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33}
\end{bmatrix} \label{matriksA}
\end{align}
dan matriks $\mathbf{B}$ berukuran $3 \times 3$:
\begin{align}
\mathbf{B} = \begin{bmatrix}
b_{11} & b_{12} & b_{13} \\
b_{21} & b_{22} & b_{23} \\
b_{31} & b_{32} & b_{33}
\end{bmatrix} \label{matriksB}
\end{align}
Jika matriks $\mathbf{C}= \mathbf{A} + \mathbf{B}$ maka elemen-elemen matriks $\mathbf{C}$ dapat dicari dengan cara:
\begin{align}
c_{11} &= a_{11} + b_{11} \notag \\
c_{12} &= a_{12} + b_{12} \notag \\
c_{13} &= a_{13} + b_{13} \notag \\
c_{21} &= a_{21} + b_{21} \notag \\
c_{22} &= a_{22} + b_{22} \label{matriksC} \\
c_{23} &= a_{23} + b_{23} \notag \\
c_{31} &= a_{31} + b_{31} \notag \\
c_{32} &= a_{32} + b_{32} \notag \\
c_{33} &= a_{33} + b_{33} \notag
\end{align}
Jika matriks $\mathbf{D}= \mathbf{A} - \mathbf{B}$ maka elemen-elemen matriks $\mathbf{D}$ dapat dicari dengan cara:
\begin{align}
d_{11} &= a_{11} - b_{11} \notag \\
d_{12} &= a_{12} - b_{12} \notag \\
d_{13} &= a_{13} - b_{13} \notag \\
d_{21} &= a_{21} - b_{21} \notag \\
d_{22} &= a_{22} - b_{22} \label{matriksD} \\
d_{23} &= a_{23} - b_{23} \notag \\
d_{31} &= a_{31} - b_{31} \notag \\
d_{32} &= a_{32} - b_{32} \notag \\
d_{33} &= a_{33} - b_{33} \notag
\end{align}

Dengan menggunakan ($\ref{matriksC}$) dan ($\ref{matriksD}$), kita akan membuat sebuah program untuk mencari jumlah dan selisih dua buah matriks. Karena dalam dunia komputasi, setiap elemen dua buah matriks yang akan dicari jumlah dan selisihnya harus diketahui nilainya maka kita terlebih dahulu beri nilai tiap elemen kedua matriks yang terdapat dalam ($\ref{matriksA}$) dan ($\ref{matriksB}$), yaitu:
\begin{align}
\mathbf{A} &= \begin{bmatrix}
3 & -1 & 4 \\
5 & 0 & 2 \\
8 & 9 & 4
\end{bmatrix} \label{nilaiA} \\
\mathbf{B} &= \begin{bmatrix}
3 & 8 & 1 \\
0 & 4 & -5 \\
-2 & 3 & 3
\end{bmatrix} \label{nilaiB}
\end{align}

Script Dasar


Pada bagian ini, kita akan langsung memasukkan rumus yang ada dalam ($\ref{matriksC}$) dan ($\ref{matriksD}$) ke dalam program dan tanpa menggunakan loop.

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
 int A[10][10], B[10][10], C[10][10], D[10][10];
    cout << "\n===============================================";
    cout << "\n             ASRI FISIKA 12 UNHAS              ";
    cout << "\n        JUMLAH DAN SELISIH 2 MATRIKS           ";
    cout << "\n         MAKASSAR, 15 DESEMBER 2016            ";
    cout << "\n===============================================";
    cout << endl;
    // Inisialisasi matriks A
    A[0][0] = 3;
    A[0][1] = -1;
    A[0][2] = 4;
    A[1][0] = 5;
    A[1][1] = 0;
    A[1][2] = 2;
    A[2][0] = 8;
    A[2][1] = 9;
    A[2][2] = 4;
    // Inisialisasi matriks B
    B[0][0] = 3;
    B[0][1] = 8;
    B[0][2] = 1;
    B[1][0] = 0;
    B[1][1] = 4;
    B[1][2] = -5;
    B[2][0] = -2;
    B[2][1] = 3;
    B[2][2] = 3;
    // Proses penjumlahan matriks A dan B
    C[0][0] = A[0][0] + B[0][0];
    C[0][1] = A[0][1] + B[0][1];
    C[0][2] = A[0][2] + B[0][2];
    C[1][0] = A[1][0] + B[1][0];
    C[1][1] = A[1][1] + B[1][1];
    C[1][2] = A[1][2] + B[1][2];
    C[2][0] = A[2][0] + B[2][0];
    C[2][1] = A[2][1] + B[2][1];
    C[2][2] = A[2][2] + B[2][2];
    // Proses pencarian selisih matriks A dan B
    D[0][0] = A[0][0] - B[0][0];
    D[0][1] = A[0][1] - B[0][1];
    D[0][2] = A[0][2] - B[0][2];
    D[1][0] = A[1][0] - B[1][0];
    D[1][1] = A[1][1] - B[1][1];
    D[1][2] = A[1][2] - B[1][2];
    D[2][0] = A[2][0] - B[2][0];
    D[2][1] = A[2][1] - B[2][1];
    D[2][2] = A[2][2] - B[2][2];
    // Menampilkan matriks A
    cout << "\nMatriks A :\n" << endl;
    cout << A[0][0] << "\t" << A[0][1] << "\t" << A[0][2] << endl;
    cout << A[1][0] << "\t" << A[1][1] << "\t" << A[1][2] << endl;
    cout << A[2][0] << "\t" << A[2][1] << "\t" << A[2][2] << endl;
    // Menampilkan matriks B
    cout << "\nMatriks B :\n" << endl;
    cout << B[0][0] << "\t" << B[0][1] << "\t" << B[0][2] << endl;
    cout << B[1][0] << "\t" << B[1][1] << "\t" << B[1][2] << endl;
    cout << B[2][0] << "\t" << B[2][1] << "\t" << B[2][2] << endl;
    // Menampilkan hasil penjumlahan
    cout << "\nJumlah matriks A dan B :\n" << endl;
    cout << C[0][0] << "\t" << C[0][1] << "\t" << C[0][2] << endl;
    cout << C[1][0] << "\t" << C[1][1] << "\t" << C[1][2] << endl;
    cout << C[2][0] << "\t" << C[2][1] << "\t" << C[2][2] << endl;
    // Menampilkan selisih
    cout << "\nSelisih matriks A dan B :\n" << endl;
    cout << D[0][0] << "\t" << D[0][1] << "\t" << D[0][2] << endl;
    cout << D[1][0] << "\t" << D[1][1] << "\t" << D[1][2] << endl;
    cout << D[2][0] << "\t" << D[2][1] << "\t" << D[2][2] << endl;
    cout << endl;
    return 0;
}

Penggunaan Loop dalam Script


Pada script di atas, perhatikanlah kelompok baris berikut:
  1. Baris ke-35 Sampai baris ke-43,
  2. Baris ke-45 sampai baris ke-53,
  3. Baris ke-56 sampai baris ke-58,
  4. Baris ke-61 sampai baris ke-63,
  5. Baris ke-66 sampai baris ke-68,
  6. Baris ke-71 sampai baris ke-73.
Kelompok-kelompok baris di atas memiliki pola sehingga dapat diubah ke dalam bentuk loop.

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int A[10][10], B[10][10], C[10][10], D[10][10];
    int i,j,m,n;
    m = 3;
    n = 3;
    cout << "\n===============================================";
    cout << "\n             ASRI FISIKA 12 UNHAS              ";
    cout << "\n        JUMLAH DAN SELISIH 2 MATRIKS           ";
    cout << "\n      PONDOK NURLINA, 18 DESEMBER 2016         ";
    cout << "\n===============================================";
    cout << endl;
    // Inisialisasi matriks A
    A[0][0] = 3;
    A[0][1] = -1;
    A[0][2] = 4;
    A[1][0] = 5;
    A[1][1] = 0;
    A[1][2] = 2;
    A[2][0] = 8;
    A[2][1] = 9;
    A[2][2] = 4;
    // Inisialisasi matriks B
    B[0][0] = 3;
    B[0][1] = 8;
    B[0][2] = 1;
    B[1][0] = 0;
    B[1][1] = 4;
    B[1][2] = -5;
    B[2][0] = -2;
    B[2][1] = 3;
    B[2][2] = 3;
    // Proses penjumlahan matriks A dan B
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        C[i][j] = A[i][j] + B[i][j];
    }
    // Proses pencarian selisih matriks A dan B
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        D[i][j] = A[i][j] - B[i][j];
    }
    // Menampilkan matriks A
    cout << "\nMatriks A :\n" << endl;
    for(i=0;i<m;i++)
    {
        for(j=0; j<n; j++)
        cout << A[i][j] << "\t";
        cout << endl;
    }
    // Menampilkan matriks B
    cout << "\n\nMatriks B :\n" << endl;
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        cout << B[i][j] << "\t";
        cout << endl;
    }
    // Menampilkan hasil penjumlahan
    cout << "\nJumlah matriks A dan B :\n" << endl;
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        cout << C[i][j] << "\t";
        cout << endl;
    }
    // Menampilkan selisih
    cout << "\nSelisih matriks A dan B :\n" << endl;
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        cout << D[i][j] << "\t";
        cout << endl;
    }
    cout << endl;
    return 0;
}

Gambar di bagian atas artikel ini memperlihatkan hasil dari program.

Sekian postingan kali ini. Jika ada yang kurang jelas, silakan bertanya di kolom komentar. Semoga bermanfaat!