Quantcast
Channel: Ade Malsasa Akbar
Viewing all 165 articles
Browse latest View live

The Quieter You Become, The More You Are Able To Hear

$
0
0

Bismillahirrahmanirrahim.

Lama sekali rasanya saya tidak menulis esai kritik. Esai ini saya tujukan untuk diri saya sendiri dan sebagian pengguna Linux muda yang terlalu bersemangat. Inti esai ini adalah ajakan untuk menghentikan sikap membangga-banggakan apa yang kita miliki di depan orang lain terutama pengguna Windows. Esai ini mengajak Anda untuk mengakui bahwa setiap proses belajar membutuhkan waktu. Saya ingin membentuk esai ini to the point dan serealistis mungkin. Semoga esai ini bermanfaat.

1. Sedikit Mengenai “The Quieter You Become, The More You Are Able To Hear

Ini adalah kutipan slogan dari distro ternama Backtrack Linux dan Kali Linux. Terjemahan bebas slogan ini dalam Bahasa Indonesia adalah

Semakin Anda diam, semakin banyak yang bisa Anda dengar

Slogan ini kurang lebih memiliki makna metafora demikian. Anda akan mampu mengindra lebih banyak jika Anda lebih banyak diam. Orang yang “berisik”, selalu menyuarakan opini dan argumennya sendiri, tetapi jarang diam untuk mengevaluasi kenyataan dan jarang pula mengetahui pasti pendapat mereka benar atau salah. Jadi jika Anda pribadi yang mampu diam untuk mendengar lebih banyak, maka Anda akan mampu melihat lebih banyak detail dari kenyataan. Sumber terjemahan metafora ini adalah https://answers.yahoo.com/question/index?qid=20100307195415AA4aDyJ. Slogan Backtrack ini adalah jiwa esai ini.

2. Apa Itu Mendengar?

Mendengar adalah

  1. Mendengar itu sendiri.
  2. Membaca.
  3. Mengamati.
  4. Menguji.

Mendengar itu proses memasukkan informasi ke dalam diri. Mendengar adalah kias metafora di dalam slogan The Quieter You Become, The More You Are Able To Hear untuk proses belajar. Mendengar adalah belajar itu sendiri. Mendengar itu proses yang sangat penting, karena mustahil Anda hidup tanpa belajar.

3. Masalah Kita

Sebagian dari kita dan termasuk saya sendiri, pernah mengalami kebanggaan yang berlebihan. Kita melakukan kesalahan-kesalahan. Inilah masalah kita. Berikut ini daftar kecilnya.

  1. Dengan lantang menyatakan tidak butuh Windows kepada publik, dalam keadaan sedikit pengalaman dengan Linux dan tidak punya proof of concept dari diri sendiri.
  2. Mengatakan Linux lebih baik daripada Windows kepada publik, dalam keadaan tidak punya proof of concept dari diri sendiri.
  3. Dengan lantang memaksa orang lain untuk segera migrasi ke Linux, tanpa melihat dulu kondisi orang itu.
  4. Dengan lantang tanpa malu bertanya hal-hal yang sudah tersedia jawabannya (dan bisa diakses dengan gampang), dalam keadaan dirinya sedang memakai distro seperti Backtrack.
  5. Dengan lantang menyuruh-nyuruh para senior (atau memberi saran dengan nada memaksa) Linux untuk mengubah hal-hal fundamental, dalam keadaan tidak tahu siapa dirinya sendiri.
  6. Dengan lantang menyatakan suatu kesimpulan pribadi kepada publik kemudian salah total, dalam keadaan dirinya sendiri kurang eksperimen.
  7. Dengan semangat tinggi mengharap pertanyaannya dijawab, kemudian kecewa dengan sikap komunitas, dalam keadaan dirinya sendiri tidak pernah membaca aturan bertanya.
  8. Dengan semangat tinggi melakukan atau mengatakan sesuatu, tanpa memiliki kepekaan yang tinggi terhadap lingkungan sekitar.
  9. Dengan lantang menyuarakan hacking di jalan yang salah, dan turut menjadi sebab salah kaprahnya media massa dalam membentuk opini hacking yang salah total.
  10. Dengan lantang bersuara tanpa malu sedikit pun memakai kalimat semisal “hei, aku bisa hacker” atau “situs anu sudah aku hacker kemarin” atau “situs anu sudah di-hacker oleh si anu”, dalam keadaan tidak mau belajar bahasa.

Inti dari semua masalah di atas sama saja: kecenderungan menganggap kejayaan bisa diraih tanpa usaha. Dan ini diakibatkan karena tidak mau sengaja diam untuk mendengar.

Penjelasan I: saya sebutkan masalah-masalah di atas karena memang ini penting dibahas. Masalah 1, 2, dan 3 adalah masalah klasik yang terjadi biasanya pada anak-anak muda. Hal ini sangat berhubungan dengan sikap tidak mau mendengar, terutama membaca siapa saja dan bagaimana kiprah para pendahulunya menyosialisasikan Linux di Indonesia. Karena baru mengenal bagusnya legalitas dan baru sadar manfaatnya FOSS, semangat kita tersulut mempromosikan Linux ke mana pun. Namun sekadar semangat itu tak cukup. Pada dasarnya, semua pengguna Windows itu tidak senang kita bicara macam itu di depan mereka. Mereka itu lebih bisa menerima Linux jika kita punya budi pekerti dan proof of concept yang baik. Tanpa kehalusan perangai dan proof of concept, usaha seperti apa pun akan terhenti sia-sia. Tidak percaya? Silakan coba.

Penjelasan II: masalah 4 sampai 8 adalah masalah sikap kita di dalam komunitas. Aturan paling dasar dari setiap komunitas Linux adalah bacalah. Jika Anda tidak mau membaca, maka tolong jangan berharap pertanyaan Anda akan dijawab. Lebih parah lagi, kalau kebetulan Anda tipe orang pada masalah 5. Mungkin sedetik setelah Anda mengirim permintaan, Anda langsung dijawab dengan pesan “troll”. Jika Anda memang niat belajar Linux, bacalah. Baca peraturan, baca cara bertanya, kuasai etika dulu sebelum Anda bergaul. Baca FAQ, baca dokumentasi resmi, baca manual, baca help. Selesaikan masalah Anda sendiri. Barulah tanya jika Anda sudah merasa semua usaha maksimal. Jika masalah selesai, kembalilah untuk memberi kabar dan tulislah dokumentasinya. Ini adalah jalan terbaik dalam belajar Linux. Jika Anda terus menerus tidak mau membaca, kemudian tetap saja membuat kesalahan yang sama, maka tidak berlebihan kiranya kalau ada yang mengatakan “Anda bangga dengan kebodohan Anda sendiri”.

Penjelasan III: hacking itu bukan sesuatu yang murahan. Ini bukan sesuatu yang ditekuni 1 tahun mahir. Ini adalah sekumpulan tindakan yang menghasilkan sistem operasi GNU, kernel Linux, distribusi Slackware, sistem jaringan komputer yang bernama internet, perangkat lunak yang bernama git, teknologi clustering, dan lain-lain. Anda tidak mengerti? Maka belajarlah. Diam dan mendengarlah. Diam yang panjang, belajar terus. Lakukan proof of concept, jangan banyak bicara. Jika Anda terus menerus dikontrol oleh media massa dalam definisi hacking yang serba salah, dan Anda terbawa arus vandalisme dalam hal ini, maka tidak berlebihan kiranya kalau ada yang mengatakan “Anda bangga dengan kebodohan Anda sendiri”. Jika Anda terus menerus menyuarakan hacking tanpa memiliki motivasi untuk belajar sendiri dan mengatasi keterbatasan, maka cukup kiranya itu membuktikan Anda tidak pantas mengucapkannya.

4. Akar Solusi

Orang yang ingin memetik buah harus terlebih dulu menanam pohonnya.

5. Solusi

The quieter you become, the more you are able to hear.

6. Yang Ingin Saya Katakan

  1. Kita harus banyak-banyak diam untuk mendengar.
  2. Kita kalau ingin belajar Linux, jangan mengharapkan apa pun yang instan.
  3. Belajar adalah proses, dan setiap proses butuh waktu.
  4. Mendengar adalah membaca, mendengar adalah proses belajar yang paling dasar, jadi diamlah untuk mendengar lebih banyak.
  5. Kita harus menyadari bahwa sumber daya di sekitar kita sifatnya terbatas, maka berusahalah untuk mengatasi keterbatasan itu sendiri semaksimal mungkin.
  6. Kita tidak perlu terlalu lantang bicara soal Linux kepada publik (yang masih juga seperti ini), dalam keadaan kita tidak punya proof of concept dari diri sendiri.
  7. Jika kita belum bisa menggunakan Linux dengan baik, maka kita jangan memaksa ( atau menyarankan dengan nada memaksa) orang lain menggunakan.
  8. Jika kita ingin mendalami penetration testing secara benar, maka kita harus mendengarkan realitas untuk menyelesaikan semua masalah sendiri.
  9. Kita jangan bermudah-mudahan atau terlalu cepat membuat kesimpulan.
  10. Sadari bahwa untuk menguasai Windows saja, kita sendiri butuh waktu yang banyak.
  11. Hanya menggunakan Backtrack semata tidak membuat seseorang menjadi hacker.
  12. Jangan salah menilai para pakar. Mereka seringkali tampak diam –bahkan kadang Anda menangkap kesan tidak mengerti apa-apa dari mereka– karena mereka diam untuk mendengar. Mereka lebih tua daripada Anda dari segi usia dan kematangan teknik.
  13. Jika Anda baru kenal Linux atau baru masuk ke dalam komunitas FOSS, ikuti bimbingan pakar yang ada di sana. Jangan membuat keributan apalagi –karena ketidaktahuan– berani mengusir admin.

Berapa banyak pengguna Backtrack dan Kali yang mau mendengarkan slogannya sendiri? Saya tidak sedang menyinggung orang. Namun khusus untuk kali ini, kalau ada yang tersinggung, semoga itu termasuk ketersinggungan yang positif.

7. Apa Manfaat Diam?

Diam (quiet) adalah sikap yang bagus. Manfaat diam saya sebutkan sebagai berikut.

  1. Anda memiliki lebih banyak waktu untuk mendengar.
  2. Anda memiliki lebih banyak waktu untuk berpikir.
  3. Anda memiliki lebih banyak waktu untuk uji coba.
  4. Anda memiliki lebih banyak waktu untuk proof of concept.
  5. Anda bisa fokus.
  6. Setelah semua hal di atas, Anda punya waktu untuk membuat kesimpulan.

8. Apa Ruginya Tidak Diam?

Jika kita tidak bisa diam, dan tidak memperbanyaknya, maka ada akibat-akibat besar yang menanti. Di antaranya sebagai berikut.

  1. Jika Anda terlalu lantang, kelak jika orang tahu celah-celah Anda, mereka akan menghabisi Anda dengan hujatan yang belum tentu Anda mampu menanggungnya.
  2. Jika Anda memaksa orang menggunakan Linux, kelak jika orang tahu Anda sendiri melakukan pelanggaran legalitas (jika Anda melakukannya), mereka akan balik memaksa kita meninggalkan Linux (dan FOSS lainnya) dengan lebih lantang.
  3. Jika Anda mengolok-olok madzhab proprietari dengan lantang kepada publik apalagi tanpa punya proof of concept, masyarakat Windows akan balik memandang rendah kepada madzhab FOSS dan mungkin berbalik menutup diri dari kita selamanya.
  4. Jika Anda terlalu banyak bicara, jumlah beban proof of concept Anda bertambah sementara Anda makin kehilangan waktu untuk mengerjakannya.
  5. Jika Anda membuat kesimpulan sekenanya di sebuah forum, dalam keadaan Anda salah dan para senior sedang melihat Anda, Anda akan ditanyai habis-habisan sampai Anda tidak mampu bicara lagi.
  6. Jika Anda sombong, kelak orang akan merendahkan dan menertawakan Anda. 

9. Apa yang Harus Dilakukan Selanjutnya?

Apa lagi selain belajar? Mulailah segala-galanya dari dasar. Mulai dari hal-hal kecil. Lakukan terus menerus.

  1. Jika Anda baru mengenal Linux, pelajarilah sistem manajemen paket pada distro Anda. Anda akan senantiasa menggunakan (dan menghadapi masalah) dengannya. Diam, jangan banyak mengeluh.
  2. Jika Anda baru mengenal penetration testing, mulailah segalanya dari security awareness. Be quiet, glow in the dark.
  3. Jika Anda baru memulai, pahamilah bahwa penguasaan tidak bisa diraih tanpa pemahaman konsep.
  4. Pahamilah bahwa secara umum, penguasaan terhadap bidang apa saja di dunia ini membutuhkan waktu sekitar 10 tahun.
  5. Jika Anda ingin memperkenalkan FOSS kepada masyarakat (baik dari madzhab Linux maupun BSD), maka diamlah dan perbanyaklah proof of concept yang brilian. Miliki dasar yang kuat supaya Anda mampu melakukannya.
  6. Jika Anda ingin memperkenalkan FOSS kepada masyarakat, tulislah tulisan-tulisan yang mengantarkan masyarakat awam kepada pemahaman konsep (sebagai proof of concept) dari segi legalitas maupun segi teknis pemanfaatan FOSS itu sendiri.
  7. Jika Anda ingin memperkenalkan FOSS kepada masyarakat, buatlah sebuah software FOSS yang bermanfaat (sebagai proof of concept) bagi masyarakat luas.
  8. Jika Anda ingin berkontribusi, pilihlah satu induk proyek FOSS (misalnya Ubuntu) dan fokuslah bekerja di sana.
  9. Anda tidak akan mampu melakukan semua itu tanpa diam mendengar.

Jangan sombong jika kelak Anda benar-benar meraihnya.

10. Penutup

Jika Anda membaca sampai bagian ini, saya harap Anda mendapatkan awal yang baik untuk belajar Linux. Pesan terakhir saya adalah jika Anda newbie, maka berperilakulah layaknya newbie. Jangan berperilaku layaknya orang yang pantas melakukan audit keamanan jaringan. Berikut ini saya lampirkan pranala esai-esai kritik yang pernah saya tulis. Memang salah satu tujuan penulisan esai ini adalah mengumpulkan mereka semua dalam 1 tulisan. Semoga esai ini bermanfaat.

  1. http://malsasa.wordpress.com/2012/11/02/kalau-linux-mau-maju/
  2. http://malsasa.wordpress.com/2012/11/13/permohonan-saya-untuk-komunitas-linux-indonesia/
  3. http://malsasa.wordpress.com/2012/11/27/apa-yang-sebenarnya-pengguna-butuhkan/
  4. http://malsasa.wordpress.com/2013/04/13/mengapa-otodidak-dibuat-12/
  5. http://malsasa.wordpress.com/2013/06/01/menyoal-kebebasan/
  6. http://malsasa.wordpress.com/2013/06/02/memusuhi-distraksi/
  7. http://malsasa.wordpress.com/2013/06/21/pemasaran-sistem-operasi-linux/
  8. http://malsasa.wordpress.com/2013/06/27/pemasaran-sistem-operasi-linux-2/
  9. http://malsasa.wordpress.com/2014/02/22/indonesia-masih-dalam-masa-transisi/

11. Bacaan

  1. http://catb.org/esr/faqs/hacker-howto.html
  2. https://en.wikipedia.org/wiki/Security_awareness

Filed under: Linux

Pemrograman Qt 20 – QSystemTrayIcon untuk Membuat Aplikasi System Tray

$
0
0

Bismillahirrahmanirrahim.

qt-creator-logoApa Anda ingin membuat aplikasi system tray? Aplikasi semacam ini punya fasilitas ikon di pojok kiri bawah panel menu desktop ala KDE atau di kiri atas pada panel menu ala GNOME. Contoh aplikasi yang memakai fitur ini misalnya antivirus, audio playersound appletdownload manager, dan lain-lain. Ciri khas aplikasi dengan fitur ini adalah jika ditutup jendelanya maka dia tidak hilang tetapi bertengger di lokasi system tray. Kita akan membuatnya dengan berdasarkan pada contoh kode dari dokumentasi resmi Qt Framework sendiri yang sudah ada di dalam Qt Creator. Saya berusaha memodifikasi program contoh Qt yang bernama systray sehingga tersisa hanya fungsi-fungsi paling minimal untuk sebuah program system tray. Saya lakukan ini karena ingin tahu bagaimana kode paling minimal untuk program system tray itu dan alhamdulillah berhasil. Semoga tulisan ini bermanfaat.

Spesifikasi Sistem

  1. Ubuntu 12.04
  2. Qt Creator 2.4.1
  3. Qt 4.8

Daftar Kelas

  1. QSystemTrayIcon
  2. QMenu
  3. QAction
  4. QIcon
  5. QMessageBox

Daftar Method

  1. addAction() -> milik QMenu
  2. addSeparator() -> milik QMenu
  3. setContextMenu() -> milik QMenu
  4. show() -> milik QSystemTrayIcon
  5. isVisible() -> milik QSystemTrayIcon
  6. ignore() -> milik QCloseEvent
  7. information() -> milik QMessageBox
  8. createActions() -> buatan sendiri
  9. createTrayIcon() -> buatan sendiri
  10. iconActivated() -> buatan sendiri
  11. closeEvent() -> buatan sendiri

Arah Tulisan Ini

ngite-keduapuluh11

uGet

ngite-keduapuluh9

Quassel

Program yang akan dibuat adalah program dengan kemampuan bertengger di system tray semisal download manager (uGet) dan IRC client (Quassel).

Kode

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui>

namespace Ui
{
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QVBoxLayout     *layoutUtama;
    QPushButton     *tombolUtama;
    QWidget         *widgetUtama;

    QAction         *minimize;
    QAction         *maximize;
    QAction         *restore;
    QAction         *quit;

    QSystemTrayIcon *trayIcon;
    QMenu           *trayIconMenu;

    QIcon           *ikon;

private:
    Ui::MainWindow   *ui;

private slots:
    void createActions();
    void createTrayIcon();
//    void iconActivated(QSystemTrayIcon::ActivationReason reason);     //ini berhubungan dengan fungsi iconActivated() di mainwindow.cpp

protected:
    void closeEvent(QCloseEvent *event);

};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    //deklarasi objek-objek GUI
    QVBoxLayout     *layoutUtama    =   new     QVBoxLayout;
    QPushButton     *tombolUtama    =   new     QPushButton("TOMBOL");
    QWidget         *widgetUtama    =   new     QWidget;

    //pemanggilan fungsi penting yang akan selalu berjalan
    createActions();
    createTrayIcon();

    //pemasangan layout kepada widget
    layoutUtama->addWidget(tombolUtama);
    widgetUtama->setLayout(layoutUtama);
    this->setCentralWidget(widgetUtama);

    //SIGNAL AND SLOT
//    connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
//            this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));        //ini dijadikan komentar karena bukan komponen paling minimal untuk program system tray

    //mengurus ikon untuk system tray
    trayIcon->setIcon(QIcon(":/gambar/metamorfosa"));
    trayIcon->show();       //tanpa baris ini, system tray tidak akan muncul sama sekali
                            //bahkan setelah jendela closed pun tidak

    //set logo untuk jendela supaya sama dengan ikon system tray
    this->setWindowIcon(QIcon(":/gambar/metamorfosa"));

}

MainWindow::~MainWindow()
{
    delete ui;
}

/*
  DAFTAR ISI

  1. iconActivated
  2. createActions
  3. createTrayIcon
  4. closeEvent
*/

//1. iconActivated
//fungsi ini mengatur perilaku klik kanan, klik kiri, dan klik tengah pada ikon system tray
/*//fungsi ini bukan termasuk fungsi paling minimal untuk program system tray sehingga tidak dipakai
//void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason)
//{
//    switch(reason)
//    {
//        case QSystemTrayIcon::Trigger:

//        case QSystemTrayIcon::DoubleClick:

//        case QSystemTrayIcon::MiddleClick:

//    default:
//    ;
//    }
//}*/

//2. createActions
//fungsi ini membuat objeck-objek Actions untuk menu klik kanan lalu menghubungkannya dengan fungsi jendela
void MainWindow::createActions()
{
    minimize    =   new QAction(tr("Minimize"), this);
    connect(minimize, SIGNAL(triggered()), this, SLOT(hide()));

    maximize    =   new QAction(tr("Maximize"), this);
    connect(maximize, SIGNAL(triggered()), this, SLOT(showMaximized()));

    restore     =   new QAction(tr("Restore"), this);
    connect(restore, SIGNAL(triggered()), this, SLOT(showNormal()));

    quit        =   new QAction(tr("Keluar"), this);
    connect(quit, SIGNAL(triggered()), qApp, SLOT(quit()));
}

//3. createTrayIcon
//fungsi ini memasukkan action yang sudah dibuat dengan createActions ke dalam menu tray icon
//sejatinya, fungsi ini membuat objek QMenu lalu mengisinya dengan objek-objek QActions,
//lalu mengeset context menu dari QSystemTrayIcon dengan objek QMenu tadi
void MainWindow::createTrayIcon()
{
    trayIconMenu    =   new QMenu(this);
    trayIconMenu->addAction(minimize);
    trayIconMenu->addAction(maximize);
    trayIconMenu->addAction(restore);
    trayIconMenu->addSeparator();
    trayIconMenu->addAction(quit);

    trayIcon        =   new QSystemTrayIcon(this);
    trayIcon->setContextMenu(trayIconMenu);         //tanpa baris ini,
    //menu pada klik kanan
    //pada ikon di system tray tidak akan muncul
    //ditemukan pada Wednesday, June 04, 2014 10:14 PM
}

//4.closeEvent
//fungsi ini menayangkan dialog pesan ketika jendela ditutup lalu program bertengger di system tray
//fungsi ini protected
void MainWindow::closeEvent(QCloseEvent *event)
{
    if(trayIcon->isVisible())
    {
        QMessageBox::information(this, tr("Pesan"), tr("Aku akan bertengger di pojokan <i>system tray</i>-mu"));
        hide();
        event->ignore();
    }
}

Qt Creator dan Kode

ngite-keduapuluh4

Hasil

Tampilan yang dihasilkan sederhana saja. Tombol satu itu pun tidak diberi fungsi. 

ngite-keduapuluh1

Jika jendela ditutup, maka sebuah dialog QMessageBox akan muncul sebagai peringatan.

ngite-keduapuluh2

Setelah itu, ia menjadi ikon (saya memberikan ikon Archlinux kepadanya) pada bagian system tray di menubar. Ikon system tray ini bisa digunakan sebagaimana aplikasi system tray yang lain.

ngite-keduapuluh

Analisis

mainwindow.h

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QVBoxLayout     *layoutUtama;
    QPushButton     *tombolUtama;
    QWidget         *widgetUtama;

    QAction         *minimize;
    QAction         *maximize;
    QAction         *restore;
    QAction         *quit;

    QSystemTrayIcon *trayIcon;
    QMenu           *trayIconMenu;

    QIcon           *ikon;

Hal penting di dalam program kita kali ini adalah penggunaan kelas QSystemTrayIcon, QAction, dan QMenu. Sepanjang tutorial pemrograman Qt di blog ini, 3 kelas ini belum pernah dipakai. Jika Anda belum memahami cara deklarasi di dalam header ini, silakan merujuk ke penjelasan deklarasi header.

mainwindow.cpp

Pada mainwindow.cpp, ada 3 fungsi buatan yang penting. Sebelum itu, ada beberapa bagian penting di dalam kelas MainWindow. Dua fungsi ini (createActions() dan createTrayIcon()) dipanggil supaya hidup terus menerus. Dan jika Anda belum memahami cara membuat GUI pada berkas CPP ini, silakan merujuk ke penjelasan cara membuat GUI dasar.

    //pemanggilan fungsi penting yang akan selalu berjalan
    createActions();
    createTrayIcon();

Dua fungsi buatan yang paling penting ini dipanggil dahulu sebelum pemasangan layout.

1. createActions()

//1. createActions
//fungsi ini membuat objeck-objek Actions untuk menu klik kanan lalu menghubungkannya dengan fungsi jendela
void MainWindow::createActions()
{
    minimize    =   new QAction(tr("Minimize"), this);
    connect(minimize, SIGNAL(triggered()), this, SLOT(hide()));

    maximize    =   new QAction(tr("Maximize"), this);
    connect(maximize, SIGNAL(triggered()), this, SLOT(showMaximized()));

    restore     =   new QAction(tr("Restore"), this);
    connect(restore, SIGNAL(triggered()), this, SLOT(showNormal()));

    quit        =   new QAction(tr("Keluar"), this);
    connect(quit, SIGNAL(triggered()), qApp, SLOT(quit()));
}

Sebelum mendeklarasikan objek-objek QAction ini di dalam fungsi ini, kita perlu mendeklarasikan dulu mereka di mainwindow.h. Argumen fungsi tr() adalah pengganti string biasa untuk keperluan penerjemahan pada masa mendatang. Tanpa tr(), kita tidak bisa membuat berkas .po atau semacamnya untuk penerjemahan antarmuka aplikasi sebagaimana biasa kita temukan di Transifex maupun Launchpad.

Pada fungsi createActions() di atas, kita melakukan connect() antara SIGNAL triggered() dengan SLOT fungsi hide(), showMaximized(), showNormal(), dan quit() dari jendela utama. Maksudnya jelas, agar setiap objek QAction memiliki tugasnya masing-masing. Khusus untuk quit(), objek kedua di dalam connect() bukan this melainkan qApp. Menurut QApplication Class Reference[1], qApp di sini adalah pointer global yang menunjuk kepada instansi QApplication. SLOT di sini memakai fungsi-fungsi dari QWidget berdasarkan dokumentasi QWidget Class Reference[2].

2. createTrayIcon()

//2. createTrayIcon
//fungsi ini memasukkan action yang sudah dibuat dengan createActions ke dalam menu tray icon
//sejatinya, fungsi ini membuat objek QMenu lalu mengisinya dengan objek-objek QActions,
//lalu mengeset context menu dari QSystemTrayIcon dengan objek QMenu tadi
void MainWindow::createTrayIcon()
{
    trayIconMenu    =   new QMenu(this);
    trayIconMenu->addAction(minimize);
    trayIconMenu->addAction(maximize);
    trayIconMenu->addAction(restore);
    trayIconMenu->addSeparator();
    trayIconMenu->addAction(quit);

    trayIcon        =   new QSystemTrayIcon(this);
    trayIcon->setContextMenu(trayIconMenu);         //tanpa baris ini,
    //menu pada klik kanan
    //pada ikon di system tray tidak akan muncul
    //ditemukan pada Wednesday, June 04, 2014 10:14 PM
}

Fungsi createTrayIcon() adalah tindak lanjut dari createActions() sebelumnya. Jika fungsi sebelumnya bertugas membuat aksi, maka fungsi ini bertugas memasang aksi itu pada menu klik kanan lalu membuat ikon system tray. Fungsi inilah sebetulnya yang menayangkan ikon aplikasi kita pada system tray dengan deklarasi objek trayIcon. Inti fungsi ini adalah deklarasi setContextMenu() dengan argumen objek QMenu. Objek QMenu bernama trayIconMenu, sudah diisi dengan objek-objek QAction pada baris-baris di atasnya.  Fungsi addSeparator() di atas berguna untuk menayangkan garis horizontal yang memisahkan 3 perintah dengan perintah Quit pada menu klik kanan nantinya.

3. closeEvent()

//3.closeEvent
//fungsi ini menayangkan dialog pesan ketika jendela ditutup lalu program bertengger di system tray
//fungsi ini protected
void MainWindow::closeEvent(QCloseEvent *event)
{
    if(trayIcon->isVisible())
    {
        QMessageBox::information(this, tr("Pesan"), tr("Aku akan bertengger di pojokan <i>system tray</i>-mu"));
        hide();
        event->ignore();
    }
}

Bagaimanakah aplikasi ini bisa tetap bertengger di system tray sementara jendela utama ditutup? Bagaimana dia bisa menayangkan jendela dialog berisi pesan? Fungsi closeEvent() ini jawabannya.

4. Satukan Semuanya

Setelah ketiga fungsi paling mendasar itu, saya jelaskan beberapa baris kode terpenting dalam MainWindow().

    //mengurus ikon untuk system tray
    trayIcon->setIcon(QIcon(":/gambar/metamorfosa"));
    trayIcon->show();       //tanpa baris ini, system tray tidak akan muncul sama sekali
                            //bahkan setelah jendela closed pun tidak

    //set logo untuk jendela supaya sama dengan ikon system tray
    this->setWindowIcon(QIcon(":/gambar/metamorfosa"));

Baris setIcon() di atas bertugas untuk memberikan ikon PNG Archlinux sebagai wujud program ini di system tray. Kemudian baris show() di atas berguna untuk menayangkan ikon dari program di dalam system tray. Kemudian baris setWindowIcon() di atas berguna untuk memberi logo Archlinux kepada jendela, supaya sama dengan ikon system tray-nya. Logo Archlinux ini sudah saya sertakan di tarball kode sumber di bawah.

Kesimpulan

  1.  Pembuatan program system tray paling minimal dengan Qt dilakukan dengan membuat objek-objek QAction, kemudian membuat objek QSystemTrayIcon dan QMenu, kemudian menyiapkan close event

Unduh Kode Sumber

Program kali ini bernama CalonSystemTray. Silakan unduh dan buka di Qt Creator Anda.

Referensi

  1. http://qt-project.org/doc/qt-4.8/qapplication.html
  2. http://qt-project.org/doc/qt-4.8/qwidget.html

Filed under: Linux

Membiasakan Diri Menggunakan Software Legal (Freeware Maupun Open Source)

$
0
0

Bismillahirrahmanirrahim.

Esai ringkas ini saya tujukan untuk setiap orang yang telah menyadari pentingnya penggunaan software legal. Esai ini ditulis sebagai panduan membiasakan diri dengan Linux, pada jauh hari sebelumnya. Esai ini pun ditujukan sebagai ajakan bagi pengguna Windows (dan Mac OS X) untuk menggunakan software legal. Jika Anda telah memiliki kesadaran mengenai pentingnya penggunaan software legal, maka jagalah. Ini adalah sikap yang baik dan membawa kemaslahatan. Jangan mencela sikap ini, karena ini adalah akhlak baik yang sangat langka pada zaman ini. Motivasi dasar esai ini adalah pertanyaan “apakah Anda ingin menggunakan Linux?” dan jawaban “jika ya, maka biasakanlah diri Anda menggunakan software legal”. Semoga esai ini bermanfaat.

Isi Esai Ini

  1. Asumsi Dasar
  2. Definisi Istilah-Istilah
  3. Bagaimana Seharusnya Sikap Seorang Pengguna Windows (dan Mac OS X)
  4. Bagaimana Seharusnya SIkap Seorang Pengguna Linux
  5. Bagaimana Rincian Sikap Menghargai Legalitas Ini?
  6. Kesimpulan
  7. Penutup
  8. Referensi

1. Asumsi Dasar

  • Anda adalah seorang pengguna komputer yang biasa, tidak berkeinginan membeli suatu software komersial. Pengguna seperti ini adalah kalangan mayoritas di Indonesia, termasuk penulis sendiri.
  • Anda menggunakan Windows sebelum mengenal Linux. Pengguna seperti ini adalah kalangan mayoritas pula di Indonesia.
  • Jika Anda menggunakan Mac OS X, Anda memiliki keinginan untuk menggunakan software legal dan ingin menggunakan Linux.

2. Definisi Istilah-Istilah

  1. Software adalah istilah untuk menyebut sekumpulan instruksi komputer yang membantu manusia dalam tujuan tertentu. Software bukan istilah untuk menyebut segala perangkat fisik yang dapat disentuh. Software adalah istilah untuk menyebut benda-benda nonfisik seperti antivirus, video gamedownload manager, web browser, office suite, email client, dan sebagainya. Software biasa disebut dengan nama lain aplikasi, utility, tool, program, dan sebagainya.
  2. Freeware adalah software yang gratis, berlisensi bebas dipakai, tetapi tidak bebas dimodifikasi, dan tidak menyertakan kode sumber ketika dipublikasikan. Contoh freeware adalah CCleaner dan Avira Antivir PE.
  3. Open source software adalah software yang berlisensi open source, yakni bebas dipakai, bebas dimodifikasi, bebas disebarluaskan, dan menyertakan kode sumber ketika dipublikasikan. Contoh open source software adalah Firefox dan Libreoffice.
  4. Freeware bukan open source software, dan open source software bukan freeware. Namun keduanya termasuk software legal.

3. Bagaimana Seharusnya Sikap Seorang Pengguna Windows (dan Mac OS X)?

Jika kita sadar bahwa tidak boleh menggunakan software ilegal, maka berusahalah dengan sekuat tenaga untuk mencari software legal sebagai penggantinya. Tidak harus membeli. Software legal bisa diperoleh dalam bentuk freeware maupun open source software.

4. Bagaimana Seharusnya Sikap Seorang Pengguna Linux?

Jika kita sudah melakukan sikap seorang pengguna Windows (dan Mac OS X), maka terapkan sikap yang sama di Linux:

Jika kita sadar bahwa tidak boleh menggunakan software ilegal, maka berusahalah dengan sekuat tenaga untuk mencari software legal sebagai penggantinya. Software legal ini bisa dalam bentuk freeware maupun open source software.

5. Bagaimana Rincian Sikap Menghargai Legalitas Ini?

