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!

Senin, 06 Maret 2017

Belajar Membaca Aksara Lontara


Sudah pernah dengar tentang aksara Lontara?

Aksara Lontara merupakan aksara tradisional masyarakat Sulawesi Selatan dan Sulawesi Barat khususnya masyarakat Bugis, Luwu, Mandar, dan Makassar. Saat ini sering terjadi perdebatan mengenai siapa suku pertama yang menggunakan aksara ini. Apakah suku Bugis atau Makassar? Kita tidak akan membahas perdebatan tersebut dalam artikel ini. Fokus kita dalam artikel ini adalah bagaimana cara membaca aksara Lontara.

Aksara Lontara sangat terkenal di Eropa semenjak Sure' I La Galigo dibawa oleh B.F. Matthes dari Sulawesi Selatan ke Belanda. Apa itu Sure' I La Galigo?

Sure' I La Galigo merupakan sebuah epik yang berisi kepercayaan dan kebudayaan Bugis kuno, diperkirakan ditulis pada abad ke-13 sampai abad ke-15 Masehi. Tahukah anda bahwa Sure' I La Galigo merupakan epik terpanjang di dunia? Tahun 2011, UNESCO mengakui Sure' I La Galigo sebagai Memory of the World dan membuat Indonesia bangga. Informasi lebih lanjut mengenai Sure' I La Galigo dapat dilihat di sini.   

Aksara Lontara sangat berbeda dengan aksara Latin yang digunakan secara resmi di negara Indonesia yang tercinta ini. Perbedaannya bukan hanya dalam segi bentuk huruf melainkan juga dalam segi cara membacanya.

Aksara Lontara bersifat silabis, berbeda dengan aksara Latin yang bersifat fonetik. Apa yang dimaksud dengan silabis?

Sebuah aksara dikatakan bersifat silabis jika setiap huruf dalam aksara itu mengandung vokal inheren. Maksudnya, setiap huruf dalam aksara yang bersifat silabis mewakili satu suku kata. Contoh aksara di dunia yang bersifat silabis antara lain aksara Katakana dan Hiragana dari Jepang dan aksara Hangeul dari Korea.

1. Huruf-Huruf Dalam Aksara Lontara


Terdapat perbedaan jumlah huruf antara aksara Lontara versi Makassar dan aksara Lontara versi Bugis. Dalam aksara Lontara versi Makassar terdapat 19 huruf sedangkan dalam aksara Lontara versi Bugis terdapat 23 huruf. Gambar di bawah ini memperlihatkan huruf-huruf aksara Lontara versi Bugis.


Huruf-huruf aksara Lontara di atas dinamakan Îna' Sûre' atau biasa juga disebut dengan Indo' Sûre'. Huruf Ngka, Mpa, Nra dan Nca tidak didapati dalam aksara Lontara versi Makassar. Keempat huruf ini sepertinya diciptakan belakangan karena dalam Sure' I La Lagaligo tidak didapati keempat huruf ini termasuk huruf Ha.

Huruf Ha dalam aksara Lontara tercipta setelah masuknya agama Islam ke Sulawesi Selatan. Tidak ada kosakata asli bahasa Bugis dan Makassar kuno yang mengandung huruf Ha. Sebenarnya huruf Nca dalam gambar di atas dibaca /Ngca/ namun dalam proses transliterasi tertulis /Nca/.

2. Diakritik Dalam Aksara Lontara


Sebagaimana yang dapat dilihat dalam gambar di atas, setiap huruf dalam aksara Lontara sudah mengandung vokal /a/. Terus bagaimana cara menambahkan vokal /i/, /u/, /e/, dan /o/ pada huruf?

Untuk mengganti vokal /a/ yang sudah terkandung dalam setiap huruf maka digunakan tanda diakritik. Diakritik adalah tanda baca tambahan pada huruf yang akan mengubah cara pengucapan huruf tersebut.

Sekali lagi, terdapat perbedaan jumlah tanda diakritik antara aksara Lontara versi Makassar dan Lontara versi Bugis. Dalam aksara Lontara versi makassar terdapat 4 tanda diakritik sedangkan dalam aksara Lontara versi Bugis terdapat 5 tanda diakritik. Dalam tradisi Bugis, tanda diakritik dinamakan Ana' Sûre'. Gambar di bawah ini memperlihatkan tanda-tanda diakritik dalam aksara Lontara versi Bugis.


