Tampilkan postingan dengan label Linux. Tampilkan semua postingan
Tampilkan postingan dengan label Linux. Tampilkan semua postingan

Senin, 05 Maret 2018

Cara Menggunakan Git Untuk Pemula


Kalau kita ingin mengerjakan proyek secara berkelompok, wajib hukumnya mengetahui software version control system. Contoh dari software version control system adalah github, bitbucket, snowy evening, dan masih banyak lagi. Memang sih, kebanyakan sistem ini dipakai di lingkungan yang programmernya terpisah antara jarak dan waktu ---kayak aku dan kamu :3 --- . Tapi, sebagai programmer, coba deh sekali-kali untuk merasakan setidaknya sekali dalam hidup di dunia. Karena banyak manfaat yang akan didapat dengan git ini. Hehehe.

Git adalah version control system yang pada dasarnya digunakan para developer untuk mengembangkan software secara bersama-bersama. Git ini sebenernya memudahkan programmer untuk mengetahui perubahan source codenya daripada harus membuat file baru. Selain itu, dengan git kita tak perlu khawatir code yang kita kerjakan bentrok, karena setiap developer bisa membuat branch sebagai workspacenya.Fitur yang tak kalah keren lagi, pada git kita bisa memberi komentar pada source code yang telah ditambah/diubah, hal ini mempermudah developer lain untuk tahu  kendala apa yang dialami developer lain.

Dalam tulisan singkat ini, akan dibahas, bagaimana cara menggunakan perintah git.


Di Ubuntu dan Mint, Git bisa diinstall dengan apt-get install git. Di sebagian besar distro lain, nama package Git juga sama kok : git.

Sebagai eksperimen, pertama-tama, buat repository baru dari akun GitHub anda (jika ingin pakai github). Ikuti saja langkahnya.


Sekarang, mulai buat repository di local. Masuk ke folder di mana file proyek akan anda simpan dan ubah.

cd ~/Projects/JauraKernel

Remote : server yang menyimpan file proyek
Local : komputer milik sendiri


Lalu inisialisasi git untuk membuat konfigurasi repository baru atau menggunakan konfigurasi yang sudah ada pada folder proyek tersebut.

git init

Sekarang, kita harus menambah remote repository yang nantinya, semua file akan disinkronkan dengan isi folder proyek. Jika sebelumnya sudah, ini bisa dilewati.

Simpan info username dan email anda. Natinya, info ini akan disertakan saat anda melakukan commit. Gampangannya, commit itu istilah untuk mengatakan kalau kita sudah fix atau yakin untuk menyimpan proyek ke remote.

git config --global user.name "irvanherz"
git config --global user.email "irvan.herz@gmail.com


Lanjutkan dengan menambah link remote server Git yang kita pakai.

git remote add origin <server>


Jika anda menggunakan github, argumen server bisa diperoleh dari link fork ata download.

Nanti anda juga bisa melihat list remote repository dengan perintah

git remote -v

Sekarang, sinkronkan local repository dengan file dari remote repository.

git pull
atau
git merge <branchname>

Oke, sekarang buat file-file baru di local repository (komputer anda sendiri). Tentunya, harus di folder awal baru saya kita cd dan sudah diinisialisasikan konfigurasi git nya barusan.

Setelah selesai membuat proyek atau selesai membuat perubahan dari local repository(entah itu mengubah source, mengganti nama, menghapus file, ...); maka kita harus beritahu git dulu sebelum mulai menyinkronkannya ke remote repository. Cara termudahnya adalah dengan command

git add --all

Anda juga bisa menggunakan perintah git status, sebelum atau sesudah menuliskan command, untuk melihat detail perubahan di local repository. Apabila ternyata menyadari kesalahan saat melihat status keterangan file yang barusan di-add, kita bisa me-reset list tersebut juga:

git reset


Perintah sebelumnya, git add --all, digunakan untuk secara otomatis menambahkan semua file baru, file yang baru termodifikasi, info file yang terhapus dalam lokal. Ditambahkan kemana? ditambahkan ke daftar file yang siap commit dan disinkronkan ke remote repository. Jika anda hanya ingin mengirim salah satu file saja gunakan :

git add /path/to/file

Jika anda sudah yakin dan siap menyimpan perubahan ke remote, saat itulah anda melakukan commit. Commit tidak akan langsung mengirim ke remote, tapi perintah commit bisa diibaratkan seperti kontrak tertulis untuk pengiriman barang. Kontrak dan barang masih di depan kita sebelum kita menjalankan perintah push.

git commit -m "Commit message"

Proses pengiriman ke remote sebenarnya adalah saat perintah push dijalankan. Perintah push diketik sebagai berikut:

git push origin <branchname>

Kalau di guthub, sebenarnya repository kita akan memiliki satu buah branch utama, yaitu bernama "master".

Sampai di sini saja yang kita harus pelajari untuk membuat proyek yang sinkron dengan remote git server, ya.

Kalau sudah terbiasa dengan seluruh command di atas, nanti kita juga boleh mulai belajar mengenai project branch, terutama kalau yang mengerjakan project sudah mulai banyak. Setelah beberapa kali melakukan perubahan pada proyek, membuka branch baru bisa dilakukan. Saat kita membuat branch baru, ibaratnya proyek kita adalah buku, dan branch baru adalah salinannya yang sama persis. Keduanya bisa diubah secara terpisah tanpa mempengaruhi branch lain. Misalnya semenjak muncul si B, dia mau tulisannya beda sama si A, maunya pakai font Times New Roman. Kemudian, muncul si C, D, E sampai Z yang sukanya nulis. Mereka ada yang setuju sama konsep font si A dan beberapa setuju sama konsep si B. Semuanya bisa nulis.

Tapi, karena si A adalah koordinatornya, dia yang berhak menentukan bagaimana perkembangan proyek. Dua branch tersebut sama sama tumbuh bersama, halaman kedua buku semakin tebal meski isinya beda-beda. Di sini si A, berhak menggunakan tulisan dari branch B untuk digunakan ke branch A (utama), ataupun sebaliknya. Nanti dia juga berhak menentukan branch mana yang akan dirilis ke publik.
Read more

Kamis, 24 Agustus 2017

Cara Install LAMP(Linux, Apache, MySQL, PHP) Di Linux


Web programmer yang sudah terbiasa hidup di lingkungan Windows tentu sudah mengenal XAMPP dan WAMP server. Tapi pernahkan ada rasa penasaran mengenai software yang digunakan oleh web programmer dalam habitat Linux?

Di Linux, programmer mengenal LAMP, yaitu kombinasi software Linux, Apache, MySQL dan PHP; sebagai media pembangunan server. Semua paket software ini bisa diinstall dengan muah di berbagai distro yang sudah umum dipakai saat ini.


Sekarang, saya akan menunjukkan bagaimana menginstal paket LAMP dari distro Linux yang mendukung apt, misalnya Ubuntu dan Linux Mint.

1. Install MySQL atau MariaDB
apt-get install mysql-server mysql-client (MySQL)
atau
apt-get install mariadb-server mariadb-client (MariaDB)

Setelah instalasi selesai, biasanya akan muncul kotak input untuk konfigurasi database.

2. Install Apache
apt-get install apache2

Jika instalasi berhasil, coba ketikkan http://localhost di alamat web browser. Jika normal, anda akan melihat halaman test dengan keterangan "It works". untuk mengubah halaman index tersebut, buka direktori /var/www/html.

3. Install PHP
apt-get install php7.0 libapache2-mod-php7.0