Inilah inti esai. Bagaimanakah cara berusaha dengan sekuat tenaga yang dimaksud?  Apa saja yang bisa dilakukan? Sikap-sikap berikut adalah jawabannya.

  1. Milikilah keinginan kuat untuk mencari pengganti software komersial yang tidak mampu Anda beli.
  2. Milikilah keinginan kuat untuk tidak mencari crack atau serial number ilegal, ketika Anda membutuhkan software yang sebetulnya sudah ada padanannya dari kelas freeware maupun kelas open source software. Peringatan: penulis tidak menganjurkan tindakan ilegal apa pun kepada software mana pun.
  3. Milikilah jiwa pedagang dan pengusaha, yang selalu berusaha adil dan menepati janji dalam setiap langkahnya. Ini agar Anda (paling tidak, pernah) mempunyai perasaan seorang developer.
  4. Milikilah rasa percaya diri yang tinggi menggunakan software legal, bahwa secara umum seluruh software berbayar sudah memiliki padanannya dari kalangan freeware maupun open source software.
  5. Untuk pengguna Windows, ketahuilah tempat memperoleh software gratis yang legal seperti http://softpedia.comhttp://download.cnet.comhttp://en.softonic.com/http://www.pcadvisor.co.uk/downloads/windows/http://filehippo.com/http://www.tucows.com/downloadshttp://sourceforge.net, atau http://freshmeat.net.
  6. Untuk pengguna Windows, ketahuilah situs-situs open source software untuk WIndows semisal http://opensourcewindows.org/.
  7. Untuk pengguna Mac OS X, ketahuilah situs-situs open source software untuk Mac OS X semisal http://opensourcemac.org/.
  8. Untuk pengguna Linux, ketahuilah situs-situs perbandingan aplikasi Windows – Linux sebagai penerapan sikap pertama di atas. Misalnya http://alternativeto.nethttp://osalt.com, http://www.linuxalt.com/http://www.linuxsoftware.orghttp://www.linuxrsp.ru/win-lin-soft/table-eng.htmlhttp://www.linuxlinks.com/article/20070701111340544/Equivalents.htmlhttp://wiki.linuxquestions.org/wiki/Linux_software_equivalent_to_Windows_software, atau https://help.ubuntu.com/community/ListOfOpenSourcePrograms.
  9. Untuk pengguna Linux, ketahuilah situs-situs tempat Anda bisa memperoleh paket program secara offline semisal http://apt-web.tk (Ubuntu), http://pkgs.org (semua distro), http://rpm.pbone.net/ (Fedora, openSUSE, Mageia), http://rpmfind.net (Fedora, openSUSE, Mageia), dan lain-lain.
  10. Milikilah kreativitas dan motivasi diri sendiri untuk mencari sumber daya offline yang lain seperti nomor 8.
  11. Milikilah keinginan untuk membeli software asli, jika memang Anda membutuhkannya.

6. Kesimpulan

Jika Anda telah membiasakan diri menggunakan software legal dengan pemahaman konsep dan sikap yang bagus, maka mudah bagi Anda untuk menggunakan Linux. Jika sudah begini, sistem operasi apa pun (mulai Windows sampai MINIX dan keluarga BSD) dapat Anda pelajari dengan mudah. Kunci kekuatan orang-orang yang betah dan kukuh menggunakan Linux selama bertahun-tahun adalah pembiasaan diri mereka yang di atas rata-rata untuk menggunakan software legal. Pembiasaan yang sesungguhnya itu berada di dalam hati kecil, biasa mengakui keadilan dan selalu berusaha berbuat baik. Silakan kita memulai dari diri kita masing-masing. Silakan kita memulai dari satu hal kecil, sekarang juga.

7. Penutup

Esai ini selesai ditulis pada 14 Juni 2014. Esai ini ditulis dengan diskusi dengan beberapa warga kanal #ubuntu-indonesia (kang danu, kang SKRILLEX, dan kang syukronrm). Esai ini tidak ditutup kemungkinannya untuk direvisi pada masa mendatang. Esai ini tidak lain adalah nasihat bagi kita semuanya. Dan yang menasihati itu belum tentu lebih baik dari yang dinasihati. Semoga esai ini menambah motivasi legalitas Anda dan memudahkan kurva belajar Anda.

8. Referensi

  1. https://en.wikipedia.org/wiki/Open-source_software
  2. http://opensource.org/
  3. https://en.wikipedia.org/wiki/Freeware

Filed under: Linux

Pengguna Linux 14 Tahun Tidak Pernah Kena Virus

$
0
0

Bismillahirrahmanirrahim.

Tulisan ini adalah lanjutan dari tulisan sebelumnya yang berjudul Pengguna Linux 8 Tahun Tidak Pernah Kena Virus. Tulisan ini adalah testimoni dan dorongan moral kepada setiap pengguna baru supaya percaya diri dan tidak ragu-ragu dalam menggunakan Linux dan FOSS sebagai software legal. Sama seperti sebelumnya, testimoni ini saya peroleh dari percakapan IRC. Kali ini, saya berbincang dengan Akang Abdurrahman Soleh (asoleh) dari kanal #python-id (tentu saja pada server freenode). Beliau menggunakan Linux sejak era Windows 98 tepatnya sekitar tahun 2000. Saya menyorot baris-baris percakapan yang penting dan yang terpentingnya ada di baris nomor 75 dan 76 di bawah. Semoga tulisan ini bermanfaat.

Percakapan ini terjadi pada 12 Mei 2014. Anda bisa melihat log-nya pada fasilitas bot IRC Botbotme ini: https://botbot.me/freenode/python-id/2014-05-12/


[19:28.00] *** asoleh (~asoleh@125.161.211.43) has joined #python-id
[19:28.04] <tukangKompor> kimiamania: I'm glad to hear that :-P
[19:29.46] <tukangKompor> Ada er3n juga :-D
[19:31.40] <ibk> tukangKompor : salam
[19:33.04] <tukangKompor> ibk: terimakasih
[19:33.18] <Malsasa> asoleh: assalamu'alaykum
[19:33.24] <Malsasa> asoleh: kang abdurrahman soleh
[19:35.16] <tukangKompor> Waalaikumsalam
[19:37.02] <asoleh> alaikumsalam...
[19:37.46] <asoleh> salam kenal ya, malsasa?
[19:38.34] <Malsasa> asoleh: siap, Kang.
[19:40.39] <asoleh> maaf, udah lama banget baru gunain irc client lg nih...
[19:42.10] <tukangKompor> asoleh: salam kenal
[19:42.38] <asoleh> salam juga tukangKompor
[19:42.51] <tukangKompor> :D
[19:44.12] <asoleh> Malsasa: meetup kemaren dateng ga?
[19:44.32] <Malsasa> asoleh: tidak.
[19:44.46] <Malsasa> asoleh: kalau begitu, selamat datang kembali.
[19:46.07] <asoleh> Malsasa: domisili dimana nih?
[19:46.29] <Malsasa> asoleh: Mojokerto, Kang.
[19:46.37] * Malsasa sebenarnya tidak menggunakan Python
[19:46.46] * Malsasa menggunakan banyak aplikasi yang dibuat pakai Python, di Ubuntu
[19:46.53] <asoleh> Malsasa: pantesan ga ikut...
[19:47.40] <asoleh> Malsasa, pakai ubuntu juga ya?
[19:48.08] <Malsasa> Acara-acara Ubuntu saja saya tidak pernah ikuti.
[19:48.19] <Malsasa> asoleh: nggih. Kula ngagem Precise.
[19:49.11] <asoleh> Malsasa: wah pake arabic...ga ngarti ane..hehehe
[19:49.51] <Malsasa> Saya pakai Precise.
[19:50.36] <asoleh> Malsasa: Precise itu versi brapa ya?
[19:51.08] <Malsasa> asoleh: 12.04
[19:51.09] <asoleh> Malsasa: skrg gw pake 14.04, lumayan asik...
[19:51.13] <Malsasa> asoleh: oooh
[19:51.27] <Malsasa> Hari ini saya berkenalan dengan 2 orang pengguna Linux di kanal ini.
[19:51.30] <asoleh> sbelumnya debian 7
[19:51.34] <Malsasa> Saya kira saya tidak akan menemukannya.
[19:51.41] <Malsasa> asoleh: wah, akang punya banyak pengalaman Linux.
[19:52.45] <asoleh> yah lumayan lama...udah dr jaman mandrake. tp buat pake dirmh aja sih...
[19:53.16] <asoleh> kerja apa mas, Malsasa
[19:53.33] *** Malsasa__ (~Malsasa@162.248.11.75) has joined #python-id
[19:53.54] *** Malsasa__ is now known as betatester
[19:54.08] *** betatester is now known as teknoplasma
[19:54.46] <asoleh> Hallo salam kenal semuanya....
[19:55.12] <er3n> salam kenal om asoleh :)
[19:55.13] <teknoplasma> ibk: ini saya
[19:55.21] <er3n> salam kenal semuanya
[19:56.06] <asoleh> er3n: salam kenal juga
[19:56.53] <Malsasa> asoleh: wah, saya beruntung sekali.
[19:57.06] <Malsasa> asoleh: suatu hari nanti, saya ingin akang singgah di #ubuntu-indonesia.
[19:57.23] <Malsasa> asoleh: sekitar 10 tahun ya, Kang? Sejak akang pakai Mandrake pertama kali?
[19:59.15] <asoleh> Ya gitu deh...dari jaman internet pake dail-up. lumayan cape install driver modemnya...hehehe.
[20:01.47] <asoleh> ada yg pake ninja-ide terbaru ga...udah stabil blon sih?
[20:02.29] <er3n> wah sudah lama ya pak asoleh ini pake linux
[20:02.42] <er3n> sekarang pake apa pak asoleh
[20:02.47] <iromli> /me nyanyi "Kosong delapan kosong sembilan delapan sembilan empat kaliiiiiii"
[20:03.52] <asoleh> hallo, mas iromli. slam kenal...jangan nyanyi aja dong...
[20:04.27] <tukangKompor> Mas isman ?
[20:05.01] <asoleh> skrg pake distro apaan aja yg penting berbasis debian aja...
[20:05.02] <iromli> asoleh: halow :)
[20:05.22] *** teknoplasma (~Malsasa@162.248.11.75) Quit (Remote host closed the connection)
[20:05.49] <asoleh> 10 thn pake linux cuma bisa install sama ngenet doank...
[20:05.57] <iromli> tukangKompor: kita pernah ketemu di real-life?
[20:06.11] <iromli> jarang banget ada yg nanya saya pake nama asli :D
[20:06.21] <tukangKompor> iromli: hoho..belum kayaknya ..
[20:06.25] <asoleh> baru sekarang2 aja coba2 python...buat custom tryton.
[20:07.15] <asoleh> ada yg pernah oprek tryton ga disini?
[20:07.44] <tukangKompor> asoleh: Apa itu tryton?
[20:08.39] <asoleh> tukangKompor: business framework application forkingan openerp tahun 2008
[20:08.50] <asoleh> tryton.org
[20:08.52] <tukangKompor> iromli: salam kenal mas..
[20:09.15] <iromli> tukangKompor: salam kenal juga :)
[20:09.26] <tukangKompor> Oh..forkingannya openerp..
[20:10.08] <asoleh> tukangKompor: IMHO kedepan lebih menjanjikan dari pada openerp
[20:10.09] <Malsasa> APA?
[20:10.12] <Malsasa> tkp
[20:10.43] <Malsasa> asoleh: namun selama itu, apa akang pernah kena virus di Linux?
[20:11.27] <asoleh> Malsasa: kayaknya ga pernah kena...nyaman bener pake linux
[20:11.45] <Malsasa> asoleh: saya pernah menulis esai Pengguna Linux 8 Tahun Tidak Pernah Kena Virus
[20:11.59] <Malsasa> asoleh: sepertinya saya harus membuat Pengguna Linux 10 Tahun Tidak Pernah Kena Virus
[20:12.20] <iromli> oya, ada yg udah pake ubuntu trusty?
[20:12.45] <asoleh> iromli: trusty itu 14.04 ya...
[20:13.00] <iromli> iya
[20:13.19] <asoleh> maaf gw lebih inget pake angka2 hehehe...
[20:13.32] <iromli> tiap mau upgrade, mesti mikir2 soal VGA
[20:13.51] <asoleh> iromli: pake vga apa?
[20:13.52] <Malsasa> asoleh: benar, trusty = 14.04
[20:13.58] <iromli> nvidia
[20:14.07] <Malsasa> iromli: akang pakai Linux juga?
[20:14.15] <iromli> iya
[20:14.54] <tukangKompor> asoleh: dibanding erp5 ? Yang ada di python success stories
[20:15.06] <asoleh> iromli: kl pake vga nvidia emang banyak masalahnya di linux...
[20:15.42] <Malsasa> Wah, hari ini saya berkenalan dengan 3 orang pengguna Linux di kanal ini...
[20:15.44] <iromli> nah itu masalahnya, ribet nyari drivernya
[20:15.49] <asoleh> iromli: gw pake ati, skrg lg pake ubuntu 14.04
[20:15.59] <iromli> running well?
[20:16.09] <Malsasa> asoleh: bagaimana? Apa saya diizinkan menyalin log singkat kita ini jadi tulisan, Kang? Judulnya adalah yang tadi.
[20:16.14] <asoleh> alhamdulillah...nyaman...
[20:16.29] <iromli> ada gotchas dari versi sebelumnya?
[20:16.31] <asoleh> Malsasa: apa tuh?
[20:17.03] <Malsasa> asoleh: ini tulisan saya sebelumnya: http://malsasa.wordpress.com/2013/01/01/pengguna-linux-8-tahun-tidak-pernah-kena-virus/
[20:17.21] <Malsasa> asoleh: alhamdulillah kalau nyaman, Kang.
[20:17.24] <asoleh> tukangKompor: erp5 kayaknya saas ya?
[20:17.29] <Malsasa> iromli: saya pernah dengar soal bumblebee
[20:18.03] <tukangKompor> asoleh: kurang tahu juga ..
[20:18.04] <iromli> transformer? :D
[20:18.38] <tukangKompor> http://www.erp5.org/
[20:19.31] <Malsasa> iromli: hm, tentunya tidak. Bumblebee, semacam driver NVIDIA untuk UBuntu.
[20:19.31] <iromli> Malsasa: yang ini http://bumblebee-project.org/ ?
[20:19.44] <asoleh> tukangKompor: erp5 daluarsa kayaknya...komunitasnya ga aktif
[20:19.49] <Malsasa> Saya tidak menggunakan NVIDIA/ATI, saya hanya pakai VGA Intel.
[20:20.03] <Malsasa> iromli: coba akang cek saja. Coba juga cari di askubuntu.
[20:20.11] <tukangKompor> asoleh: iya..
[20:20.15] <asoleh> Malsasa: kl vga intel sih aman di linux...
[20:20.27] <Malsasa> Soalnya saya dengar, warga Ubuntu terselesaikan masalah drivernya (NVIDIA) setelah menggunakan Bumblebee.
[20:20.36] <Malsasa> asoleh: karena itulah Intel saya pilih.
[20:20.42] <iromli> ohoho
[20:21.07] <Malsasa> iromli: dan cukup sering terdengar rekomendasi Bumblebee di setiap pertanyaan masalah akang.
[20:21.19] <asoleh> tukangKompor: tryton sangat aktif, bahkan realease tiap versinya ga pernah meleset setiap 6 bulan sekali...
[20:21.25] <iromli> bookmarked \o/
[20:22.02] <asoleh> tukangKompor: http://www.openerp2tryton.com/
[20:23.12] <iromli> Malsasa: thanks buat info-nya
[20:23.20] <Malsasa> iromli: ini bukan apa-apa.
[20:23.25] <asoleh> iromli: karena sya pengguna linux, maka sya selalu pilih2 kl beli hardware...
[20:23.39] <Malsasa> asoleh: sepertinya akang sangat fokus dengan ERP, yaa...
[20:23.52] <Malsasa> [20:23:25] <asoleh> iromli: karena sya pengguna linux, maka sya selalu pilih2 kl beli hardware... <<< saya merasa punya teman
[20:24.03] <asoleh> Malsasa: iy...
[20:24.08] *** shirkey (~Thunderbi@139.195.43.7) has joined #python-id
[20:24.21] <Malsasa> asoleh: jadi, apa akang mengizinkan saya menuliskannya?
[20:24.28] <asoleh> Malsasa: latar belakang saya accounting...
[20:24.34] * Malsasa pernah tidak diizinkan oleh senior #fedora-id
[20:24.40] <iromli> saya sempet punya komputer dgn vga intel
[20:24.42] <asoleh> Malsasa: boleh2 aja...
[20:24.55] <iromli> sempet bermasalah juga di ubuntu 8
[20:25.00] <Malsasa> asoleh: jazakallahu khayran. Saya akan cantumkan nama akang, insya Allah.
[20:25.18] * Malsasa padahal pengalamannya 13 tahun
[20:25.33] * Malsasa atau 11 tahun, ya? *lupa*
[20:26.16] <iromli> Malsasa: asoleh: tapi terima kasih buat sarannya ;)
[20:26.48] <iromli> off duluan
[20:26.50] <asoleh> Malsasa: sya pke linux itu dulu bareng sama win 98 dualboot kayaknya...waktu masih bootloadernya lilo apa...
[20:26.54] *** iromli (~iromli@103.5.51.50) Quit (Quit: WeeChat 0.3.7)
[20:27.04] *** tukangKompor (~haneeball@112.215.44.247) has left <type 'buffer'>
[20:27.15] <Malsasa> asoleh: WOH
[20:27.21] <Malsasa> asoleh: 14 tahun?
[20:27.27] <Malsasa> asoleh: 16 tahun?
[20:27.30] * Malsasa senang betul
[20:28.15] <asoleh> kyknya dr tahun 2000 apa?
[20:29.24] * Malsasa benar-benar kagak ada media yang ngalahin IRC
[20:29.46] <Malsasa> asoleh: baik, Kang. Judul diubah jadi Pengguna Linux 14 Tahun Tidak Pernah Kena Virus
[20:30.11] <asoleh> Malsasa: dan sudah beberapa tahun ini sya hampir tdk pernah lagi menggunakan winxxx
[20:30.18] <Malsasa> asoleh: kalau para calon pengguna tahu tulisan macam ini, dan asalnya otentik dari sang pelaku langsung, maka itu menambah kepercayaan diri mereka.
[20:30.28] <Malsasa> asoleh: saya sangat menghargai keputusan itu.
[20:30.40] * Malsasa sebuah kehormatan bisa diterima dan berbincang di kanal ini
[20:30.59] * Malsasa terutama hari ini saya berbicara begini dengan akang asoleh
[20:30.59] <asoleh> sya punya linuxcount# kayaknya tapi lupa?
[20:35.35] <Malsasa> asoleh: wah, dulu saya pengen bikin tapi kagak ngarti caranya, terus akhirnya kagak bikin-bikin sampai sekarang
[20:36.43] <asoleh> Malsasa: sya partisipasi aja biar keliatan banyak pengguna linuxnya....dulukan masih sedikit...hehehe
[20:37.38] <Malsasa> asoleh: wah, partisipasi akang sangat saya hargai.


Filed under: Linux

Pengantar Pemrograman OpenCV C++ di Linux

$
0
0

Bismillahirrahmanirrahim.

Tulisan ini ditujukan kepada pemula OpenCV di Linux. Tulisan ini dibuat untuk siapa saja yang ingin tahu bagaimana menggunakan IDE untuk memrogram OpenCV dengan C++ di Linux. Tulisan ini juga dibuat untuk pengguna Microsoft Visual C++ di Windows yang ingin mencoba OpenCV di Linux. Tulisan ini mencakup pengenalan singkat, instalasi di Linux, dan contoh-contoh kode OpenCV. Tulisan ini juga berisi tip-tip memulai OpenCV semisal membaca dokumentasi resmi dan mencari sumber daya. Tulisan ini tidak berisi algoritma atau bahasan-bahasan OpenCV lanjutan yang lain. Tulisan ini hanya pengantar singkat untuk pemula. Tujuan dari tulisan ini adalah Anda mampu mengatur sendiri IDE di Linux untuk OpenCV dan bisa menjalankan kode sumber program dengan benar. Semoga tulisan ini bermanfaat.

Isi Tulisan Ini

  1. Apa Itu OpenCV?
  2. Apa yang Bisa Dilakukan dengan OpenCV?
  3. Instalasi OpenCV di Linux
  4. Pilihan Editor/IDE untuk Memrogram OpenCV di Linux
  5. Cara Mengonfigurasi Build Options Kompiler g++ untuk OpenCV di Geany
  6. Contoh-Contoh Kode Sumber Program OpenCV
  7. Sumber Referensi Belajar OpenCV
  8. Tip-Tip Belajar OpenCV
  9. Penutup

1. Apa Itu OpenCV?

OpenCV (Open Computer Vision) Pustaka computer vision yang open source dan dipakai secara luas di macam-macam sistem operasi dan arsitektur komputer untuk keperluan pengolahan citra.

2. Apa yang Bisa Dilakukan dengan OpenCV?

Tentu saja untuk memrogram suatu sistem yang berhubungan dengan citra. Contohnya sebagai berikut.

  1. Mengakses webcam laptop secara langsung.
  2. Melakukan object tracking via kamera.
  3. Melacak kontur suatu objek 2D.
  4. Membuat perangkat lunak pengolah gambar (semisal Photoshop atau GIMP).
  5. Memberikan efek tertentu pada gambar bitmap.
  6. Pattern recognition.
  7. Face recognition.
  8. Fingerprint recognition.
  9. Optical Character Recognition.

Supaya nyata, berikut ini saya bawakan skrinsot dari situs resmi OpenCV sendiri mengenai pengenalan kontur:

Sumber
Bounding_Rects_Circles_Source_Image
Hasil
Bounding_Rects_Circles_Result

Kedua Gambar diambil dari http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/bounding_rects_circles/bounding_rects_circles.html.

3. Instalasi OpenCV di Linux

3.1 Ubuntu

Ikuti saja panduan resmi dari Ubuntu https://help.ubuntu.com/community/OpenCV dan OpenCV akan diinstal secara otomatis. Lakukan apa yang tertera di situ. Saya pernah melakukan instalasi OpenCV dari repo resmi dan hasilnya tidak memuaskan. Cara terbaik (untuk saat ini) adalah panduan resmi di atas.

3.2 Archlinux

pacman -S opencv opencv-samples

http://morf.lv/modules.php?name=tutorials&lasit=8

3.3 Debian

http://indranilsinharoy.com/2012/11/01/installing-opencv-on-linux/

3.4 Fedora

https://sites.google.com/a/asu.edu/wireless-video-sensor/how-to-1/how-to-install-ffmpeg-opencv-under-fedora

3.5 Mint

http://daily-ravel.blogspot.com/2012/09/installing-opencv-on-linux-mint-maya.html

3.6 Slackware

http://xathrya.web.id/blog/2013/02/07/installing-opencv-with-slackware64-14-0/

3.7 Linux Secara Umum

http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html?highlight=install%20opencv

4. Pilihan Editor/IDE untuk Memrogram OpenCV di Linux

Jika Anda terbiasa dengan Microsoft Visual C++ di Windows, mulailah mengenali IDE-IDE lain yang bisa dipakai untuk memrogram dengan OpenCV. Silakan pilih sendiri dari daftar yang sudah saya tulis di http://malsasa.wordpress.com/2014/02/17/aplikasi-editor-pemrograman-di-linux/. Untuk tulisan ini, saya memilih Geany sebagai editor. Geany saya pakai karena sangat mudah dikonfigurasi dan sangat mudah dikontrol.

opencv-geany

5. Cara Mengonfigurasi Build Options Kompiler g++ untuk OpenCV di Geany

Tentu saja ini dilakukan dengan mengikuti panduan g++ build options pada pranala resmi Ubuntu di atas. Perhatikan dulu perintah berikut. Perintah ini berasal dari pranala resmi di atas.