Tanda É pada gambar di atas dibaca seperti huruf E dalam kata ember, enak, merah, dan setan sedangkan tanda E dibaca seperti huruf E yang terdapat dalam kata telah, sepatu, terang, dan kerucut. Huruf É (terdapat tanda diakritik di bagian atas huruf) disebut dengan E taling sedangkan huruf E (tanpa tanda diakritik) disebut dengan E pepet.

Dahulu, tanda E pepet dan E taling pernah digunakan dalam kesusasteraan Indonesia. Namun, tanda diakritik dihilangkan sejak tahun 60-an karena ada anggapan bahwa orang Indonesia sudah tahu kapan huruf E dibaca seperti E taling dan kapan dibaca seperti E pepet.

Dalam bahasa Makassar tidak dikenal kata yang mengandung E pepet sehingga dalam aksara Lontara versi Makassar tidak terdapat tanda diakritik untuk bunyi vokal E pepet. Ya, seperti itulah penyebabnya.

Gambar di bawah ini memperlihatkan contoh penerapan tanda diakritik pada huruf-huruf Lontara.


3. Menulis Menggunakan Aksara Lontara


Aksara Lontara yang diwariskan oleh leluhur Bugis dan Makassar tidak mengenal tanda pemati huruf, glottal stop (penekanan di akhir suku kata), dan geminasi (penggandaan konsonan dalam penyebutan satu huruf).

Yang dimaksud dengan glottal stop adalah penghentian bunyi secara mendadak di akhir pengucapan suku kata seperti penyebutan Hamzah sukun dalam huruf Hijaiyyah. Yang dimaksud dengan geminasi adalah adanya dua konsonan sejenis yang berdekatan sehingga dalam membacanya seakan-akan hanya terdapat satu konsonan yang diucapkan dengan terlebih dahulu menekan tempat keluarnya huruf.

Dalam menulis teks menggunakan aksara Lontara, kita harus membedakan antara tanda titik yang merupakan bagian dari huruf dan  tanda titik yang merupakan tanda diakritik. Jika terdapat huruf Lontara yang memiliki titik di bagian atasnya dan penulis ingin menambahkan tanda diakritik untuk vokal /i/ maka hasilnya adalah huruf yang memiliki dua tanda titik di bagian atasnya. Perlu diperhatikan bahwa tanda titik yang merupakan bagian dari huruf terletak di tengah-tengah atas huruf sedangkan tanda titik diakritik terletak di bagian atas sebelah kiri (tidak persis di tengah). Contoh:


Kata di atas dibaca dâdi'.

Jika sebuah huruf Lontara memiliki tanda titik di bagian bawah dan penulis ingin menambahkan tanda diakritik untuk vokal /u/ maka hasilnya adalah huruf yang memiliki dua tanda titik di bagian bawah. Harap diperhatikan bahwa tanda titik di bawah huruf yang tepat di tengah merupakan bagian dari huruf sedangkan tanda titik di bawah huruf yang di bagian bawah sebelah kanan merupakan tanda diakritik. Contoh:


Kata di atas dibaca mânu'.

Lebih mudah menulis teks yang menggunakan aksara Lontara daripada membaca teks yang menggunakan aksara Lontara. Kenapa bisa? Karena dalam membaca teks yang menggunakan aksara Lontara, seorang pembaca harus memahami bahasa yang digunakan oleh teks tersebut (bahasa Makassar, Bugis, Taé, Mandar, Dûri, Torâja, atau bahasa-bahasa lain yang ada di Sulawesi Selatan dan Sulawesi Barat) karena kalau tidak tidak maka kemungkinan besar ia akan salah dalam menyebut sebuah kata. Perhatikan teks Lontara di bawah ini:


Jika pembaca tidak memahami bahasa Bugis maka kemungkinan besar akan salah dalam membaca teks di atas, misalnya ia membacanya dengan:
  1. Bola lopo;
  2. Bola loppo;
  3. Bola lopong;
  4. Bola lopo';
  5. Bolang lopo;
  6. Bola' lopo;