Biar semakin lengkap, install juga ekstensi/plugin PHP yang anda perlukan. Lihat semua plugin yang tersedia melalui perintah:
apt-cache search php7.0

Install semua ekstensi pilihan anda dengan apt-get, misalnya:
apt-get install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache  php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext

Untuk membuat PHP bekerja lebih cepat, install juga plugin opcache dan APCu:
apt-get install php7.0-opcache php-apcu

Masih belum puas? PHPMyAdmin juga boleh diinstall:
apt-get install phpmyadmin

4. Sedikit Lagi...
sudo chmod -R 755 /var/www
sudo chgrp -R <username_anda> /var/www/
sudo chown -R <username_anda> /var/www/

Ketiga perintah di atas akan membuat direktori www lebih mudah diakses. Apabila tahap ini tidak dilakukan, semua file dalam /var/www harus selalu diakses dengan file manager yang berjalan sebagai root.

Terakhir, restart service Apache ini dengan sebuah baris perintah dari terminal.

systemctl restart apache2
Read more

Rabu, 09 Agustus 2017

Cara Install Linux Dengan Flashdisk (Semua Jenis Distro)


Kalau dulu komputer identik dengan power supply, CPU dan monitor; sekarang komputer juga mencakup perangkat serupa yang lebih portabel. Ya, benar. Laptop.

Belum cukup di situ, perkembangan teknologi semikonduktor semakin canggih, memungkinkan terciptanya perangkat mikro di sekitar kita. Apalagi, dengan melihat keadaan bumi seperti sekarang, akhrinya menuntut para ilmuwan untuk segera mengakselerasi kerjanya dalam mengembangkan energi terbarukan dan juga meminimalisir penggunaan listrik pada perangkat elektronik.

Karena alasan itulah notebook perangkat IoT diciptakan sebagai penerus laptop. Selain lebih portabel, notebook juga lebih hemat energi tentunya. Tapi kali ini kita tidak akan membahas laptop ataupun notebook, ya.

Karena semakin kecil, beberapa fitur terpaksa harus ditiadakan. Contohnya saja perangkat CD/DVD. Sedangkan kita tahu bahwa di luar sana semua jenis sistem operasi yang bebas didownload umumnya hanya akan memberikan paket dalam bentuk file ISO yang nantinya harus dibakar ke CD/DVD kosong.

Tenang saja, bagi kalian yang merasa instalasi melalui CD/DVD tidak memungkinkan, kalian masih bisa melakukan instalasi melalui USB Flashdisk. Meski semua paket installer sistem operasi hanya tersedia dalam bentuk file ISO, semua developer sudah mempertimbangkan keberadaan perangkat yang tidak memungkinkan proses instalasi melalui CD/DVD, kok. Makanya, semua ISO tersebut sebagian besar sudah dibuat kompatibel dengan standar untuk instalasi USB flashdisk.

To the point saja, ya. Intinya, hampir semua file installer bisa diekstrak ke flashdisk. Tapi tidak sembarangan. Ada hal teknis yang perlu diperhatikan. Kita tidak akan membahas hal itu, karena beberapa software sudah tersedia untuk menaruh ISO ke USB flashdisk serta mengurus semua hal teknisnya.

Salah satu software yang populer untuk membuat installer distro Linux untuk USB flashdisk adalah YUMI. Ada juga yang namanya Universal USB Installer. Baik YUMI atapun UUI, prinsip kerjanya sama. Keduanya bisa digunakan untuk membuat installer distro Linux yang dapat berjalan melalui USB flashdisk.

Screenshot di atas adalah tampilan dari software YUMI. Jika diperhatikan software Universal USB Installer memiliki cara kerja dan tampilan yang tidak jauh berbeda.

Berikut adalah prosedur penggunaan YUMI untuk membuat installer distro Linux via USB flashdisk.
1. Download YUMI di sini.
2. Buka programnya
3. Klik tombol Agree.
4. Lihat screenshot di atas. Pertama, pilih lokasi flahdisk anda dengan benar, misalnya G:. Jika tidak ada di opsi tersebut, centang opsi Show All Drives. Kedua, pilih jenis distro yang ingin di install. Ketiga, pillih file ISO yang sudah didownload. Terakhir, klik Create.
5. Setelah klik Create, anda akan melihat message box konfirmasi seperti di bawah ini.


6. Langsung saja, klik Yes pada pesan tersebut dan tunggu sampai proses selesai.

Selamat mencoba :)

Read more

Jumat, 04 Agustus 2017

Cara Mengakses File System Linux di Windows

Sebagai sistem operasi yang masih kalah populer dengan Windows, banyak hal di Linux yang masih harus mengadaptasi dari Windows. Akan tetapi Windows tidak sinergis dengan upaya Linux untuk menjaga portabilitas tiap komponen sistemnya. Misalnya, Linux mengimplementasikan dukungan file system FAT dan NTFS, akan tetapi Windows sama sekali tidak memberikan dukungan terhadap file system EXT secara official.

Perbedaan arsitektur sistem antara Linux dan Windows terasa begitu pekat. Sehingga pengguna awam yang sudah terbiasa dengan lingkungan Windows biasanya akan memilih melakukan instalasi dual-boot. Alasan umumnya adalah karena masih banyak aplikasi yang biasa digunakan di Windows belum ada di Linux, atau karena belum ada aplikasi serupa yang memiliki fitur sekelasnya.

Developer yang banyak terjun di lingkungan Linux cenderung memiliki pola pikir ke arah open source. Pengerjaannya pun masih dilakukang disela jam kerja. Ini bisa jadi adalah faktor pemicu terbengkalainya proyek aplikasi yang ada.

Kelemahan Linux seperti yang disebutkan di atas membuat pengguna masih sedikit enggan dan berat meninggalkan Windows. Meski begitu, pengguna yang sudah lama belajar Linux semakin yakin bahwa setiap OS memiliki sisi kelebihan sendiri. Dalam masa transisi, kesulitan yang biasanya terjadi adalah ketika pngguna ingin mengakses file dari partisi Linux (Extended File System / EXT) dari Windows.

Meski dukungan file system EXT tidak disediakan, driver file system ext2/ext3/ext4 ternyata juga ada yang dikembangkan secara non-official. Salah satunya yang populer adalah Ext2fsd project. Dengan cara menginstal Ext2fsd, kita akan dapat mengakses file system Ext2/Ext3/Ext4 dari Windows.

Sebenarnya Ext2fsd hanya memberi dukungan lebih lengkap terhadap Ext2. Akan tetapi Ext3 dan Ext4 masih memiliki korelasi dekat dengan Ext2, sehinga metode aksesnya pun tidak beda jauh. Sehingga dengan Ext2fs kita bisa mengakses semua varian Extended file system; dengan pengecualian dukungan terbtas untuk file system selain Ext2.


Untuk memulai akses, buka Ext2 Volume Manager. Klik kanan partisi Linux yang hendak diakses. Pilihlah menu Assign drive letter. Sekarang, partisi tersebut langsung bisa diakses dari File Explorer.

Selamat mencoba :)
Read more

Kamis, 29 Desember 2016

Masih Ragu Pakai Linux? Kurang Apa? Aplikasi Ini Buat Kamu Mantap Pakai Linux

Saya tidak heran, kenapa banyak orang masih ragu pakai Linux. Apalagi mereka yang setiap hari dibebani tugas kantor; mengetik laporan, desain iklan, dan sebagainya. Ya, saya akui, aplikasi Linux memang belum begitu lengkap dan bagus jika dibandingkan dengan empunya Wid*ws dan M*c. But, If you know these, you'll love it. :D