gcc -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.c .c` opencvtest.c `pkg-config --libs opencv`

Jelasnya, jika Anda menggunakan perintah di atas begitu saja dalam IDE Anda, maka Anda harus selalu mengganti nama berkas menjadi opencvtest.c. Tentu saja itu sangat merepotkan. Tak bisakah yang diganti cukup perintah di atas sehingga Anda bisa membuat nama berkas apa pun? Tentu bisa. Perhatikan pola perintah berikut dan masukkan ke dalam Geany (atau IDE yang Anda pakai). Build Options Geany berada di menu Build > Set Build Options.

Untuk Compile (ini perintah kompilasi dengan g++):

g++ -Wall -c "%f"

Untuk Build (ini perintah linking dengan g++ bersama pustaka OpenCV, ini yang terpenting):

g++ "%f" `pkg-config --cflags --libs opencv` -o "%e"

Anda benar. Nama berkas bisa digantikan dengan variabel %f dan %e. Itulah fleksibilitas build options di Geany (dan semua IDE lainnya). Silakan lihat skrinsot berikut untuk kejelasannya.

purge-apache6

6. Contoh-Contoh Kode Sumber Program OpenCV

Berikut ini saya bawakan kode sumber program OpenCV yang sudah saya tes sendiri dengan g++ dan Geany di atas Ubuntu dan bekerja dengan baik. Silakan salin tempel (copy paste) kode-kode berikut ke dalam Geany Anda dan jalankan. Pastikan Anda telah mengonfigurasi semuanya dengan benar.

6.1 Buka Sebuah Gambar Digital


// latihan_opencv_1_bukagambar.cpp
// program pembaca dan penampil gambar bitmap
// program ini akan membaca 1.jpg (harus ada di dalam 1 direktori yang sama dengan program), menyimpan ke dalam memori, lalu menayangkannya dalam jendela ke layar monitor
// kunci program ini ada pada kelas Mat, fungsi imread(), dan fungsi imshow()
// fungsi waitKey() harus diisi argumen 0 agar dia terus memunculkan jendela dan tidak langsung mati sesaat setelah dieksekusi
// program ini ditulis dengan vim pada Friday, June 27, 2014 02:01 AM
// Ade Malsasa Akbar <http://malsasa.wordpress.com>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
Mat variabel_gambar_1;
variabel_gambar_1 = imread("1.jpg");

imshow("TAYANGKAN GAMBAR", variabel_gambar_1);
waitKey(0);
return(0);
}

Hasil

opencv-linux1

6.2. Buka, Olah, Simpan Gambar Digital

// latihan_opencv_2_efek.cpp
// program ini bersumber dari http://docs.opencv.org/doc/tutorials/introduction/load_save_image/load_save_image.html
// program ini disunting dengan vim pada Sunday, June 29, 2014 11:12 AM
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main()
{

 Mat image;
 image = imread("1.jpg");

 Mat gray_image;

 // fungsi cvtColor bertugas mengubah gambar asli (objek image) menjadi objek gray (objek gray_image) dengan argumen CV_BGR2GRAY
 cvtColor( image, gray_image, CV_BGR2GRAY );

 // fungsi imwrite bertugas membuat suatu berkas gambar berdasarkan objek yang sudah diberi efek
 // argumen pertama adalah nama berkas, argumen kedua adalah objek Mat dari sumber yang sudah diberi efek
 imwrite( "gambar_gray.jpg", gray_image );

 // fungsi namedWindow berguna untuk menentukan nama dan ukuran jendela
 namedWindow( "Gambar Asli", CV_WINDOW_AUTOSIZE );
 namedWindow( "Gambar Gray", CV_WINDOW_AUTOSIZE );

 // fungsi imshow berguna untuk menayangkan gambar di dalam jendela
 imshow( "Gambar Asli", image );
 imshow( "Gambar Gray", gray_image );

 // fungsi waitkey harus ada supaya program dapat terus berjalan
 waitKey(0);

 return 0;
}

Hasil

opencv-2
opencv-linux96.3 Akses Webcam Laptop


// latihan_opencv_3_webcam.cpp
// http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=video%20capture#VideoCapture
// kata kunci: opencv video capture
// kata kunci: opencv camera capture
// diunduh pada Friday, June 27, 2014 02:33 AM
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>

// namespace untuk cv; karena sebetulnya tidak ada VideoCapture, Mat, imshow(), dan waitKey()
// yang ada adalah cv::VideoCapture, cv::Mat, cv::imshow(), dan cv::waitKey()
// ditulis pada Friday, June 27, 2014 07:42 PM
// untuk memahaminya, bacalah http://www.cplusplus.com/doc/tutorial/namespaces/
using namespace cv;

int main(int, char**)
{
// buka kamera default yakni nomor 0
// ganti nomornya dengan 1 atau 2 jika kamera berada di posisi lain
VideoCapture cap(0);

while(true)
{
// deklarasi objek frame dari kelas Mat
Mat frame;

// objek video dari kamera dipasangkan ke dalam frame
cap >> frame;

// fungsi imshow() menayangkan objek Mat yang sudah berisi objek video kamera
// argumen pertama adalah string untuk judul jendela
// argumen kedua adalah objek Mat
imshow("Kamera", frame);

// fungsi waitKey() (didefinisikan dalam header highgui) dibutuhkan oleh imshow() (yang juga dari highgui)
// tanpa waitKey(), imshow() tidak akan melakukan window event semisal redraw, resize, input event, dan sebagainya
// argumen angka di dalam waitKey menentukan berapa milisekon delay untuk key event yang dibutuhkan oleh imshow()
// panggillah walau hanya untuk 1 milisekon
// singkatnya, ini sepele tetapi wajib ada
// sumber 1: http://stackoverflow.com/questions/12452118/what-does-waitkey-30-mean-in-opencv
// sumber 2: http://docs.opencv.org/modules/highgui/doc/user_interface.html#waitkey
if(waitKey(3) >= 0) break;
}

return 0;
}

Hasil

opencv-linux7

6.4 Operasi Logika (AND, OR, XOR, dan NOT) Terhadap 2 Gambar


// AND OR XOR NOT terhadap 2 gambar
// sumber kode ada 2, yaitu http://opencvexamples.blogspot.com/2013/10/bitwise-and-or-xor-and-not.html
// dan http://docs.opencv.org/doc/tutorials/introduction/display_image/display_image.html
// karena ia harus bisa menyimpan gambar dahulu baru kemudian mengoperasikannya
// baru kemudian menayangkannya
// kode ini diubah dengan vim pada Friday, June 27, 2014 12:45 AM
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main( )
{
// kelas Mat ini berfungsi untuk menampung gambar
Mat variabel_gambar_1; //objek dari kelas Mat akan dipakai sebagai variabel penyimpan gambar
Mat variabel_gambar_2;
Mat variabel_gambar_3;

// proses menyimpan gambar JPG ke dalam variabel Mat
variabel_gambar_1 = imread("1.jpg");
variabel_gambar_2 = imread("2.jpg");

// deklarasi objek-objek (variabel-variabel) Mat untuk menyimpan hasil operasi
Mat simpan_hasil_and;
Mat simpan_hasil_or;
Mat simpan_hasil_xor;
Mat simpan_hasil_not;

// proses operasi AND, OR, XOR, dan NOT untuk dua gambar yang disimpan dalam dua variabel
// hanya proses NOT yang melibatkan satu gambar, karena memang NOT operasi logika untuk satu operand saja
bitwise_and(variabel_gambar_1, variabel_gambar_2, simpan_hasil_and); //dua gambar di-AND
imshow("AND",simpan_hasil_and); //kemudian isi variabel simpan_hasil_and ditayangkan

bitwise_or(variabel_gambar_1, variabel_gambar_2, simpan_hasil_or); //dua gambar di-OR
imshow("OR", simpan_hasil_or);

bitwise_xor(variabel_gambar_1, variabel_gambar_2, simpan_hasil_xor); //dua gambar di-XOR
imshow("XOR", simpan_hasil_xor);

bitwise_not(variabel_gambar_1, simpan_hasil_not); //satu gambar di-NOT
imshow("NOT", simpan_hasil_not);

// catatan:
// bitwise_and() adalah fungsi untuk melakukan AND LOGIC OPERATION terhadap dua gambar
// demikian pula untuk *_or, *_xor, dan *_not

waitKey(0);
return(0);
}

Hasil

opencv-linux6

7. Sumber Referensi Belajar OpenCV

  1. http://docs.opencv.org/index.html (dokumentasi resmi OpenCV)
  2. http://opencvexamples.blogspot.com/ (kumpulan contoh kode OpenCV siap pakai)
  3. http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html (panduan perkenalan OpenCV akademik)
  4. http://dasl.mem.drexel.edu/~noahKuntz/openCVTut1.html (tutorial OpenCV akademik)
  5. http://www.cs.rit.edu/~gsp8334/ (tutorial OpenCV akademik)
  6. http://opencv-srf.blogspot.com/ (blog khusus OpenCV yang berisi banyak contoh + analisis kode program yang berguna)
  7. http://opencv-code.com/ (blog khusus OpenCV)
  8. http://www.shervinemami.info/openCV.html (blog Computer Vision yang memiliki kategori OpenCV)
  9. http://blog.damiles.com/category/tutorials/opencv-tutorials/ (blog lain yang memiliki kategori OpenCV)
  10. http://www.tutorialspoint.com/java_dip/introduction_to_opencv.htm (tutorial OpenCV dengan Java)
  11. http://opencvpython.blogspot.com/ (tutorial OpenCV dengan Python)
  12. http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_tutorials.html (tutorial OpenCV dengan Python)
  13. http://docs.nvidia.com/tegra/Content/OpenCV_Main.html (tutorial OpenCV dari NVIDIA untuk Tegra)
  14. http://opencv.wikispaces.com/ (wiki OpenCV dari komunitas)

8. Tip-Tip Belajar OpenCV

  1. Cari contoh kode, kompilasikan, lihat hasilnya.
  2. Analisis baris-baris penting di dalam kode yang diperoleh dengan memberinya komentar.
  3. Ubah kode sedikit demi sedikit, lihat hasilnya.
  4. Menulislah tentang OpenCV di blog Anda sendiri.

9. Penutup

Tulisan ini mulai dibuat draft-nya pada 3 April 2014 dan diselesaikan pada 29 Juni 2014. Tulisan ini lebih dulu direncanakan untuk ditulis daripada tulisan mengenai OpenGL. Tulisan ini tidak ditutup kemungkinannya untuk direvisi. Semoga tulisan ini bermanfaat.


Filed under: Linux

Pentingnya Sebuah Tutorial Bagi Seorang Pemula

$
0
0

Bismillahirrahmanirrahim. 

Tulisan ini tersedia dalam PDF.

Tutorial itu adalah catatan sederhana mengenai bagaimana Anda bisa menyelesaikan 1 masalah di Linux.

Isi Tulisan Ini

  1. Pembukaan
  2. Permasalahan
  3. Penjabaran Permasalahan
  4. Solusi
  5. Penjabaran Solusi
  6. Contoh Implementasi
  7. Hambatan-Hambatan
  8. Kontra Hambatan
  9. Contoh-Contoh Tutorial
  10. Penutup

1. Pembukaan

Kemarin pagi (9 Mei 2014) saya mendapatkan ide baru dari salah satu komentar di situs Fedora Indonesia1 yang berbunyi demikian: 

Lutfi Putra3/22/2014 7:05 PM

terima kasih mas, membantu sekali…
maklum baru install fedora…

Betapa pentingnya sebuah tutorial. Kalau dihitung-hitung, tutorial mengenai apa yang harus dilakukan setelah instal Fedora adalah hal yang sangat tidak penting. Mungkin Fedoran yang berpengalaman tidak akan pernah membutuhkannya. Pendek kata, sudah tahu. Namun bagi mereka yang baru hari ini instal Fedora, atau baru hari ini mengenal Linux, sebuah tutorial semacam itu berubah menjadi sangat penting. Pendek kata, tutorial itu penting bagi pemula. Setelah membaca laman itu, saya langsung merasa ingin menulis sebuah esai pendek mengenai hal ini.

2. Permasalahan

  1. Pemula itu banyak.
  2. Setiap pemula tidak mengetahui apa yang harus dilakukan dengan sistemnya.
  3. Setiap pemula memiliki keinginan sendiri-sendiri terhadap sistemnya.
  4. Setiap pemula memiliki masalah dengan sistemnya.
  5. Linux semestinya diperkenalkan kepada masyarakat untuk mengurangi pembajakan, menghemat biaya secara nasional, dan meningkatkan inovasi di bidang ilmu komputer.

3. Penjabaran Permasalahan

  1. Karena pemula itu banyak, maka banyak masalah yang sama terjadi.
  2. Karena banyak masalah yang sama terjadi, maka banyak pertanyaan yang sama terjadi.
  3. Walau banyak masalah terjadi, banyak masalah sudah terselesaikan.
  4. Sementara itu, masalah-masalah yang sudah terselesaikan tidak tercatat.
  5. Dan masalah-masalah yang sudah tercatat masih banyak yang tidak sampai kepada yang membutuhkannya. 

4. Solusi 

  1. Kita sebaiknya menulis tutorial mengenai apa yang kita telah selesaikan.
  2. Walaupun tutorial itu sangat sederhana, hanya berisi bagaimana langkah kita sendiri hingga 1 masalah itu selesai.
  3. Walau tutorial itu hanya berupa ulasan suatu software, yang isinya cuma memberitahukan fungsi utamanya.
  4. Kita bisa memberikan pranala (link) dari suatu solusi yang telah kita ketahui kepada yang membutuhkannya agar mereka dapat menyelesaikan masalah dengan cepat.
  5. Kita juga bisa menulis suatu tutorial yang komprehensif mengenai masalah dengan niat akan memberikan pranalanya kepada setiap penanya hal yang sama.
  6. Kita juga bisa sekadar memberikan kata kunci Google terhadap permasalahan yang ditanyakan walau kita tidak membuat tutorial atau tidak memiliki pranalanya.

5. Penjabaran Solusi

Makin banyak pengguna yang mendokumentasikan masalah-masalahnya, maka makin kecil jumlah masalah yang tersisa. Dengan menuliskan bagaimana Anda menyelesaikan suatu masalah, maka Anda membantu pengguna lain dengan masalah yang sama. Untuk membersihkan pemahaman, bayangkanlah Anda memiliki beras dan kebutuhan pokok yang melimpah di tengah ribuan orang yang terkena musibah. Tentu dengan sangat sukarela Anda akan membagi-bagikannya kepada orang-orang itu. Situasi kita mirip dengan perumpamaan ini.

6. Contoh Implementasi

Ada tulisan-tulisan saya yang sengaja ditulis untuk diberikan. Saya sendiri melakukan solusi nomor 5 pada beberapa tulisan saya semisal:

  1. Panduan Googling: https://malsasa.wordpress.com/2013/05/26/googling-pun-butuh-kemampuan/; saya akan berikan kepada penanya yang saya nilai belum bisa googling (menanyakan pertanyaan berulang, yang menanyakan pertanyaan remeh, yang kesulitan menyelesaikan suatu masalah sepele, atau yang sudah berulang kali mengalami masalah berbeda tetapi masih juga belum bisa memecahkan masalah sendiri).
  2. Panduan Pengaturan Repo Ubuntu: https://malsasa.wordpress.com/2013/10/15/daftar-lengkap-repositori-lokal-ubuntu-12-04-plus-cara-mengaturnya/; saya akan berikan kepada penanya yang mengalami error pada sources.list, atau yang bertanya soal repo Ubuntu.
  3. Panduan apt-get: https://malsasa.wordpress.com/2014/01/27/panduan-ringkas-apt-get/; saya akan berikan kepada penanya yang ingin solusi offline untuk instalasi aplikasi, atau penanya yang bermasalah dengan apt, atau penanya yang sengaja tanya bagaimana cara menggunakan apt.
  4. Panduan Etika dan Teknik Menjadi Pemula: https://malsasa.wordpress.com/2014/01/05/how-to-become-a-newbie/; saya akan berikan kepada penanya yang “membuat masalah” di dalam forum.
  5. Panduan Menjadi Penjawab: https://malsasa.wordpress.com/2014/02/22/indonesia-masih-dalam-masa-transisi/; saya akan berikan pada pertanyaan yang mengarah kepada flame antara senior dan junior karena masalah pertanyaan berulang.
  6. Panduan apt-web: https://malsasa.wordpress.com/2013/10/29/tutorial-menggunakan-apt-web/; saya akan berikan kepada penanya masalah instalasi Wine (atau aplikasi lain) secara offline atau yang sengaja bertanya mengenai apt-web.

Anda bisa melakukan hal yang sama untuk bidang-bidang lain yang dirasa belum ada tutorialnya dalam Bahasa Indonesia.

7. Hambatan-Hambatan

  1. Hambatan pertama dan terutama adalah persepsi. Setiap orang menyangka menulis tutorial itu harus megah semegah skripsi. Harus dikerjakan selama berhari-hari. Hanya bisa dikerjakan oleh pengguna ahli. Intinya, persepsi yang mengakar di benak semua orang adalah menulis tutorial itu sulit.
  2. Hambatan kedua adalah adanya kesadaran yang minim mengenai pentingnya tutorial untuk orang lain.
  3. Hambatan ketiga adalah minimnya keberadaan pihak yang mengajak untuk menulis tutorial.
  4. Banyak orang menyangka sudah cukup banyak tutorial di Google.

8. Kontra Hambatan

  1. Tutorial itu tidak harus megah. Catatan sederhana Anda untuk menyelesaikan 1 masalah sudah disebut tutorial. Cukup pikirkan saja nanti ada yang terbantu dengan membaca tutorial Anda.
  2. Saya sendiri adalah pengguna Ubuntu. Saya membayangkan saat ini juga menginstal CentOS. Saya membayangkan, tentu saya akan kebingungan mengenai apa yang harus saya lakukan pertama kali setelah menginstal CentOS. Saya tidak pernah menggunakan CentOS sebelumnya (inilah perasaan mereka yang baru kenal Linux atau yang baru menginstal distro). Jika saya bisa menemukan tutorial dasar CentOS setelah menginstal (sebagaimana contoh di atas) maka itu akan sangat membantu saya. Terlebih lagi, hal itu meringkas waktu saya dan bisa jadi dengan itu saya bisa menulis tutorial yang membahas CentOS dari sisi lain. Efeknya beruntun, sehingga nantinya orang lain bisa mendapatkan menfaatnya juga. Hal ini berlaku tidak hanya pada Centos, tetapi juga seluruh aspek FOSS2 yang lain.
  3. Tulis tutorial sebisa Anda lalu ajak orang lain menulis dengan lebih baik.
  4. Ada benarnya tetapi tidak selalu. Ada tutorial-tutorial tertentu yang justru lebih baik kalau ada dalam Bahasa Indonesia. Misalnya tutorial mengganti pengaturan repo untuk distro tertentu, panduan ringkas package manager distro tertentu (misalnya apt), panduan instalasi dual boot, panduan manajemen partisi, pengantar pemrograman, dan hal-hal krusial lainnya. Ini dikarenakan ada 2 klasifikasi dalam jenis tutorial itu sendiri, yakni tutorial pengantar (semacam yang saya sebut tadi) dan tutorial lanjutan setelah pengantar. Untuk masyarakat kita, prioritas tertinggi berada pada tutorial pengantar. Sementara masih sangat banyak tutorial pengantar yang belum ada dalam Bahasa Indonesia sedangkan minat masyarakat awam terhadap Linux makin bertambah.

9. Contoh-Contoh Tutorial 

Untuk memperkuat esai ini, saya telah mengumpulkan beberapa tutorial karya warga KPLI yang saya nilai bagus dan sesuai maksud esai ini. Tutorial yang saya sebutkan di sini adalah catatan pribadi mengenai bagaimana si penulisnya menyelesaikan 1 masalah di Linux.

  1. Apa Itu Quassel dan Bagaimana Menggunakannya, Bagus Aji Santoso, http://www.poss-upi.org/2014/05/chit-chat-di-irc-bersama-quassel/. Sisi positif artikel ini ada pada kesederhanaannya yang hanya sekadar pendapat pribadi mengenai Quassel. Ini terlihat pada kalimat “…namun pada artikel ini saya hanya akan menunjukan dua kelebihan Quassel yang saya ketahui.” Perhatikan bahwa tulisan yang dimulai dari pendapat dan pengalaman pribadi seperti ini bisa berkembang jadi satu tutorial utuh yang sangat megah.
  2. Panduan Instalasi Ubuntu, Nur Hasan, http://nurhasan257.wordpress.com/2014/03/29/panduan-instalasi-linux-ubuntu/. Sisi positif tulisan ini ada pada kesederhanaannya sebagai sebuah catatan pribadi. Ini terlihat dari kalimat “Menurut pendapat saya, jawabanya adalah…”. Penulisnya sengaja menambahkan banyak skrinsot bahkan memberi penekanan pada bagian-bagian Windows yang perlu diklik untuk membuat partisi. Tutorial semacam itu langka karena membutuhkan keseriusan untuk membuat skrinsot dan menggambar penekanan. Tulisan ini diantarkan dengan bahasa yang sangat santai dan pemula betul sehingga sesuai dibaca oleh khalayak. Nilai plus patut diberikan untuk skrinsot yang banyak dan berurutan. Nilai plus berikutnya patut diberikan untuk peringatan penting yang ditekankan pula oleh penulisnya “Sebelum kita menginstallnya, hal yang harus dilakukan adalah menyiapkan hardisk kosong”. Walaupun suatu tulisan asalnya pendapat pribadi, tetapi ia bisa berkembang jadi bagus seperti tulisan ini.
  3. Memperkenalkan Ubuntu dan Unity, Ridwan Fajar, http://ridwanbejo.wordpress.com/2014/05/09/mengenal-ubuntu-14-04-bagian-ke-1/. Tulisan ini langka karena tidak banyak orang berpikir ke arah ini. Sisi positif tulisan ini adalah kesederhanaannya sebagai pendapat pribadi. Ini jelas termaktub dalam pernyataan penulisnya sendiri “Dari hal yang paling sederhana sekali, saya ingin menunjukkan sebuah fitur penting ketika menggunakan Ubuntu 14.04 ini, yaitu Dash Menu…”. Tulisan ini menjelaskan bagaimana cara memakai Unity Desktop di Ubuntu. Secara langsung, tulisan ini juga menjelaskan bagaimana menggunakan Ubuntu. Tulisan ini mengumpulkan dua kebaikan dalam 1 wadah, yakni menjelaskan A dan menjelaskan B sekaligus.
  4. Ulasan Kingsoft Office, Himawan Mahardianto, http://www.newbienote.com/2014/03/kingsoft-office-alternatif-aplikasi.html. Sisi positif tulisan ini ada pada sesuatu yang dibahas. Tulisan ini membahas Kingsoft Office, aplikasi office Linux yang sangat mirip Microsoft Office 2007/2011. Tampaknya sang penulis sadar betul bahwa yang diperlukan pengguna itu justru aplikasi office. Ini terlihat dari kalimat pertamanya “Ketika pengguna awam beralih dari sistem operasi Microsoft Windows ke Ubuntu, biasanya yang dicari adalah aplikasi padanan yang biasanya ia gunakan di Windows”. Kalaupun mungkin sang penulis tidak menyadarinya, tetapi dia sebetulnya memerhatikan sisi psikologis pengguna dengan kata yang saya garisbawahi. Tulisan ini pun berisi pendapat pribadi yang tersebar di dalamnya. Nilai plus patut diberikan pada skrinsot-skrinsot beruntun yang diberikan. Nilai plus berikutnya ada pada bentuk kerendahan hati pada kalimat “…anda tinggal klik Unity Bar yang ada di pojok kiri atas, kemudian ketik…”. Tidaklah banyak orang sabar mengajari orang lain sampai tingkat kedetailan demikian.
  5. Cara Instalasi GNOME Classic, Faisal Gifars, http://garismasuk.blogspot.com/2014/05/cara-install-classic-desktop-di-ubuntu.html. Sisi positif tulisan ini ada pada kesederhanaannya sebagai catatan biasa. Tulisan ini adalah yang paling singkat dan sederhana dari sekian contoh yang saya bawakan. Walaupun sederhana, tetapi tulisan ini sudah lengkap karena skrinsot terakhirnya. Banyak pengguna baru bingung cara masuk desktop kedua hanya gara-gara ketiadaan gambar penjelas seperti gambar terakhir di sini.

10. Penutup 

Haruskah menulis tutorial untuk seluruh permasalahan? Tidak. Lakukan semampu Anda saja. Bantu orang lain semampu Anda. Tidak perlu membebani diri. Semoga tulisan ini bermanfaat.

 

 


 

2 Free/Open Source Software.


Filed under: Linux

Aplikasi Editor untuk LaTeX di Linux

$
0
0

Bismillahirrahmanirrahim.

texmaker1Ketertarikan saya kepada LaTeX bermula sejak pertama mengenal Linux yakni sejak melihat dokumen-dokumen PDF yang dihasilkan dengan LaTeX. Kesan kala itu hanya rapi, rapi, dan rapi. Ketertarikan kedua saya dimulai ketika melihat Texmaker pada komputer Windows. Texmaker sungguh editor yang sangat keren. Kemudian saya melihat salah satu laman Stackexchange yang mendiskusikan LaTeX Editor, dan gara-gara itu untuk pertama kalinya saya berani menggunakan LaTeX. Saat itu saya mencoba Gummi di Ubuntu. Beberapa bulan berselang, saya beralih ke Texmaker, impresi pertama saya. Lalu saat ini rencana B saya ketika pertama kali membaca laman Stackexchange tersebut akhirnya saya laksanakan. Apa itu rencana B? Itu adalah menerjemahkan laman tersebut ke dalam Bahasa Indonesia sebagaimana yang pernah saya lakukan dengan tutorial Terminal dari komunitas Mint. Inilah terjemahan dari big list http://tex.stackexchange.com/questions/339/latex-editors-ides. Seluruh skrinsot di sini diambil dari laman tersebut kecuali beberapa yang saya sebutkan lain. Semoga tulisan ini bermanfaat.

1. Emacs dengan AUCTex

  • OS: Windows, Mac (termasuk fork Aquamacs), Unix
  • Lisensi: Free software (GPL)
  • Bahasa: de, dk, fr, is, it, jp, nl, pl, se, sk didukung oleh AUCTeX
  • Unicode: Ya, sejak Emacs 23
  • RTL/bidirectional support: sejak Emacs 24, melalui bidi-mode
  • % !TeX directives: Tidak, tetapi Emacs memiliki beberapa realisasi untuk file local variables
  • Syntax highlighting: Ya, bisa diatur lewat customize and Elisp
  • Code completion: Ya, via Emacs Predictive Completion, yang mendukung AUCTeX tanpa konfigurasi lebih lanjut
  • Code folding: Ya
  • Spell checking: Ya
  • SyncTeX: Ya
  • Built-in output viewer: Ya
  • Project management: org-modereftex-mode

Emacs adalah salah satu editor tertua, yang mendukung mode penyuntingan LaTeX, ConTeXt, dan Plain TeX, AUCTeX dan paket untuk mengelola kode-kode sumber, RefTeX.

emacs (Di skrinsot ini, mode visual-line-mode diaktifkan. Di dalam mode ini, baris-baris yang lebih panjang dari jendela akan dipotong per kata. Line break tidak ditambahkan kepada berkas sumber.)

RefTeX membuat seluruh referensi Anda mudah ditemukan layaknya C-c <key>, baik untuk  BibTeX maupun biblatex, dan ia memiliki pintasan (shortcut key) pula untuk bernavigasi di antara bagian-bagian dokumen dengan menggunakan C-c =: secara default.

emacs2

(Tema warna dapat dikonfigurasi sebebas mungkin)

AUCTeX mendukung multi-file parsing, sehingga dokumen-dokumen besar dengan perintah \input atau \include mudah dikompilasikan dengan C-c C-c pada berkas yang bersangkutan. Tidak perlu lagi kembali ke master file hanya untuk mengompilasi.

Fitur AUCTeX preview-latex adalah pratayang WYSIWYG untuk rumus-rumus.

Fitur-fitur terkemuka Emacs:

  • Menggunakan table-insert bersama dengan fungsi table-generate-source dan table-recognize-* untuk membuat tabel-tabel dengan mudah.
  • Banyak sekali shortcut key tersedia
  • Terdokumentasi dengan baik, baik Emacs itu sendiri melalui manual Emacs dan manual AUCTex Texinfo, maupun melalui banyak buku dalam beberapa bahasa.

2. Vim dengan LaTeX-suite

  • OS: Windows, Mac, Linux, BSD, dan lain-lain
  • Lisensi: Open Source Charityware
  • Bahasa: ?
  • Unicode: Ya
  • RTL/bidi support: sebagian
  • % !TEX directives: Tidak, tetapi memiliki modelines
  • Syntax Highlighting: Ya, bisa dikustomisasi
  • Code Completion: Ya (menggunakan Omni Completion, bisa diperluas dengan plugin SnipMate)
  • Code Folding: Ya
  • Spell Checking: Ya
  • SyncTeX: Ya, lihat pertanyaan ini
  • Built-in Output Viewer: Tidak
  • Project Management: ?

Jika Anda benar-benar kelas berat, Anda akan selalu menggunakan Vim. Ada banyak macro yang dibuat untuk Vim untuk membantu menyunting berkas LaTeX.

vim

Anda dapat melakukan word/command completion melalui <C-P> dan <C-N>, untuk memilih saran sebelumnya atau sesudahnya.

Ada versi Vim dengan menu-menu grafis, yang bernama gVim. Jika ia digunakan dengan Latex-suite, maka banyak perintah TeX ditampilkan di menubar untuk mempercepat penyuntingan.

Fitur-Fitur

Vim juga memiliki fitur code-foldingkarena paket vim-late menawarkan code-folding otomatis. Folding juga bisa dilakukan secara manual berdasarkan kunci (misalnya {{{ dan }}}) untuk membuka dan menutup fold otomatis. Contoh folds bisa dilihat pada gambar berikut:

vim2

Fitur Vim masih sangat banyak. Namun di dalam tulisan ini, yang bisa disebutkan adalah:

VIM

  • Regex
  • Perintah dan pintasan kibor yang powerful
  • Sangat bisa dikustomisasi
  • Smart Indenting

LaTeX-Suite

  • Panggil cepat kompiler dengan \ll; tayangkan hasil dengan \lv
  • Environments dapat diakses dengan tiga huruf dalam insert mode:
    • EEQ = environment persamaan
    • EFI = environment gambar (figure)
  • Place-holders (<+text+>) dapat dilompati dengan Ctrl-J tanpa meninggalkan insert mode
  • Inverse searching: klik ganda penampil PDF dan Anda lompat ke baris kode sumber tex yang bersesuaian

3. Texmaker — 

  • Platforms: Windows XP/Vista/7/8, OS X 10.5+, Linux
  • License: GPL, gratis
  • Languages: cs, de, el, en, es, fa, fr, gl, hu, it, nl, pl, pt, pt (bra), ru, se, sr, zh (cn), zh (tw)
  • Unicode: Ya
  • RTL/bidi: ?
  • % !TEX directives: Tidak
  • Syntax Highlighting: Ya, bisa dikustomisasi
  • Code Completion: Ya, bisa dikustomisasi
  • Code Folding: Ya
  • Spell Checking: Ya
  • SyncTeX: Ya
  • Built-in Output Viewer: Ya, mendukung PDF
  • Project Management: ?

texmaker

(skrinsot Texmaker di atas adalah milik penerjemah)

texmaker2

Code completion yang bisa dikustomisasi

texmaker3

Rectangular block selection

Catatan:

Editor TeXstudio muncul sebagai fork dari Texmaker dan asalnya dinamai TexMakerX.

4. TeXworks — 

  • OS: Windows XP/Vista/7/8, OS X, Linux
  • Lisensi: GPL
  • Bahasa: en, af, ar, ca, cs, de, fa, fo fr, it, ja, nl, ko, pl, pl, ru, sl, tr zh
  • Unicode: Ya
  • RTL/bidi: Ya
  • % !TEX directives: Ya
  • Syntax Highlighting: Ya, regex-based
  • Code Completion: Ya, bisa dikustomisasi berdasarkan daftar ‘known entry’
  • Code Folding: Tidak
  • Spell Checking: Ya, tetapi harus diinstal sendiri
  • SyncTeX: Ya
  • Built-in Output Viewer: Ya, PDF (Poppler-based)
  • Project Management: Tidak

Di Windows dan Linux, saya menggunakan TeXworks, yang menyediakan jendela editor kode dan pratayang. Klik pada pratayang dokumen akan langsung menandai kode LaTeX yang bersesuaian.

texworks

5. Kile — 

  • OS: Linux, Windows1 (XP, Vista, 7)
  • LIsensi: GNU GPL 2
  • Bahasa: bg, bs, ca, cs, da, de, el, en_GB, eo, es, et, fi, fr, ga, gl, hi, hne, hu, it, ja, kk, lt, mai, ms, nb, nds, nl, nn, pl, pt, pt_BR, ro, ru, sk, sv, tr, ug, uk, zh_CN, zh_TW
  • Unicode: Ya
  • RTL/bidi: Ya
  • % !TEX directives: Tidak2
  • Syntax Highlighting: Ya, bisa dikustomisasi
  • Code Completion: Ya, bisa dikustomisasi
  • Code Folding: Ya
  • Spell Checking: Ya
  • SyncTeX: Ya (namun flag -synctex=1 harus ditambahkan secara manual pada build engine)
  • Built-in Output Viewer: Terbatas3 (pratayang PNG dari sebagian kode – misalnya environment yang dipilih – dikonversikan dari DVI/PS/PDF)
  • Project Management: Ya

kile-hapus

1 Cara instalasi dapat ditemukan di sini. Versi Windows dari aplikasi-aplikasi KDE tidak terselesaikan, jadi mungkin sebagian dari mereka tidak stabil.

2 Walaupun Kile tidak memiliki !TeX directives untuk mendefinisikan peralatan kompilasi dan lain-lain, Kile masih memiliki “magic comments”, seperti Latexila dan TeXStudio. Yang dimaksud adalah %TODO and %FIXME, yang akan tampak pada structure view, untuk menambahkan catatan dalam kode, serta %BEGIN/%END untuk mendefinisikan area yang bisa di-fold dalam kode.

3 Sebuah built-in output viewer sempurna akan tersedia di Kile 3 dan sudah bisa digunakan dengan mengompilasi git master branch milik Kile.

6. TeXstudio — 

(sebelumnya TexMakerX)

  • OS: Windows XP/Vista/7, OS X, Linux, FreeBSD
  • Lisensi: GPL v2
  • Bahasa: cs, de, en, es, fr, hu, ja, pt_BR, zh_CN
  • Unicode: Ya
  • RTL/bidi: ?
  • % !TeX directives: Ya
  • Syntax Highlighting: Ya, bisa dikustomisasi
  • Code Completion: Ya, bisa dikustomisasi dan auto-customized
  • Code Folding: Ya
  • Spell Checking: Ya
  • SyncTeX: Ya
  • Built-in Output Viewer: Ya, mendukung PDF
  • Project Management: Ya

Saya merekomendasikan TeXstudio sebagai fork yang menarik dari Texmaker yang saya rasa lebih nyaman dan bisa dikustomisasi.

Berikut ini skrinsot TeXStudio.

texstudio

Fitur-fitur lainnya:

  • cross-platform
  • dukungan penulisan (incremental searchfolding, navigasi, auto-completioncustom macros)
  • syntax highlighting
  • inline interactive spell-checking
  • mendukung program-program LaTeX utama, termasuk tikz, pstricks, dan lain-lain
  • multi-views: math, structure
  • dukungan SVN
  • bisa berjalan via USB flash disk
  • mendukung synctex
  • termasuk penampil PDF, tetapi masih bisa dikonfigurasi untuk memakai viewer eksternal (juga dengan synctex)
  • developer dan komunitas yang sangat aktif dan responsif

7. LyX

OS: Windows, Mac, and Linux
Lisensi: Open Source


Saya menggunakan LyX dan saya suka. Dari situs resminya:

LyX is a document processor that encourages an approach to writing based on the structure of your documents (WYSIWYM) and not simply their appearance (WYSIWYG). LyX combines the power and flexibility of TeX/LaTeX with the ease of use of a graphical interface. This results in world-class support for creation of mathematical content (via a fully integrated equation editor) and structured documents like academic articles, theses, and books. In addition, staples of scientific authoring such as reference list and index creation come standard. But you can also use LyX to create a letter or a novel or a theatre play or film script. A broad array of ready, well-designed document layouts are built in.

Sangat intuitif dan ramah pengguna, dan bisa impor/ekspor ke LaTeX.

Terlalu banyak ftur untuk disebutkan, tetapi saya akan jelaskan satu yang saya rasa paling bagus: Jika Anda ingin menulis rumus matematika “2-dimensional”, LyX cocok untuk itu. Saya sudah menggunakan Lyx selama 10 tahun. Beralih dari AUCTeX baru-baru ini, tetapi saya masih menggunakan LyX ketika perlu menulis kode LaTeX untuk rumus matematika yang rumit.

lyx

8. Sublime Text dengan LaTeX Plugin

OS: Windows, Mac, Linux


Ini adalah editor yang sederhana tetapi powerful. Sublime Text mirip Notepad++, tetapi tersedia untuk banyak platform dan sangat mudah diatur untuk LaTeX dengan plugin LaTeXTools atau LaTeXing —keduanya tersedia dari Package Control. Sublime juga mirip TextMate, tetapi dikembangkan lebih aktif dan memiliki komunitas yang besar yang menyediakan plugin-nya. Sublime juga lebih cantik daripada keduanya.

Perhatikan bahwa ini adala software berbayar, dan meminta lisensi selama periode evaluasi (seharga USD 70). Dimungkinkan untuk menjalankan Sublime Text tanpa membeli lisensi, tetapi Anda akan terus diingatkan bahwa Anda menggunakan salinan yang belum diregistrasikan.

Sublime Text memiliki peralatan yang canggih untuk mengetik, yang Anda tidak mau tinggalkan ketika bekerja dengannya:

  • multiple cursors
  • go-to ke mana saja
  • snippets
  • incremental find
  • manajemen proyek
  • build-systems yang banyak

dan banyak lagi (lihat Perfect Workflow in Sublime Text 2). Skrinsot di bawah juga menampakkan fiturnya untuk menemukan sitas-sitasi (citations) dari BibTeX.

Sublime Text ini editor yang hampir sempurna, dengan potensi yang hampir tidak terbatas. Daftar fiturnya panjang sekali. Instal Package Manager, dan paket-paket tambahan dari repositori bisa dipasang dalam beberapa detik saja.

  • OS: Windows, Unix
  • Lisensi: Free to try, free to buy
  • % !TEX directives: Ya
  • Syntax highlighting: Ya
  • Code completion: Ya
  • Code folding: Ya
  • Spell check: Ya, baik built-in maupun dengan plugin
  • SyncTeX: Ya
  • Built-in output viewer: Tidak
  • Project management: Ya

sublimetext1

9. TeXlipse

OS: Windows, Mac, Linux and others (Java based)
Lisensi: Open Source


Saya telah berbahagia menggunakan TeXlipse di Eclipse sejak lama, ia memiliki code completion terintegrasi (termasuk entri-entri BibTeX), templat-templat yang mudah dikustomisasi, panel outline, dan secara langsung ia terintegrasi dengan Eclipse itu sendiri yang secara otomatis memiliki shortcuts, version control, dan lain-lain.

Ada plugin penampil PDF untuk Eclipse bernama Pdf4Eclipse dengan dukungan SyncTeX, yang mendukung pencarian maju/mundur di dalam dokumen LaTeX. Karena TeXlipse me-rebuild kode-kode LaTeX secara otomatis (di background) setelah sekali disimpan, maka kode dan pratayang dari dokumen selalu disinkronkan.

10. Gummi

OS: Linux (tersedia versi unstable untuk Windows)
Lisensi: Open Source


Emacs bagus, tetapi yang seringkali saya pakai adalah Gummi. Ia memiliki panel pratayang yang sangat berguna untuk mengetahui kesalahan sintaks dan kesalahan format sesegera mungkin. Plus, ketika Anda menyimpan dokumen LaTeX ia akan menyimpan PDF secara otomatis. Fitur lainnya termasuk peralatan bantuan penulisan matriks, memasukkan gambar, dan sitasi (citation).

Tambahan dari penerjemah: Gummi sangat saya rekomendasikan untuk setiap orang yang baru memulai LaTeX. Alasan rekomendasi adalah 1) pratayang langsung yang otomatis 2) antarmuka yang sederhana dan jelas.

gummi

11. LaTeXila

  • OS: Linux
  • Lisensi: Open source
  • Unicode: Ya

LaTeXila adalah lingkungan LaTeX terintegrasi untuk GNOME. Ia memiliki antarmuka yang bagus dan jelas. Ia tersedia di Ubuntu Software Center. Anda dapat melihat preview dari apa yang Anda tulis kapanpun Anda mau.

LaTeXila memiliki komentar-komentar “ajaib” untuk membuat todonotes, yang akan tayang di panel struktur di sebelah kiri. Komentar itu adalah %TODO dan %FIXME, yang harus diikuti oleh teks (jika tidak ada teks, maka tidak ada yang tayang di panel).

latexila

12. Geany with GeanyLaTeX

OS: Windows, Mac, Linux dan lain-lain
Lisensi: Open Source


Editor bagus lainnya adalah Geany. Software ini memiliki plugin untuk LaTeX. Plugin ini di-maintain oleh salah satu developer utama Geany sendiri. Plugin ini memiliki wizard untuk dokumen LaTeX baru, autocompletion, insert environment dengan mudah, dan tentu terdokumentasi dengan baik.

insert_char_tn

(skrinsot diambil dari laman resmi GeanyLaTeX)

Penutup

Tulisan terjemahan ini tidak ditutup kemungkinannya untuk direvisi pada masa depan. Terjemahan ini sudah dibuat semirip mungkin dengan tulisan aslinya secara struktur. Namun tentu masih terdapat kesalahan dan sesuatu yang mengharuskannya berbeda. Jika Anda memiliki analisis kebahasaan yang tajam untuk terjemahan ini, saya persilakan memberi kritik melalui komentar. Saya mohon maaf jika terdapat kesalahan. Semoga tulisan ini bermanfaat bagi Anda.


Filed under: Linux

Kesalahan-Kesalahan Umum Instalasi Linux Dualboot

$
0
0

Bismillahirrahmanirrahim.

Tulisan ini tersedia dalam PDF.

distributor-logo-ubuntuTulisan ini ditujukan sebagai peringatan kepada setiap pemula yang ingin menginstal Linux. Tulisan ini dibuat karena keprihatinan penulis melihat banyaknya orang melakukan instalasi sendiri lalu mengalami kecelakaan instalasi dalam bentuk hilangnya seluruh data. Lebih parah lagi jika kemudian bertanya kepada komunitas soal data recovery, yang hampir mustahil. Hal tragis tersebut ingin penulis minimalisir atau hilangkan kalau bisa dengan tulisan ini. Semoga tulisan ini bermanfaat.

Isi Tulisan ini

  1. Kaidah Umum
  2. Hambatan Umum
  3. Kesalahan-Kesalahan
  4. Solusi
  5. Kata Kunci Google
  6. Beberapa Tutorial Instalasi Dualboot

1. Kaidah Umum

  1. Pengguna komputer di Indonesia tidak pernah menginstal sendiri OS pada komputernya.
  2. Pengguna komputer di Indonesia biasa menyerahkan instalasi OS kepada teknisi atau penjual komputer.
  3. Pengguna komputer di Indonesia tidak berpengalaman menginstal OS sendiri.

2. Hambatan Umum

  1. Memiliki Windows di komputer yang sama.
  2. UEFI.
  3. Ketiadaan pembimbing langsung yang berada di tempat.
  4. Menginstal suatu OS butuh ilmu dan pengalaman.

Jika Anda memerhatikan kebanyakan kecelakaan instalasi di Indonesia, itu semua berpangkal kepada salah pemartisian. Semua kesalahan pemartisian berpangkal pada keberadaan OS lain yang ada di komputer yang sama. Dalam hal ini, hampir bisa dipastikan OS tersebut ialah Windows. Seharusnya instalasi Linux itu sangat mudah. Namun karena di dalam komputer yang sama sudah ada Windows-lah instalasi Linux menjadi susah dan berisiko. Seandainya Windows tidak ada, maka Anda tidak akan takut kehilangan data atau salah membuat partisi. Permasalahan berikutnya adalah semua pengguna tidak mau kehilangan Windows. Maka jika demikian, seharusnya setiap pengguna mau mencari tutorial dualboot supaya tidak ada lagi kecelakaan instalasi terjadi.

3. Kesalahan-Kesalahan

  1. Tidak mau banyak membaca tutorial instalasi Linux.
  2. Tidak mau memahami sungguh-sungguh semua tutorial instalasi yang sudah diperoleh.
  3. Lupa kaidah umum di atas.
  4. Tidak tenang.
  5. Terburu-buru.
  6. Mengantuk.
  7. Menganggap instalasi OS baru itu mudah.
  8. Menganggap instalasi OS baru bisa dilakukan tanpa belajar.
  9. Menganggap instalasi OS baru itu tidak berisiko sama sekali.
  10. Tidak tahu UEFI.
  11. Tidak tahu kalau partisi yang sudah dibuat bisa tidak terlihat saat live session Linux.
  12. Tidak tahu aplikasi-aplikasi pembakar ISO Linux seperti Unetbootin, Rufus, YUMI, LiLi, dan lain-lain.
  13. Tidak tahu kalau Linux bisa dibakar ke flash disk tanpa perlu CD.
  14. Tidak punya keberanian.
  15. Melakukan instalasi tanpa tahu sedikit pun apa itu Install Alongside Windows.
  16. Menginstal Windows setelah Linux.
  17. Tidak memahami pentingnya bootloader.
  18. Tidak melakukan backup.

Seorang pengguna Linux yang baik tidak memiliki kesalahan-kesalahan di atas. Satu kesalahan di atas saja bisa mengakibatkan semua data terhapus. Lalu bagaimana jika seseorang memiliki semuanya? Tentunya wajar banyak keluhan data hilang di komunitas karena banyak pemula masih memegang adat lamanya (baca: terbiasa diinstalkan oleh orang lain) tanpa mau belajar. Maka belajar terlebih dahulu adalah sebuah keharusan. Jangan terburu-buru. Jangan terburu-buru.

4. Solusi

  1. Kumpulkan tutorial dualboot sebanyak mungkin.
  2. Baca semuanya.
  3. Pahami semuanya.
  4. Backup semua data penting.
  5. Minta orang yang berpengalaman instal Windows/Linux untuk menemani.
  6. Lakukan instalasi.
  7. Jangan melompati satu langkah pun.
  8. Segala risiko adalah milik Anda.

Mengapa saya menawarkan solusi sepanjang ini? Karena instalasi OS itu berisiko tinggi. Saya sering mendapati keluhan hilangnya data (tidak jarang hilang total) karena si penginstal tidak paham metode instalasi OS. Saya juga sering mendapati pertanyaan instalasi Linux, yang pelakunya (saya lihat) tidak membaca tutorial sedikit pun dan tidak memahaminya. Sepadan dengan konsekuensi yang mungkin terjadi, maka saya harus memberi solusi yang panjang seperti ini. Janganlah Anda mengadu kepada siapa pun di komunitas jika data Anda hilang. Tidak ada yang mampu mengembalikannya. Mencegah lebih baik daripada mengobati.

Catatan Penting: Anda sebaiknya memiliki waktu luang yang cukup untuk meminimalisir semua kesalahan. Tanpa menyediakan waktu, Anda tidak akan belajar. Tanpa belajar, Anda akan gagal. Terima kasih untuk kang pingsut (rendezvous)  yang telah memberikan paragraf ini di kanal #ubuntu-indonesia (http://ubuntu-id.rezhajulio.web.id/29-05-2014/#log-[21:42:11]).

5. Kata Kunci Google

Gunakan contoh-contoh kata kunci berikut untuk mencari tutorial. Setelah dibuka, simpan halaman yang ditemukan. Gantilah kata kunci ubuntu berikut dengan nama distro Anda.

  1. tutorial instalasi dualboot ubuntu windows 7
  2. tutorial instalasi dualboot ubuntu windows 8
  3. tutorial instalasi ubuntu dualboot windows xp
  4. tutorial instalasi ubuntu dengan uefi
  5. menonaktifkan uefi instal ubuntu
  6. memperbaiki bootloader easybcd windows ubuntu
  7. memperbaiki grub bootloader rusak
  8. instal ulang grub bootloader ubuntu
  9. backup data windows ke dvd
  10. backup data windows ke hard disk eksternal
  11. apa itu install alongside windows ubuntu

6. Beberapa Tutorial Instalasi Dualboot

Berikut ini contoh beberapa tutorial instalasi dualboot Linux yang sengaja saya cari dan pilihkan untuk Anda. Silakan setelah ini Anda mencari sendiri tambahan yang lain.

6.1 Bahasa Indonesia

  1. http://nurhasan257.wordpress.com/2014/03/29/panduan-instalasi-linux-ubuntu/
  2. http://bojalinuxer.blogspot.com/2010/06/cara-menginstal-ubuntu-dan-windows-7.html
  3. http://www.kangarif.com/2013/01/cara-dual-boot-linux-windows-dengan-mudah.html (kaidah-kaidah dasar)
  4. http://www.kangarif.com/2013/01/cara-install-linux-mint-13-kde.html (lanjutan dari nomor 3)
  5. http://www.belocus.com/2012/10/install-kubuntu-1210-quantal-quetzal.html
  6. http://hydriet.blogspot.com/2012/12/cara-install-linux-ubuntu-dual-boot.html
  7. http://winpoin.com/cara-dual-boot-windows-8-1-update-dengan-ubuntu-14-04-lts/
  8. http://blog.taryo.net/2014/04/install-ubuntu-14.04-lts-dan-windows-8.1.html

6.2 Bahasa Inggris

  1. https://help.ubuntu.com/community/WindowsDualBoot
  2. http://www.ubuntu.com/download/desktop/install-ubuntu-desktop
  3. http://www.everydaylinuxuser.com/2013/09/install-ubuntu-linux-alongside-windows.html
  4. http://www.linuxbsdos.com/2014/02/01/dual-boot-windows-8-or-windows-7-and-ubuntu-13-10-with-ubuntu-on-a-btrfs-filesystem/
  5. http://www.liberiangeek.net/2012/04/dual-boot-windows-7-and-ubuntu-12-04-precise-pangolin/
  6. http://lifehacker.com/5403100/dual-boot-windows-7-and-ubuntu-in-perfect-harmony

Penutup

Tulisan ini mengambil istilah adat di atas dari seorang warga forum Ayo Belajar Linux yang bernama Baru Nyoba Linux Baru (Miftah, KPLI Tegal) dari percakapan IRC http://ubuntu-id.rezhajulio.web.id/22-05-2014/#log-[09:11:34]. Tulisan ini tidak ditutup kemungkinannya untuk direvisi. Penulis memohon maaf jika terdapat kesalahan di dalamnya. Semoga tulisan ini bermanfaat.


Filed under: Linux

Panduan Praktis Troubleshooting di Linux untuk Pemula

$
0
0

Bismillahirrahmanirrahim.

distributor-logo-ubuntuPanduan ini ditulis semata-mata untuk membimbing setiap pemula dalam hal menyelesaikan masalah di Linux. Panduan ini ditulis berdasarkan pengalaman pribadi dan bimbingan para senior di komunitas Ubuntu. Panduan ini diharapkan dapat memberikan sudut pandang yang paling jelas kepada pemula mengenai bagaimana troubleshooting dilakukan di Linux. Panduan ini dititikberatkan pada contoh, untuk memangkas waktu berpikir pembaca dan diperluas dengan definisi-definisi untuk memudahkan pencarian lebih lanjut. Semoga tulisan ini bermanfaat.

Rangkuman Cara Praktis Troubleshooting

  1. Salin tempel (copy-paste) pesan error ke Google.
  2. Identifikasi masalah.
  3. Analogi.
  4. Bertanya kepada ahlinya.

1. Copy-Paste Ke Google

Peringkat satu cara praktis troubleshooting di Linux dipegang oleh salin-tempel pesan error ke Google. Mengapa cara ini menempati peringkat satu? Karena mayoritas masalah di Linux telah memiliki dokumentasi troubleshooting masing-masing di Google. Anda tidak perlu memedulikan cara-cara lain jika Anda telah memiliki metode ini. Cepat, praktis, dan tepat sasaran. Itulah sebabnya dia menempati peringkat satu.

Contoh:

  1. Masalah: Failed to fetch http://kartolo.sby.datautama.net.id/ubuntu/pool/universe/y/yum/yum_3.2.25-1ubuntu2_all.deb Temporary failure resolving ‘kartolo.sby.datautama.net.id’ Penyelesaian: salin-tempel ke Google.
  2. Masalah: dpkg: error processing samba4 (–configure): subprocess installed post-installation script returned error exit status 126 Penyelesaian: salin-tempel ke Google.
  3. Masalah: bash: cd: /hom: No such file or directory Penyelesaian: salin-tempel ke Google.
  4. Masalah: cobacoba: command not found Penyelesaian: salin-tempel ke Google.
  5. Masalah: E: Unable to fetch some archives, maybe run apt-get update or try with –fix-missing? Penyelesaian: salin-tempel ke Google.
  6. Masalah: dpkg: error: need an action option Penyelesaian: salin-tempel ke Google.
  7. Masalah: bagaimana cara menginstal font di ubuntu? Penyelesaian: salin-tempel pertanyaan itu ke Google.
  8. Masalah: bagaimana cara menginstal wine di ubuntu? Penyelesaian: salin-tempel pertanyaan itu ke Google.
  9. Masalah: bagaimana cara menggunakan wine di ubuntu? Penyelesaian: salin-tempel pertanyaan itu ke Google.
  10. Masalah: bagaimana cara shutdown ubuntu dengan gnome shell? Penyelesaian: salin-tempel pertanyaan itu ke Google.
  11. Masalah: bagaimana cara update archlinux? Penyelesaian: salin-tempel pertanyaan itu ke Google.
  12. Masalah: bagaimana konfigurasi squid untuk memblokir mp3? Penyelesaian: salin-tempel pertanyaan itu ke Google.

Catatan I: untuk contoh nomor 1, seringkali Anda tidak akan menemukan hasil pencarian Google karena kata kunci Anda terlalu spesifik. Solusinya, buang bagian pesan error yang terlalu spesifik (yakni URL menuju paket), sisakan bagian yang global.

Catatan II: googlingwalau terkesan gampang– juga butuh kemampuan. Anda butuh latihan yang banyak untuk bisa googling dengan baik. Bacalah panduan googling seperti ini. Perbanyak praktik supaya feeling Anda terlatih.

2. Identifikasi Masalah

Sebenarnya, langkah awal yang paling tepat untuk menyelesaikan masalah adalah dengan identifikasi masalah itu sendiri. Bagaimana Anda bisa selesaikan masalah tanpa tahu apa sebenarnya yang terjadi? Bagaimana Anda bisa selesaikan masalah tanpa tahu bagian mana yang salah? Identifikasi masalah dilakukan dengan mencocokkan kondisi-kondisi masalah yang terjadi dengan pengetahuan yang sudah dimiliki. Identifikasi masalah itu bergantung kepada ilmu pengguna sendiri –walau ia adalah inti dari troubleshooting– sehingga peringkatnya berada di bawah googling. Teknik identifikasi masalah yang baik (tepat) bisa Anda peroleh dengan banyak membaca tutorial dan artikel soal Linux. Kemampuan identifikasi masalah akan senantiasa bertambah atau berkurang tergantung kemauan belajar dari sang pengguna sendiri.

Contoh:

  1. Masalah: Linux dualboot Windows tiba-tiba gagal booting. Identifikasi: bagian mananya yang error? GRUB, Windows Bootloader, partisi rusak, atau masalah lain?
  2. Masalah: kecepatan unduh internet ketika menggunakan Linux kalah jauh dengan kecepatan ketika menggunakan Windows. Identifikasi: sudah adilkah parameter perbandingan yang dipakai? Berapa jumlah koneksi simultan yang dipakai di Windows dan di Linux? Server mana yang jadi tujuan unduhan? ISP apa yang digunakan? Kapan waktu terjadinya unduhan? Sudah samakah download manager yang dipakai?
  3. Masalah: aplikasi XYZ tidak bisa dibuka. Identifikasi: apa yang akhir-akhir ini Anda kerjakan sebelum XYZ tidak bisa dibuka? Sudahkah Anda mencari pesan error-nya dengan cara menjalankan XYZ via Terminal?
  4. Masalah: Linux HIJ tidak bisa diinstal. Identifikasi: bagaimana kronologi tidak bisa diinstalnya HIJ? Laptop merek/seri apa yang dipakai? Sudahkah Anda mencari tutorial instalasi HIJ sebanyak mungkin? Sudahkah Anda memahami tutorial yang Anda cari? Sudahkah Anda membuat partisi baru dengan benar? Pesan error apakah yang muncul ketika instalasi?
  5. Masalah: aplikasi QRS tidak bisa diinstal. Identifikasi: bagaimana cara Anda menginstalnya? Bagaimana kronologi instalasi Anda? Apa repo yang Anda pakai? Apakah versi distro Anda masih dalam masa dukungan atau tidak? Tutorial instalasi mana yang Anda gunakan?
  6. Masalah: Linux ABC saya crash. Identifikasi: apa yang akhir-akhir ini Anda lakukan sebelum terjadi crash? Apakah crash ini terjadi sejak awal atau baru-baru ini saja? Apa desktop environment Anda? Apakah Anda sudah mengonfigurasi driver NVIDIA/ATI (jika ada)? Apakah hard disk Anda masih dalam keadaan baik? Apakah Anda sudah membuat partisi swap secukupnya?
  7. Masalah: Linux DEF saya bekerja lambat. Identifikasi: bagaimanakah spesifikasi mesin Anda? Apa distro Anda? Apakah Anda sudah membuat partisi swap? Apakah desktop environment yang Anda gunakan? Aplikasi apa saja yang Anda jalankan ketika melambat? Sudahkah Anda memeriksa proses-proses dan daemon-daemon yang berjalan di latar belakang?
  8. Masalah: Linux GHI saya boros baterai. Identifikasi: apa distro Anda? Sudahkah Anda mengonfigurasi driver NVIDIA/ATI dengan benar (jika ada)? Sudahkah Anda mematikan salah satu driver jika VGA Anda bertipe Hybrid? Berapa sel baterai Anda? Berapa jam lama pemakaian normal baterai di Windows? Berapa jam di Linux? Sudahkah Anda mengonfigurasi power management di Linux?
  9. Masalah: printer errorIdentifikasi: apa merek printer Anda? Seri berapa? Sudahkah Anda instal driver-nya? Sudah benarkah konfigurasinya? Apa distro Anda?

Catatan I: semua contoh di atas adalah gambaran global. Praktik nyatanya bisa lebih sederhana atau sebaliknya.

3. Analogi

Analogi (kias/qiyas) bisa diartikan menganggap sama dua masalah yang berbeda tetapi memiliki pola yang mirip. Dengan cara ini, Anda dapat menyelesaikan masalah baru dari hasil penyelesaian masalah-masalah lama yang mirip. Bahkan, seseorang seringkali dapat menyelesaikan masalah yang sama sekali berbeda bidang hanya dengan analogi.

Contoh:

  1. Masalah: Ubuntu versi terbaru tidak bisa memutar MP3. Analogi: Ubuntu versi lama bisa memutar MP3 dengan terlebih dulu dipasangi paket tertentu -> Ubuntu versi baru berarti juga begitu.
  2. Masalah: Fedora juga. Analogi: berarti Fedora sama seperti Ubuntu -> cari cara instalasi paket tersebut untuk Fedora.
  3. Masalahdownload manager di Linux tidak secepat IDM di Windows. Analogi: di IDM di Windows, rahasia kecepatannya terletak pada pengaturan multiple connections number dengan nilai 16 -> berarti download manager di Linux harus diatur untuk memiliki nilai multiple connections number yang sama atau lebih besar. Bisa juga dengan sengaja mencari download manager yang mendukung multiple connections number.
  4. Masalah: Anda tidak tahu bagaimana menggunakan zypper di openSUSE. Analogi: di Ubuntu, komunitas banyak menulis soal apt-get cheatsheet (selembar PDF berisi kumpulan contoh perintah apt-get siap pakai) -> berarti seharusnya komunitas openSUSE juga punya -> cari dengan Google.
  5. Masalah: Anda juga tidak tahu cara menggunakan yum di Fedora, pacman di Archlinux, emerge di Gentoo, dan slackpkg di Slackware. Analogi: samakan kasus dengan nomor 4.
  6. Masalah: Anda tidak tahu bagaimana cara menggunakan Inkscape. Analogi: di Windows, banyak komunitas CorelDRAW yang mengajarkan desain vektor di Youtube -> berarti seharusnya di Linux komunitas Inkscape juga sama -> cari video pelajaran Inkscape di Youtube.
  7. Masalah: Anda juga tidak tahu bagaimana cara menggunakan GIMP, Krita, MyPaint, Pinta, dan Darktable. Analogi: samakan kasus dengan nomor 6.
  8. Masalah: mengerjakan LFS itu sangat sulit. Analogi: setiap kejayaan membutuhkan pengorbanan -> sama dengan pengerjaan LFS -> lakukan tanpa keluh kesah.

Catatan I: analogi itu tidak harus dengan dua hal yang sama bidangnya. Saya sering melakukan analogi dengan prakiraan pikiran developer. Misalnya, jika saya kesulitan menggunakan suatu aplikasi, saya cukup berpikir “seandainya saya adalah developernya, kira-kira tombol/item ini saya tujukan untuk…”. Dengan analogi kasar macam ini, saya mudah beradaptasi dengan software apa saja.

Catatan II: analogi prakiraan pikiran developer juga bisa dilakukan dengan berpikir “seandainya saya developernya, yang saya lakukan adalah…” ketika menemukan suatu error. Hal ini sangat membantu bagi saya untuk menyelesaikan masalah demi masalah.

Catatan III: Anda akan sering menemukan senior-senior mampu menjawab pertanyaan khusus distro tertentu dalam keadaan mereka sama sekali tidak menggunakan distro tersebut. Itu karena para senior telah menguasai analogi. Mereka telah memperoleh fondasi-fondasi dasar distronya sendiri, sehingga mampu menganalogikannya dengan sistem baru (karena semua distro memiliki garis besar yang sama). Jika Anda juga menguasainya, maka masalah untuk distro Anda sendiri tentunya lebih mudah diselesaikan. Inilah salah satu kekuatan analogi untuk troubleshooting.

4. Bertanya kepada Ahlinya

Jalan terakhir jika seluruh cara di atas gagal adalah bertanya kepada ahlinya. Cara ini patut menjadi pilihan terakhir setelah Anda berusaha semaksimal mungkin. Cara ini adalah yang paling manusiawi dari seluruh cara yang disebutkan. Orang yang paling mengetahui perihal suatu software adalah si developer software itu sendiri.

Contoh:

  1. Masalah: Ubuntu versi terbaru tidak memiliki antarmuka tampilan GNOME. Solusi: tanya kepada para senior di #ubuntu-indonesia.
  2. Masalah: Slackware tidak mengenali MicroSD merek XYZ Solusi: tanya kepada para senior di milis slackware-id.
  3. Masalah: Fedora tidak memiliki paket Kingsoft Office. Solusi: tanya kepada para senior di forum Fedora Indonesia atau Internasional.
  4. Masalah: apt-get tidak memiliki fitur XYZ Solusi: tanya kepada developer apt-get.
  5. Masalah: zypper mengalami bug XYZ Solusi: tanya kepada developer zypper.
  6. Masalah: yum mengalami error XYZ Solusi: tanya kepada developer yum.
  7. Masalah: slackpkg mengalami error ABC Solusi: tanya kepada developer slackpkg.
  8. Masalah: Ubuntu Tweak tidak bisa melakukan HIJKLMN Solusi: tanya kepada developer Ubuntu Tweak.
  9. Masalah: Blankon mengalami error OPQ Solusi: tanya kepada developer Blankon.
  10. Masalah: Libreoffice mengalami kegagalan RST Solusi: tanya kepada developer Libreoffice.
  11. Masalah: modem merek UVW seri 1234 tidak dikenali oleh Ubuntu Solusi: tanya kepada developer kernel Linux atau developer usb_modeswitch.
  12. Masalah: XDMAN tidak bisa ini dan itu Solusi: tanya developer XDMAN.

Catatan I: Anda tidak harus bertanya langsung kepada developer. Seringkali pengguna berpengalaman bisa ditanyai. Mereka banyak perkumpul di kanal-kanal IRC, salah satunya adalah #ubuntu-indonesia.

Catatan II: jika Anda mau bertanya kepada developer, gunakanlah email. Belajarlah menulis email pertanyaan yang baik. Jika email Anda jelek, apalagi jika ternyata banyak kesalahan ketiknya, janganlah Anda berharap email Anda akan dibaca. Bukan hanya Anda orang yang berkirim email dengan developer. Buatlah si developer merasa email Anda pantas diprioritaskan untuk dijawab.

Catatan III: jika Anda sadar bahwa developer itu sibuk, maka dengan mudah Anda akan sadar mereka sering membuat dokumen FAQ. Dokumen ini adalah kumpulan pertanyaan yang sering diajukan. Jadi carilah dahulu FAQ mereka karena besar kemungkinan pertanyaan Anda sudah pernah mereka jawab.

Catatan IV: informasi tentang developer selalu berada pada menu Help > About di setiap software. Jika software hanya berjalan di Terminal, maka perintah man <namaprogram> selalu menyertakan informasinya. Biasakan membacanya untuk bisa bertanya.

Penutup

Tulisan ini telah dibaca oleh Akang Nugie Abinya Fahmi (suka|baik) dari #ubuntu-indonesia. Tulisan ini memiliki kekurangan dan tidak ditutup kemungkinannya untuk direvisi. Penulis mohon maaf atas segala kekurangan. Semoga tulisan ini bermanfaat.


Filed under: Linux

Catatan Ngoprek Harian Edisi 2

$
0
0

Bismillahirrahmanirrahim.

Rangkuman catatan ngoprek harian edisi 2 ini sebagai berikut.

16. sed untuk menghapus baris yang berisi teks tertentu
17. strip – -strip-unneeded namaberkas
18. hevea -fix <namaberkas>.tex
19. | grep -e .tex
20. WordPress.com tidak menerima This document was translated from LATEX by HEVEA.
21. [UPDATE:Friday, January 10, 2014][SALAH][JANGAN DIIKUTI]avrdude untuk membakar .hex menggunakan kabel programer USBASP (bukan AVR ISP MKII)
22. Berkas pengaturan proxy server milik KDE
23. avrdude untuk membakar .hex menggunakan kabel USBASP bukan USBISP MKII ke minsys ATMEGA128
24. Remap satu tombol dengan dua fungsi (normal dan bersama shift)
25. Modem Smartfren Haier CE782 UI di Ubuntu 12.04 Sukses Konek Internet
26. Backup Data Besar
27. Memperbaiki Font Rendering yang Buruk Rupa di Libreoffice KDE
28. Melihat Seluruh Kerja Kernel Mendeteksi dan Menginstal Modem USB29. xev dan xmodmap
30. Letak Log Instalasi APT


 

16. sed untuk menghapus baris yang berisi teks tertentu

sed '/-->/d' 

akan menghapus semua baris yang memiliki teks –>. Ini berguna untuk membersihkan log kuliah di IRC dari baris-baris informasi login dan logout setiap peserta. Bisa digabung untuk membuat log lebih bersih lagi:

sed '/-->/d' | sed '/

17. strip – -strip-unneeded namaberkas

Perintah strip (dari keluarga binutils) berguna untuk memperkecil ukuran berkas eksekutabel. Dalam kegiatan hari ini, pemaketan Qt tidak akan menghasilkan keluaran lintian yang bebas dari galat kecuali berkas eksekutabel Qt-nya di-strip terlebih dahulu dengan opsi – -strip-unneeded.

(Tuesday, December 17, 2013)

18. hevea -fix <namaberkas>.tex

Opsi -fix membuat .htoc dan menyelesaikan semua dafar isi dalam HTML. Trik .htoc ini tidak tercantum di situs resmi hevea sendiri. Tanpa opsi ini, hevea hanya berusaha satu kali dan hanya mampu menghasilkan .toc.

(Tuesday, December 31, 2013 07:11 PM)

19. | grep -e .tex

Opsi -e ini berguna untuk mengeluarkan hanya baris teks yang ada tulisan .tex. Bisa dipakai untuk perintah apa pun yang mengeluarkan teks sebagai standard output. Contoh pemakaian saya: history | grep -e ‘rm -rf’ atau man hevea | grep -e .htoc. Sangat berguna untuk searching di dalam history dan man.

(Tuesday, December 31, 2013 07:11 PM)

20. WordPress.com tidak menerima This document was translated from LATEX by HEVEA.

Hevea selalu membubuhkan teks “This document was translated from LATEX by HEVEA.” pada akhir setiap HTML yang dikonversikan. Namun, meski kelihatannya sepele, satu baris ini (juga kode sumbernya tentu saja) membuat WordPress.com tidak menayangkan preview bahkan tidak mampu post dengan hanya berhenti di post.php. Saya telah mencoba mengurangi baik secara kode sumber maupun WYSIWYG di TinyMCE, untuk bagian awal yakni judul kemudian daftar isinya, hasilnya tetap error. Namun setelah saya hapus bagian tersebut, WordPress.com sanggup menayangkan pratayang posting. Satu baris ini walau singkat, cukup mengganggu. Baiknya dihapus saja.

TAMBAHAN PENTING: WordPress.com ternyata masih menolak walau baris tersebut sudah dihapus jika masih terdapat gambar-gambar yang mati URL-nya. Hevea tidak akan sempurna menghasilkan HTML bergambar jika gambarnya tidak dalam 1 folder dengan .tex, sedangkan saya memisahkan gambar dengan .tex. Alhasil HTML dihasilkan dengan gambar yang mati URL-nya. Dengan menghapus semua gambar dengan URL yang mati itu ( dihilangkan semuanya), maka WordPress.com mau menerima kenyataan.

21. [UPDATE:Friday, January 10, 2014][SALAH][JANGAN DIIKUTI]avrdude untuk membakar .hex menggunakan kabel programer USBASP (bukan AVR ISP MKII)

Inilah sesuatu yang saya penasaran dengannya sejak lama sekali dan selalu gagal. Alhamdulillah berhasil membakar .hex ke dalam chip ATMEGA128 dengan program avrdude (program open source yang juga dipakai oleh AtmelStudio & AVR Studio untuk membakar). Perintahnya:

root@master:/home/master/Publik/AVR# avrdude programnya.hex -p ATMEGA128 -c usbasp

Yang wajib diperhatikan

- Tidak perlu mengatur .rules untuk udev, tidak seperti MKII
- Tidak perlu me-restart udev
- Tancapkan kabel USB ASP pastikan terhubung dengan perangkat ATMEGA
- Langsung jalankan perintah di atas (sebagai root)
- Jangan salah memilih argumen -c; harus usbasp kalau pakai USB ASP
- Kunci seluruh keberhasilan membakar adalah opsi -c usbasp
- Salah pada opsi -c usbasp (menggantinya dengan -c avrispmkII atau -c avrisp2, hanya akan menghasilkan error: /dev/ttyS*

Bukti keberhasilan: 

root@master:/home/master/Publik/AVR# avrdude uas.hex -p ATMEGA128 -c usbasp
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9308
avrdude: Expected signature for ATMEGA128 is 1E 97 02
         Double check chip, or use -F to override this check.
avrdude done.  Thank you.

22. Berkas pengaturan proxy server milik KDE

/home/master/.kde/share/config/kioslaverc

23. avrdude untuk membakar .hex menggunakan kabel USBASP bukan USBISP MKII ke minsys ATMEGA128

Hasil pembakaran kemarin itu (nomor 21 di atas) ternyata hanya menyalin data ke dalam ATMEGA dan tertolak tanpa pesan (karena ATMEGA bukan bash). Kalau saya ingin membakar (download) .hex ke chip ATMEGA sebagaimana yang dilakukan para programer AVR, maka perintah kemarin itu salah. Perintah kemarin itu kurang karena tidak ada opsi untuk melakukan FLASH (tahu flashing untuk BIOS, kan?). Sedangkan perintah yang benar dan sudah berhasil mengedip-ngedipkan lampu minsys adalah ini:

root@master:/home/master/Publik/AVR# avrdude -c usbasp -P usb -p atmega128 -U flash:w:namaprogramnya.hex

Yang paling penting pada perintah ini adalah opsi -U flash:w:<namaberkas>.hex karena opsi ini yang menentukan avrdude untuk flashing (penghapusan kemudian penulisan kode biner) ke dalam chip ATMEGA.

Bukti keberhasilan (lihat ada beberapa kali progress bar):
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9702
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "bismillah0.hex"
avrdude: input file bismilallah0.hex auto detected as Intel Hex
avrdude: writing flash (4306 bytes):

Writing | ################################################## | 100% 1.70s

avrdude: 4306 bytes of flash written
avrdude: verifying flash memory against bismilallah0.hex:
avrdude: load data flash data from input file bismillah0.hex:
avrdude: input file bismillah0.hex auto detected as Intel Hex
avrdude: input file bismillah0.hex contains 4306 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.49s

avrdude: verifying ...
avrdude: 4306 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

root@master:/home/master/Publik/AVR#

24. Remap satu tombol dengan dua fungsi (normal dan bersama shift)

┌─[master@master]─[~]
└──╼ xmodmap -e "keycode 135 = Delete parenright"

Tinggal taruh makna kedua pada tempat kedua setelah makna pertama, dia otomatis dikenali sebagai makna yang dijalankan jika bersama shift.

25. Modem Smartfren Haier CE782 UI di Ubuntu 12.04 Sukses Konek Internet

Persyaratan

1. pppd harus aktif dahulu
2. kalau belum aktif, sudo service network-manager restart
3. tidak menggunakan Network Manager (sementara ngalah dululah pakai Terminal)

Peralatan

1. wvdial (saya ambil di Windows pakai cara https://malsasa.wordpress.com/2014/01/27/panduan-ringkas-apt-get/)

Cara Koneksi

1. lsusb, pastikan vendor:product = 201e:1022 (1022 ini yang penting)
2. suntikkan parameter vendor:product supaya dikenali kernel -> sudo modprobe usbserial vendor=0x201e product=0×1022
3. bikin konfig wvdial baru -> sudo wvdialconf (untuk memastikan si modem dikenali di /dev/ttyUSB0)
4. panggil wvdial -> sudo wvdial (bisa internetan jika sudah muncul nomor IP dan alamat IP DNS)

wvdial-ce782-precise

Catatan Penting

Catatan ini ditulis dengan internet melalui modem CE782 ini. Saat ini saya sedang menyalakan wvdial di Konsole (Saturday, February 01, 2014 10:02 PM).

Sumber

Saya melakukan konfigurasi dengan mempelajari PAHE milik Erdinote.com. Saya tidak menginstal PAHE begitu saja. Saya ingin memahami cara kerjanya jadi saya lakukan semuanya sendiri. 

26. Backup Data Besar

1. Ke Adrive (jatah 50 GB, ada realtime upload speed + progess bar)
2. Ke Google Drive (sayang tidak menayangkan realtime upload speed, hanya progress bar)

Saya mengunggah berkas sebesar 400 dan 700 MB (ZIP).

27. Memperbaiki Font Rendering yang Buruk Rupa di Libreoffice KDE

Buka System Settings > Application Appearances > Font > lihat bawah > “Use antialiasing” > jadikan “Enabled” > klik “Configure” > pilih “Slight” sebagai hinting style.

Sumber: http://forum.kde.org/viewtopic.php?f=17&t=118879&p=302089#p302089

28. Melihat Seluruh Kerja Kernel Mendeteksi dan Menginstal Modem USB

tailf /var/log/syslog

Catatan:

- tailf adalah perintah untuk melihat secara realtime pertumbuhan suatu berkas log
- /var/log/syslog adalah log untuk apa pun informasi dari kernel bahkan dmesg itu mengambil keluaran dari sini. Bahkan crontab dan segala program background akan terlihat bekerja di dalam syslog ini.

Sumber:

thrvers, guru modem saya

29. xev dan xmodmap

1. Buka terminal.
2. Ketik perintah xev.
3. Tekan PgDn.
4. Perhatikan nomor keycode-nya. PgDn di kibor saya nomornya adalah 117.
5. Ctrl+C untuk mematikan xev.
6. Sekarang ketik perintah xmodmap -e “keycode 117 = ” dengan harapan mengisi keycode nomor 117 (yakni PgDn) dengan kekosongan alias tidak ada fungsinya alias disable.
7. Sekarang sudo xmodmap -pke > .Xmodmap.
8. Sekarang seharusnya sudah mati itu fungsi PgDn.

Disalin pada 3 Maret 2014 dari salah satu komentar.

30. Letak Log Instalasi APT

/var/log/apt/history.log

Di dalam folder apt/ ini masih ada banyak .gz yang isinya riwayat juga. Sangat penting untuk di-backup. Seluruh kegiatan instalasi/uninstalasi tercatat di dalamnya tanpa terlewat satu pun.


Filed under: Linux

The Quieter You Become, The More You Are Able To Hear

$
0
0

Bismillahirrahmanirrahim.

Lama sekali rasanya saya tidak menulis esai kritik. Esai ini saya tujukan untuk diri saya sendiri dan sebagian pengguna Linux muda yang terlalu bersemangat. Inti esai ini adalah ajakan untuk menghentikan sikap membangga-banggakan apa yang kita miliki di depan orang lain terutama pengguna Windows. Esai ini mengajak Anda untuk mengakui bahwa setiap proses belajar membutuhkan waktu. Saya ingin membentuk esai ini to the point dan serealistis mungkin. Semoga esai ini bermanfaat.

Isi Esai Ini

  1. Sedikit Mengenai “The Quieter You Become, The More You Are Able To Hear
  2. Apa Itu Mendengar?
  3. Masalah Kita
  4. Ironi Kita
  5. Akar Solusi
  6. Solusi
  7. Yang Ingin Saya Katakan
  8. Apa Manfaat Diam?
  9. Apa Ruginya Tidak Diam?
  10. Apa yang Harus Dilakukan Selanjutnya?
  11. Penutup
  12. Bacaan

1. Sedikit Mengenai “The Quieter You Become, The More You Are Able To Hear

Ini adalah kutipan slogan dari distro ternama Backtrack Linux dan Kali Linux. Terjemahan bebas slogan ini dalam Bahasa Indonesia adalah

Semakin Anda diam, semakin banyak yang bisa Anda dengar

Slogan ini kurang lebih memiliki makna metafora demikian. Anda akan mampu mengindra lebih banyak jika Anda lebih banyak diam. Orang yang “berisik”, selalu menyuarakan opini dan argumennya sendiri, tetapi jarang diam untuk mengevaluasi kenyataan dan jarang pula mengetahui pasti pendapat mereka benar atau salah. Jadi jika Anda pribadi yang mampu diam untuk mendengar lebih banyak, maka Anda akan mampu melihat lebih banyak detail dari kenyataan. Sumber terjemahan metafora ini adalah https://answers.yahoo.com/question/index?qid=20100307195415AA4aDyJ. Slogan Backtrack ini adalah jiwa esai ini.

2. Apa Itu Mendengar?

Mendengar adalah

  1. Mendengar itu sendiri.
  2. Membaca.
  3. Mengamati.
  4. Menguji.

Mendengar itu proses memasukkan informasi ke dalam diri. Mendengar adalah kias metafora di dalam slogan The Quieter You Become, The More You Are Able To Hear untuk proses belajar. Mendengar adalah belajar itu sendiri. Mendengar itu proses yang sangat penting, karena mustahil Anda hidup tanpa belajar.

3. Masalah Kita

Sebagian dari kita dan termasuk saya sendiri, pernah mengalami kebanggaan yang berlebihan. Kita melakukan kesalahan-kesalahan. Inilah masalah kita. Berikut ini daftar kecilnya.

  1. Dengan lantang menyatakan tidak butuh Windows kepada publik, dalam keadaan sedikit pengalaman dengan Linux dan tidak punya proof of concept dari diri sendiri.
  2. Mengatakan Linux lebih baik daripada Windows kepada publik, dalam keadaan tidak punya proof of concept dari diri sendiri.
  3. Dengan lantang memaksa orang lain untuk segera migrasi ke Linux, tanpa melihat dulu kondisi orang itu.
  4. Dengan lantang tanpa malu bertanya hal-hal yang sudah tersedia jawabannya (dan bisa diakses dengan gampang), dalam keadaan dirinya sedang memakai distro seperti Backtrack.
  5. Dengan lantang menyuruh-nyuruh para senior (atau memberi saran dengan nada memaksa) Linux untuk mengubah hal-hal fundamental, dalam keadaan tidak tahu siapa dirinya sendiri.
  6. Dengan lantang menyatakan suatu kesimpulan pribadi kepada publik kemudian salah total, dalam keadaan dirinya sendiri kurang eksperimen.
  7. Dengan semangat tinggi mengharap pertanyaannya dijawab, kemudian kecewa dengan sikap komunitas, dalam keadaan dirinya sendiri tidak pernah membaca aturan bertanya.
  8. Dengan semangat tinggi melakukan atau mengatakan sesuatu, tanpa memiliki kepekaan yang tinggi terhadap lingkungan sekitar.
  9. Dengan lantang menyuarakan hacking di jalan yang salah, dan turut menjadi sebab salah kaprahnya media massa dalam membentuk opini hacking yang salah total.
  10. Dengan lantang bersuara tanpa malu sedikit pun memakai kalimat semisal “hei, aku bisa hacker” atau “situs anu sudah aku hacker kemarin” atau “situs anu sudah di-hacker oleh si anu”, dalam keadaan tidak mau belajar bahasa.

Inti dari semua masalah di atas sama saja: kecenderungan menganggap kejayaan bisa diraih tanpa usaha. Dan ini diakibatkan karena tidak mau sengaja diam untuk mendengar.

Penjelasan I: saya sebutkan masalah-masalah di atas karena memang ini penting dibahas. Masalah 1, 2, dan 3 adalah masalah klasik yang terjadi biasanya pada anak-anak muda. Hal ini sangat berhubungan dengan sikap tidak mau mendengar, terutama membaca siapa saja dan bagaimana kiprah para pendahulunya menyosialisasikan Linux di Indonesia. Karena baru mengenal bagusnya legalitas dan baru sadar manfaatnya FOSS, semangat kita tersulut mempromosikan Linux ke mana pun. Namun sekadar semangat itu tak cukup. Pada dasarnya, semua pengguna Windows itu tidak senang kita bicara macam itu di depan mereka. Mereka itu lebih bisa menerima Linux jika kita punya budi pekerti dan proof of concept yang baik. Tanpa kehalusan perangai dan proof of concept, usaha seperti apa pun akan terhenti sia-sia. Tidak percaya? Silakan coba.

Penjelasan II: masalah 4 sampai 8 adalah masalah sikap kita di dalam komunitas. Aturan paling dasar dari setiap komunitas Linux adalah bacalah. Jika Anda tidak mau membaca, maka tolong jangan berharap pertanyaan Anda akan dijawab. Lebih parah lagi, kalau kebetulan Anda tipe orang pada masalah 5. Mungkin sedetik setelah Anda mengirim permintaan, Anda langsung dijawab dengan pesan “troll”. Jika Anda memang niat belajar Linux, bacalah. Baca peraturan, baca cara bertanya, kuasai etika dulu sebelum Anda bergaul. Baca FAQ, baca dokumentasi resmi, baca manual, baca help. Selesaikan masalah Anda sendiri. Barulah tanya jika Anda sudah merasa semua usaha maksimal. Jika masalah selesai, kembalilah untuk memberi kabar dan tulislah dokumentasinya. Ini adalah jalan terbaik dalam belajar Linux. Jika Anda terus menerus tidak mau membaca, kemudian tetap saja membuat kesalahan yang sama, maka tidak berlebihan kiranya kalau ada yang mengatakan “Anda bangga dengan kebodohan Anda sendiri”.

Penjelasan III: hacking itu bukan sesuatu yang murahan. Ini bukan sesuatu yang ditekuni 1 tahun mahir. Ini adalah sekumpulan tindakan yang menghasilkan sistem operasi GNU, kernel Linux, distribusi Slackware, sistem jaringan komputer yang bernama internet, perangkat lunak yang bernama git, teknologi clustering, dan lain-lain. Anda tidak mengerti? Maka belajarlah. Diam dan mendengarlah. Diam yang panjang, belajar terus. Lakukan proof of concept, jangan banyak bicara. Jika Anda terus menerus dikontrol oleh media massa dalam definisi hacking yang serba salah, dan Anda terbawa arus vandalisme dalam hal ini, maka tidak berlebihan kiranya kalau ada yang mengatakan “Anda bangga dengan kebodohan Anda sendiri”. Jika Anda terus menerus menyuarakan hacking tanpa memiliki motivasi untuk belajar sendiri dan mengatasi keterbatasan, maka cukup kiranya itu membuktikan Anda tidak pantas mengucapkannya.

4. Ironi Kita

Ironi itu lebih besar dari masalah. Dan hal ini akan kita rasakan kelak, kalau berbangga diri. Apalagi jika tanpa proof of concept. Apa saja ironi kita? Usaha kita akan ironis jika kita sendiri

  1. Tidak tahu apa itu source code. Misalnya, tahu kalau Gedit itu open source software tetapi tidak tahu di mana bisa memperoleh source code-nya dan lebih buruk lagi kalau tidak tahu apa itu source code.
  2. Tidak mampu memodifikasi source code. Sangat ironis jika ada pemuda yang menjelek-jelekkan madzhab proprietari dan membanggakan open source di depan khalayak, dalam keadaan dia sendiri tidak mampu memodifikasi suatu source code bahkan tidak pernah melakukannya.
  3. Tidak mampu melakukan kompilasi terhadap source code. Ini termasuk tidak mampu melakukan kompilasi program dari kode sumber, apalagi jika tidak mampu menyelesaikan masalah dependensi sederhana di Backtrack (yang notabene sudah package, bukan source code lagi).
  4. Tidak memiliki niat dan usaha sedikit pun untuk membantu pengembangan open source software, baik dari segi teknis (pemrograman dan seninya) maupun nonteknis (finansial dan pemasarannya).
  5. Tidak mampu menjelaskan apa itu open source (dan free software) secara sederhana kepada orang lain.

Sebagaimana di dalam sastra, setiap ironi bisa berkembang menjadi tragedi. Seluruh ironi di atas pun bisa berubah menjadi tragedi apabila si pelaku sama sekali tidak mau belajar. Tragedi menjadi sempurna jika si pelaku masih juga memiliki sikap orang bodoh yaitu “sudah salah, tidak merasa dirinya salah, malah menyalahkan orang lain“. Ingatlah, kita semua akan sangat malu jika ada masyarakat yang berteriak kepada kita “katanya kamu open source, kok source code aja kamu kagak ngerti, sih?“.

5. Akar Solusi

Orang yang ingin memetik buah harus terlebih dulu menanam pohonnya.

6. Solusi

The quieter you become, the more you are able to hear.

7. Yang Ingin Saya Katakan

  1. Kita harus banyak-banyak diam untuk mendengar.
  2. Kita kalau ingin belajar Linux, jangan mengharapkan apa pun yang instan.
  3. Belajar adalah proses, dan setiap proses butuh waktu.
  4. Mendengar adalah membaca, mendengar adalah proses belajar yang paling dasar, jadi diamlah untuk mendengar lebih banyak.
  5. Kita harus menyadari bahwa sumber daya di sekitar kita sifatnya terbatas, maka berusahalah untuk mengatasi keterbatasan itu sendiri semaksimal mungkin.
  6. Kita tidak perlu terlalu lantang bicara soal Linux kepada publik (yang masih juga seperti ini), dalam keadaan kita tidak punya proof of concept dari diri sendiri.
  7. Jika kita belum bisa menggunakan Linux dengan baik, maka kita jangan memaksa ( atau menyarankan dengan nada memaksa) orang lain menggunakan.
  8. Jika kita ingin mendalami penetration testing secara benar, maka kita harus mendengarkan realitas untuk menyelesaikan semua masalah sendiri.
  9. Kita jangan bermudah-mudahan atau terlalu cepat membuat kesimpulan.
  10. Sadari bahwa untuk menguasai Windows saja, kita sendiri butuh waktu yang banyak.
  11. Hanya menggunakan Backtrack semata tidak membuat seseorang menjadi hacker.
  12. Jangan salah menilai para pakar. Mereka seringkali tampak diam –bahkan kadang Anda menangkap kesan tidak mengerti apa-apa dari mereka– karena mereka diam untuk mendengar. Mereka lebih tua daripada Anda dari segi usia dan kematangan teknik.
  13. Jika Anda baru kenal Linux atau baru masuk ke dalam komunitas FOSS, ikuti bimbingan pakar yang ada di sana. Jangan membuat keributan apalagi –karena ketidaktahuan– berani mengusir admin.

Berapa banyak pengguna Backtrack dan Kali yang mau mendengarkan slogannya sendiri? Saya tidak sedang menyinggung orang. Namun khusus untuk kali ini, kalau ada yang tersinggung, semoga itu termasuk ketersinggungan yang positif.

8. Apa Manfaat Diam?

Diam (quiet) adalah sikap yang bagus. Manfaat diam saya sebutkan sebagai berikut.

  1. Anda memiliki lebih banyak waktu untuk mendengar.
  2. Anda memiliki lebih banyak waktu untuk berpikir.
  3. Anda memiliki lebih banyak waktu untuk uji coba.
  4. Anda memiliki lebih banyak waktu untuk proof of concept.
  5. Anda bisa fokus.
  6. Setelah semua hal di atas, Anda punya waktu untuk membuat kesimpulan.

9. Apa Ruginya Tidak Diam?

Jika kita tidak bisa diam, dan tidak memperbanyaknya, maka ada akibat-akibat besar yang menanti. Di antaranya sebagai berikut.

  1. Jika Anda terlalu lantang, kelak jika orang tahu celah-celah Anda, mereka akan menghabisi Anda dengan hujatan yang belum tentu Anda mampu menanggungnya.
  2. Jika Anda memaksa orang menggunakan Linux, kelak jika orang tahu Anda sendiri melakukan pelanggaran legalitas (jika Anda melakukannya), mereka akan balik memaksa kita meninggalkan Linux (dan FOSS lainnya) dengan lebih lantang.
  3. Jika Anda mengolok-olok madzhab proprietari dengan lantang kepada publik apalagi tanpa punya proof of concept, masyarakat Windows akan balik memandang rendah kepada madzhab FOSS dan mungkin berbalik menutup diri dari kita selamanya.
  4. Jika Anda terlalu banyak bicara, jumlah beban proof of concept Anda bertambah sementara Anda makin kehilangan waktu untuk mengerjakannya.
  5. Jika Anda membuat kesimpulan sekenanya di sebuah forum, dalam keadaan Anda salah dan para senior sedang melihat Anda, Anda akan ditanyai habis-habisan sampai Anda tidak mampu bicara lagi.
  6. Jika Anda sombong, kelak orang akan merendahkan dan menertawakan Anda. 

10. Apa yang Harus Dilakukan Selanjutnya?

Apa lagi selain belajar? Mulailah segala-galanya dari dasar. Mulai dari hal-hal kecil. Lakukan terus menerus.

  1. Jika Anda baru mengenal Linux, pelajarilah sistem manajemen paket pada distro Anda. Anda akan senantiasa menggunakan (dan menghadapi masalah) dengannya. Diam, jangan banyak mengeluh.
  2. Jika Anda baru mengenal penetration testing, mulailah segalanya dari security awareness. Be quiet, glow in the dark.
  3. Jika Anda baru memulai, pahamilah bahwa penguasaan tidak bisa diraih tanpa pemahaman konsep.
  4. Pahamilah bahwa secara umum, penguasaan terhadap bidang apa saja di dunia ini membutuhkan waktu sekitar 10 tahun.
  5. Jika Anda ingin memperkenalkan FOSS kepada masyarakat (baik dari madzhab Linux maupun BSD), maka diamlah dan perbanyaklah proof of concept yang brilian. Miliki dasar yang kuat supaya Anda mampu melakukannya.
  6. Jika Anda ingin memperkenalkan FOSS kepada masyarakat, tulislah tulisan-tulisan yang mengantarkan masyarakat awam kepada pemahaman konsep (sebagai proof of concept) dari segi legalitas maupun segi teknis pemanfaatan FOSS itu sendiri.
  7. Jika Anda ingin memperkenalkan FOSS kepada masyarakat, buatlah sebuah software FOSS yang bermanfaat (sebagai proof of concept) bagi masyarakat luas.
  8. Jika Anda ingin berkontribusi, pilihlah satu induk proyek FOSS (misalnya Ubuntu) dan fokuslah bekerja di sana.
  9. Anda tidak akan mampu melakukan semua itu tanpa diam mendengar.

Jangan sombong jika kelak Anda benar-benar meraihnya.

11. Penutup

Jika Anda membaca sampai bagian ini, saya harap Anda mendapatkan awal yang baik untuk belajar Linux. Pesan terakhir saya adalah jika Anda newbie, maka berperilakulah layaknya newbie. Jangan berperilaku layaknya orang yang pantas melakukan audit keamanan jaringan. Berikut ini saya lampirkan pranala esai-esai kritik yang pernah saya tulis. Memang salah satu tujuan penulisan esai ini adalah mengumpulkan mereka semua dalam 1 tulisan. Semoga esai ini bermanfaat.

  1. https://malsasa.wordpress.com/2012/11/02/kalau-linux-mau-maju/
  2. https://malsasa.wordpress.com/2012/11/13/permohonan-saya-untuk-komunitas-linux-indonesia/
  3. https://malsasa.wordpress.com/2012/11/27/apa-yang-sebenarnya-pengguna-butuhkan/
  4. https://malsasa.wordpress.com/2013/04/13/mengapa-otodidak-dibuat-12/
  5. https://malsasa.wordpress.com/2013/06/01/menyoal-kebebasan/
  6. https://malsasa.wordpress.com/2013/06/02/memusuhi-distraksi/
  7. https://malsasa.wordpress.com/2013/06/21/pemasaran-sistem-operasi-linux/
  8. https://malsasa.wordpress.com/2013/06/27/pemasaran-sistem-operasi-linux-2/
  9. https://malsasa.wordpress.com/2014/02/22/indonesia-masih-dalam-masa-transisi/

12. Bacaan

  1. http://catb.org/esr/faqs/hacker-howto.html
  2. https://en.wikipedia.org/wiki/Security_awareness

Filed under: Linux

Pemrograman Qt 20 – QSystemTrayIcon untuk Membuat Aplikasi System Tray

$
0
0

Bismillahirrahmanirrahim.

Tulisan ini tersedia dalam PDF.

qt-creator-logoApa Anda ingin membuat aplikasi system tray? Aplikasi semacam ini punya fasilitas ikon di pojok kiri bawah panel menu desktop ala KDE atau di kiri atas pada panel menu ala GNOME. Contoh aplikasi yang memakai fitur ini misalnya antivirus, audio playersound appletdownload manager, dan lain-lain. Ciri khas aplikasi dengan fitur ini adalah jika ditutup jendelanya maka dia tidak hilang tetapi bertengger di lokasi system tray. Kita akan membuatnya dengan berdasarkan pada contoh kode dari dokumentasi resmi Qt Framework sendiri yang sudah ada di dalam Qt Creator. Saya berusaha memodifikasi program contoh Qt yang bernama systray sehingga tersisa hanya fungsi-fungsi paling minimal untuk sebuah program system tray. Saya lakukan ini karena ingin tahu bagaimana kode paling minimal untuk program system tray itu dan alhamdulillah berhasil. Semoga tulisan ini bermanfaat.

Spesifikasi Sistem

  1. Ubuntu 12.04
  2. Qt Creator 2.4.1
  3. Qt 4.8

Daftar Kelas

  1. QSystemTrayIcon
  2. QMenu
  3. QAction
  4. QIcon
  5. QMessageBox

Daftar Method

  1. addAction() -> milik QMenu
  2. addSeparator() -> milik QMenu
  3. setContextMenu() -> milik QMenu
  4. show() -> milik QSystemTrayIcon
  5. isVisible() -> milik QSystemTrayIcon
  6. ignore() -> milik QCloseEvent
  7. information() -> milik QMessageBox
  8. createActions() -> buatan sendiri
  9. createTrayIcon() -> buatan sendiri
  10. iconActivated() -> buatan sendiri
  11. closeEvent() -> buatan sendiri

Arah Tulisan Ini

ngite-keduapuluh11

uGet

ngite-keduapuluh9

Quassel

Program yang akan dibuat adalah program dengan kemampuan bertengger di system tray semisal download manager (uGet) dan IRC client (Quassel).

Kode

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui>

namespace Ui
{
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QVBoxLayout     *layoutUtama;
    QPushButton     *tombolUtama;
    QWidget         *widgetUtama;

    QAction         *minimize;
    QAction         *maximize;
    QAction         *restore;
    QAction         *quit;

    QSystemTrayIcon *trayIcon;
    QMenu           *trayIconMenu;

    QIcon           *ikon;

private:
    Ui::MainWindow   *ui;

private slots:
    void createActions();
    void createTrayIcon();
//    void iconActivated(QSystemTrayIcon::ActivationReason reason);     //ini berhubungan dengan fungsi iconActivated() di mainwindow.cpp

protected:
    void closeEvent(QCloseEvent *event);

};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    //deklarasi objek-objek GUI
    QVBoxLayout     *layoutUtama    =   new     QVBoxLayout;
    QPushButton     *tombolUtama    =   new     QPushButton("TOMBOL");
    QWidget         *widgetUtama    =   new     QWidget;

    //pemanggilan fungsi penting yang akan selalu berjalan
    createActions();
    createTrayIcon();

    //pemasangan layout kepada widget
    layoutUtama->addWidget(tombolUtama);
    widgetUtama->setLayout(layoutUtama);
    this->setCentralWidget(widgetUtama);

    //SIGNAL AND SLOT
//    connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
//            this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));        //ini dijadikan komentar karena bukan komponen paling minimal untuk program system tray

    //mengurus ikon untuk system tray
    trayIcon->setIcon(QIcon(":/gambar/metamorfosa"));
    trayIcon->show();       //tanpa baris ini, system tray tidak akan muncul sama sekali
                            //bahkan setelah jendela closed pun tidak

    //set logo untuk jendela supaya sama dengan ikon system tray
    this->setWindowIcon(QIcon(":/gambar/metamorfosa"));

}

MainWindow::~MainWindow()
{
    delete ui;
}

/*
  DAFTAR ISI

  1. iconActivated
  2. createActions
  3. createTrayIcon
  4. closeEvent
*/

//1. iconActivated
//fungsi ini mengatur perilaku klik kanan, klik kiri, dan klik tengah pada ikon system tray
/*//fungsi ini bukan termasuk fungsi paling minimal untuk program system tray sehingga tidak dipakai
//void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason)
//{
//    switch(reason)
//    {
//        case QSystemTrayIcon::Trigger:

//        case QSystemTrayIcon::DoubleClick:

//        case QSystemTrayIcon::MiddleClick:

//    default:
//    ;
//    }
//}*/

//2. createActions
//fungsi ini membuat objeck-objek Actions untuk menu klik kanan lalu menghubungkannya dengan fungsi jendela
void MainWindow::createActions()
{
    minimize    =   new QAction(tr("Minimize"), this);
    connect(minimize, SIGNAL(triggered()), this, SLOT(hide()));

    maximize    =   new QAction(tr("Maximize"), this);
    connect(maximize, SIGNAL(triggered()), this, SLOT(showMaximized()));

    restore     =   new QAction(tr("Restore"), this);
    connect(restore, SIGNAL(triggered()), this, SLOT(showNormal()));

    quit        =   new QAction(tr("Keluar"), this);
    connect(quit, SIGNAL(triggered()), qApp, SLOT(quit()));
}

//3. createTrayIcon
//fungsi ini memasukkan action yang sudah dibuat dengan createActions ke dalam menu tray icon
//sejatinya, fungsi ini membuat objek QMenu lalu mengisinya dengan objek-objek QActions,
//lalu mengeset context menu dari QSystemTrayIcon dengan objek QMenu tadi
void MainWindow::createTrayIcon()
{
    trayIconMenu    =   new QMenu(this);
    trayIconMenu->addAction(minimize);
    trayIconMenu->addAction(maximize);
    trayIconMenu->addAction(restore);
    trayIconMenu->addSeparator();
    trayIconMenu->addAction(quit);

    trayIcon        =   new QSystemTrayIcon(this);
    trayIcon->setContextMenu(trayIconMenu);         //tanpa baris ini,
    //menu pada klik kanan
    //pada ikon di system tray tidak akan muncul
    //ditemukan pada Wednesday, June 04, 2014 10:14 PM
}

//4.closeEvent
//fungsi ini menayangkan dialog pesan ketika jendela ditutup lalu program bertengger di system tray
//fungsi ini protected
void MainWindow::closeEvent(QCloseEvent *event)
{
    if(trayIcon->isVisible())
    {
        QMessageBox::information(this, tr("Pesan"), tr("Aku akan bertengger di pojokan <i>system tray</i>-mu"));
        hide();
        event->ignore();
    }
}

Qt Creator dan Kode

ngite-keduapuluh4

Hasil

Tampilan yang dihasilkan sederhana saja. Tombol satu itu pun tidak diberi fungsi. 

ngite-keduapuluh1

Jika jendela ditutup, maka sebuah dialog QMessageBox akan muncul sebagai peringatan.

ngite-keduapuluh2

Setelah itu, ia menjadi ikon (saya memberikan ikon Archlinux kepadanya) pada bagian system tray di menubar. Ikon system tray ini bisa digunakan sebagaimana aplikasi system tray yang lain.

ngite-keduapuluh

Analisis

mainwindow.h

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QVBoxLayout     *layoutUtama;
    QPushButton     *tombolUtama;
    QWidget         *widgetUtama;

    QAction         *minimize;
    QAction         *maximize;
    QAction         *restore;
    QAction         *quit;

    QSystemTrayIcon *trayIcon;
    QMenu           *trayIconMenu;

    QIcon           *ikon;

Hal penting di dalam program kita kali ini adalah penggunaan kelas QSystemTrayIcon, QAction, dan QMenu. Sepanjang tutorial pemrograman Qt di blog ini, 3 kelas ini belum pernah dipakai. Jika Anda belum memahami cara deklarasi di dalam header ini, silakan merujuk ke penjelasan deklarasi header.

mainwindow.cpp

Pada mainwindow.cpp, ada 3 fungsi buatan yang penting. Sebelum itu, ada beberapa bagian penting di dalam kelas MainWindow. Dua fungsi ini (createActions() dan createTrayIcon()) dipanggil supaya hidup terus menerus. Dan jika Anda belum memahami cara membuat GUI pada berkas CPP ini, silakan merujuk ke penjelasan cara membuat GUI dasar.

    //pemanggilan fungsi penting yang akan selalu berjalan
    createActions();
    createTrayIcon();

Dua fungsi buatan yang paling penting ini dipanggil dahulu sebelum pemasangan layout.

1. createActions()

//1. createActions
//fungsi ini membuat objeck-objek Actions untuk menu klik kanan lalu menghubungkannya dengan fungsi jendela
void MainWindow::createActions()
{
    minimize    =   new QAction(tr("Minimize"), this);
    connect(minimize, SIGNAL(triggered()), this, SLOT(hide()));

    maximize    =   new QAction(tr("Maximize"), this);
    connect(maximize, SIGNAL(triggered()), this, SLOT(showMaximized()));

    restore     =   new QAction(tr("Restore"), this);
    connect(restore, SIGNAL(triggered()), this, SLOT(showNormal()));

    quit        =   new QAction(tr("Keluar"), this);
    connect(quit, SIGNAL(triggered()), qApp, SLOT(quit()));
}

Sebelum mendeklarasikan objek-objek QAction ini di dalam fungsi ini, kita perlu mendeklarasikan dulu mereka di mainwindow.h. Argumen fungsi tr() adalah pengganti string biasa untuk keperluan penerjemahan pada masa mendatang. Tanpa tr(), kita tidak bisa membuat berkas .po atau semacamnya untuk penerjemahan antarmuka aplikasi sebagaimana biasa kita temukan di Transifex maupun Launchpad.

Pada fungsi createActions() di atas, kita melakukan connect() antara SIGNAL triggered() dengan SLOT fungsi hide(), showMaximized(), showNormal(), dan quit() dari jendela utama. Maksudnya jelas, agar setiap objek QAction memiliki tugasnya masing-masing. Khusus untuk quit(), objek kedua di dalam connect() bukan this melainkan qApp. Menurut QApplication Class Reference[1], qApp di sini adalah pointer global yang menunjuk kepada instansi QApplication. SLOT di sini memakai fungsi-fungsi dari QWidget berdasarkan dokumentasi QWidget Class Reference[2].

2. createTrayIcon()

//2. createTrayIcon
//fungsi ini memasukkan action yang sudah dibuat dengan createActions ke dalam menu tray icon
//sejatinya, fungsi ini membuat objek QMenu lalu mengisinya dengan objek-objek QActions,
//lalu mengeset context menu dari QSystemTrayIcon dengan objek QMenu tadi
void MainWindow::createTrayIcon()
{
    trayIconMenu    =   new QMenu(this);
    trayIconMenu->addAction(minimize);
    trayIconMenu->addAction(maximize);
    trayIconMenu->addAction(restore);
    trayIconMenu->addSeparator();
    trayIconMenu->addAction(quit);

    trayIcon        =   new QSystemTrayIcon(this);
    trayIcon->setContextMenu(trayIconMenu);         //tanpa baris ini,
    //menu pada klik kanan
    //pada ikon di system tray tidak akan muncul
    //ditemukan pada Wednesday, June 04, 2014 10:14 PM
}

Fungsi createTrayIcon() adalah tindak lanjut dari createActions() sebelumnya. Jika fungsi sebelumnya bertugas membuat aksi, maka fungsi ini bertugas memasang aksi itu pada menu klik kanan lalu membuat ikon system tray. Fungsi inilah sebetulnya yang menayangkan ikon aplikasi kita pada system tray dengan deklarasi objek trayIcon. Inti fungsi ini adalah deklarasi setContextMenu() dengan argumen objek QMenu. Objek QMenu bernama trayIconMenu, sudah diisi dengan objek-objek QAction pada baris-baris di atasnya.  Fungsi addSeparator() di atas berguna untuk menayangkan garis horizontal yang memisahkan 3 perintah dengan perintah Quit pada menu klik kanan nantinya.

3. closeEvent()

//3.closeEvent
//fungsi ini menayangkan dialog pesan ketika jendela ditutup lalu program bertengger di system tray
//fungsi ini protected
void MainWindow::closeEvent(QCloseEvent *event)
{
    if(trayIcon->isVisible())
    {
        QMessageBox::information(this, tr("Pesan"), tr("Aku akan bertengger di pojokan <i>system tray</i>-mu"));
        hide();
        event->ignore();
    }
}

Bagaimanakah aplikasi ini bisa tetap bertengger di system tray sementara jendela utama ditutup? Bagaimana dia bisa menayangkan jendela dialog berisi pesan? Fungsi closeEvent() ini jawabannya.

4. Satukan Semuanya

Setelah ketiga fungsi paling mendasar itu, saya jelaskan beberapa baris kode terpenting dalam MainWindow().

    //mengurus ikon untuk system tray
    trayIcon->setIcon(QIcon(":/gambar/metamorfosa"));
    trayIcon->show();       //tanpa baris ini, system tray tidak akan muncul sama sekali
                            //bahkan setelah jendela closed pun tidak

    //set logo untuk jendela supaya sama dengan ikon system tray
    this->setWindowIcon(QIcon(":/gambar/metamorfosa"));

Baris setIcon() di atas bertugas untuk memberikan ikon PNG Archlinux sebagai wujud program ini di system tray. Kemudian baris show() di atas berguna untuk menayangkan ikon dari program di dalam system tray. Kemudian baris setWindowIcon() di atas berguna untuk memberi logo Archlinux kepada jendela, supaya sama dengan ikon system tray-nya. Logo Archlinux ini sudah saya sertakan di tarball kode sumber di bawah.

Kesimpulan

  1.  Pembuatan program system tray paling minimal dengan Qt dilakukan dengan membuat objek-objek QAction, kemudian membuat objek QSystemTrayIcon dan QMenu, kemudian menyiapkan close event

Unduh Kode Sumber

Program kali ini bernama CalonSystemTray. Silakan unduh dan buka di Qt Creator Anda.

Referensi

  1. http://qt-project.org/doc/qt-4.8/qapplication.html
  2. http://qt-project.org/doc/qt-4.8/qwidget.html

Filed under: Linux

Membiasakan Diri Menggunakan Software Legal (Freeware Maupun Open Source)

$
0
0

Bismillahirrahmanirrahim.

Esai ringkas ini saya tujukan untuk setiap orang yang telah menyadari pentingnya penggunaan software legal. Esai ini ditulis sebagai panduan membiasakan diri dengan Linux, pada jauh hari sebelumnya. Esai ini pun ditujukan sebagai ajakan bagi pengguna Windows (dan Mac OS X) untuk menggunakan software legal. Jika Anda telah memiliki kesadaran mengenai pentingnya penggunaan software legal, maka jagalah. Ini adalah sikap yang baik dan membawa kemaslahatan. Jangan mencela sikap ini, karena ini adalah akhlak baik yang sangat langka pada zaman ini. Motivasi dasar esai ini adalah pertanyaan “apakah Anda ingin menggunakan Linux?” dan jawaban “jika ya, maka biasakanlah diri Anda menggunakan software legal”. Semoga esai ini bermanfaat.

Isi Esai Ini

  1. Asumsi Dasar
  2. Definisi Istilah-Istilah
  3. Bagaimana Seharusnya Sikap Seorang Pengguna Windows (dan Mac OS X)
  4. Bagaimana Seharusnya SIkap Seorang Pengguna Linux
  5. Bagaimana Rincian Sikap Menghargai Legalitas Ini?
  6. Kesimpulan
  7. Penutup
  8. Referensi

1. Asumsi Dasar

  • Anda adalah seorang pengguna komputer yang biasa, tidak berkeinginan membeli suatu software komersial. Pengguna seperti ini adalah kalangan mayoritas di Indonesia, termasuk penulis sendiri.
  • Anda menggunakan Windows sebelum mengenal Linux. Pengguna seperti ini adalah kalangan mayoritas pula di Indonesia.
  • Jika Anda menggunakan Mac OS X, Anda memiliki keinginan untuk menggunakan software legal dan ingin menggunakan Linux.

2. Definisi Istilah-Istilah

  1. Software adalah istilah untuk menyebut sekumpulan instruksi komputer yang membantu manusia dalam tujuan tertentu. Software bukan istilah untuk menyebut segala perangkat fisik yang dapat disentuh. Software adalah istilah untuk menyebut benda-benda nonfisik seperti antivirus, video gamedownload manager, web browser, office suite, email client, dan sebagainya. Software biasa disebut dengan nama lain aplikasi, utility, tool, program, dan sebagainya.
  2. Freeware adalah software yang gratis, berlisensi bebas dipakai, tetapi tidak bebas dimodifikasi, dan tidak menyertakan kode sumber ketika dipublikasikan. Contoh freeware adalah CCleaner dan Avira Antivir PE.
  3. Open source software adalah software yang berlisensi open source, yakni bebas dipakai, bebas dimodifikasi, bebas disebarluaskan, dan menyertakan kode sumber ketika dipublikasikan. Contoh open source software adalah Firefox dan Libreoffice.
  4. Freeware bukan open source software, dan open source software bukan freeware. Namun keduanya termasuk software legal.

3. Bagaimana Seharusnya Sikap Seorang Pengguna Windows (dan Mac OS X)?

Jika kita sadar bahwa tidak boleh menggunakan software ilegal, maka berusahalah dengan sekuat tenaga untuk mencari software legal sebagai penggantinya. Tidak harus membeli. Software legal bisa diperoleh dalam bentuk freeware maupun open source software.

4. Bagaimana Seharusnya Sikap Seorang Pengguna Linux?

Jika kita sudah melakukan sikap seorang pengguna Windows (dan Mac OS X), maka terapkan sikap yang sama di Linux:

Jika kita sadar bahwa tidak boleh menggunakan software ilegal, maka berusahalah dengan sekuat tenaga untuk mencari software legal sebagai penggantinya. Software legal ini bisa dalam bentuk freeware maupun open source software.

5. Bagaimana Rincian Sikap Menghargai Legalitas Ini?

Inilah inti esai. Bagaimanakah cara berusaha dengan sekuat tenaga yang dimaksud?  Apa saja yang bisa dilakukan? Sikap-sikap berikut adalah jawabannya.

  1. Milikilah keinginan kuat untuk mencari pengganti software komersial yang tidak mampu Anda beli.
  2. Milikilah keinginan kuat untuk tidak mencari crack atau serial number ilegal, ketika Anda membutuhkan software yang sebetulnya sudah ada padanannya dari kelas freeware maupun kelas open source software. Peringatan: penulis tidak menganjurkan tindakan ilegal apa pun kepada software mana pun.
  3. Milikilah jiwa pedagang dan pengusaha, yang selalu berusaha adil dan menepati janji dalam setiap langkahnya. Ini agar Anda (paling tidak, pernah) mempunyai perasaan seorang developer.
  4. Milikilah rasa percaya diri yang tinggi menggunakan software legal, bahwa secara umum seluruh software berbayar sudah memiliki padanannya dari kalangan freeware maupun open source software.
  5. Untuk pengguna Windows, ketahuilah tempat memperoleh software gratis yang legal seperti http://softpedia.comhttp://download.cnet.comhttp://en.softonic.com/http://www.pcadvisor.co.uk/downloads/windows/http://filehippo.com/http://www.tucows.com/downloadshttp://sourceforge.net, atau http://freshmeat.net.
  6. Untuk pengguna Windows, ketahuilah situs-situs open source software untuk WIndows semisal http://opensourcewindows.org/.
  7. Untuk pengguna Mac OS X, ketahuilah situs-situs open source software untuk Mac OS X semisal http://opensourcemac.org/.
  8. Untuk pengguna Linux, ketahuilah situs-situs perbandingan aplikasi Windows – Linux sebagai penerapan sikap pertama di atas. Misalnya http://alternativeto.nethttp://osalt.com, http://www.linuxalt.com/http://www.linuxsoftware.orghttp://www.linuxrsp.ru/win-lin-soft/table-eng.htmlhttp://www.linuxlinks.com/article/20070701111340544/Equivalents.htmlhttp://wiki.linuxquestions.org/wiki/Linux_software_equivalent_to_Windows_software, atau https://help.ubuntu.com/community/ListOfOpenSourcePrograms.
  9. Untuk pengguna Linux, ketahuilah situs-situs tempat Anda bisa memperoleh paket program secara offline semisal http://apt-web.tk (Ubuntu), http://pkgs.org (semua distro), http://rpm.pbone.net/ (Fedora, openSUSE, Mageia), http://rpmfind.net (Fedora, openSUSE, Mageia), dan lain-lain.
  10. Milikilah kreativitas dan motivasi diri sendiri untuk mencari sumber daya offline yang lain seperti nomor 8.
  11. Milikilah keinginan untuk membeli software asli, jika memang Anda membutuhkannya.

6. Kesimpulan

Jika Anda telah membiasakan diri menggunakan software legal dengan pemahaman konsep dan sikap yang bagus, maka mudah bagi Anda untuk menggunakan Linux. Jika sudah begini, sistem operasi apa pun (mulai Windows sampai MINIX dan keluarga BSD) dapat Anda pelajari dengan mudah. Kunci kekuatan orang-orang yang betah dan kukuh menggunakan Linux selama bertahun-tahun adalah pembiasaan diri mereka yang di atas rata-rata untuk menggunakan software legal. Pembiasaan yang sesungguhnya itu berada di dalam hati kecil, biasa mengakui keadilan dan selalu berusaha berbuat baik. Silakan kita memulai dari diri kita masing-masing. Silakan kita memulai dari satu hal kecil, sekarang juga.

7. Penutup

Esai ini selesai ditulis pada 14 Juni 2014. Esai ini ditulis dengan diskusi dengan beberapa warga kanal #ubuntu-indonesia (kang danu, kang SKRILLEX, dan kang syukronrm) pada 13 Juni 2014. Esai ini tidak ditutup kemungkinannya untuk direvisi pada masa mendatang. Esai ini tidak lain adalah nasihat bagi kita semuanya. Dan yang menasihati itu belum tentu lebih baik dari yang dinasihati. Semoga esai ini menambah motivasi legalitas Anda dan memudahkan kurva belajar Anda.

8. Referensi

  1. https://en.wikipedia.org/wiki/Open-source_software
  2. http://opensource.org/
  3. https://en.wikipedia.org/wiki/Freeware

Filed under: Linux

Pengguna Linux 14 Tahun Tidak Pernah Kena Virus

$
0
0

Bismillahirrahmanirrahim.

Tulisan ini adalah lanjutan dari tulisan sebelumnya yang berjudul Pengguna Linux 8 Tahun Tidak Pernah Kena Virus. Tulisan ini adalah testimoni dan dorongan moral kepada setiap pengguna baru supaya percaya diri dan tidak ragu-ragu dalam menggunakan Linux dan FOSS sebagai software legal. Sama seperti sebelumnya, testimoni ini saya peroleh dari percakapan IRC. Kali ini, saya berbincang dengan Akang Abdurrahman Soleh (asoleh) dari kanal #python-id (tentu saja pada server freenode). Beliau menggunakan Linux sejak era Windows 98 tepatnya sekitar tahun 2000. Saya menyorot baris-baris percakapan yang penting dan yang terpentingnya ada di baris nomor 75 dan 76 di bawah. Semoga tulisan ini bermanfaat.

Percakapan ini terjadi pada 12 Mei 2014. Anda bisa melihat log-nya pada fasilitas bot IRC Botbotme ini: https://botbot.me/freenode/python-id/2014-05-12/


[19:28.00] *** asoleh (~asoleh@125.161.211.43) has joined #python-id
[19:28.04] <tukangKompor> kimiamania: I'm glad to hear that :-P
[19:29.46] <tukangKompor> Ada er3n juga :-D
[19:31.40] <ibk> tukangKompor : salam
[19:33.04] <tukangKompor> ibk: terimakasih
[19:33.18] <Malsasa> asoleh: assalamu'alaykum
[19:33.24] <Malsasa> asoleh: kang abdurrahman soleh
[19:35.16] <tukangKompor> Waalaikumsalam
[19:37.02] <asoleh> alaikumsalam...
[19:37.46] <asoleh> salam kenal ya, malsasa?
[19:38.34] <Malsasa> asoleh: siap, Kang.
[19:40.39] <asoleh> maaf, udah lama banget baru gunain irc client lg nih...
[19:42.10] <tukangKompor> asoleh: salam kenal
[19:42.38] <asoleh> salam juga tukangKompor
[19:42.51] <tukangKompor> :D
[19:44.12] <asoleh> Malsasa: meetup kemaren dateng ga?
[19:44.32] <Malsasa> asoleh: tidak.
[19:44.46] <Malsasa> asoleh: kalau begitu, selamat datang kembali.
[19:46.07] <asoleh> Malsasa: domisili dimana nih?
[19:46.29] <Malsasa> asoleh: Mojokerto, Kang.
[19:46.37] * Malsasa sebenarnya tidak menggunakan Python
[19:46.46] * Malsasa menggunakan banyak aplikasi yang dibuat pakai Python, di Ubuntu
[19:46.53] <asoleh> Malsasa: pantesan ga ikut...
[19:47.40] <asoleh> Malsasa, pakai ubuntu juga ya?
[19:48.08] <Malsasa> Acara-acara Ubuntu saja saya tidak pernah ikuti.
[19:48.19] <Malsasa> asoleh: nggih. Kula ngagem Precise.
[19:49.11] <asoleh> Malsasa: wah pake arabic...ga ngarti ane..hehehe
[19:49.51] <Malsasa> Saya pakai Precise.
[19:50.36] <asoleh> Malsasa: Precise itu versi brapa ya?
[19:51.08] <Malsasa> asoleh: 12.04
[19:51.09] <asoleh> Malsasa: skrg gw pake 14.04, lumayan asik...
[19:51.13] <Malsasa> asoleh: oooh
[19:51.27] <Malsasa> Hari ini saya berkenalan dengan 2 orang pengguna Linux di kanal ini.
[19:51.30] <asoleh> sbelumnya debian 7
[19:51.34] <Malsasa> Saya kira saya tidak akan menemukannya.
[19:51.41] <Malsasa> asoleh: wah, akang punya banyak pengalaman Linux.
[19:52.45] <asoleh> yah lumayan lama...udah dr jaman mandrake. tp buat pake dirmh aja sih...
[19:53.16] <asoleh> kerja apa mas, Malsasa
[19:53.33] *** Malsasa__ (~Malsasa@162.248.11.75) has joined #python-id
[19:53.54] *** Malsasa__ is now known as betatester
[19:54.08] *** betatester is now known as teknoplasma
[19:54.46] <asoleh> Hallo salam kenal semuanya....
[19:55.12] <er3n> salam kenal om asoleh :)
[19:55.13] <teknoplasma> ibk: ini saya
[19:55.21] <er3n> salam kenal semuanya
[19:56.06] <asoleh> er3n: salam kenal juga
[19:56.53] <Malsasa> asoleh: wah, saya beruntung sekali.
[19:57.06] <Malsasa> asoleh: suatu hari nanti, saya ingin akang singgah di #ubuntu-indonesia.
[19:57.23] <Malsasa> asoleh: sekitar 10 tahun ya, Kang? Sejak akang pakai Mandrake pertama kali?
[19:59.15] <asoleh> Ya gitu deh...dari jaman internet pake dail-up. lumayan cape install driver modemnya...hehehe.
[20:01.47] <asoleh> ada yg pake ninja-ide terbaru ga...udah stabil blon sih?
[20:02.29] <er3n> wah sudah lama ya pak asoleh ini pake linux
[20:02.42] <er3n> sekarang pake apa pak asoleh
[20:02.47] <iromli> /me nyanyi "Kosong delapan kosong sembilan delapan sembilan empat kaliiiiiii"
[20:03.52] <asoleh> hallo, mas iromli. slam kenal...jangan nyanyi aja dong...
[20:04.27] <tukangKompor> Mas isman ?
[20:05.01] <asoleh> skrg pake distro apaan aja yg penting berbasis debian aja...
[20:05.02] <iromli> asoleh: halow :)
[20:05.22] *** teknoplasma (~Malsasa@162.248.11.75) Quit (Remote host closed the connection)
[20:05.49] <asoleh> 10 thn pake linux cuma bisa install sama ngenet doank...
[20:05.57] <iromli> tukangKompor: kita pernah ketemu di real-life?
[20:06.11] <iromli> jarang banget ada yg nanya saya pake nama asli :D
[20:06.21] <tukangKompor> iromli: hoho..belum kayaknya ..
[20:06.25] <asoleh> baru sekarang2 aja coba2 python...buat custom tryton.
[20:07.15] <asoleh> ada yg pernah oprek tryton ga disini?
[20:07.44] <tukangKompor> asoleh: Apa itu tryton?
[20:08.39] <asoleh> tukangKompor: business framework application forkingan openerp tahun 2008
[20:08.50] <asoleh> tryton.org
[20:08.52] <tukangKompor> iromli: salam kenal mas..
[20:09.15] <iromli> tukangKompor: salam kenal juga :)
[20:09.26] <tukangKompor> Oh..forkingannya openerp..
[20:10.08] <asoleh> tukangKompor: IMHO kedepan lebih menjanjikan dari pada openerp
[20:10.09] <Malsasa> APA?
[20:10.12] <Malsasa> tkp
[20:10.43] <Malsasa> asoleh: namun selama itu, apa akang pernah kena virus di Linux?
[20:11.27] <asoleh> Malsasa: kayaknya ga pernah kena...nyaman bener pake linux
[20:11.45] <Malsasa> asoleh: saya pernah menulis esai Pengguna Linux 8 Tahun Tidak Pernah Kena Virus
[20:11.59] <Malsasa> asoleh: sepertinya saya harus membuat Pengguna Linux 10 Tahun Tidak Pernah Kena Virus
[20:12.20] <iromli> oya, ada yg udah pake ubuntu trusty?
[20:12.45] <asoleh> iromli: trusty itu 14.04 ya...
[20:13.00] <iromli> iya
[20:13.19] <asoleh> maaf gw lebih inget pake angka2 hehehe...
[20:13.32] <iromli> tiap mau upgrade, mesti mikir2 soal VGA
[20:13.51] <asoleh> iromli: pake vga apa?
[20:13.52] <Malsasa> asoleh: benar, trusty = 14.04
[20:13.58] <iromli> nvidia
[20:14.07] <Malsasa> iromli: akang pakai Linux juga?
[20:14.15] <iromli> iya
[20:14.54] <tukangKompor> asoleh: dibanding erp5 ? Yang ada di python success stories
[20:15.06] <asoleh> iromli: kl pake vga nvidia emang banyak masalahnya di linux...
[20:15.42] <Malsasa> Wah, hari ini saya berkenalan dengan 3 orang pengguna Linux di kanal ini...
[20:15.44] <iromli> nah itu masalahnya, ribet nyari drivernya
[20:15.49] <asoleh> iromli: gw pake ati, skrg lg pake ubuntu 14.04
[20:15.59] <iromli> running well?
[20:16.09] <Malsasa> asoleh: bagaimana? Apa saya diizinkan menyalin log singkat kita ini jadi tulisan, Kang? Judulnya adalah yang tadi.
[20:16.14] <asoleh> alhamdulillah...nyaman...
[20:16.29] <iromli> ada gotchas dari versi sebelumnya?
[20:16.31] <asoleh> Malsasa: apa tuh?
[20:17.03] <Malsasa> asoleh: ini tulisan saya sebelumnya: https://malsasa.wordpress.com/2013/01/01/pengguna-linux-8-tahun-tidak-pernah-kena-virus/
[20:17.21] <Malsasa> asoleh: alhamdulillah kalau nyaman, Kang.
[20:17.24] <asoleh> tukangKompor: erp5 kayaknya saas ya?
[20:17.29] <Malsasa> iromli: saya pernah dengar soal bumblebee
[20:18.03] <tukangKompor> asoleh: kurang tahu juga ..
[20:18.04] <iromli> transformer? :D
[20:18.38] <tukangKompor> http://www.erp5.org/
[20:19.31] <Malsasa> iromli: hm, tentunya tidak. Bumblebee, semacam driver NVIDIA untuk UBuntu.
[20:19.31] <iromli> Malsasa: yang ini http://bumblebee-project.org/ ?
[20:19.44] <asoleh> tukangKompor: erp5 daluarsa kayaknya...komunitasnya ga aktif
[20:19.49] <Malsasa> Saya tidak menggunakan NVIDIA/ATI, saya hanya pakai VGA Intel.
[20:20.03] <Malsasa> iromli: coba akang cek saja. Coba juga cari di askubuntu.
[20:20.11] <tukangKompor> asoleh: iya..
[20:20.15] <asoleh> Malsasa: kl vga intel sih aman di linux...
[20:20.27] <Malsasa> Soalnya saya dengar, warga Ubuntu terselesaikan masalah drivernya (NVIDIA) setelah menggunakan Bumblebee.
[20:20.36] <Malsasa> asoleh: karena itulah Intel saya pilih.
[20:20.42] <iromli> ohoho
[20:21.07] <Malsasa> iromli: dan cukup sering terdengar rekomendasi Bumblebee di setiap pertanyaan masalah akang.
[20:21.19] <asoleh> tukangKompor: tryton sangat aktif, bahkan realease tiap versinya ga pernah meleset setiap 6 bulan sekali...
[20:21.25] <iromli> bookmarked \o/
[20:22.02] <asoleh> tukangKompor: http://www.openerp2tryton.com/
[20:23.12] <iromli> Malsasa: thanks buat info-nya
[20:23.20] <Malsasa> iromli: ini bukan apa-apa.
[20:23.25] <asoleh> iromli: karena sya pengguna linux, maka sya selalu pilih2 kl beli hardware...
[20:23.39] <Malsasa> asoleh: sepertinya akang sangat fokus dengan ERP, yaa...
[20:23.52] <Malsasa> [20:23:25] <asoleh> iromli: karena sya pengguna linux, maka sya selalu pilih2 kl beli hardware... <<< saya merasa punya teman
[20:24.03] <asoleh> Malsasa: iy...
[20:24.08] *** shirkey (~Thunderbi@139.195.43.7) has joined #python-id
[20:24.21] <Malsasa> asoleh: jadi, apa akang mengizinkan saya menuliskannya?
[20:24.28] <asoleh> Malsasa: latar belakang saya accounting...
[20:24.34] * Malsasa pernah tidak diizinkan oleh senior #fedora-id
[20:24.40] <iromli> saya sempet punya komputer dgn vga intel
[20:24.42] <asoleh> Malsasa: boleh2 aja...
[20:24.55] <iromli> sempet bermasalah juga di ubuntu 8
[20:25.00] <Malsasa> asoleh: jazakallahu khayran. Saya akan cantumkan nama akang, insya Allah.
[20:25.18] * Malsasa padahal pengalamannya 13 tahun
[20:25.33] * Malsasa atau 11 tahun, ya? *lupa*
[20:26.16] <iromli> Malsasa: asoleh: tapi terima kasih buat sarannya ;)
[20:26.48] <iromli> off duluan
[20:26.50] <asoleh> Malsasa: sya pke linux itu dulu bareng sama win 98 dualboot kayaknya...waktu masih bootloadernya lilo apa...
[20:26.54] *** iromli (~iromli@103.5.51.50) Quit (Quit: WeeChat 0.3.7)
[20:27.04] *** tukangKompor (~haneeball@112.215.44.247) has left <type 'buffer'>
[20:27.15] <Malsasa> asoleh: WOH
[20:27.21] <Malsasa> asoleh: 14 tahun?
[20:27.27] <Malsasa> asoleh: 16 tahun?
[20:27.30] * Malsasa senang betul
[20:28.15] <asoleh> kyknya dr tahun 2000 apa?
[20:29.24] * Malsasa benar-benar kagak ada media yang ngalahin IRC
[20:29.46] <Malsasa> asoleh: baik, Kang. Judul diubah jadi Pengguna Linux 14 Tahun Tidak Pernah Kena Virus
[20:30.11] <asoleh> Malsasa: dan sudah beberapa tahun ini sya hampir tdk pernah lagi menggunakan winxxx
[20:30.18] <Malsasa> asoleh: kalau para calon pengguna tahu tulisan macam ini, dan asalnya otentik dari sang pelaku langsung, maka itu menambah kepercayaan diri mereka.
[20:30.28] <Malsasa> asoleh: saya sangat menghargai keputusan itu.
[20:30.40] * Malsasa sebuah kehormatan bisa diterima dan berbincang di kanal ini
[20:30.59] * Malsasa terutama hari ini saya berbicara begini dengan akang asoleh
[20:30.59] <asoleh> sya punya linuxcount# kayaknya tapi lupa?
[20:35.35] <Malsasa> asoleh: wah, dulu saya pengen bikin tapi kagak ngarti caranya, terus akhirnya kagak bikin-bikin sampai sekarang
[20:36.43] <asoleh> Malsasa: sya partisipasi aja biar keliatan banyak pengguna linuxnya....dulukan masih sedikit...hehehe
[20:37.38] <Malsasa> asoleh: wah, partisipasi akang sangat saya hargai.


Filed under: Linux

Pengantar Pemrograman OpenCV C++ di Linux

$
0
0

Bismillahirrahmanirrahim.

Tulisan ini tersedia dalam PDF.

Tulisan ini ditujukan kepada pemula OpenCV di Linux. Tulisan ini dibuat untuk siapa saja yang ingin tahu bagaimana menggunakan IDE untuk memrogram OpenCV dengan C++ di Linux. Tulisan ini juga dibuat untuk pengguna Microsoft Visual C++ di Windows yang ingin mencoba OpenCV di Linux. Tulisan ini mencakup pengenalan singkat, instalasi di Linux, dan contoh-contoh kode OpenCV. Tulisan ini juga berisi tip-tip memulai OpenCV semisal membaca dokumentasi resmi dan mencari sumber daya. Tulisan ini tidak berisi algoritma atau bahasan-bahasan OpenCV lanjutan yang lain. Tulisan ini hanya pengantar singkat untuk pemula. Tujuan dari tulisan ini adalah Anda mampu mengatur sendiri IDE di Linux untuk OpenCV dan bisa menjalankan kode sumber program dengan benar. Semoga tulisan ini bermanfaat.

Isi Tulisan Ini

  1. Apa Itu OpenCV?
  2. Apa yang Bisa Dilakukan dengan OpenCV?
  3. Instalasi OpenCV di Linux
  4. Pilihan Editor/IDE untuk Memrogram OpenCV di Linux
  5. Cara Mengonfigurasi Build Options Kompiler g++ untuk OpenCV di Geany
  6. Contoh-Contoh Kode Sumber Program OpenCV
  7. Sumber Referensi Belajar OpenCV
  8. Tip-Tip Belajar OpenCV
  9. Penutup

1. Apa Itu OpenCV?

OpenCV (Open Computer Vision) Pustaka computer vision yang open source dan dipakai secara luas di macam-macam sistem operasi dan arsitektur komputer untuk keperluan pengolahan citra.

2. Apa yang Bisa Dilakukan dengan OpenCV?

Tentu saja untuk memrogram suatu sistem yang berhubungan dengan citra. Contohnya sebagai berikut.

  1. Mengakses webcam laptop secara langsung.
  2. Melakukan object tracking via kamera.
  3. Melacak kontur suatu objek 2D.
  4. Membuat perangkat lunak pengolah gambar (semisal Photoshop atau GIMP).
  5. Memberikan efek tertentu pada gambar bitmap.
  6. Pattern recognition.
  7. Face recognition.
  8. Fingerprint recognition.
  9. Optical Character Recognition.

Supaya nyata, berikut ini saya bawakan skrinsot dari situs resmi OpenCV sendiri mengenai pengenalan kontur:

Sumber
Bounding_Rects_Circles_Source_Image
Hasil
Bounding_Rects_Circles_Result

Kedua Gambar diambil dari http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/bounding_rects_circles/bounding_rects_circles.html.

3. Instalasi OpenCV di Linux

3.1 Ubuntu

Ikuti saja panduan resmi dari Ubuntu https://help.ubuntu.com/community/OpenCV dan OpenCV akan diinstal secara otomatis. Lakukan apa yang tertera di situ. Saya pernah melakukan instalasi OpenCV dari repo resmi dan hasilnya tidak memuaskan. Cara terbaik (untuk saat ini) adalah panduan resmi di atas.

3.2 Archlinux

pacman -S opencv opencv-samples

http://morf.lv/modules.php?name=tutorials&lasit=8

3.3 Debian

http://indranilsinharoy.com/2012/11/01/installing-opencv-on-linux/

3.4 Fedora

https://sites.google.com/a/asu.edu/wireless-video-sensor/how-to-1/how-to-install-ffmpeg-opencv-under-fedora

3.5 Mint

http://daily-ravel.blogspot.com/2012/09/installing-opencv-on-linux-mint-maya.html

3.6 Slackware

http://xathrya.web.id/blog/2013/02/07/installing-opencv-with-slackware64-14-0/

3.7 Linux Secara Umum

http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html?highlight=install%20opencv

4. Pilihan Editor/IDE untuk Memrogram OpenCV di Linux

Jika Anda terbiasa dengan Microsoft Visual C++ di Windows, mulailah mengenali IDE-IDE lain yang bisa dipakai untuk memrogram dengan OpenCV. Silakan pilih sendiri dari daftar yang sudah saya tulis di https://malsasa.wordpress.com/2014/02/17/aplikasi-editor-pemrograman-di-linux/. Untuk tulisan ini, saya memilih Geany sebagai editor. Geany saya pakai karena sangat mudah dikonfigurasi dan sangat mudah dikontrol.

opencv-geany

5. Cara Mengonfigurasi Build Options Kompiler g++ untuk OpenCV di Geany

Tentu saja ini dilakukan dengan mengikuti panduan g++ build options pada pranala resmi Ubuntu di atas. Perhatikan dulu perintah berikut. Perintah ini berasal dari pranala resmi di atas.

gcc -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.c .c` opencvtest.c `pkg-config --libs opencv`