Pembaca yang memahami bahasa Bugis akan tahu bawah teks di atas dibaca seperti pada nomor 2 yang artinya adalah rumah yang besar. Kenapa demikian? karena kata bolang, bola', lopo, dan lopong tidak dikenal dalam bahasa Bugis.

Berarti susah dong membaca teks yang menggunakan aksara Lontara? Ya, memang susah kalau kita tidak memahami bahasanya. Kalau kita paham bahasanya dan sering membaca teks yang menggunakan aksara Lontara maka yakin dan percaya, kita akan bisa membacanya selancar saat kita membaca teks yang menggunakan aksara Latin. Buktinya, para khatib di pedalaman Bone menggunakan buku kumpulan khutbah jumat yang menggunakan aksara Lontara dan mereka sangat lancar membacanya walaupun buku itu baru pertama kali dibacanya.

Dalam aksara Lontara terdapat tanda yang disebut pallâwa yaitu:


Secara umum, tanda pallâwa digunakan untuk menandakan adanya jeda dalam membaca sebuah teks. Tanda pallâwa memiliki fungsi yang sama dengan koma dan titik dalam aksara Latin. Contoh penggunaan tanda pallâwa:


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

Jika anda berminat mempelajari bahasa Bugis dengan cara mendengarkan langsung pengucapannya dari penutur aslinya disertai artinya, silakan kunjungi channel Gantolle Cella di Youtube, atau anda bisa langsung menonton beberapa videonya berikut ini.

⇛ 40 Pertanyaan yang Umum Digunakan dalam Bahasa Bahasa Bugis:


⇛ 25 Nama Binatang dan Artinya:


Demikian, semoga bermanfaat!

Kamis, 23 Februari 2017

Menghitung Standar Deviasi Dengan Bantuan Program Komputer (C++)


Sekarang kita akan meramu sebuah program komputer yang mampu menghitung standar deviasi. Apa itu standar deviasi? Bagi yang belum tahu, silahkan mengunjungi tautan di bawah ini:
Varian dan Standar Deviasi
Program sederhana ini pada awalnya saya buat untuk membantu adek-adek saya yang sedang sibuk mengerjakan laporan praktikum Fisika Dasar. Dalam pembuatan laporan praktikum Fisika Dasar sebagaimana yang pernah saya alami---walau saya jarang ikut lab dan kerja laporan tapi setidaknya saya pernah mengalaminya---seringkali melibatkan proses perhitungan standar deviasi.

Walaupun praktikan ada yang menggunakan kalkulator dalam proses perhitungan, namun, tetap saja perhitungan standar deviasi sangat rawan terjadi kesalahan. Inilah perbedaan manusia dan komputer. Manusia itu cerdas luar biasa tapi terkadang kurang cermat dan pelupa sedangkan komputer bodoh luar biasa---komputer tidak dapat melakukan apapun selain yang tertulis dalam program---tapi sangat teliti dan memiliki daya ingat sangat tinggi---selama data yang tersimpan tidak diserang virus dan malware. Kenyataan ini membuat saya terinspirasi untuk membuat program komputer yang dapat mengecek kebenaran hasil perhitungan.

Dalam pembuatan laporan praktikum Fisika Dasar, rumus standar deviasi yang sering digunakan adalah rumus standar deviasi populasi, bukan standar deviasi sampel. Hal ini karena data hasil pengukuran yang diolah tidak banyak sehingga perhitungan standar deviasi dapat dilakukan dengan melibatkan semua anggota populasi. Walau demikian, program yang akan ditampilkan dalam postingan kali ini tetap menyediakan 2 opsi bagi user yaitu perhitungan standar deviasi populasi dan sampel. Bagi yang belum tahu perbedaan populasi dan sampel, silahkan kunjungi tautan di bawah ini:
Ok, tanpa pembahasan panjang lebar lagi, langsung saja saya tampilkan source code-nya. Ini dia programnya dalam bahasa C++:

#include <iostream>
#include <cmath>
using namespace std;
int n,i;
float data[1000], keragaman[1000];
float kkuadrat[1000];
float jumlah = 0.0, pk = 0.0, jkeragaman = 0.00;
float rerata, varian, SD;
void tampilHasil()
{
   cout << ">> Rerata (<x>) = " << rerata << endl;
   cout << ">>      No.             x_i-<x>         (x_i-<x>)^2 " << endl;
   cout << "       ---------------------------------------------" << endl;
   for(i = 0; i < n; ++i)
      cout << "\t" << i + 1 << "\t\t" << keragaman[i] << "\t\t" << kkuadrat[i] << endl;
   cout << "       ---------------------------------------------" << endl;
   cout << "\t" << "Jumlah" << "\t\t" << jkeragaman << "\t\t" << pk << endl;
   cout << "       ---------------------------------------------" << endl;
   cout << ">> Varian = " << varian << endl;
   cout << ">> Standar Deviasi = " << SD;
}
void HitungSDpopulasi()
{
   varian = pk/n;
   SD = sqrt(varian);
   tampilHasil();
}
void HitungSDsampel()
{
   varian = pk/(n-1);
   SD = sqrt(varian);
   tampilHasil();
}
void prosePertama()
{
   for(i = 0; i < n; ++i)
   {
       jumlah += data[i];
   }
   rerata = jumlah/n;
   for(i = 0; i < n; ++i)
      keragaman[i] = data[i]-rerata;
   for(i = 0; i < n; ++i)
      kkuadrat[i] = pow(keragaman[i], 2); // kkuadrat : keragaman dikuadratkan
   for(i = 0; i < n; ++i)
      jkeragaman += keragaman[i];
   for(i = 0; i < n; ++i)
      pk += kkuadrat[i]; // pk : jumlah dari keragaman yg dikuadratkan
}
void inputPopulasi()
{
   cout << ">> Masukkan jumlah anggota populasi : \n";
   cin >> n;
   cout << ">> Masukkan " << n << " data : \n";
   for(i = 0; i < n; ++i)
        cin >> data[i];
   prosePertama();
   HitungSDpopulasi();
}
void inputSampel()
{
   cout << ">> Masukkan jumlah sampel : \n";
   cin >> n;
   cout << ">> Masukkan " << n << " data : \n";
   for(i = 0; i < n; ++i)
        cin >> data[i];
   prosePertama();
   HitungSDsampel();
}
void tanya()
{
    int p;
    cout << "\n-----------------------------------------------------";
    cout << "\nStandar Deviasi Populasi atau Sampel? ";
    cout << "\n(Populasi = 1, Sampel = 2) : ";
    cin  >> p;
    cout << "-----------------------------------------------------";
    cout << endl;
    if (p==1)
      inputPopulasi();
    else
      inputSampel();
}
int main()
{
   int l;
   cout << "=====================================================\n";
   cout << "        Program Untuk Menghitung Standar Deviasi     \n";
   cout << "                          Asri                       \n";
   cout << "                    Fisika 12 Unhas                  \n";
   cout << "              Makassar, 22 Februari 2017             \n";
   cout << "=====================================================\n";   
   tanya();
   cout << endl;
   return 0;
}

Anda dapat mengunduh source code dalam bentuk file dengan mengunjungi tautan di bawah ini:
Program Standar Deviasi Dalam CPP
Saya sangat mengharapkan adanya kritikan dan masukan jika ada kesalahan atau ada sesuatu yang kurang dalam program di atas. Saya hanya manusia biasa yang selalu gagal membuat sesuatu yang sempurna walau telah mencoba.

Demikian postingan kali ini. Semoga bermanfaat!

Selasa, 21 Februari 2017

Perangkat Lunak yang Perlu Diinstal Sebelum Menggunakan Latex di Windows

Pada tahun 2015, saya telah menulis artikel tentang cara menginstal Latex di Ubuntu dan Linux Mint dengan menggunakan command line. Nah, ada beberapa orang  yang bertanya mengenai cara menginstal Latex di Windows. Awalnya, saya tidak terlalu memperhatikan pertanyaan ini karena menginstal aplikasi di Windows tidak membutuhkan tutorial, pikirku. Kita hanya perlu mengunduh installer-nya lalu mengklik ganda lalu klik next dan next sampai selesai. Namun, ternyata masih banyak yang mengalami kesulitan.