Meski dalam aplikasi, linux masih kalah; setidaknya Linux unggul dalam banyak hal:
- Free. udah gitu open source lagi. Insya Allah, jauh dari software bajakan. Ingat dosa, dong.
- Customizable. Jangan kawatir, jika kamu tidak suka tampilan linux, baik dari segi ikon, tema ataupun sembarangnya. Linux selalu menjawab kekurangan ini untuk kamu. Iya, kamu. Ada banyak icon pack dan tema lingkungan desktop yang bisa kamu pilih dan install. Bukan sampai disitu, kamu juga bisa mengganti windows manager sampai dengan desktop environment.



- Aman. Tidak heran lagi, di linux semua virus gak bakalan mempan. Seumur-umur pakai linux, saya belum pernah lho sekalipun terserang virus. Bahkan, saya berani membuka virus di Windows dengan tangan dan mouse saya sendiri. -- Sambil melet, dan bilang 'week.. gak mempan'.
- Mudah di atur dan gak suka main di belakang. Saya jamin, Linux tidak akan pernah mencuri data pribadi anda, memaksa update dan menjalankan program yang tidak anda butuhkan. Jika memang ada, kita bisa mengaturnya dengan mudah, dan linux tak akan melakukannya kembali.

Jika masih belum yakin, ini aplikasi yang bakal merubah jalan pikiran agan.
1. Wine
Jika sulit move on, jalankan aplikasi Windows kesayanganmu dengan Wine. Aplikasinya tidak akan terlihat seperti jalan di emulator. Bahkan tampilannya mirip seperti berjalan di Windows. Winde menggunakan teknologi virtualisasi, jadi jangan takut aplikasinya lambat. Wine bukan cuma sekedar emulator gan.

2. Shashlik
Jika susah mengejanya cukup ingat ingat shampoo Sunsilk gan. hehe. Hampir seperti Wine. Shashlik adalah program untuk mengemulasikan program Android. Program android yang anda jalankan akan terlihat seperti program biasa bagi Linux.

3. Emulator untuk berbagai macam device dan aplikasi.
Jika aplikasi dari 2 raja aplikasi (Windows dan Android), masih belum cukup, aplikasi emulator di Linux bisa anda gunakan. Misalnya QEMU, untuk emulasi sistem operasi yang biasanya berjalan pada prosesor x86, ARM, MIPS, SPARC, ...; FCEUX untuk menjalankan game nintendo; DESMUME, untuk menjalankan game nintendo DS; Dan masih banyak lagi, hampir semua jenis game dari platform lain bisa dijalankan di Linux. Apa di Windows tidak ada? Ada, tapi coba survei di situsnya. Sebagian besar, awalnya dikembangkan untuk Linux saja, lho.

Ada banyaaaak lagi aplikasi yang masih bisa kamu jalankan di Linux.  Penasaran kan seperti apa kerennya? Yuk, migrasi ke Linux.
NB :
- Jika masih ragu, dual boot Windows dan Linux adalah pilihan yang tepat.
- Saya rekomendasikan pengguna baru untuk install Linux Ubuntu atau OpenSuSE.

Read more

Kamis, 22 Desember 2016

Ubuntu Software Center Tertutup Sendiri (Closed Unexpectedly), Ini Solusinya

Meskipun menginstall software baru dapat dilakukan secara manual melalui terminal, dengan apt. Rasanya tetap nyaman menggunakan software center. Selain karena tampilannya berbasis GUI dan praktis digunakan, melalui ini kita bisa melihat menu software secara lebih detail. Apa jadinya kalau software center tiba--tiba mengalami masalah?

ubuntu software center

Inilah yang baru saja saya alami. Ubuntu software center dapat dibuka normal, sih. Selang beberapa waktu, saya sepertinya harus menunggu data software yang masih keadaan diload. Tiba-tiba, cling. Seperti sihir, ia menghilang begitu saja. Berkali-kali saya coba buka kembali menghasilkan kondisi serupa. Sayapun mencoba eksekusi apt-get update, sambil berharap agar software center kembali seperti sedia kala. Ya, akhirnya berhasil.

Hanya sehari ia bekerja normal. Keesokannya, saya menemui masalah kemarin hari, seperti kisah lama yang terulang kembali. Sayapun tak berkutik, karena tak tahu sebab dan asal muasalnya. Muncul sebuah ide untuk menjalankan software center dari terminal. Sebelum menghilang tiba-tiba, di terminal saya menemukan pesan log aneh.

(ubuntu-software:2114): GLib-ERROR **: Creating pipes for GWakeup: Too many open files

Yang benar saja? Too many open files?
Jika memang terlalu banyak open files, mana mungkin saya bisa menjalankan program lain dengan normal. Ah sudahlah. Penyebabnya sudah diketahui, jadi saya bisa bertanya ke Google soal ini.

Dan, strike. Inilah jawabannya (https://ubuntuforums.org/showthread.php?t=2343602)

sudo apt-get install ubuntu-software -f

Alhamdulillah, masalah tersebut fixed. Entah apa gunanya argumen "-f" pada perintah tersebut. Yang jelas, saya berterima kasih pada Google dan Ubuntu Foums. :)
Read more

Rabu, 21 Desember 2016

Cara Membuat Swap Dengan File di Linux, Tanpa Partisi


Partisi disk masih banyak diterapkan dengan metode MBR. Dengan metode ini, kita hanya bisa membagi hingga maksimum 4 potongan partisi disk saja. Sebuah pilihan sulit apabila kita menginginkan swap space. Saat instalasi, pembuatan swap space memerlukan setidaknya sebuah partisi yang harus dikorbankan. Terasa semakin sulit ketika target instalasi adalah berbasis dual boot, triple boot, atau mungkin lebih dari itu.

Sebenarnya, swap space tidak harus dibuat dalam bentuk partisi. Ini juga mengingat bahwa semua objek filesystem pada sistem operasi berbasis UNIX akan selalu dianggap file, bahkan partisi sekalipun. Jika anda mau bukti, coba buat program sederhana untuk membaca device harddisk anda (misal: /dev/sda1), dengan cara seperti membaca file biasa (fread() ). Hasilnya, nanti akan terlihat kode bootsector di pembacaan 512 byte pertama.

Apabila swap umumnya dibuat dengan menyediakan partisi, maka tidak aneh jika kita coba membuat swap dengan sebuah file. Bagi sistem berbasis UNIX, file, folder, partisi,device adalah sama-sama file. Bisa dibilang, linux memanajemen swap, seperti halnya melakukan baca-tulis file. Jadi, jika bisa dengan file, mengapa harus mengorbankan partisi?

Berikut ini adalah langkah prosedur membuat swap file di linux.
1. Buat file swap
sudo dd if=/dev/zero of=/swap bs=1M count=512
Perintah di atas akan membuat file kosong sejumlah 1M x 512 = 512 MB bernama “swap”.

2. Format sebagai swap
sudo mkswap /swap

3. Atur permission
sudo chmod 600 /swap

4. Aktifkan swap
sudo swapon /swap

5. Tambahkah baris konfigurasi berikut ke /etc/fstab
/swap none swap defaults 0 0
Dengan menambah konfigurasi ini, sistem akan meload dan mengaktifkan file swap secara otomatis saat startup.