Jelasnya, jika Anda menggunakan perintah di atas begitu saja dalam IDE Anda, maka Anda harus selalu mengganti nama berkas menjadi opencvtest.c. Tentu saja itu sangat merepotkan. Tak bisakah yang diganti cukup perintah di atas sehingga Anda bisa membuat nama berkas apa pun? Tentu bisa. Perhatikan pola perintah berikut dan masukkan ke dalam Geany (atau IDE yang Anda pakai). Build Options Geany berada di menu Build > Set Build Options.

Untuk Compile (ini perintah kompilasi dengan g++):

g++ -Wall -c "%f"

Untuk Build (ini perintah linking dengan g++ bersama pustaka OpenCV, ini yang terpenting):

g++ "%f" `pkg-config --cflags --libs opencv` -o "%e"

Anda benar. Nama berkas bisa digantikan dengan variabel %f dan %e. Itulah fleksibilitas build options di Geany (dan semua IDE lainnya). Silakan lihat skrinsot berikut untuk kejelasannya.

purge-apache6

6. Contoh-Contoh Kode Sumber Program OpenCV

Berikut ini saya bawakan kode sumber program OpenCV yang sudah saya tes sendiri dengan g++ dan Geany di atas Ubuntu dan bekerja dengan baik. Silakan salin tempel (copy paste) kode-kode berikut ke dalam Geany Anda dan jalankan. Pastikan Anda telah mengonfigurasi semuanya dengan benar.