Ok, kita masuk ke inti pembahasan. Ada dua hal yang dibutuhkan sebelum menggunakan Latex di Windows, yaitu:
1. MiKTeX
2. Text Editor
    MiKTeX adalah compiler Latex di Windows. MiKTeX bisa dikatakan sebagai perangkat lunak yang mampu mengubah script Latex menjadi dokumen yang diinginkan misalnya mengubahnya ke dalam bentuk PDF (Portable Document Format). Jadi, hal pertama yang perlu diinstal adalah MiKTeX. Kunjungilah link di bawah ini untuk mengunduh MiKTeX Installer:
    Sesuaikan bit-nya dengan bit sistem operasi anda. Jika telah selesai diunduh maka instal MiKTeX dengan cara:
      Klik ganda MiKTeX Installer lalu klik Yes.

        Centang I accept the MiKTeX copying conditions lalu klik Next.


        Pilih Anyone who uses this computer (all users) jika anda ingin membiarkan siapa pun pengguna komputer anda menggunakan MiKTeX yang akan diinstal. Jika pada komputer anda terdapat dua user atau lebih dan anda tidak ingin berbagi maka pilih Only for : nama_anda. Setelah selesai memilih, klik Next.

          Selanjutnya akan ditampilkan Installation Directory. Jika lokasi penginstalan perangkat lunak MiKTeX sudah sesuai dengan keinginan anda maka klik Next.

            Pada Preferred paper, pilih jenis kertas, di sini saya pilih A4 sebagai ukuran kertas default. Jangan khawatir, ada masih bisa menggunakan ukuran kertas lain walau telah memilih satu jenis ukuran kertas. Pada bagian Install missing packages on-the-fly, pilih Ask me first, lalu klik Next.

              Klik Start untuk memulai instalasi.

                Tunggu hingga proses instalasi hingga selesai.


                Setelah paket MiKTeX selesai diinstal pada sistem, klik Next.


                Proses pengistalan MiKTeX telah selesai, klik Close.

                Hal selanjutnya yang dibutuhkan adalah text editor atau biasa disebut editor saja. Text editor digunakan untuk menulis dokumen Latex. Ada banyak editor yang diciptakan khusus untuk menulis dokumen Latex. Di antara banyaknya editor tersebut, ada satu editor yang menurut saya sangat memanjakan pengguna yaitu Texmaker. Kunjungilah link di bawah ini untuk mengunduh Texmaker installer:
                Setelah selesai, installah Texmaker tersebut dengan cara:

                Klik ganda Texmaker Installer yang telah diunduh, lalu klik Yes.


                Pada bagian License Agreement, klik I Agree.


                Pada bagian Instalation Folder, Klik Install.


                Tunggu hingga instalasi selesai.


                Setelah proses instalasi selesai, klik Close.

                Sekarang anda sudah dapat menulis dan mengompilasi dokumen Latex di Windows. Untuk membuktikan bahwa MiKTeX dan Texmaker terinstal dengan baik maka cobalah buka aplikasi Texmaker dengan cara mengklik ikon Texmaker yang ada di Dekstop. Tampilan awal Texmaker akan tampak seperti gambar di bawah ini:


                Klik menu File, lalu pilih New sehingga tampilan berubah seperti gambar di bawah ini:


                Cobalah menulis script Latex di bawah ini:

                \documentclass[12pt,a4paper]{article}
                \usepackage[utf8]{inputenc}
                \usepackage{amsmath}
                \usepackage{amsfonts}
                \usepackage{amssymb}
                \usepackage[left=4cm,right=3cm,top=4cm,bottom=3cm]{geometry}
                \author{Asri}
                \title{Coba \LaTeX}
                \begin{document}
                   \maketitle
                   Hello World! Ini adalah kali pertamaku belajar \LaTeX{}.
                \end{document}
                

                Supaya script Latex yang telah ditulis dapat dikompilasi maka kita harus menyimpannya terlebih dahulu. Klik menu File, pilih Save.


                Buatkan folder khusus untuk menyimpan satu dokumen Latex. Pada contoh kali ini, folder dan file-nya diberi nama Coba-Latex sebagaimana yang dapat dilihat dalam gambar di bawah ini:


                Setelah selesai, klik Save.

                Untuk mengubah dokumen Latex yang telah disimpan menjadi file PDF maka klik menu Tools lalu pilih Quick Build atau klik ikon Quick Build yang ada di  bagian bawah menu Bibliography. Setelah selesai, maka akan ditampilkan file PDF seperti pada gambar di bawah ini:


                File PDF yang ditampilkan tersimpan di dalam forlder yang sama dengan file Latex.

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

                Senin, 06 Februari 2017

                Program Pendeteksi Adanya Sifat Komutatif Dalam Perkalian Dua Buah Matriks


                Salah satu kegiatan yang biasa saya lakukan dalam memanfaatkan waktu senggang adalah bercengkerama dengan laptop. Saya biasa menghabiskan waktu berjam-jam menciptakan program-program komputer. Terkadang saya juga tidak tahu apa manfaat program-program tersebut ketika telah selesai. Walau seperti itu, saya tetap merasa puas setiap kali ada satu program yang selesai. Pasalnya, saya menjadikan kegiatan coding sebagai sebuah hiburan. Saya tidak menganggap coding sebagai sebuah pekerjaan untuk menciptakan program yang laku di pasaran.

                Sabtu malam, 4 Februari 2017, saya sedang belajar ulang aljabar linear. Di buku yang saya baca, dikatakan bahwa ada yang namanya matriks commute dan anti commute. Di buku itu juga dikatakan bahwa matriks commute adalah keadaan dimana matriks A dan B memenuhi AB = BA. Lebih lanjut, matriks anti commute adalah keadaan dimana matriks A dan B memenuhi AB = - BA.

                Untuk mengetahui bahwa dua buah matriks bersifat commute atau anti commute maka tidak ada cara lain selain mengalikan kedua matriks tersebut. Khusus untuk perkalian matriks, kita bisa menggunakan bantuan program komputer. Saat ini, banyak bertebaran di internet mengenai program perkalian matriks dalam berbagai bahasa pemrograman.

                Untuk mengetahui sifat commute dan anti commute dua buah matriks tidak cukup hanya dilakukan dengan mengalikan dua buah matriks tersebut. Kita harus memeriksa elemen demi elemen dua buah matriks yang merupakan hasil kali kedua matriks tadi (AB dan BA). Jika Matriks tersebut hanya berorde 2 x 2 sampai 4 x 4 maka cara manual masih terasa mudah. Namun, jika matriks tersebut berorde tinggi (misalnya matriks 25 x 25) maka cara manual akan terasa menyusahkan (mungkin hanya saya). Yang saya maksud dengan cara manual di sini yaitu tanpa menggunakan bantuan komputer.

                Saya sempat mencari di Google mengenai program untuk mendeteksi sifat commute dan anti commute dua buah matriks dalam bahasa Indonesia dan Inggris. Alhasil, saya tidak menemukan program seperti itu. Kenyataan inilah yang menyebabkan saya berkeinginan merancang sebuah program yang bisa mendeteksi sifat commute dan anti commute dua buah matriks.

                Perlu saya tegaskan kepada teman-teman, bahwa walaupun program semacam itu tidak ada di Google, bukan berarti tidak ada orang di luar sana yang mampu membuatnya. Bisa jadi, orang-orang malas membuang-buang waktu mengerjakan hal-hal seperti itu karena ada yang dianggap lebih penting. Terus... kenapa saya mau buang-buang waktu merancang program seperti itu? Jawabannya sangat sederhana, karena saya butuh hiburan dan saya terhibur ketika mengerjakan hal-hal seperti itu.

                Selama ini program-program sederhana yang saya buat hanya tersimpan di komputer. Tiba-tiba saya terpikir untuk membagikannya di blog. Akhirnya, saya tulis pekerjaan-pekerjaan saya dalam bentuk paper. Dan, hari ini, saya memostingnya. Link-nya ada di bagian bawah artikel ini. Silakan dikunjungi jika teman-teman penasaran dengan apa yang ada di sana.

                Sebelum postingan ini berakhir, saya ingin sedikit berceramah. Sekafir-kafirnya pemikiran, sebejat-bejatnya perbuatan, pada akhirnya kita akan berjumpa dengan kematian. Menetap dalam kesendirian hingga datang hari penghakiman. Maka dari itu, seyogyanya kita terus berusaha memperbaiki diri, meningkatkan kemampuan, menjernihkan hati sanubari, dan berusaha berguna bagi sesama. Demikian, terima kasih!

                Silakan klik tautan di bawah ini untuk mendownload papernya. 
                Demikian. Semoga bermanfaat!