OK, selesai. Sekarang lihat perbedaannya. Lakukan aktivitas berat yang biasanya membuat komputer anda hang. Apakah dengan swap baru yang telah dibuat, hang masih dapat terjadi? Mudah-mudahan tidak lagi :)
Read more

Solusi Linux Rentan Ngelag dan Hang/Freeze Saat Browsing

linux slow

Tidak menghernkan jika browsing sering membuat komputer kita ngelag berat. Jika melihat system monitor, kita tahu penyebabnya adalah browser yang memakan memori hingga sedemikian ratusan MB. Sebagai contoh Firefox. Hanya membuka beberapa tab saja, memory usage bisa mencapai 200 MB – 300 MB.

Saat sinyal lag demikian terjadi, saya segera menutup browser dan memulai browsing dari awal. Karena jika tidak, sistem saya pasti akan hang. Yang respon cuma mouse, no more. Bisa saja menungu beberapa saat, sampai komputer sedikit responsif kembali, lalu segera menutup browser tersebut. Sering kali saya kurang sabaran, jadi saya memilih untuk melakukan metode Alt+PrtScren+R-E-I-S-U-B, memulai dari awal kembali. ~lari dari kenyataan.

Saking seringnya saya mengalami hal ini, saya sempat berpikir; meski Linux gratis dan berutilitas lengkap, linux tidak sebaik Windows. Belum lama ini, saya menarik asumsi tersebut. Saya mulai berpikir ulang, mungkin Linux jauh lebih hebat dari Windows.

Yang membuat browsing lancar di Windows adalah keberadaan pagefile/hiberfill untung menangani mekanisme virtual memory page swapping. Secara default, file ini dibuat secara otomatis untuk tiap sistem. Mekanisme ini juga diterapkan di Linux sebagai swap. Saat instalasi, biasanya kita ditawari pembuatan partisi swap. Keterbatasan partisi membuat kita mengabaikan tawaran ini. Padahal keberadaan swap akan sangat berpengaruh terhadap performa sistem, lho.

Jika sistem anda mengalami lag karena keterbatasan memori, mungkin saja anda belum membuat swap partition. Meski saat memory usage belum mencapai ambang out-of-memory, kenyataannya sistem akan mengalami penurunan performa saat sisa memory RAM semakin kritis. Hal ini mungkin terjadi karena saking banyaknya blok yang teralokasikan secara acak dan tersebar(non-contiguous) di dalam RAM, sehingga proses alokasi memori semakin lambat.

Setelah saya membuat sebuah swap, browsing saya semakin lancar. Biasanya, membuka 5 - 7 tab saja sudah bikin laptop ngelag berat –mendekati hang–, sekarang tidak lagi. Jadi, bagi kalian yang punya masalah seperti ini, ada baiknya untuk mulai menerapkan swap untuk sistem anda. Jika tidak ada partisi tersisa untuk dijadikan swap, anda bisa membuatnya dalam bentuk file, lho. Setelah postingan ini, saya akan tunjukkan bagaimana cara melakukannya. Sekarang, cukup tahu saja, solusi lag sistem anda adalah dengan swap.
Read more

Senin, 07 November 2016

Mengapa di Linux Tidak Ada Header conio.h ?

console conio

Biasanya untuk keperluan apa kamu membutuhkan header conio.h ?
Jika hanya untuk getch() sehingga program tidak keluar sebelum user menekan key; maka sepertinya ini tidak perlu dilakukan, karena semua program console di linux harus dieksekusi melalui terminal.

Header conio.h tidak ada di linux, bukan karena mengapa. Harus diketahui bahwa conio.h bukanlah header standar untuk bahasa C. Header ini ada di Windows, semenjak keberadaan Turbo C di zaman DOS. Jadi file ini memang hanya berperan sebagai helper khusus programmer yang ada di lingkugan Windows.

Jika memaksa dan benar-benar butuh, dunia linux menyediakan fungsi yang hampir ekuivalen dengan conio.h. Benarkah? Ya, untuk menggunakan beberapa fungsi dasar layaknya fungsi yang disediakan conio.h, gunakan ncurses.h. Tapi tunggu dulu, header ini juga bukan standar C, lho. Dan, untuk menggunakannya kita harus memiliki libncurses dan ncurses.h yang diinstall manual. Untungnya, sebagian besar distro sudah built-in dengan library ini, jadi anda tinggal install header nya.

Di Ubuntu, install header ncurses dengan
sudo apt-get install ncurses-dev

Ada sedikit poin yang harus diperhatikan untuk menggunakan fungsi libncurses. Salah satunya adalah selalu melakukan inisialisasi sebelum memakai fungsi-fungsi ncurses, dan melakukan deinisialisasi sesudahnya. Misal..
int main(void) {

  initscr();
  timeout(-1); 
  int c = getch();
  endwin(); 
  printf ("%d %c\n", c, c);
  return 0; 

}

FYI, kunjungi dokumentasi ncurses untuk melihat tata cara penggunaanya beserta melihat daftar fungsi yang didukung. http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/

FYI, berikut referensi list standard library untuk C dan C++.
http://en.cppreference.com/w/c/header
http://en.cppreference.com/w/cpp/header
Read more

Sabtu, 18 Juni 2016

Cara Aman Mengatasi Sistem Linux Hang / Freeze

Komputer mempunyai batasan kapasitas tertentu, yang erat kaitannya dengan spesifikasi hardware yang terpasang pada komputer tersebut. Jika melebihi ambang wajar, tentu kita merasakan bagaimana program kian menurun performanya. Dan jika terus dipaksa, abra kadabra, komputer sama sekali tak merespon yang kita perintahkan. Kita biasa menyebut peristiwa ini dengan sebutan hang atau freeze.



Sebenarnya, bukan hanya jumlah program yang dapat memicu timbulnya hang. Kerusakan hardware, seperti harddisk, juga sering kali menjadi salah satu akar penyebabnya. Tapi, secara umum, hang memang lebih sering ditimbulkan oleh software.

Saat hang, biasanya kita berusaha menutup program dengan menekan icon close di bagian pojok atas. Jika belum berhasil, buka terminal dan mengeksekusi xkill atau killall. Beda lagi urusannya, kalau hang-nya sudah parah, sampai-sampai mouse dan keyboard sama sekali tak bisa merespon.

Apa yang harus kita lakukan? Menekan tombol power? Ya, itu dulu, tapi sekarang jangan lagi. Cara tersebut dapat sangat beresiko, pada kerusakan sistem. Bahkan paling parah bisa berimbas pada kerusakan hardware. Dalam hal ini, mungkin harddisk adalah salah satu media yang paling rentan.

Selama ini Linux mengenal magic SysRq key. Kernel dapat segera memprioritaskan task untuk memproses kombinasi keyboard, jika yang salah satunya adalah tombol SysRq. Untk informasi lebih lanjut klik disini. Salah satu fitur yang disediakan dari kombinasi keyboard tersebut adalah safe reboot. Ini sangat bermanfaat ketika sistem benar-benar dalam keadaan hang dan tak bisa melakukan apapun. Caranya
1. Tekan Alt + PrtScr/SysRq
2. Sambil tetap menekan kedua tombol tersebut, Ketik R-E-I-S-U-B secara berurutan.
3. Komputer akan reboot.