6.1 Buka Sebuah Gambar Digital


// latihan_opencv_1_bukagambar.cpp
// program pembaca dan penampil gambar bitmap
// program ini akan membaca 1.jpg (harus ada di dalam 1 direktori yang sama dengan program), menyimpan ke dalam memori, lalu menayangkannya dalam jendela ke layar monitor
// kunci program ini ada pada kelas Mat, fungsi imread(), dan fungsi imshow()
// fungsi waitKey() harus diisi argumen 0 agar dia terus memunculkan jendela dan tidak langsung mati sesaat setelah dieksekusi
// program ini ditulis dengan vim pada Friday, June 27, 2014 02:01 AM
// Ade Malsasa Akbar <https://malsasa.wordpress.com>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
Mat variabel_gambar_1;
variabel_gambar_1 = imread("1.jpg");

imshow("TAYANGKAN GAMBAR", variabel_gambar_1);
waitKey(0);
return(0);
}

Hasil

opencv-linux1

6.2. Buka, Olah, Simpan Gambar Digital

// latihan_opencv_2_efek.cpp
// program ini bersumber dari http://docs.opencv.org/doc/tutorials/introduction/load_save_image/load_save_image.html
// program ini disunting dengan vim pada Sunday, June 29, 2014 11:12 AM
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main()
{

 Mat image;
 image = imread("1.jpg");

 Mat gray_image;

 // fungsi cvtColor bertugas mengubah gambar asli (objek image) menjadi objek gray (objek gray_image) dengan argumen CV_BGR2GRAY
 cvtColor( image, gray_image, CV_BGR2GRAY );

 // fungsi imwrite bertugas membuat suatu berkas gambar berdasarkan objek yang sudah diberi efek
 // argumen pertama adalah nama berkas, argumen kedua adalah objek Mat dari sumber yang sudah diberi efek
 imwrite( "gambar_gray.jpg", gray_image );

 // fungsi namedWindow berguna untuk menentukan nama dan ukuran jendela
 namedWindow( "Gambar Asli", CV_WINDOW_AUTOSIZE );
 namedWindow( "Gambar Gray", CV_WINDOW_AUTOSIZE );

 // fungsi imshow berguna untuk menayangkan gambar di dalam jendela
 imshow( "Gambar Asli", image );
 imshow( "Gambar Gray", gray_image );

 // fungsi waitkey harus ada supaya program dapat terus berjalan
 waitKey(0);

 return 0;
}