Kenapa harus REISUB, bukan BUDIONO? Entahlah, penulis belum tahu-menahu soal sejarah adanya kombinasi tombol ini. Menurut Wikipedia, kata REISUB merupakan akronim yang memiliki beberapa makna, yaitu:
unRaw       (take control of keyboard back from X),
 tErminate  (send SIGTERM to all processes, allowing them to terminate   gracefully),
 kIll       (send SIGKILL to all processes, forcing them to terminate immediately),
  Sync      (flush data to disk),
  Unmount   (remount all filesystems read-only),
reBoot.



Read more

Kamis, 03 Maret 2016

Sekarang Bisa, Menjalankan Aplikasi Android di Linux Tanpa Emulator

Android pada dasarnya memiliki inti kernel Linux. Jadi, bisa dibilang Android adalah Linux. Tapi karena Android memiliki komponen yang dikembangkan secara non-universal, aplikasinya tidak bisa dijalankan secara sembarangan di desktop Linux pada umumnya.
 
Cara menjalankan aplikasi Android komputer umumnya dapat ditempuh melalui 2 cara, yaitu dengan menggunakan emulator, seperti Genymotion; atau dengan cara menginstall sistem operasi Android-x86. Sampai sekarang, cara yang masih umum dilakukan adalah dengan emulator.

Alternatif lain juga mulai dikembangkan. Aplikasi Android mulai dibuat untuk dapat berjalan di sistem operasi komputer. Xamarin adalah salah satu contoh dari jejak perkembangannya.

Di desktop linux, menjalankan aplikasi linux harusnya mudah, hanya saja belum ada pengembang yang menciptakan dukungan komponen Android yang kompatibel dengan desktop Linux. Itu dulu. Sekarang aplikasi Android sudah dapat dijalankan pada sistem operasi Linux berbasis desktop, loh, tanpa emulator. Untuk melakukannya, kita harus menginstall Shashlik.

Sejujurnya, penulis belum terlalu mengenal Shashlik. Shashlik adalah sebuah proyek perangkat lunak yang menyediakan sebuah bridge untuk menjalankan aplikasi Android di desktop Linux. Dari observasi yang telah dilakukan, package Shashlik hanya tersedia untuk sistem Ubuntu (*.deb) dan Arch Linux. Untuk distro lain, compile, build dan instalasi harus dilakukan secara manual.


Penasaran dengan software Shashlik ini?
Kunjungi link berikut untuk mulai download Shashlik.
DOWNLOAD SHASHLIK

Sementara itu, jika Shashlik belum menyediakan package yang kompatibel untuk distro anda, maka anda harus mengenahui cara compile dan build Shashlik. Proses compile sampai dengan instalasi Shaslik ini dapat anda pelajari di link berikut.
CARA BUILD SHASHLIK

Selamat bereksperimen... :)
Read more

Senin, 04 Januari 2016

Cara Memperbesar Kapasitas casper-rw di Ubuntu

http://www.omgubuntu.co.uk/wp-content/uploads/2014/04/UBN00216-1.jpg

Harddisk saya mengalami masalah serius, jadi tidak banyak pilihan yang bisa saya ambil. Mengunakan distro live CD adalah pilihan awal saya. Dengan cara ini saya mencoba memilih Ubuntu untuk dijalankan secara live, tanpa harddisk. Sayang sekali, media ini relatif kurang interaktif bagi saya. Membuka aplikasi terasa seperti biasa, tapi sebelumnya saat booting terasa agak lambat.

Jadi saya menggunakan Universal USB installer untuk menjalankan Ubuntu secara live dari flashdisk. Meski terasa lebih cepat, ada satu masalah yang tidak begitu saya sukai, yaitu media penyimpannanya bersifat temporary. Meski kita bisa mendownload file dan menginstall aplikasi baru, semuanya terbatas pada kapasitas RAM, buruknya lagi semuanya akan hilang setelah shutdown atau restart.

Dengan berat hati saya mulai mempertimbangkan untuk menginstall Ubuntu ke flashdisk saya satu-satunya. Tapi apa daya, semua file penting saya disini, untuk menginstall Ubuntu, flashdisk harus memiliki filesystem EXT2/3/4. Otomais flashdisk ini nantinya tidak bisa diakses sistem operasi Windows. Jadi saya mulai mencari alternatf lain, yaitu dengan persistent-changes file.

Dengan persistent-changes, semua perubahan dalam live-system akan disimpan dalam file virtual disk, nama filenya adalah casper-rw. Awalnya saya mengalokasikan casper-rw sebesar 1 GB, melalui opsi Universal USB Installer, namun tak berselang lama kemudian, semua space tersebut mulai menipis. Jadi saya mulai berpikir untuk memprsesar kapasitas file tersebut.
dd if=/dev/zero bs=1M count=512 >> casper-rw

Command di atas membuat file casper-rw bertambah sebesar 512 MB, jadi totalnya, sekrang 1,5 GB. Namun ternyata cara ini tidak berhasil, mungkin karena metadata dalam file tersebut masih menunjukkan ukuran file sebesar 1 GB, jadi perlu suatu cara untuk mengubah metadata tersebut. Berikut ini cara yang saya lakukan.
1. Boot ubuntu live tanpa casper-rw/persistent changes
2. Flashdisk yang dipakai biasanya di mount di folder /cdrom secara read-only. Jadi kita harus melakukan remount untuk mengaktifkan read-write, agar kita bisa mengakses file di dalamnya.
- check device yang dipakai, lihat dengan mount
- Remount device dengan command : mount -o remount,rw <device> /cdrom


3. Masuk ke direktori lokasi casper-rw, disini lokasi casper-rw saya berada pada /cdrom/multiboot/ubuntu-14.04.3-desktop-i386.
4. Setelah itu, baru kita bisa mulai dengan memperbesar ukuran casper-rw, misalnya kita ingin menambah ukurannya 512 MB
dd if=/dev/zero bs=1M count=512 >> casper-rw

Hati-hati, jangan sampai salah ketik, ya!

Casper rw sudah bertambah 512-MB, namun ruangan baru tersebut masih belum bisa dipakai sebelum kita mengubah metadata.

5. Masih dalam direktori lokasi casper-rw, ketik:
gparted casper-rw
 

6. Klik menu partition->Check
7. Klik menu Edit->Apply all operations
8. Selesai..
Read more

Minggu, 27 Desember 2015

Cara Mempercepat apt-get update, Untuk Kamu yang Punya Kuota Terbatas

 
Saya ingat, saat dulu sekali, saya masih menggunakan modem untuk mengakses internet. Di daerah saya yang masih bisa dibilang pelosok, kecepatan koneksi internet tentu saja masih terbatas, mendapatkan sinyal 3G bukanlah solusi yang mudah dan murah.

Meski sekarang ini saya telah meninggalkan dunia per-modem-an :p dan mulai beralih ke fasilitas wifi kampus, terkadang masalah kecepatan tetap saja menjadi masalah yang tak dapat dihindari. Saya sadar, bukan hanya saya yang suka gratisan.

Masalah ini secara tidak langsung berimbas pada aktivitas keseharian seorang linuxer seperti saya. Apalagi jika linuxer tersebut sering menambah repository eksternal ke dalam daftarnya. Efeknya perintah apt-get update akan memerlukan waktu jauh lebih lama untuk dieksekusi.

Menurut analisa saya, paket translations files adalah yang memerlukan ukuran besar saat proses apt-get update berlangsung. Dan saya yakin, para pembaca disini tidak begitu peduli kegunaannya. Saya pun kurang begitu paham, tapi yang jelas itu tidak begitu penting, toh kita jarang mengubah bahasa tampilan Ubuntu ke dalam bahasa lain. Jadi, FIX, mulai sekarang kita tidak butuh lagi translation files.