Hasil

opencv-2
opencv-linux96.3 Akses Webcam Laptop


// latihan_opencv_3_webcam.cpp
// http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=video%20capture#VideoCapture
// kata kunci: opencv video capture
// kata kunci: opencv camera capture
// diunduh pada Friday, June 27, 2014 02:33 AM
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>

// namespace untuk cv; karena sebetulnya tidak ada VideoCapture, Mat, imshow(), dan waitKey()
// yang ada adalah cv::VideoCapture, cv::Mat, cv::imshow(), dan cv::waitKey()
// ditulis pada Friday, June 27, 2014 07:42 PM
// untuk memahaminya, bacalah http://www.cplusplus.com/doc/tutorial/namespaces/
using namespace cv;

int main(int, char**)
{
// buka kamera default yakni nomor 0
// ganti nomornya dengan 1 atau 2 jika kamera berada di posisi lain
VideoCapture cap(0);

while(true)
{
// deklarasi objek frame dari kelas Mat
Mat frame;

// objek video dari kamera dipasangkan ke dalam frame
cap >> frame;

// fungsi imshow() menayangkan objek Mat yang sudah berisi objek video kamera
// argumen pertama adalah string untuk judul jendela
// argumen kedua adalah objek Mat
imshow("Kamera", frame);

// fungsi waitKey() (didefinisikan dalam header highgui) dibutuhkan oleh imshow() (yang juga dari highgui)
// tanpa waitKey(), imshow() tidak akan melakukan window event semisal redraw, resize, input event, dan sebagainya
// argumen angka di dalam waitKey menentukan berapa milisekon delay untuk key event yang dibutuhkan oleh imshow()
// panggillah walau hanya untuk 1 milisekon
// singkatnya, ini sepele tetapi wajib ada
// sumber 1: http://stackoverflow.com/questions/12452118/what-does-waitkey-30-mean-in-opencv
// sumber 2: http://docs.opencv.org/modules/highgui/doc/user_interface.html#waitkey
if(waitKey(3) >= 0) break;
}

return 0;
}

Hasil

opencv-linux7

6.4 Operasi Logika (AND, OR, XOR, dan NOT) Terhadap 2 Gambar


// AND OR XOR NOT terhadap 2 gambar
// sumber kode ada 2, yaitu http://opencvexamples.blogspot.com/2013/10/bitwise-and-or-xor-and-not.html
// dan http://docs.opencv.org/doc/tutorials/introduction/display_image/display_image.html
// karena ia harus bisa menyimpan gambar dahulu baru kemudian mengoperasikannya
// baru kemudian menayangkannya
// kode ini diubah dengan vim pada Friday, June 27, 2014 12:45 AM
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main( )
{
// kelas Mat ini berfungsi untuk menampung gambar
Mat variabel_gambar_1; //objek dari kelas Mat akan dipakai sebagai variabel penyimpan gambar
Mat variabel_gambar_2;
Mat variabel_gambar_3;

// proses menyimpan gambar JPG ke dalam variabel Mat
variabel_gambar_1 = imread("1.jpg");
variabel_gambar_2 = imread("2.jpg");

// deklarasi objek-objek (variabel-variabel) Mat untuk menyimpan hasil operasi
Mat simpan_hasil_and;
Mat simpan_hasil_or;
Mat simpan_hasil_xor;
Mat simpan_hasil_not;

// proses operasi AND, OR, XOR, dan NOT untuk dua gambar yang disimpan dalam dua variabel
// hanya proses NOT yang melibatkan satu gambar, karena memang NOT operasi logika untuk satu operand saja
bitwise_and(variabel_gambar_1, variabel_gambar_2, simpan_hasil_and); //dua gambar di-AND
imshow("AND",simpan_hasil_and); //kemudian isi variabel simpan_hasil_and ditayangkan

bitwise_or(variabel_gambar_1, variabel_gambar_2, simpan_hasil_or); //dua gambar di-OR
imshow("OR", simpan_hasil_or);

bitwise_xor(variabel_gambar_1, variabel_gambar_2, simpan_hasil_xor); //dua gambar di-XOR
imshow("XOR", simpan_hasil_xor);

bitwise_not(variabel_gambar_1, simpan_hasil_not); //satu gambar di-NOT
imshow("NOT", simpan_hasil_not);

// catatan:
// bitwise_and() adalah fungsi untuk melakukan AND LOGIC OPERATION terhadap dua gambar
// demikian pula untuk *_or, *_xor, dan *_not

waitKey(0);
return(0);
}

Hasil

opencv-linux6

7. Sumber Referensi Belajar OpenCV

  1. http://docs.opencv.org/index.html (dokumentasi resmi OpenCV)
  2. http://opencvexamples.blogspot.com/ (kumpulan contoh kode OpenCV siap pakai)
  3. http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html (panduan perkenalan OpenCV akademik)
  4. http://dasl.mem.drexel.edu/~noahKuntz/openCVTut1.html (tutorial OpenCV akademik)
  5. http://www.cs.rit.edu/~gsp8334/ (tutorial OpenCV akademik)
  6. http://opencv-srf.blogspot.com/ (blog khusus OpenCV yang berisi banyak contoh + analisis kode program yang berguna)
  7. http://opencv-code.com/ (blog khusus OpenCV)
  8. http://www.shervinemami.info/openCV.html (blog Computer Vision yang memiliki kategori OpenCV)
  9. http://blog.damiles.com/category/tutorials/opencv-tutorials/ (blog lain yang memiliki kategori OpenCV)
  10. http://www.tutorialspoint.com/java_dip/introduction_to_opencv.htm (tutorial OpenCV dengan Java)
  11. http://opencvpython.blogspot.com/ (tutorial OpenCV dengan Python)
  12. http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_tutorials.html (tutorial OpenCV dengan Python)
  13. http://docs.nvidia.com/tegra/Content/OpenCV_Main.html (tutorial OpenCV dari NVIDIA untuk Tegra)
  14. http://opencv.wikispaces.com/ (wiki OpenCV dari komunitas)