Bagaimana mencegah apt-get mendownload translation files/translation indexes?
Menurut link ini, hal tersebut dapat dialkukan dengan mengedit salah satu konfigurasi apt, yaitu konfigurasi file yang bernama 00aptitude. Berikut langkahnya.
1. Buka file konfigurasi sebagai root, bisa dengan gedit, leafpad atau text editor lain.
sudo gedit /etc/apt/apt.conf.d/00aptitude
2. Buat baris baru, lalu tambahkan kode konfigurasi berikut dibawah.
Acquire::Languages "none";

Nah, sekarang coba anda ketikkan perintah apt-get update dan lihat hasilnya :)

Semoga bermanfaat dan selamat berhemat kuota :)
Read more

Selasa, 22 Desember 2015

Cara Mengatasi File sources.list yang Terhapus atau Malformed


Sudah beberapa hari ini saya dibuat pusing oleh tugas laporan. Eh, rupanya itu bukan satu-satunya garam yang harus saya telan mentah-mentah di minggu ini. Rupanya package manager Ubuntu saya mengalami sedikit masalah. Kemarin hari, saya menghapus beberapa file tak penting di sistem saya. Saya sedikit ngawur, antara terburu-buru dan terpaksa. Saya menginstall ubuntu saya di Flashdisk sebagai LiveUSB, dengan bantuan file casper-rw sebesar 1 GB. Sebuah ukuran yang cukup besar, namun dengan ukuran seperti itu saya sering mendapati low disk space saat keadaan genting. Itulah akar dari  masalah yang sedang saya alami.

Saya mulai merasakannya ketika hendak mencoba menginstall aplikasi, tapi tidak ditemukan. Jadi saya coba mengupdate apt.
root@it:/home/it# apt-get update
E: Type 'count=1/>' is not known on line 1 in source list /etc/apt/sources.list
E: The list of sources could not be read.


Singkat cerita, saya mencari tahu ke berbagai situs. Tapi saya kurang dapat menangkap apa permasalahan yang sedang saya alami. Lama kelamaan saya tahu, intinya file /etc/apt/sources.list mengalami malformed, jadi harus diganti. Tapi dimana saya harus mendapatkan pengganti yang tepat?

Teman saya, jarang ada yang pakai sistem GNU/Linux, pun kalau ada, itu teman dunia maya. Apa harus saya tanya satu persatu? Kalaupun ada yang tepat, saya belum yakin cara ini akan berhasil.

Saya akhirnya mencoba mengetikkan keyword "ubuntu 14.04 apt source.list" di Google. Di bagian yang atas, saya menemukan hasil sebuah judul sebuah situs yang agaknya menarik perhatian saya, Ubuntu Sources List Generator.

Caranya sangat mudah, bahkan kita bisa menambahkan beberapa diantara banyak pilihan 3rd parties yang telah disediakan.

Setelah memilih repo, klik Generate List. Maka kita bisa memilih daftar repo default atau daftar repo yang baru saja kita pilih secara bebas. Terakhir, kita hanya perlu menyalin kode itu ke dalam file /etc/apt/sources.list

Ada cara yang lebih mudah, yaitu copy paste command yang tertera diatas kode yang telah di-generate, paste ke terminal dan jalankan. Bentuk kodenya semacam ini.

curl https://repogen.simplylinux.ch/txt/synaptic_de621757bd6034e918084b63f5c88083c7156982.txt | sudo tee /etc/apt/sources.list

Ya, jangan tanya hasilnya. Karena tentu saja akan bilang, sangat memuaskan. :D
Read more

Senin, 21 Desember 2015

Inilah Mengapa Linux Aman dari Virus


Keamanan adalah yang yang terpenting dalam penggunaan komputer. Sistem operasi bukan hanya harus menyediakan layanan prima dan aman, tapi ia juga wajib menjamin keamanan untuk menghindari ancaman dari luar. Salah satu ancaman yang paling sering ditemukan di sistem operasi adalah ancaman dari serangan virus.

Dari sini, timbul sebuah tanda tanya besar, mengapa sebagian besar virus menyerang Windows? Bukan Mac, Ubuntu, Debian, atau yang lain? Inilah jawabannya.

Privilege
Linux memperhatikan betul bagian-bagian penting dalam sistem. Setiap file memiliki atribut yang menentukan siapa saja yang berhak mengakses, memodifikasi dan menghapusnya, jadi tidak sembarang program dapat merusak sistem. Windows sebenarnya juga menerapkan sistem privilege lebih ketat, terutama setelah filesystem NTFS dibuat. Masalahnya, filesystem FAT yang tidak mendukung penerapan atribut file juga masih banyak digunakan.

Executable bit
Filesystem FAT masih menjadi filesystem yang digunakan pada sebagian besar flash disk. Selanjutnya fakta ini memberikan nilai tambah pada untuk sistem Linux. Program yang akan dijalankan pada sistem Linux harus memiliki atribut executable bit, sedangkan kita tahu bahwa FAT tidak mendukung penggunaan atribut, bahkan NTFS sendiri tidak menyediakan atribut executable bit untuk Linux, karena memang desainnya dikhususkan untuk Windows.

Diversitas Sistem
Sistem Linux memiliki varian yang tak terhitung jumlahnya, mulai dari Debian, Ubuntu, Mint, Slax, hingga Tiny Core Linux. Varian-varian tersebut memiliki subsistem yang berbeda dan standarisasinya pun tidak ada. Jadi setiap pengembang bebas mendesain sistemnya seperti yang dia inginkan. Semua Windows dapat menjalankan program saat startup melalui informasi registry dan semua versi Windows semikian. Hal ini berbeda dengan Linux, berbeda varian bisa jadi memiliki cara tersendiri untuk membuat program berjalan otomatis saat startup.
Contoh lain, jika kita membuka My Computer pasti kita menemukan beberapa drive letter, antara A - Z. Tapi di Linux tidak. beberapa sistem melakukan mount disk di folder /mnt, lalu beberapa varian yang lain sering kali ditemukan melakukan hal yang berbeda.

Autorun
Sebagian besar cara penyebaran yang efektif bagi virus adalah autorun. Sistem linux sama sekali tidak tahu apa itu autorun.inf, ia akan memperlakukannya seperti file biasa. Bahkan jika anda mau, anda boleh mencoba double-click program virus dalam flashdisk tersebut secara langsung. :p

Programmer yang Baik
Tahukah Anda, Kernel linux, beserta program-program di dalamnya 99%(perkiraan saja) merupakan buatan programmer sukarela, mereka tidak mengharapkan imbalan sepeserpun. Bisa jadi sebagian besar pengguna Linux adalah kontributor yang mengembangkan beberapa program untuk sistem Linux.

Pasar Sistem Operasi
Diantara sekian banyak sistem operasi yang ada di dunia, Windows sampai saat ini masih mendominasi di urutan pertama. jenis perangkat lunak yang digunakan sebagian besar sama, jadi ini sangat potensian untuk perkembangan virus.

Itulah beberapa alasan yang saya tulis berdasarkan perspektif saya sendiri. Tentunya dengan pengamatan dari fakta yang ada, bukan sekedar ngawur. Namun tentunya dalam penulisan ini masih banyak ditemukan salah kata. Jadi saya akan mencoba terbuka menerima masukan dari anda.
Read more

Jumat, 29 Mei 2015

Cara Install Codelite Versi Terbaru di Ubuntu


Sebelum saya menulis postingan ini saya mencoba mengembangkan program cross-platform berbasis GTK untuk Windows dan Linux. Rencananya, saya juga akan menulis buku tentang pemrograman aplikasi GUI cross platform dengan GTK. Codeblocks adalah IDE yang paling sering saya gunakan saat ini. Alasan saya memilih codeblocks, tntu saja karena ini crossplatform, cocok dengan tema buku yang akan saya tulis.

Karena sudah cukup lama menggunakan Codeblocks, saya merasa sudah terbiasa koding di lingkungan IDE dengan tampilan yang sederhana seperti ini. Saya sebelumnya juga pernah menggunakan Codelite. Tampilannya menurut saya lebih bagus. Tapi saya ingat, dulu saya pernah kesulitan mengatur project settings untuk program yang akan saya buat. Tiba-tiba saja saya ingin mencoba lagi Codelite ini, mungkin saya bisa melakukan sesuatu untuk mempermudah konfigurasi project.

Yah, saya tidak menyesal. Saya kira Codelite tidak memiliki template untuk GTK+ 3, tapi sepertinya Codelite yang sekarang ini saya coba sangat memuaskan hati saya :) Konfigurasinya lumayan mudah bagi saya, tampilannya juga lebih menarik.

Tanpa pikir panjang saya segera merestart laptop sya, lalu mengupdate Codelite yang ada di Ubuntu. Hmm, tapi ada yang aneh, versi Codelite paling baru di Ubuntu adalah versi 2?

Tanpa pikir panjang, saya segera berkonsultasi dengan mbah Google. Dan berikut ini ulasannya:

  • Pertama, jika sudah menginstall versi lawas, kita harus menghapusnya terlebih dulu. sudo apt-get purge codelite codelite-plugins
  • Tambahkan public key codelite. sudo apt-key adv --fetch-keys http://repos.codelite.org/CodeLite.asc
  • Tambah repository Codelite. sudo apt-add-repository "deb http://repos.codelite.org/ubuntu/ $(lsb_release -sc) universe"
  • Update package list. sudo apt-get update
  • Install versi barunya. sudo apt-get install codelite

Dan akhirnya.... :)



Selamat mencoba :)
Read more

Kamis, 16 April 2015

Mengatasi Filesystem HP Tidak Bisa Diakses Pada Elementary OS

 
Sempat beberapa saat yang lalu saya berkenalan dan menginstall Elementary OS. Tertarik dengan tampilannya, saya sama sekali tak merasa ragu. Namun pada kenyataannya, sungguh mengecewakan. Rupanya sistem yang saya unduh keluaran tahun 2013. Jadi, driver wifi laptop saya --yang waktu rilisnya lebih baru-- masih tidak didukung. Sepertinya saya sangat tak ingin seperti dulu, mengorbankan banyak kuota untuk mendownload dan mengompile driver beserta dependensinya. Jadi, saya biarkan elementary OS ada dalam harddisk sambil memilih distro lain sebagai penggantinya --saya melirik Arch linux--.

Setelah beberapa hari, belum juga saya mendownload dan Arch linux masih belum menyingkir dari dalam benak saya. Namun, betapa terkejutnya saya, ketika saya membuka distrowatch.com dan melihat info rilis Elementary OS Freya muncul di tengah-tengah -_-

Sedikit ragu untuk melupakan Arch linux, tapi tampilan Pantheon desktop nya itu looh...

Singkatnya, sayapun memutuskan untuk menginstall Elementary OS Freya. Sebenarnya ada bug-bug umum yang sudah sering saya temui, persis seperti bug di Ubuntu. Tapi, saya sepertinya saya --sudah terbiasa-- untuk ini. Yang terpenting driver wifi harus OK, itu saja cukup.

Salah satu masalah yang saya temui adalah, saat saya mencoba mengakses file melalui kabel data. HP saya Samsung Galaxy Young, tapi sepertinya HP lain juga akan mendapati masalah yang sama saat diakses dari sini.

Bermodalkan kuota 100 MB, saya mencari beberapa informasi dari internet. Jawaban dari permasalahan ini adalah dengan menginstall beberapa packages untuk mengakses MTP device. MTP (Media Transfer Protocol) merupakan protokol untuk mengakses data dari perangkat portabel, salah satu contohnya adalah HP.

Untuk masalah driver, saya rasa kernel Linux 3.16 yang dipakai Elementary OS ini sudah lengkap, tapi entah karena sebuah alasan, atau apa, Elementary OS tidak menyertakan packages untuk mengakses MTP device milik saya.

Untuk mengatasi permasalahan demikian, saya mulai mengetikkan sebaris perintah di Terminal, sesuai dengan instruksi yang saya baca.

sudo apt-get install libmtp-common mtp-tools libmtp-dev libmtp-runtime libmtp9

Dan, cihuiii, langsung normal.. :D
Sejauh ini, saya bisa menilai, Elementary OS sudah cukup baik. Baik dari segi tampilan atau performa. Memang, untuk pertama kali pakai, harus dilakukan beberapa set up terlebih dahulu. Namun saya harap, untuk versi berikutnya, hal ini bisa dilakukan secara terotomatisasi. Jadi, semua kalangan, baik advanced atau newbie bisa memakai Elementary OS dengan mudah. (y)
Read more

Jumat, 13 Maret 2015

Inilah GNOME Builder, Software IDE Untuk Lingkungan Desktop GNOME

 
GNOME bukan hanya menjadi lingkungan desktop terbesar di Linux. Bisa jadi GNOME adalah pelopor desktop environment yang inovatif di lingkungan Linux. Sampai saat ini GNOME tetap aktif bekerja dan berkreasi untuk menciptakan desktop environment yang senyaman mungkin bagi user.  Seperti itulah pendapat saya tentang GNOME. :)

GTK Sangat erat kaitannya dengan lingkungan desktop GNOME. Sebagai widget toolkit defaut, perkembangan GTK+ akan menentukan bagaimana GNOME berkembang. Jika sebelumnya sudah ada Glade sebagai user interface designer GTK, maka sekarang GNOME akan mencoba mengembangkan software yang lebih dari itu. Software ini bernama GNOME Builder, atau cukup disebut Builder.


Builder adalah sebuah software Integrated Development Environment(IDE) yang dispesialisasikan untuk lingkungan desktop GNOME. Walaupun begitu, bukan tidak mungkin jika software ini dapat dijalankan pada desktop lain. Saat ini pengembangannya masih sedang dalam tahap awal dan pihaknya masih belum tahu kapan versi stabil akan dirilis. Sembari melanjutkan pngembangan, tim developer juga sedang melakukan kegiatan penggalangan dana untuk mendukung pengembangan fitur, yang direncanakan.
Adapaun beberapa fitur yang direncanakan dan sedang dalam tahap pengerjaan adalah sebagai berikut.
  • Project Management
  • Asset Catalog
  • Auto completition dan Indentation
  • Glade Built-In
  • Dll

Sepertinya GTK Builder tidak akan jauh berbeda seperti IDE lainnya. Tapi, yang membuatnya istimewa adalah fitur Glade yang sudah Built-in. Fitur ini memungkinkan proses desain user interface dapat dilakukan dengan mudah seperti layaknya Visual Studio.

Saya sudah tak sabar untuk menanti rilis stabil yang pertama. Harapannya, jumlah programmer GTK semakin meningkat dengan diciptakan software ini. :)
Anda juga tak sabar kan? Hmm, mungkin dengan sedikit bantuan donasi dari Anda, project ini bisa segera diselesaikan :)
https://wiki.gnome.org/Apps/Builder/Fundraiser
hehehe :)
Read more