8. Tip-Tip Belajar OpenCV

  1. Cari contoh kode, kompilasikan, lihat hasilnya.
  2. Analisis baris-baris penting di dalam kode yang diperoleh dengan memberinya komentar.
  3. Ubah kode sedikit demi sedikit, lihat hasilnya.
  4. Menulislah tentang OpenCV di blog Anda sendiri.

9. Penutup

Tulisan ini mulai dibuat draft-nya pada 3 April 2014 dan diselesaikan pada 29 Juni 2014. Tulisan ini lebih dulu direncanakan untuk ditulis daripada tulisan mengenai OpenGL. Tulisan ini tidak ditutup kemungkinannya untuk direvisi. Semoga tulisan ini bermanfaat.


Filed under: Linux

Pentingnya Sebuah Tutorial Bagi Seorang Pemula

$
0
0

Bismillahirrahmanirrahim. 

Tulisan ini tersedia dalam PDF.

Tutorial itu adalah catatan sederhana mengenai bagaimana Anda bisa menyelesaikan 1 masalah di Linux.

Isi Tulisan Ini

  1. Pembukaan
  2. Permasalahan
  3. Penjabaran Permasalahan
  4. Solusi
  5. Penjabaran Solusi
  6. Contoh Implementasi
  7. Hambatan-Hambatan
  8. Kontra Hambatan
  9. Contoh-Contoh Tutorial
  10. Penutup

1. Pembukaan

Kemarin pagi (9 Mei 2014) saya mendapatkan ide baru dari salah satu komentar di situs Fedora Indonesia1 yang berbunyi demikian: 

Lutfi Putra3/22/2014 7:05 PM

terima kasih mas, membantu sekali…
maklum baru install fedora…

Betapa pentingnya sebuah tutorial. Kalau dihitung-hitung, tutorial mengenai apa yang harus dilakukan setelah instal Fedora adalah hal yang sangat tidak penting. Mungkin Fedoran yang berpengalaman tidak akan pernah membutuhkannya. Pendek kata, sudah tahu. Namun bagi mereka yang baru hari ini instal Fedora, atau baru hari ini mengenal Linux, sebuah tutorial semacam itu berubah menjadi sangat penting. Pendek kata, tutorial itu penting bagi pemula. Setelah membaca laman itu, saya langsung merasa ingin menulis sebuah esai pendek mengenai hal ini.

2. Permasalahan

  1. Pemula itu banyak.
  2. Setiap pemula tidak mengetahui apa yang harus dilakukan dengan sistemnya.
  3. Setiap pemula memiliki keinginan sendiri-sendiri terhadap sistemnya.
  4. Setiap pemula memiliki masalah dengan sistemnya.
  5. Linux semestinya diperkenalkan kepada masyarakat untuk mengurangi pembajakan, menghemat biaya secara nasional, dan meningkatkan inovasi di bidang ilmu komputer.

3. Penjabaran Permasalahan

  1. Karena pemula itu banyak, maka banyak masalah yang sama terjadi.
  2. Karena banyak masalah yang sama terjadi, maka banyak pertanyaan yang sama terjadi.
  3. Walau banyak masalah terjadi, banyak masalah sudah terselesaikan.
  4. Sementara itu, masalah-masalah yang sudah terselesaikan tidak tercatat.
  5. Dan masalah-masalah yang sudah tercatat masih banyak yang tidak sampai kepada yang membutuhkannya. 

4. Solusi 

  1. Kita sebaiknya menulis tutorial mengenai apa yang kita telah selesaikan.
  2. Walaupun tutorial itu sangat sederhana, hanya berisi bagaimana langkah kita sendiri hingga 1 masalah itu selesai.
  3. Walau tutorial itu hanya berupa ulasan suatu software, yang isinya cuma memberitahukan fungsi utamanya.
  4. Kita bisa memberikan pranala (link) dari suatu solusi yang telah kita ketahui kepada yang membutuhkannya agar mereka dapat menyelesaikan masalah dengan cepat.
  5. Kita juga bisa menulis suatu tutorial yang komprehensif mengenai masalah dengan niat akan memberikan pranalanya kepada setiap penanya hal yang sama.
  6. Kita juga bisa sekadar memberikan kata kunci Google terhadap permasalahan yang ditanyakan walau kita tidak membuat tutorial atau tidak memiliki pranalanya.

5. Penjabaran Solusi

Makin banyak pengguna yang mendokumentasikan masalah-masalahnya, maka makin kecil jumlah masalah yang tersisa. Dengan menuliskan bagaimana Anda menyelesaikan suatu masalah, maka Anda membantu pengguna lain dengan masalah yang sama. Untuk membersihkan pemahaman, bayangkanlah Anda memiliki beras dan kebutuhan pokok yang melimpah di tengah ribuan orang yang terkena musibah. Tentu dengan sangat sukarela Anda akan membagi-bagikannya kepada orang-orang itu. Situasi kita mirip dengan perumpamaan ini.

6. Contoh Implementasi

Ada tulisan-tulisan saya yang sengaja ditulis untuk diberikan. Saya sendiri melakukan solusi nomor 5 pada beberapa tulisan saya semisal:

  1. Panduan Googling: http://malsasa.wordpress.com/2013/05/26/googling-pun-butuh-kemampuan/; saya akan berikan kepada penanya yang saya nilai belum bisa googling (menanyakan pertanyaan berulang, yang menanyakan pertanyaan remeh, yang kesulitan menyelesaikan suatu masalah sepele, atau yang sudah berulang kali mengalami masalah berbeda tetapi masih juga belum bisa memecahkan masalah sendiri).
  2. Panduan Pengaturan Repo Ubuntu: http://malsasa.wordpress.com/2013/10/15/daftar-lengkap-repositori-lokal-ubuntu-12-04-plus-cara-mengaturnya/; saya akan berikan kepada penanya yang mengalami error pada sources.list, atau yang bertanya soal repo Ubuntu.
  3. Panduan apt-get: http://malsasa.wordpress.com/2014/01/27/panduan-ringkas-apt-get/; saya akan berikan kepada penanya yang ingin solusi offline untuk instalasi aplikasi, atau penanya yang bermasalah dengan apt, atau penanya yang sengaja tanya bagaimana cara menggunakan apt.
  4. Panduan Etika dan Teknik Menjadi Pemula: http://malsasa.wordpress.com/2014/01/05/how-to-become-a-newbie/; saya akan berikan kepada penanya yang “membuat masalah” di dalam forum.
  5. Panduan Menjadi Penjawab: http://malsasa.wordpress.com/2014/02/22/indonesia-masih-dalam-masa-transisi/; saya akan berikan pada pertanyaan yang mengarah kepada flame antara senior dan junior karena masalah pertanyaan berulang.
  6. Panduan apt-web: http://malsasa.wordpress.com/2013/10/29/tutorial-menggunakan-apt-web/; saya akan berikan kepada penanya masalah instalasi Wine (atau aplikasi lain) secara offline atau yang sengaja bertanya mengenai apt-web.

Anda bisa melakukan hal yang sama untuk bidang-bidang lain yang dirasa belum ada tutorialnya dalam Bahasa Indonesia.

7. Hambatan-Hambatan

  1. Hambatan pertama dan terutama adalah persepsi. Setiap orang menyangka menulis tutorial itu harus megah semegah skripsi. Harus dikerjakan selama berhari-hari. Hanya bisa dikerjakan oleh pengguna ahli. Intinya, persepsi yang mengakar di benak semua orang adalah menulis tutorial itu sulit.
  2. Hambatan kedua adalah adanya kesadaran yang minim mengenai pentingnya tutorial untuk orang lain.
  3. Hambatan ketiga adalah minimnya keberadaan pihak yang mengajak untuk menulis tutorial.
  4. Banyak orang menyangka sudah cukup banyak tutorial di Google.

8. Kontra Hambatan

  1. Tutorial itu tidak harus megah. Catatan sederhana Anda untuk menyelesaikan 1 masalah sudah disebut tutorial. Cukup pikirkan saja nanti ada yang terbantu dengan membaca tutorial Anda.
  2. Saya sendiri adalah pengguna Ubuntu. Saya membayangkan saat ini juga menginstal CentOS. Saya membayangkan, tentu saya akan kebingungan mengenai apa yang harus saya lakukan pertama kali setelah menginstal CentOS. Saya tidak pernah menggunakan CentOS sebelumnya (inilah perasaan mereka yang baru kenal Linux atau yang baru menginstal distro). Jika saya bisa menemukan tutorial dasar CentOS setelah menginstal (sebagaimana contoh di atas) maka itu akan sangat membantu saya. Terlebih lagi, hal itu meringkas waktu saya dan bisa jadi dengan itu saya bisa menulis tutorial yang membahas CentOS dari sisi lain. Efeknya beruntun, sehingga nantinya orang lain bisa mendapatkan menfaatnya juga. Hal ini berlaku tidak hanya pada Centos, tetapi juga seluruh aspek FOSS2 yang lain.
  3. Tulis tutorial sebisa Anda lalu ajak orang lain menulis dengan lebih baik.
  4. Ada benarnya tetapi tidak selalu. Ada tutorial-tutorial tertentu yang justru lebih baik kalau ada dalam Bahasa Indonesia. Misalnya tutorial mengganti pengaturan repo untuk distro tertentu, panduan ringkas package manager distro tertentu (misalnya apt), panduan instalasi dual boot, panduan manajemen partisi, pengantar pemrograman, dan hal-hal krusial lainnya. Ini dikarenakan ada 2 klasifikasi dalam jenis tutorial itu sendiri, yakni tutorial pengantar (semacam yang saya sebut tadi) dan tutorial lanjutan setelah pengantar. Untuk masyarakat kita, prioritas tertinggi berada pada tutorial pengantar. Sementara masih sangat banyak tutorial pengantar yang belum ada dalam Bahasa Indonesia sedangkan minat masyarakat awam terhadap Linux makin bertambah.

9. Contoh-Contoh Tutorial 

Untuk memperkuat esai ini, saya telah mengumpulkan beberapa tutorial karya warga KPLI yang saya nilai bagus dan sesuai maksud esai ini. Tutorial yang saya sebutkan di sini adalah catatan pribadi mengenai bagaimana si penulisnya menyelesaikan 1 masalah di Linux.

  1. Apa Itu Quassel dan Bagaimana Menggunakannya, Bagus Aji Santoso, http://www.poss-upi.org/2014/05/chit-chat-di-irc-bersama-quassel/. Sisi positif artikel ini ada pada kesederhanaannya yang hanya sekadar pendapat pribadi mengenai Quassel. Ini terlihat pada kalimat “…namun pada artikel ini saya hanya akan menunjukan dua kelebihan Quassel yang saya ketahui.” Perhatikan bahwa tulisan yang dimulai dari pendapat dan pengalaman pribadi seperti ini bisa berkembang jadi satu tutorial utuh yang sangat megah.
  2. Panduan Instalasi Ubuntu, Nur Hasan, http://nurhasan257.wordpress.com/2014/03/29/panduan-instalasi-linux-ubuntu/. Sisi positif tulisan ini ada pada kesederhanaannya sebagai sebuah catatan pribadi. Ini terlihat dari kalimat “Menurut pendapat saya, jawabanya adalah…”. Penulisnya sengaja menambahkan banyak skrinsot bahkan memberi penekanan pada bagian-bagian Windows yang perlu diklik untuk membuat partisi. Tutorial semacam itu langka karena membutuhkan keseriusan untuk membuat skrinsot dan menggambar penekanan. Tulisan ini diantarkan dengan bahasa yang sangat santai dan pemula betul sehingga sesuai dibaca oleh khalayak. Nilai plus patut diberikan untuk skrinsot yang banyak dan berurutan. Nilai plus berikutnya patut diberikan untuk peringatan penting yang ditekankan pula oleh penulisnya “Sebelum kita menginstallnya, hal yang harus dilakukan adalah menyiapkan hardisk kosong”. Walaupun suatu tulisan asalnya pendapat pribadi, tetapi ia bisa berkembang jadi bagus seperti tulisan ini.
  3. Memperkenalkan Ubuntu dan Unity, Ridwan Fajar, http://ridwanbejo.wordpress.com/2014/05/09/mengenal-ubuntu-14-04-bagian-ke-1/. Tulisan ini langka karena tidak banyak orang berpikir ke arah ini. Sisi positif tulisan ini adalah kesederhanaannya sebagai pendapat pribadi. Ini jelas termaktub dalam pernyataan penulisnya sendiri “Dari hal yang paling sederhana sekali, saya ingin menunjukkan sebuah fitur penting ketika menggunakan Ubuntu 14.04 ini, yaitu Dash Menu…”. Tulisan ini menjelaskan bagaimana cara memakai Unity Desktop di Ubuntu. Secara langsung, tulisan ini juga menjelaskan bagaimana menggunakan Ubuntu. Tulisan ini mengumpulkan dua kebaikan dalam 1 wadah, yakni menjelaskan A dan menjelaskan B sekaligus.
  4. Ulasan Kingsoft Office, Himawan Mahardianto, http://www.newbienote.com/2014/03/kingsoft-office-alternatif-aplikasi.html. Sisi positif tulisan ini ada pada sesuatu yang dibahas. Tulisan ini membahas Kingsoft Office, aplikasi office Linux yang sangat mirip Microsoft Office 2007/2011. Tampaknya sang penulis sadar betul bahwa yang diperlukan pengguna itu justru aplikasi office. Ini terlihat dari kalimat pertamanya “Ketika pengguna awam beralih dari sistem operasi Microsoft Windows ke Ubuntu, biasanya yang dicari adalah aplikasi padanan yang biasanya ia gunakan di Windows”. Kalaupun mungkin sang penulis tidak menyadarinya, tetapi dia sebetulnya memerhatikan sisi psikologis pengguna dengan kata yang saya garisbawahi. Tulisan ini pun berisi pendapat pribadi yang tersebar di dalamnya. Nilai plus patut diberikan pada skrinsot-skrinsot beruntun yang diberikan. Nilai plus berikutnya ada pada bentuk kerendahan hati pada kalimat “…anda tinggal klik Unity Bar yang ada di pojok kiri atas, kemudian ketik…”. Tidaklah banyak orang sabar mengajari orang lain sampai tingkat kedetailan demikian.
  5. Cara Instalasi GNOME Classic, Faisal Gifars, http://garismasuk.blogspot.com/2014/05/cara-install-classic-desktop-di-ubuntu.html. Sisi positif tulisan ini ada pada kesederhanaannya sebagai catatan biasa. Tulisan ini adalah yang paling singkat dan sederhana dari sekian contoh yang saya bawakan. Walaupun sederhana, tetapi tulisan ini sudah lengkap karena skrinsot terakhirnya. Banyak pengguna baru bingung cara masuk desktop kedua hanya gara-gara ketiadaan gambar penjelas seperti gambar terakhir di sini.

10. Penutup 

Haruskah menulis tutorial untuk seluruh permasalahan? Tidak. Lakukan semampu Anda saja. Bantu orang lain semampu Anda. Tidak perlu membebani diri. Semoga tulisan ini bermanfaat.

 

 


 

2 Free/Open Source Software.


Filed under: Linux

Aplikasi Editor untuk LaTeX di Linux

$
0
0

Bismillahirrahmanirrahim.

texmaker1Ketertarikan saya kepada LaTeX bermula sejak pertama mengenal Linux yakni sejak melihat dokumen-dokumen PDF yang dihasilkan dengan LaTeX. Kesan kala itu hanya rapi, rapi, dan rapi. Ketertarikan kedua saya dimulai ketika melihat Texmaker pada komputer Windows. Texmaker sungguh editor yang sangat keren. Kemudian saya melihat salah satu laman Stackexchange yang mendiskusikan LaTeX Editor, dan gara-gara itu untuk pertama kalinya saya berani menggunakan LaTeX. Saat itu saya mencoba Gummi di Ubuntu. Beberapa bulan berselang, saya beralih ke Texmaker, impresi pertama saya. Lalu saat ini rencana B saya ketika pertama kali membaca laman Stackexchange tersebut akhirnya saya laksanakan. Apa itu rencana B? Itu adalah menerjemahkan laman tersebut ke dalam Bahasa Indonesia sebagaimana yang pernah saya lakukan dengan tutorial Terminal dari komunitas Mint. Inilah terjemahan dari big list http://tex.stackexchange.com/questions/339/latex-editors-ides. Seluruh skrinsot di sini diambil dari laman tersebut kecuali beberapa yang saya sebutkan lain. Semoga tulisan ini bermanfaat.

1. Emacs dengan AUCTex

  • OS: Windows, Mac (termasuk fork Aquamacs), Unix
  • Lisensi: Free software (GPL)
  • Bahasa: de, dk, fr, is, it, jp, nl, pl, se, sk didukung oleh AUCTeX
  • Unicode: Ya, sejak Emacs 23
  • RTL/bidirectional support: sejak Emacs 24, melalui bidi-mode
  • % !TeX directives: Tidak, tetapi Emacs memiliki beberapa realisasi untuk file local variables
  • Syntax highlighting: Ya, bisa diatur lewat customize and Elisp
  • Code completion: Ya, via Emacs Predictive Completion, yang mendukung AUCTeX tanpa konfigurasi lebih lanjut
  • Code folding: Ya
  • Spell checking: Ya
  • SyncTeX: Ya
  • Built-in output viewer: Ya
  • Project management: org-modereftex-mode

Emacs adalah salah satu editor tertua, yang mendukung mode penyuntingan LaTeX, ConTeXt, dan Plain TeX, AUCTeX dan paket untuk mengelola kode-kode sumber, RefTeX.

emacs (Di skrinsot ini, mode visual-line-mode diaktifkan. Di dalam mode ini, baris-baris yang lebih panjang dari jendela akan dipotong per kata. Line break tidak ditambahkan kepada berkas sumber.)

RefTeX membuat seluruh referensi Anda mudah ditemukan layaknya C-c <key>, baik untuk  BibTeX maupun biblatex, dan ia memiliki pintasan (shortcut key) pula untuk bernavigasi di antara bagian-bagian dokumen dengan menggunakan C-c =: secara default.

emacs2

(Tema warna dapat dikonfigurasi sebebas mungkin)

AUCTeX mendukung multi-file parsing, sehingga dokumen-dokumen besar dengan perintah \input atau \include mudah dikompilasikan dengan C-c C-c pada berkas yang bersangkutan. Tidak perlu lagi kembali ke master file hanya untuk mengompilasi.

Fitur AUCTeX preview-latex adalah pratayang WYSIWYG untuk rumus-rumus.

Fitur-fitur terkemuka Emacs:

  • Menggunakan table-insert bersama dengan fungsi table-generate-source dan table-recognize-* untuk membuat tabel-tabel dengan mudah.
  • Banyak sekali shortcut key tersedia
  • Terdokumentasi dengan baik, baik Emacs itu sendiri melalui manual Emacs dan manual AUCTex Texinfo, maupun melalui banyak buku dalam beberapa bahasa.

2. Vim dengan LaTeX-suite

  • OS: Windows, Mac, Linux, BSD, dan lain-lain
  • Lisensi: Open Source Charityware
  • Bahasa: ?
  • Unicode: Ya
  • RTL/bidi support: sebagian
  • % !TEX directives: Tidak, tetapi memiliki modelines
  • Syntax Highlighting: Ya, bisa dikustomisasi
  • Code Completion: Ya (menggunakan Omni Completion, bisa diperluas dengan plugin SnipMate)
  • Code Folding: Ya
  • Spell Checking: Ya
  • SyncTeX: Ya, lihat pertanyaan ini
  • Built-in Output Viewer: Tidak
  • Project Management: ?

Jika Anda benar-benar kelas berat, Anda akan selalu menggunakan Vim. Ada banyak macro yang dibuat untuk Vim untuk membantu menyunting berkas LaTeX.

vim

Anda dapat melakukan word/command completion melalui <C-P> dan <C-N>, untuk memilih saran sebelumnya atau sesudahnya.

Ada versi Vim dengan menu-menu grafis, yang bernama gVim. Jika ia digunakan dengan Latex-suite, maka banyak perintah TeX ditampilkan di menubar untuk mempercepat penyuntingan.

Fitur-Fitur

Vim juga memiliki fitur code-foldingkarena paket vim-late menawarkan code-folding otomatis. Folding juga bisa dilakukan secara manual berdasarkan kunci (misalnya {{{ dan }}}) untuk membuka dan menutup fold otomatis. Contoh folds bisa dilihat pada gambar berikut:

vim2

Fitur Vim masih sangat banyak. Namun di dalam tulisan ini, yang bisa disebutkan adalah:

VIM

  • Regex
  • Perintah dan pintasan kibor yang powerful
  • Sangat bisa dikustomisasi
  • Smart Indenting

LaTeX-Suite

  • Panggil cepat kompiler dengan \ll; tayangkan hasil dengan \lv
  • Environments dapat diakses dengan tiga huruf dalam insert mode:
    • EEQ = environment persamaan
    • EFI = environment gambar (figure)
  • Place-holders (<+text+>) dapat dilompati dengan Ctrl-J tanpa meninggalkan insert mode
  • Inverse searching: klik ganda penampil PDF dan Anda lompat ke baris kode sumber tex yang bersesuaian

3. Texmaker — 

  • Platforms: Windows XP/Vista/7/8, OS X 10.5+, Linux
  • License: GPL, gratis
  • Languages: cs, de, el, en, es, fa, fr, gl, hu, it, nl, pl, pt, pt (bra), ru, se, sr, zh (cn), zh (tw)
  • Unicode: Ya
  • RTL/bidi: ?
  • % !TEX directives: Tidak
  • Syntax Highlighting: Ya, bisa dikustomisasi
  • Code Completion: Ya, bisa dikustomisasi
  • Code Folding: Ya
  • Spell Checking: Ya
  • SyncTeX: Ya
  • Built-in Output Viewer: Ya, mendukung PDF
  • Project Management: ?

texmaker

(skrinsot Texmaker di atas adalah milik penerjemah)

texmaker2

Code completion yang bisa dikustomisasi

texmaker3

Rectangular block selection

Catatan:

Editor TeXstudio muncul sebagai fork dari Texmaker dan asalnya dinamai TexMakerX.

4. TeXworks — 

  • OS: Windows XP/Vista/7/8, OS X, Linux
  • Lisensi: GPL
  • Bahasa: en, af, ar, ca, cs, de, fa, fo fr, it, ja, nl, ko, pl, pl, ru, sl, tr zh
  • Unicode: Ya
  • RTL/bidi: Ya
  • % !TEX directives: Ya
  • Syntax Highlighting: Ya, regex-based
  • Code Completion: Ya, bisa dikustomisasi berdasarkan daftar ‘known entry’
  • Code Folding: Tidak
  • Spell Checking: Ya, tetapi harus diinstal sendiri
  • SyncTeX: Ya
  • Built-in Output Viewer: Ya, PDF (Poppler-based)
  • Project Management: Tidak

Di Windows dan Linux, saya menggunakan TeXworks, yang menyediakan jendela editor kode dan pratayang. Klik pada pratayang dokumen akan langsung menandai kode LaTeX yang bersesuaian.

texworks

5. Kile — 

  • OS: Linux, Windows1 (XP, Vista, 7)
  • LIsensi: GNU GPL 2
  • Bahasa: bg, bs, ca, cs, da, de, el, en_GB, eo, es, et, fi, fr, ga, gl, hi, hne, hu, it, ja, kk, lt, mai, ms, nb, nds, nl, nn, pl, pt, pt_BR, ro, ru, sk, sv, tr, ug, uk, zh_CN, zh_TW
  • Unicode: Ya
  • RTL/bidi: Ya
  • % !TEX directives: Tidak2
  • Syntax Highlighting: Ya, bisa dikustomisasi
  • Code Completion: Ya, bisa dikustomisasi
  • Code Folding: Ya
  • Spell Checking: Ya
  • SyncTeX: Ya (namun flag -synctex=1 harus ditambahkan secara manual pada build engine)
  • Built-in Output Viewer: Terbatas3 (pratayang PNG dari sebagian kode – misalnya environment yang dipilih – dikonversikan dari DVI/PS/PDF)
  • Project Management: Ya

kile-hapus

1 Cara instalasi dapat ditemukan di sini. Versi Windows dari aplikasi-aplikasi KDE tidak terselesaikan, jadi mungkin sebagian dari mereka tidak stabil.

2 Walaupun Kile tidak memiliki !TeX directives untuk mendefinisikan peralatan kompilasi dan lain-lain, Kile masih memiliki “magic comments”, seperti Latexila dan TeXStudio. Yang dimaksud adalah %TODO and %FIXME, yang akan tampak pada structure view, untuk menambahkan catatan dalam kode, serta %BEGIN/%END untuk mendefinisikan area yang bisa di-fold dalam kode.

3 Sebuah built-in output viewer sempurna akan tersedia di Kile 3 dan sudah bisa digunakan dengan mengompilasi git master branch milik Kile.

6. TeXstudio — 

(sebelumnya TexMakerX)

  • OS: Windows XP/Vista/7, OS X, Linux, FreeBSD
  • Lisensi: GPL v2
  • Bahasa: cs, de, en, es, fr, hu, ja, pt_BR, zh_CN
  • Unicode: Ya
  • RTL/bidi: ?
  • % !TeX directives: Ya
  • Syntax Highlighting: Ya, bisa dikustomisasi
  • Code Completion: Ya, bisa dikustomisasi dan auto-customized
  • Code Folding: Ya
  • Spell Checking: Ya
  • SyncTeX: Ya
  • Built-in Output Viewer: Ya, mendukung PDF
  • Project Management: Ya

Saya merekomendasikan TeXstudio sebagai fork yang menarik dari Texmaker yang saya rasa lebih nyaman dan bisa dikustomisasi.

Berikut ini skrinsot TeXStudio.

texstudio

Fitur-fitur lainnya:

  • cross-platform
  • dukungan penulisan (incremental searchfolding, navigasi, auto-completioncustom macros)
  • syntax highlighting
  • inline interactive spell-checking
  • mendukung program-program LaTeX utama, termasuk tikz, pstricks, dan lain-lain
  • multi-views: math, structure
  • dukungan SVN
  • bisa berjalan via USB flash disk
  • mendukung synctex
  • termasuk penampil PDF, tetapi masih bisa dikonfigurasi untuk memakai viewer eksternal (juga dengan synctex)
  • developer dan komunitas yang sangat aktif dan responsif

7. LyX

OS: Windows, Mac, and Linux
Lisensi: Open Source


Saya menggunakan LyX dan saya suka. Dari situs resminya:

LyX is a document processor that encourages an approach to writing based on the structure of your documents (WYSIWYM) and not simply their appearance (WYSIWYG). LyX combines the power and flexibility of TeX/LaTeX with the ease of use of a graphical interface. This results in world-class support for creation of mathematical content (via a fully integrated equation editor) and structured documents like academic articles, theses, and books. In addition, staples of scientific authoring such as reference list and index creation come standard. But you can also use LyX to create a letter or a novel or a theatre play or film script. A broad array of ready, well-designed document layouts are built in.

Sangat intuitif dan ramah pengguna, dan bisa impor/ekspor ke LaTeX.

Terlalu banyak ftur untuk disebutkan, tetapi saya akan jelaskan satu yang saya rasa paling bagus: Jika Anda ingin menulis rumus matematika “2-dimensional”, LyX cocok untuk itu. Saya sudah menggunakan Lyx selama 10 tahun. Beralih dari AUCTeX baru-baru ini, tetapi saya masih menggunakan LyX ketika perlu menulis kode LaTeX untuk rumus matematika yang rumit.

lyx

8. Sublime Text dengan LaTeX Plugin

OS: Windows, Mac, Linux


Ini adalah editor yang sederhana tetapi powerful. Sublime Text mirip Notepad++, tetapi tersedia untuk banyak platform dan sangat mudah diatur untuk LaTeX dengan plugin LaTeXTools atau LaTeXing —keduanya tersedia dari Package Control. Sublime juga mirip TextMate, tetapi dikembangkan lebih aktif dan memiliki komunitas yang besar yang menyediakan plugin-nya. Sublime juga lebih cantik daripada keduanya.

Perhatikan bahwa ini adala software berbayar, dan meminta lisensi selama periode evaluasi (seharga USD 70). Dimungkinkan untuk menjalankan Sublime Text tanpa membeli lisensi, tetapi Anda akan terus diingatkan bahwa Anda menggunakan salinan yang belum diregistrasikan.

Sublime Text memiliki peralatan yang canggih untuk mengetik, yang Anda tidak mau tinggalkan ketika bekerja dengannya:

  • multiple cursors
  • go-to ke mana saja
  • snippets
  • incremental find
  • manajemen proyek
  • build-systems yang banyak

dan banyak lagi (lihat Perfect Workflow in Sublime Text 2). Skrinsot di bawah juga menampakkan fiturnya untuk menemukan sitas-sitasi (citations) dari BibTeX.

Sublime Text ini editor yang hampir sempurna, dengan potensi yang hampir tidak terbatas. Daftar fiturnya panjang sekali. Instal Package Manager, dan paket-paket tambahan dari repositori bisa dipasang dalam beberapa detik saja.

  • OS: Windows, Unix
  • Lisensi: Free to try, free to buy
  • % !TEX directives: Ya
  • Syntax highlighting: Ya
  • Code completion: Ya
  • Code folding: Ya
  • Spell check: Ya, baik built-in maupun dengan plugin
  • SyncTeX: Ya
  • Built-in output viewer: Tidak
  • Project management: Ya

sublimetext1

9. TeXlipse

OS: Windows, Mac, Linux and others (Java based)
Lisensi: Open Source


Saya telah berbahagia menggunakan TeXlipse di Eclipse sejak lama, ia memiliki code completion terintegrasi (termasuk entri-entri BibTeX), templat-templat yang mudah dikustomisasi, panel outline, dan secara langsung ia terintegrasi dengan Eclipse itu sendiri yang secara otomatis memiliki shortcuts, version control, dan lain-lain.

Ada plugin penampil PDF untuk Eclipse bernama Pdf4Eclipse dengan dukungan SyncTeX, yang mendukung pencarian maju/mundur di dalam dokumen LaTeX. Karena TeXlipse me-rebuild kode-kode LaTeX secara otomatis (di background) setelah sekali disimpan, maka kode dan pratayang dari dokumen selalu disinkronkan.

10. Gummi

OS: Linux (tersedia versi unstable untuk Windows)
Lisensi: Open Source


Emacs bagus, tetapi yang seringkali saya pakai adalah Gummi. Ia memiliki panel pratayang yang sangat berguna untuk mengetahui kesalahan sintaks dan kesalahan format sesegera mungkin. Plus, ketika Anda menyimpan dokumen LaTeX ia akan menyimpan PDF secara otomatis. Fitur lainnya termasuk peralatan bantuan penulisan matriks, memasukkan gambar, dan sitasi (citation).

Tambahan dari penerjemah: Gummi sangat saya rekomendasikan untuk setiap orang yang baru memulai LaTeX. Alasan rekomendasi adalah 1) pratayang langsung yang otomatis 2) antarmuka yang sederhana dan jelas.

gummi

11. LaTeXila

  • OS: Linux
  • Lisensi: Open source
  • Unicode: Ya

LaTeXila adalah lingkungan LaTeX terintegrasi untuk GNOME. Ia memiliki antarmuka yang bagus dan jelas. Ia tersedia di Ubuntu Software Center. Anda dapat melihat preview dari apa yang Anda tulis kapanpun Anda mau.

LaTeXila memiliki komentar-komentar “ajaib” untuk membuat todonotes, yang akan tayang di panel struktur di sebelah kiri. Komentar itu adalah %TODO dan %FIXME, yang harus diikuti oleh teks (jika tidak ada teks, maka tidak ada yang tayang di panel).

latexila

12. Geany with GeanyLaTeX

OS: Windows, Mac, Linux dan lain-lain
Lisensi: Open Source


Editor bagus lainnya adalah Geany. Software ini memiliki plugin untuk LaTeX. Plugin ini di-maintain oleh salah satu developer utama Geany sendiri. Plugin ini memiliki wizard untuk dokumen LaTeX baru, autocompletion, insert environment dengan mudah, dan tentu terdokumentasi dengan baik.

insert_char_tn

(skrinsot diambil dari laman resmi GeanyLaTeX)

Penutup

Tulisan terjemahan ini tidak ditutup kemungkinannya untuk direvisi pada masa depan. Terjemahan ini sudah dibuat semirip mungkin dengan tulisan aslinya secara struktur. Namun tentu masih terdapat kesalahan dan sesuatu yang mengharuskannya berbeda. Jika Anda memiliki analisis kebahasaan yang tajam untuk terjemahan ini, saya persilakan memberi kritik melalui komentar. Saya mohon maaf jika terdapat kesalahan. Semoga tulisan ini bermanfaat bagi Anda.


Filed under: Linux

Kesalahan-Kesalahan Umum Instalasi Linux Dualboot

$
0
0

Bismillahirrahmanirrahim.

Tulisan ini tersedia dalam PDF.

distributor-logo-ubuntuTulisan ini ditujukan sebagai peringatan kepada setiap pemula yang ingin menginstal Linux. Tulisan ini dibuat karena keprihatinan penulis melihat banyaknya orang melakukan instalasi sendiri lalu mengalami kecelakaan instalasi dalam bentuk hilangnya seluruh data. Lebih parah lagi jika kemudian bertanya kepada komunitas soal data recovery, yang hampir mustahil. Hal tragis tersebut ingin penulis minimalisir atau hilangkan kalau bisa dengan tulisan ini. Semoga tulisan ini bermanfaat.

Isi Tulisan ini

  1. Kaidah Umum
  2. Hambatan Umum
  3. Kesalahan-Kesalahan
  4. Solusi
  5. Kata Kunci Google
  6. Beberapa Tutorial Instalasi Dualboot

1. Kaidah Umum

  1. Pengguna komputer di Indonesia tidak pernah menginstal sendiri OS pada komputernya.
  2. Pengguna komputer di Indonesia biasa menyerahkan instalasi OS kepada teknisi atau penjual komputer.
  3. Pengguna komputer di Indonesia tidak berpengalaman menginstal OS sendiri.