Membaca Tag ID3 Pada MP3 Player


Tulisan ini dimaksudkan untuk melanjutkan yang sebelumnya, tentang Tutorial Pembuatan MP3 Player.

Saat spesifikasi format MP3 diciptakan, terdapat satu masalah yang belum sempat terpecahkan. File MP3 tidak mendukung metode untuk menympan informasi tentang suara MP3. Akhirnya muncullah ide di luar spesifikasi untuk menambahkan potongan informasi metadata di bagian belakang data MP3.

Tag ID3 awalnya hanya menyimpan informasi tentang judul lagu, artis, album, tahun, komentar dan genre saja. Namun, spesifikasi yang baru memungkinkan sebuah file MP3 memiliki informasi yang lebih lengkap, misalnya gambar album, rating dan nomor track.

Ada 2 versi tag ID3, yaitu ID3v1 dan ID3v2. Fungsinya tidak berbeda, namun struktur datanya sedikit berbeda diantara keduanya. ID3v2 adalah spesifikasi yang lebih baru, sehingga dapat menampung informasi lebih lengkap.

Sebuah file MP3 yang menyimpan informasi lebih lengkap dengan ID3v2, akan tetap menyimpan data ID3v1. Hal ini dimaksudkan untuk menjaga kompatibilitas software pemutar MP3 yang terdahulu yang masih belum mendukung ID3v2.

Untuk memperoleh informasi tag ID3, mpg123 menyediakan sebuah fungsi mpg123_id3() untuk memperoleh data ID3.

int mpg123_id3(mpg123_handle *mh, mpg123_id3v1 **v1, mpg123_id3v2 **v2);

Fungsi diatas menggunakan 2 buah parameter. Salah satu parameter boleh diberi argumen 0 (NULL) jika tidak ingin mendapatkan salah satu data ID3. Jika berhasil fungsi ini mengembalikan nilai 0 (MPG123_OK). Parameter v1 adalah pointer ke pointer struktur yang menampung informasi tag id3v1. Berikut ini adalah bentuk strukturnya.

typedef struct
{
    char tag[3];         /**< Always "TAG". */
    char title[30];      /**< Title string.  */
    char artist[30];     /**< Artist string. */
    char album[30];      /**< Album string. */
    char year[4];        /**< Year string. */
    char comment[30];    /**< Comment string. */
    unsigned char genre; /**< Genre index. */
} mpg123_id3v1;

*Member tag digunakan untuk memeriksa apakah data yang diproleh valid ataukah tidak. Jika karakter yang ada dalam member ini bukan “TAG”, maka lebih baik anda memeriksanya.
*Member genre merupakan kode genre dari musik yang dibuka, untuk mengetahui daftar lengkapnya lihat link berikut : http://en.wikipedia.org/wiki/ID3.

Sementara itu parameter v2 adalah pointer ke pointer struktur penampung informasi ID3v2. Isi dari struktur ini sebenarnya lebih lengkap dibanding kan ID3v1, namun karena tulisan ini ditujukan untuk pembelajaran, dan mengutamakan kemudahan pemahaman pembaca, maka tulisan ini hanya akan menunjukkan dasarnya saja. Jadi untuk parameter kedua(v2), kita akan memberikan argumen 0. Walaupun begitu, anda bisa mencoba memperoleh ID3v2 dengan melihat bentuk strukturnya dalam dokumentasi libmpg123 :)  


Source Code
#include <mpg123.h>
#include <ao/ao.h>

#define MP3_FILE "/home/irvan/Closer To The Edge.mp3"
int main()
{
    mpg123_handle    *handle;
    ao_sample_format sample_format;
    ao_device        *device;
    int              driver_id;
    char             *buffer;
    unsigned int     ukuran_buffer;
    long             rate;
    int              channels;
    int              encoding;
    mpg123_id3v1     *id3v1;
      
      
//inisialisasi MPG123
    printf("Komputoo MP3 player\nMemutar %s...\n", MP3_FILE);
    printf("Menyiapkan libmpg123\n");
    mpg123_init();
    handle = mpg123_new(0, 0);
    if(handle == 0)
    {
        printf("Gagal membuat handle baru!\n");
        exit(EXIT_FAILURE);
    }
   
//inisialisasi AO
    printf("Menyiapkan libao\n");
    ao_initialize();
    driver_id = ao_default_driver_id();
    if(driver_id == -1)
    {
        printf("Driver ID tidak diketahui\n");
        exit(EXIT_FAILURE);
    }

//buka mp3
    if(mpg123_open(handle,MP3_FILE) != 0)
    {
        printf("Gagal membuka file!\n");
        exit(EXIT_FAILURE);
    }

//inisialisasi memori buffer untuk menyimpan hasil decode mp3
    ukuran_buffer = mpg123_outblock(handle);
    buffer = (char*) malloc(ukuran_buffer);

//inisialisasi struktur sample_format dari MP3 yang terbuka
    printf("Mengolah informasi MP3...\n");
    mpg123_getformat(handle, &rate, &channels, &encoding);
    sample_format.bits = mpg123_encsize(encoding) * 8;
    sample_format.rate = rate;
    sample_format.channels = channels;
    sample_format.byte_format = AO_FMT_NATIVE;
    sample_format.matrix = 0;
   
//inisialisasi ao sebelum playing
    device = ao_open_live(driver_id, &sample_format, 0);
    if(device == 0)
    {
        printf("ao_open_live error!\n");
        exit(EXIT_FAILURE);
    }

//lihat ID3
if (mpg123_id3(handle, &id3v1, 0) == MPG123_OK)
{
    printf("ID3v1: \n");
    printf(" - Title: %s \n", id3v1->title);
    printf(" - Artist: %s \n", id3v1->artist);
    printf(" - Album: %s \n", id3v1->album);
}

//decode dan play mp3
    printf("Memutar MP3...\n");
    size_t terbaca;
    while(mpg123_read(handle, buffer, ukuran_buffer, &terbaca) == 0)
    {
        ao_play(device, buffer, ukuran_buffer);
    }
   
//akhir
    printf("Selesai.\n");
    free(buffer);
    mpg123_close(handle);
    mpg123_delete(handle);
    mpg123_exit();
    ao_close(device);
    ao_shutdown();
   
}

Kode diatas hanya mencoba mencetak Judul, artis dan album saja. Jika anda ingin mencoba mengeprint tahun lagu, sebaiknya anda membuat sebuah buffer dulu, lalu mengopy 4 karakter tahun ke buffer tersebut, danjangan lupa untuk memberikan karakter \0 dibelakang tahun. Ini harus dilakukan karena string tersebut tidak disimpan dengan null-terminated.

Hasil

Read more

Kamis, 05 Maret 2015

2 Tema Plymouth Keren Untuk Ubuntu Anda

 

Sudah bosan ya sama tampilan boot ubuntu yang itu-itu aja? :v
Oke, kali ini saya akan sedikit berbagi 2 tema plymouth yang menurut saya paling keren. Sebenarnya masih ada banyak pilihan tema di luar sana, tapi seperti biasa, entah kenapa tidak ada yang greget bagi saya :v

Dari hasil penelusuran saya, hanya ada 2 tema yang tampilannya sesuai dengan hati saya. Berikut ini screenshot dan link downloadnya..


Ubuntu Spinner Logo



Ubuntu Orange


Selamat mencoba :)
Read more