2. Hambatan Umum

  1. Memiliki Windows di komputer yang sama.
  2. UEFI.
  3. Ketiadaan pembimbing langsung yang berada di tempat.
  4. Menginstal suatu OS butuh ilmu dan pengalaman.

Jika Anda memerhatikan kebanyakan kecelakaan instalasi di Indonesia, itu semua berpangkal kepada salah pemartisian. Semua kesalahan pemartisian berpangkal pada keberadaan OS lain yang ada di komputer yang sama. Dalam hal ini, hampir bisa dipastikan OS tersebut ialah Windows. Seharusnya instalasi Linux itu sangat mudah. Namun karena di dalam komputer yang sama sudah ada Windows-lah instalasi Linux menjadi susah dan berisiko. Seandainya Windows tidak ada, maka Anda tidak akan takut kehilangan data atau salah membuat partisi. Permasalahan berikutnya adalah semua pengguna tidak mau kehilangan Windows. Maka jika demikian, seharusnya setiap pengguna mau mencari tutorial dualboot supaya tidak ada lagi kecelakaan instalasi terjadi.

3. Kesalahan-Kesalahan

  1. Tidak mau banyak membaca tutorial instalasi Linux.
  2. Tidak mau memahami sungguh-sungguh semua tutorial instalasi yang sudah diperoleh.
  3. Lupa kaidah umum di atas.
  4. Tidak tenang.
  5. Terburu-buru.
  6. Mengantuk.
  7. Menganggap instalasi OS baru itu mudah.
  8. Menganggap instalasi OS baru bisa dilakukan tanpa belajar.
  9. Menganggap instalasi OS baru itu tidak berisiko sama sekali.
  10. Tidak tahu UEFI.
  11. Tidak tahu kalau partisi yang sudah dibuat bisa tidak terlihat saat live session Linux.
  12. Tidak tahu aplikasi-aplikasi pembakar ISO Linux seperti Unetbootin, Rufus, YUMI, LiLi, dan lain-lain.
  13. Tidak tahu kalau Linux bisa dibakar ke flash disk tanpa perlu CD.
  14. Tidak punya keberanian.
  15. Melakukan instalasi tanpa tahu sedikit pun apa itu Install Alongside Windows.
  16. Menginstal Windows setelah Linux.
  17. Tidak memahami pentingnya bootloader.
  18. Tidak melakukan backup.

Seorang pengguna Linux yang baik tidak memiliki kesalahan-kesalahan di atas. Satu kesalahan di atas saja bisa mengakibatkan semua data terhapus. Lalu bagaimana jika seseorang memiliki semuanya? Tentunya wajar banyak keluhan data hilang di komunitas karena banyak pemula masih memegang adat lamanya (baca: terbiasa diinstalkan oleh orang lain) tanpa mau belajar. Maka belajar terlebih dahulu adalah sebuah keharusan. Jangan terburu-buru. Jangan terburu-buru.

4. Solusi

  1. Kumpulkan tutorial dualboot sebanyak mungkin.
  2. Baca semuanya.
  3. Pahami semuanya.
  4. Backup semua data penting.
  5. Minta orang yang berpengalaman instal Windows/Linux untuk menemani.
  6. Lakukan instalasi.
  7. Jangan melompati satu langkah pun.
  8. Segala risiko adalah milik Anda.

Mengapa saya menawarkan solusi sepanjang ini? Karena instalasi OS itu berisiko tinggi. Saya sering mendapati keluhan hilangnya data (tidak jarang hilang total) karena si penginstal tidak paham metode instalasi OS. Saya juga sering mendapati pertanyaan instalasi Linux, yang pelakunya (saya lihat) tidak membaca tutorial sedikit pun dan tidak memahaminya. Sepadan dengan konsekuensi yang mungkin terjadi, maka saya harus memberi solusi yang panjang seperti ini. Janganlah Anda mengadu kepada siapa pun di komunitas jika data Anda hilang. Tidak ada yang mampu mengembalikannya. Mencegah lebih baik daripada mengobati.

Catatan Penting: Anda sebaiknya memiliki waktu luang yang cukup untuk meminimalisir semua kesalahan. Tanpa menyediakan waktu, Anda tidak akan belajar. Tanpa belajar, Anda akan gagal. Terima kasih untuk kang pingsut (rendezvous)  yang telah memberikan paragraf ini di kanal #ubuntu-indonesia (http://ubuntu-id.rezhajulio.web.id/29-05-2014/#log-[21:42:11]).

5. Kata Kunci Google

Gunakan contoh-contoh kata kunci berikut untuk mencari tutorial. Setelah dibuka, simpan halaman yang ditemukan. Gantilah kata kunci ubuntu berikut dengan nama distro Anda.

  1. tutorial instalasi dualboot ubuntu windows 7
  2. tutorial instalasi dualboot ubuntu windows 8
  3. tutorial instalasi ubuntu dualboot windows xp
  4. tutorial instalasi ubuntu dengan uefi
  5. menonaktifkan uefi instal ubuntu
  6. memperbaiki bootloader easybcd windows ubuntu
  7. memperbaiki grub bootloader rusak
  8. instal ulang grub bootloader ubuntu
  9. backup data windows ke dvd
  10. backup data windows ke hard disk eksternal
  11. apa itu install alongside windows ubuntu

6. Beberapa Tutorial Instalasi Dualboot

Berikut ini contoh beberapa tutorial instalasi dualboot Linux yang sengaja saya cari dan pilihkan untuk Anda. Silakan setelah ini Anda mencari sendiri tambahan yang lain.

6.1 Bahasa Indonesia

  1. http://nurhasan257.wordpress.com/2014/03/29/panduan-instalasi-linux-ubuntu/
  2. http://bojalinuxer.blogspot.com/2010/06/cara-menginstal-ubuntu-dan-windows-7.html
  3. http://www.kangarif.com/2013/01/cara-dual-boot-linux-windows-dengan-mudah.html (kaidah-kaidah dasar)
  4. http://www.kangarif.com/2013/01/cara-install-linux-mint-13-kde.html (lanjutan dari nomor 3)
  5. http://www.belocus.com/2012/10/install-kubuntu-1210-quantal-quetzal.html
  6. http://hydriet.blogspot.com/2012/12/cara-install-linux-ubuntu-dual-boot.html
  7. http://winpoin.com/cara-dual-boot-windows-8-1-update-dengan-ubuntu-14-04-lts/
  8. http://blog.taryo.net/2014/04/install-ubuntu-14.04-lts-dan-windows-8.1.html

6.2 Bahasa Inggris

  1. https://help.ubuntu.com/community/WindowsDualBoot
  2. http://www.ubuntu.com/download/desktop/install-ubuntu-desktop
  3. http://www.everydaylinuxuser.com/2013/09/install-ubuntu-linux-alongside-windows.html
  4. http://www.linuxbsdos.com/2014/02/01/dual-boot-windows-8-or-windows-7-and-ubuntu-13-10-with-ubuntu-on-a-btrfs-filesystem/
  5. http://www.liberiangeek.net/2012/04/dual-boot-windows-7-and-ubuntu-12-04-precise-pangolin/
  6. http://lifehacker.com/5403100/dual-boot-windows-7-and-ubuntu-in-perfect-harmony

Penutup

Tulisan ini mengambil istilah adat di atas dari seorang warga forum Ayo Belajar Linux yang bernama Baru Nyoba Linux Baru (Miftah, KPLI Tegal) dari percakapan IRC http://ubuntu-id.rezhajulio.web.id/22-05-2014/#log-[09:11:34]. Tulisan ini tidak ditutup kemungkinannya untuk direvisi. Penulis memohon maaf jika terdapat kesalahan di dalamnya. Semoga tulisan ini bermanfaat.


Filed under: Linux

Panduan Praktis Troubleshooting di Linux untuk Pemula

$
0
0

Bismillahirrahmanirrahim.

distributor-logo-ubuntuPanduan ini ditulis semata-mata untuk membimbing setiap pemula dalam hal menyelesaikan masalah di Linux. Panduan ini ditulis berdasarkan pengalaman pribadi dan bimbingan para senior di komunitas Ubuntu. Panduan ini diharapkan dapat memberikan sudut pandang yang paling jelas kepada pemula mengenai bagaimana troubleshooting dilakukan di Linux. Panduan ini dititikberatkan pada contoh, untuk memangkas waktu berpikir pembaca dan diperluas dengan definisi-definisi untuk memudahkan pencarian lebih lanjut. Semoga tulisan ini bermanfaat.

Rangkuman Cara Praktis Troubleshooting

  1. Salin tempel (copy-paste) pesan error ke Google.
  2. Identifikasi masalah.
  3. Analogi.
  4. Bertanya kepada ahlinya.

1. Copy-Paste Ke Google

Peringkat satu cara praktis troubleshooting di Linux dipegang oleh salin-tempel pesan error ke Google. Mengapa cara ini menempati peringkat satu? Karena mayoritas masalah di Linux telah memiliki dokumentasi troubleshooting masing-masing di Google. Anda tidak perlu memedulikan cara-cara lain jika Anda telah memiliki metode ini. Cepat, praktis, dan tepat sasaran. Itulah sebabnya dia menempati peringkat satu.

Contoh:

  1. Masalah: Failed to fetch http://kartolo.sby.datautama.net.id/ubuntu/pool/universe/y/yum/yum_3.2.25-1ubuntu2_all.deb Temporary failure resolving ‘kartolo.sby.datautama.net.id’ Penyelesaian: salin-tempel ke Google.
  2. Masalah: dpkg: error processing samba4 (–configure): subprocess installed post-installation script returned error exit status 126 Penyelesaian: salin-tempel ke Google.
  3. Masalah: bash: cd: /hom: No such file or directory Penyelesaian: salin-tempel ke Google.
  4. Masalah: cobacoba: command not found Penyelesaian: salin-tempel ke Google.
  5. Masalah: E: Unable to fetch some archives, maybe run apt-get update or try with –fix-missing? Penyelesaian: salin-tempel ke Google.
  6. Masalah: dpkg: error: need an action option Penyelesaian: salin-tempel ke Google.
  7. Masalah: bagaimana cara menginstal font di ubuntu? Penyelesaian: salin-tempel pertanyaan itu ke Google.
  8. Masalah: bagaimana cara menginstal wine di ubuntu? Penyelesaian: salin-tempel pertanyaan itu ke Google.
  9. Masalah: bagaimana cara menggunakan wine di ubuntu? Penyelesaian: salin-tempel pertanyaan itu ke Google.
  10. Masalah: bagaimana cara shutdown ubuntu dengan gnome shell? Penyelesaian: salin-tempel pertanyaan itu ke Google.
  11. Masalah: bagaimana cara update archlinux? Penyelesaian: salin-tempel pertanyaan itu ke Google.
  12. Masalah: bagaimana konfigurasi squid untuk memblokir mp3? Penyelesaian: salin-tempel pertanyaan itu ke Google.

Catatan I: untuk contoh nomor 1, seringkali Anda tidak akan menemukan hasil pencarian Google karena kata kunci Anda terlalu spesifik. Solusinya, buang bagian pesan error yang terlalu spesifik (yakni URL menuju paket), sisakan bagian yang global.

Catatan II: googlingwalau terkesan gampang– juga butuh kemampuan. Anda butuh latihan yang banyak untuk bisa googling dengan baik. Bacalah panduan googling seperti ini. Perbanyak praktik supaya feeling Anda terlatih.

2. Identifikasi Masalah

Sebenarnya, langkah awal yang paling tepat untuk menyelesaikan masalah adalah dengan identifikasi masalah itu sendiri. Bagaimana Anda bisa selesaikan masalah tanpa tahu apa sebenarnya yang terjadi? Bagaimana Anda bisa selesaikan masalah tanpa tahu bagian mana yang salah? Identifikasi masalah dilakukan dengan mencocokkan kondisi-kondisi masalah yang terjadi dengan pengetahuan yang sudah dimiliki. Identifikasi masalah itu bergantung kepada ilmu pengguna sendiri –walau ia adalah inti dari troubleshooting– sehingga peringkatnya berada di bawah googling. Teknik identifikasi masalah yang baik (tepat) bisa Anda peroleh dengan banyak membaca tutorial dan artikel soal Linux. Kemampuan identifikasi masalah akan senantiasa bertambah atau berkurang tergantung kemauan belajar dari sang pengguna sendiri.

Contoh:

  1. Masalah: Linux dualboot Windows tiba-tiba gagal booting. Identifikasi: bagian mananya yang error? GRUB, Windows Bootloader, partisi rusak, atau masalah lain?
  2. Masalah: kecepatan unduh internet ketika menggunakan Linux kalah jauh dengan kecepatan ketika menggunakan Windows. Identifikasi: sudah adilkah parameter perbandingan yang dipakai? Berapa jumlah koneksi simultan yang dipakai di Windows dan di Linux? Server mana yang jadi tujuan unduhan? ISP apa yang digunakan? Kapan waktu terjadinya unduhan? Sudah samakah download manager yang dipakai?
  3. Masalah: aplikasi XYZ tidak bisa dibuka. Identifikasi: apa yang akhir-akhir ini Anda kerjakan sebelum XYZ tidak bisa dibuka? Sudahkah Anda mencari pesan error-nya dengan cara menjalankan XYZ via Terminal?
  4. Masalah: Linux HIJ tidak bisa diinstal. Identifikasi: bagaimana kronologi tidak bisa diinstalnya HIJ? Laptop merek/seri apa yang dipakai? Sudahkah Anda mencari tutorial instalasi HIJ sebanyak mungkin? Sudahkah Anda memahami tutorial yang Anda cari? Sudahkah Anda membuat partisi baru dengan benar? Pesan error apakah yang muncul ketika instalasi?
  5. Masalah: aplikasi QRS tidak bisa diinstal. Identifikasi: bagaimana cara Anda menginstalnya? Bagaimana kronologi instalasi Anda? Apa repo yang Anda pakai? Apakah versi distro Anda masih dalam masa dukungan atau tidak? Tutorial instalasi mana yang Anda gunakan?
  6. Masalah: Linux ABC saya crash. Identifikasi: apa yang akhir-akhir ini Anda lakukan sebelum terjadi crash? Apakah crash ini terjadi sejak awal atau baru-baru ini saja? Apa desktop environment Anda? Apakah Anda sudah mengonfigurasi driver NVIDIA/ATI (jika ada)? Apakah hard disk Anda masih dalam keadaan baik? Apakah Anda sudah membuat partisi swap secukupnya?
  7. Masalah: Linux DEF saya bekerja lambat. Identifikasi: bagaimanakah spesifikasi mesin Anda? Apa distro Anda? Apakah Anda sudah membuat partisi swap? Apakah desktop environment yang Anda gunakan? Aplikasi apa saja yang Anda jalankan ketika melambat? Sudahkah Anda memeriksa proses-proses dan daemon-daemon yang berjalan di latar belakang?
  8. Masalah: Linux GHI saya boros baterai. Identifikasi: apa distro Anda? Sudahkah Anda mengonfigurasi driver NVIDIA/ATI dengan benar (jika ada)? Sudahkah Anda mematikan salah satu driver jika VGA Anda bertipe Hybrid? Berapa sel baterai Anda? Berapa jam lama pemakaian normal baterai di Windows? Berapa jam di Linux? Sudahkah Anda mengonfigurasi power management di Linux?
  9. Masalah: printer errorIdentifikasi: apa merek printer Anda? Seri berapa? Sudahkah Anda instal driver-nya? Sudah benarkah konfigurasinya? Apa distro Anda?

Catatan I: semua contoh di atas adalah gambaran global. Praktik nyatanya bisa lebih sederhana atau sebaliknya.

3. Analogi

Analogi (kias/qiyas) bisa diartikan menganggap sama dua masalah yang berbeda tetapi memiliki pola yang mirip. Dengan cara ini, Anda dapat menyelesaikan masalah baru dari hasil penyelesaian masalah-masalah lama yang mirip. Bahkan, seseorang seringkali dapat menyelesaikan masalah yang sama sekali berbeda bidang hanya dengan analogi.

Contoh:

  1. Masalah: Ubuntu versi terbaru tidak bisa memutar MP3. Analogi: Ubuntu versi lama bisa memutar MP3 dengan terlebih dulu dipasangi paket tertentu -> Ubuntu versi baru berarti juga begitu.
  2. Masalah: Fedora juga. Analogi: berarti Fedora sama seperti Ubuntu -> cari cara instalasi paket tersebut untuk Fedora.
  3. Masalahdownload manager di Linux tidak secepat IDM di Windows. Analogi: di IDM di Windows, rahasia kecepatannya terletak pada pengaturan multiple connections number dengan nilai 16 -> berarti download manager di Linux harus diatur untuk memiliki nilai multiple connections number yang sama atau lebih besar. Bisa juga dengan sengaja mencari download manager yang mendukung multiple connections number.
  4. Masalah: Anda tidak tahu bagaimana menggunakan zypper di openSUSE. Analogi: di Ubuntu, komunitas banyak menulis soal apt-get cheatsheet (selembar PDF berisi kumpulan contoh perintah apt-get siap pakai) -> berarti seharusnya komunitas openSUSE juga punya -> cari dengan Google.
  5. Masalah: Anda juga tidak tahu cara menggunakan yum di Fedora, pacman di Archlinux, emerge di Gentoo, dan slackpkg di Slackware. Analogi: samakan kasus dengan nomor 4.
  6. Masalah: Anda tidak tahu bagaimana cara menggunakan Inkscape. Analogi: di Windows, banyak komunitas CorelDRAW yang mengajarkan desain vektor di Youtube -> berarti seharusnya di Linux komunitas Inkscape juga sama -> cari video pelajaran Inkscape di Youtube.
  7. Masalah: Anda juga tidak tahu bagaimana cara menggunakan GIMP, Krita, MyPaint, Pinta, dan Darktable. Analogi: samakan kasus dengan nomor 6.
  8. Masalah: mengerjakan LFS itu sangat sulit. Analogi: setiap kejayaan membutuhkan pengorbanan -> sama dengan pengerjaan LFS -> lakukan tanpa keluh kesah.

Catatan I: analogi itu tidak harus dengan dua hal yang sama bidangnya. Saya sering melakukan analogi dengan prakiraan pikiran developer. Misalnya, jika saya kesulitan menggunakan suatu aplikasi, saya cukup berpikir “seandainya saya adalah developernya, kira-kira tombol/item ini saya tujukan untuk…”. Dengan analogi kasar macam ini, saya mudah beradaptasi dengan software apa saja.

Catatan II: analogi prakiraan pikiran developer juga bisa dilakukan dengan berpikir “seandainya saya developernya, yang saya lakukan adalah…” ketika menemukan suatu error. Hal ini sangat membantu bagi saya untuk menyelesaikan masalah demi masalah.

Catatan III: Anda akan sering menemukan senior-senior mampu menjawab pertanyaan khusus distro tertentu dalam keadaan mereka sama sekali tidak menggunakan distro tersebut. Itu karena para senior telah menguasai analogi. Mereka telah memperoleh fondasi-fondasi dasar distronya sendiri, sehingga mampu menganalogikannya dengan sistem baru (karena semua distro memiliki garis besar yang sama). Jika Anda juga menguasainya, maka masalah untuk distro Anda sendiri tentunya lebih mudah diselesaikan. Inilah salah satu kekuatan analogi untuk troubleshooting.

4. Bertanya kepada Ahlinya

Jalan terakhir jika seluruh cara di atas gagal adalah bertanya kepada ahlinya. Cara ini patut menjadi pilihan terakhir setelah Anda berusaha semaksimal mungkin. Cara ini adalah yang paling manusiawi dari seluruh cara yang disebutkan. Orang yang paling mengetahui perihal suatu software adalah si developer software itu sendiri.

Contoh:

  1. Masalah: Ubuntu versi terbaru tidak memiliki antarmuka tampilan GNOME. Solusi: tanya kepada para senior di #ubuntu-indonesia.
  2. Masalah: Slackware tidak mengenali MicroSD merek XYZ Solusi: tanya kepada para senior di milis slackware-id.
  3. Masalah: Fedora tidak memiliki paket Kingsoft Office. Solusi: tanya kepada para senior di forum Fedora Indonesia atau Internasional.
  4. Masalah: apt-get tidak memiliki fitur XYZ Solusi: tanya kepada developer apt-get.
  5. Masalah: zypper mengalami bug XYZ Solusi: tanya kepada developer zypper.
  6. Masalah: yum mengalami error XYZ Solusi: tanya kepada developer yum.
  7. Masalah: slackpkg mengalami error ABC Solusi: tanya kepada developer slackpkg.
  8. Masalah: Ubuntu Tweak tidak bisa melakukan HIJKLMN Solusi: tanya kepada developer Ubuntu Tweak.
  9. Masalah: Blankon mengalami error OPQ Solusi: tanya kepada developer Blankon.
  10. Masalah: Libreoffice mengalami kegagalan RST Solusi: tanya kepada developer Libreoffice.
  11. Masalah: modem merek UVW seri 1234 tidak dikenali oleh Ubuntu Solusi: tanya kepada developer kernel Linux atau developer usb_modeswitch.
  12. Masalah: XDMAN tidak bisa ini dan itu Solusi: tanya developer XDMAN.

Catatan I: Anda tidak harus bertanya langsung kepada developer. Seringkali pengguna berpengalaman bisa ditanyai. Mereka banyak perkumpul di kanal-kanal IRC, salah satunya adalah #ubuntu-indonesia.

Catatan II: jika Anda mau bertanya kepada developer, gunakanlah email. Belajarlah menulis email pertanyaan yang baik. Jika email Anda jelek, apalagi jika ternyata banyak kesalahan ketiknya, janganlah Anda berharap email Anda akan dibaca. Bukan hanya Anda orang yang berkirim email dengan developer. Buatlah si developer merasa email Anda pantas diprioritaskan untuk dijawab.

Catatan III: jika Anda sadar bahwa developer itu sibuk, maka dengan mudah Anda akan sadar mereka sering membuat dokumen FAQ. Dokumen ini adalah kumpulan pertanyaan yang sering diajukan. Jadi carilah dahulu FAQ mereka karena besar kemungkinan pertanyaan Anda sudah pernah mereka jawab.

Catatan IV: informasi tentang developer selalu berada pada menu Help > About di setiap software. Jika software hanya berjalan di Terminal, maka perintah man <namaprogram> selalu menyertakan informasinya. Biasakan membacanya untuk bisa bertanya.

Penutup

Tulisan ini telah dibaca oleh Akang Nugie Abinya Fahmi (suka|baik) dari #ubuntu-indonesia. Tulisan ini memiliki kekurangan dan tidak ditutup kemungkinannya untuk direvisi. Penulis mohon maaf atas segala kekurangan. Semoga tulisan ini bermanfaat.


Filed under: Linux

Catatan Ngoprek Harian Edisi 2

$
0
0

Bismillahirrahmanirrahim.

Rangkuman catatan ngoprek harian edisi 2 ini sebagai berikut.

16. sed untuk menghapus baris yang berisi teks tertentu
17. strip – -strip-unneeded namaberkas
18. hevea -fix <namaberkas>.tex
19. | grep -e .tex
20. WordPress.com tidak menerima This document was translated from LATEX by HEVEA.
21. [UPDATE:Friday, January 10, 2014][SALAH][JANGAN DIIKUTI]avrdude untuk membakar .hex menggunakan kabel programer USBASP (bukan AVR ISP MKII)
22. Berkas pengaturan proxy server milik KDE
23. avrdude untuk membakar .hex menggunakan kabel USBASP bukan USBISP MKII ke minsys ATMEGA128
24. Remap satu tombol dengan dua fungsi (normal dan bersama shift)
25. Modem Smartfren Haier CE782 UI di Ubuntu 12.04 Sukses Konek Internet
26. Backup Data Besar
27. Memperbaiki Font Rendering yang Buruk Rupa di Libreoffice KDE
28. Melihat Seluruh Kerja Kernel Mendeteksi dan Menginstal Modem USB29. xev dan xmodmap
30. Letak Log Instalasi APT


 

16. sed untuk menghapus baris yang berisi teks tertentu

sed '/-->/d' 

akan menghapus semua baris yang memiliki teks –>. Ini berguna untuk membersihkan log kuliah di IRC dari baris-baris informasi login dan logout setiap peserta. Bisa digabung untuk membuat log lebih bersih lagi:

sed '/-->/d' | sed '/

17. strip – -strip-unneeded namaberkas

Perintah strip (dari keluarga binutils) berguna untuk memperkecil ukuran berkas eksekutabel. Dalam kegiatan hari ini, pemaketan Qt tidak akan menghasilkan keluaran lintian yang bebas dari galat kecuali berkas eksekutabel Qt-nya di-strip terlebih dahulu dengan opsi – -strip-unneeded.

(Tuesday, December 17, 2013)

18. hevea -fix <namaberkas>.tex

Opsi -fix membuat .htoc dan menyelesaikan semua dafar isi dalam HTML. Trik .htoc ini tidak tercantum di situs resmi hevea sendiri. Tanpa opsi ini, hevea hanya berusaha satu kali dan hanya mampu menghasilkan .toc.

(Tuesday, December 31, 2013 07:11 PM)

19. | grep -e .tex

Opsi -e ini berguna untuk mengeluarkan hanya baris teks yang ada tulisan .tex. Bisa dipakai untuk perintah apa pun yang mengeluarkan teks sebagai standard output. Contoh pemakaian saya: history | grep -e ‘rm -rf’ atau man hevea | grep -e .htoc. Sangat berguna untuk searching di dalam history dan man.

(Tuesday, December 31, 2013 07:11 PM)

20. WordPress.com tidak menerima This document was translated from LATEX by HEVEA.

Hevea selalu membubuhkan teks “This document was translated from LATEX by HEVEA.” pada akhir setiap HTML yang dikonversikan. Namun, meski kelihatannya sepele, satu baris ini (juga kode sumbernya tentu saja) membuat WordPress.com tidak menayangkan preview bahkan tidak mampu post dengan hanya berhenti di post.php. Saya telah mencoba mengurangi baik secara kode sumber maupun WYSIWYG di TinyMCE, untuk bagian awal yakni judul kemudian daftar isinya, hasilnya tetap error. Namun setelah saya hapus bagian tersebut, WordPress.com sanggup menayangkan pratayang posting. Satu baris ini walau singkat, cukup mengganggu. Baiknya dihapus saja.

TAMBAHAN PENTING: WordPress.com ternyata masih menolak walau baris tersebut sudah dihapus jika masih terdapat gambar-gambar yang mati URL-nya. Hevea tidak akan sempurna menghasilkan HTML bergambar jika gambarnya tidak dalam 1 folder dengan .tex, sedangkan saya memisahkan gambar dengan .tex. Alhasil HTML dihasilkan dengan gambar yang mati URL-nya. Dengan menghapus semua gambar dengan URL yang mati itu ( dihilangkan semuanya), maka WordPress.com mau menerima kenyataan.

21. [UPDATE:Friday, January 10, 2014][SALAH][JANGAN DIIKUTI]avrdude untuk membakar .hex menggunakan kabel programer USBASP (bukan AVR ISP MKII)

Inilah sesuatu yang saya penasaran dengannya sejak lama sekali dan selalu gagal. Alhamdulillah berhasil membakar .hex ke dalam chip ATMEGA128 dengan program avrdude (program open source yang juga dipakai oleh AtmelStudio & AVR Studio untuk membakar). Perintahnya:

root@master:/home/master/Publik/AVR# avrdude programnya.hex -p ATMEGA128 -c usbasp

Yang wajib diperhatikan

- Tidak perlu mengatur .rules untuk udev, tidak seperti MKII
- Tidak perlu me-restart udev
- Tancapkan kabel USB ASP pastikan terhubung dengan perangkat ATMEGA
- Langsung jalankan perintah di atas (sebagai root)
- Jangan salah memilih argumen -c; harus usbasp kalau pakai USB ASP
- Kunci seluruh keberhasilan membakar adalah opsi -c usbasp
- Salah pada opsi -c usbasp (menggantinya dengan -c avrispmkII atau -c avrisp2, hanya akan menghasilkan error: /dev/ttyS*

Bukti keberhasilan: 

root@master:/home/master/Publik/AVR# avrdude uas.hex -p ATMEGA128 -c usbasp
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9308
avrdude: Expected signature for ATMEGA128 is 1E 97 02
         Double check chip, or use -F to override this check.
avrdude done.  Thank you.

22. Berkas pengaturan proxy server milik KDE

/home/master/.kde/share/config/kioslaverc

23. avrdude untuk membakar .hex menggunakan kabel USBASP bukan USBISP MKII ke minsys ATMEGA128

Hasil pembakaran kemarin itu (nomor 21 di atas) ternyata hanya menyalin data ke dalam ATMEGA dan tertolak tanpa pesan (karena ATMEGA bukan bash). Kalau saya ingin membakar (download) .hex ke chip ATMEGA sebagaimana yang dilakukan para programer AVR, maka perintah kemarin itu salah. Perintah kemarin itu kurang karena tidak ada opsi untuk melakukan FLASH (tahu flashing untuk BIOS, kan?). Sedangkan perintah yang benar dan sudah berhasil mengedip-ngedipkan lampu minsys adalah ini:

root@master:/home/master/Publik/AVR# avrdude -c usbasp -P usb -p atmega128 -U flash:w:namaprogramnya.hex

Yang paling penting pada perintah ini adalah opsi -U flash:w:<namaberkas>.hex karena opsi ini yang menentukan avrdude untuk flashing (penghapusan kemudian penulisan kode biner) ke dalam chip ATMEGA.

Bukti keberhasilan (lihat ada beberapa kali progress bar):
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9702
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "bismillah0.hex"
avrdude: input file bismilallah0.hex auto detected as Intel Hex
avrdude: writing flash (4306 bytes):

Writing | ################################################## | 100% 1.70s

avrdude: 4306 bytes of flash written
avrdude: verifying flash memory against bismilallah0.hex:
avrdude: load data flash data from input file bismillah0.hex:
avrdude: input file bismillah0.hex auto detected as Intel Hex
avrdude: input file bismillah0.hex contains 4306 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.49s

avrdude: verifying ...
avrdude: 4306 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

root@master:/home/master/Publik/AVR#

24. Remap satu tombol dengan dua fungsi (normal dan bersama shift)

┌─[master@master]─[~]
└──╼ xmodmap -e "keycode 135 = Delete parenright"

Tinggal taruh makna kedua pada tempat kedua setelah makna pertama, dia otomatis dikenali sebagai makna yang dijalankan jika bersama shift.

25. Modem Smartfren Haier CE782 UI di Ubuntu 12.04 Sukses Konek Internet

Persyaratan

1. pppd harus aktif dahulu
2. kalau belum aktif, sudo service network-manager restart
3. tidak menggunakan Network Manager (sementara ngalah dululah pakai Terminal)

Peralatan

1. wvdial (saya ambil di Windows pakai cara http://malsasa.wordpress.com/2014/01/27/panduan-ringkas-apt-get/)

Cara Koneksi

1. lsusb, pastikan vendor:product = 201e:1022 (1022 ini yang penting)
2. suntikkan parameter vendor:product supaya dikenali kernel -> sudo modprobe usbserial vendor=0x201e product=0×1022
3. bikin konfig wvdial baru -> sudo wvdialconf (untuk memastikan si modem dikenali di /dev/ttyUSB0)
4. panggil wvdial -> sudo wvdial (bisa internetan jika sudah muncul nomor IP dan alamat IP DNS)

wvdial-ce782-precise

Catatan Penting

Catatan ini ditulis dengan internet melalui modem CE782 ini. Saat ini saya sedang menyalakan wvdial di Konsole (Saturday, February 01, 2014 10:02 PM).

Sumber

Saya melakukan konfigurasi dengan mempelajari PAHE milik Erdinote.com. Saya tidak menginstal PAHE begitu saja. Saya ingin memahami cara kerjanya jadi saya lakukan semuanya sendiri. 

26. Backup Data Besar

1. Ke Adrive (jatah 50 GB, ada realtime upload speed + progess bar)
2. Ke Google Drive (sayang tidak menayangkan realtime upload speed, hanya progress bar)

Saya mengunggah berkas sebesar 400 dan 700 MB (ZIP).

27. Memperbaiki Font Rendering yang Buruk Rupa di Libreoffice KDE

Buka System Settings > Application Appearances > Font > lihat bawah > “Use antialiasing” > jadikan “Enabled” > klik “Configure” > pilih “Slight” sebagai hinting style.

Sumber: http://forum.kde.org/viewtopic.php?f=17&t=118879&p=302089#p302089

28. Melihat Seluruh Kerja Kernel Mendeteksi dan Menginstal Modem USB

tailf /var/log/syslog

Catatan:

- tailf adalah perintah untuk melihat secara realtime pertumbuhan suatu berkas log
- /var/log/syslog adalah log untuk apa pun informasi dari kernel bahkan dmesg itu mengambil keluaran dari sini. Bahkan crontab dan segala program background akan terlihat bekerja di dalam syslog ini.

Sumber:

thrvers, guru modem saya

29. xev dan xmodmap

1. Buka terminal.
2. Ketik perintah xev.
3. Tekan PgDn.
4. Perhatikan nomor keycode-nya. PgDn di kibor saya nomornya adalah 117.
5. Ctrl+C untuk mematikan xev.
6. Sekarang ketik perintah xmodmap -e “keycode 117 = ” dengan harapan mengisi keycode nomor 117 (yakni PgDn) dengan kekosongan alias tidak ada fungsinya alias disable.
7. Sekarang sudo xmodmap -pke > .Xmodmap.
8. Sekarang seharusnya sudah mati itu fungsi PgDn.

Disalin pada 3 Maret 2014 dari salah satu komentar.

30. Letak Log Instalasi APT

/var/log/apt/history.log

Di dalam folder apt/ ini masih ada banyak .gz yang isinya riwayat juga. Sangat penting untuk di-backup. Seluruh kegiatan instalasi/uninstalasi tercatat di dalamnya tanpa terlewat satu pun.


Filed under: Linux
Viewing all 165 articles
Browse latest View live