Arsip Tag: tutorial

Panduan Dasar Terminal Ubuntu untuk Pemula


Bismillahirrahmanirrahim.

Tulisan ini tersedia dalam PDF.

utilities-terminalSaya susun tulisan ini untuk setiap pemula baik yang migrasi dari Windows maupun tidak. Tulisan ini disusun berdasarkan prioritas yang terpenting di atas yang penting. Tulisan ini disusun untuk membantu Anda mengerti cara pakai Terminal Ubuntu dengan cepat. Anda akan melihat 2 hal terpenting dalam tulisan ini, yakni sistem manajemen paket dan konfigurasi dasar. Semua gambar skrinsot di dalam tulisan ini disediakan dalam kualitas tinggi. Silakan lakukan zoom jika gambar tidak terlihat jelas. Semoga tulisan ini bermanfaat. Baca lebih lanjut

Iklan

Pentingnya Sebuah Tutorial Bagi Seorang Pemula


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

Baca lebih lanjut

Kumpulan Tutorial C++ & Source Code Qt Framework Edisi 1 – 11


Bismillahirrahmanirrahim.

qt-creator-logoBerikut ini tutorial C++ beserta contoh kode sumbernya. Semua kode di sini adalah hasil dari pemrograman Qt saya. Semua kode saya ditulis di Linux dan program saya semuanya memakai Qt Framework untuk menghasilkan GUI. Anda bisa gunakan karya saya ini untuk membuat aplikasi yang lebih bermanfaat. Lisensi semua karya saya ini bebas untuk dipakai apa saja selama tidak untuk maksiat kepada Allah. Semoga bermanfaat. Baca lebih lanjut

Tutorial Menulis Dokumen dengan LaTeX di Linux (Disertai Contoh)


Bismillahirrahmanirrahim.

LaTeX itu sangat bagus untuk menulis dokumen apa pun. Bahkan bisa jadi lebih bagus dari Microsoft Word. Percayalah, hasilnya sangat bagus. Walau judul tulisan ini tutorial, sebetulnya saya cuma ingin menuliskan catatan-catatan saya dalam menulis dokumen dengan LaTeX. Semoga ini bermanfaat. Baca lebih lanjut

LaTeX, Gummi, dan Ubuntu


Bismillahirrahmanirrahim.

Saya menyukai tulisan yang rapi. Semenjak awal mengenal Linux, saya telah mengenal banyak PDF yang rapi. Ternyata PDF-PDF tersebut ditulis dengan \LaTeX, bukan dengan Microsoft Word seperti yang saya sangka. Sejak itu saya tertarik. Namun baru pada 22 Oktober 2013 saya menginstal \LaTeX untuk pertama kalinya. Ternyata sangat menarik. Jauh lebih menarik daripada Writer atau Word. Saya bisa mengendalikan seluruh dokumen semau saya tetapi otomatis rapi. Dan semangat menulis saya bangkit kembali setelah mencoba \LaTeX ini. Sungguh luar biasa menyenangkan. Saya ingin menunjukkan betapa mudah dan rapinya LaTeX.

LaTeX di Ubuntu

Saya menginstal Gummi selaku GUI untuk \LaTeX. Mengapa? Karena setelah saya membaca beberapa artikel perbandingan GUI untuk \LaTeX, saya memilih yang memiliki live preview. Sejauh ini baru Texmaker dan Gummi saja yang saya temukan. Sesungguhnya saya lebih menyukai Texmaker karena tampilannya keren sekali (seperti Qt Creator). Namun akhirnya pilihan saya jatuh pada Gummi. Ia yang paling kecil ukuran unduhannya (sekitar 300 MB) dibanding yang lain. Memang besar, tetapi kalau hasilnya serapi ini, 300 MB cuma angin lalu. Gambar ini diambil di KDE yang belum terinstal qtcurve, sehingga tampilan Gummi (GTK) terkesan kurang menarik.

compressed_latex-gummi1

Panel kiri untuk menulis kode dan kanan untuk preview

Awal “Keberanian” Saya

Sebelumnya saya “tidak berani” menginstal \LaTeX karena khawatir kesulitan memakainya. Namun saya mulai tertarik sejak melihat komputer seorang pengguna Windows yang di situ terdapat Texmaker. Ah, indah! Yang kedua, saya memberanikan diri mencari artikelnya. Subhanallah, saya menemukan artikel http://tex.stackexchange.com/questions/339/latex-editors-ides dan harus saya akui artikel ini penyebab saya bersikeras ingin menggunakan \LaTeX. Ya, di situ ada banyak skrinsot Texmaker, Gummi, Vim, dan editor lain yang demikian indah. Berikut ini skrinsot dari laman tersebut. Siapa tak tergoda mencobanya?

texmaker - latex

Texmaker

texstudio -latex

Texstudio

texworks - latex

Texworks

vim-latex

Vim & LaTeX Extension

Dan tidak akan saya lupakan, sebuah buku karya Kang Tedy Tirtawidjaja yang membahas \LaTeX secara komplet sehingga menumbuhkan semangat saya mencoba. Buku inilah yang pertama kali memprovokasi saya untuk mencoba \LaTeX. Saya memperoleh dasar-dasar menulis dengan \LaTeX awalnya dari buku ini. Akhirnya saya bisa menerapkannya. Terima kasih, Kang Tedy! Unduh bukunya di http://budi.insan.co.id/docs/membuat%20dokumen%20dengan%20latex%20-%20ver.0.3.pdf.

latex-tirta

Salah satu halaman buku tersebut

Apa Kelebihan LaTeX?

  1. \LaTeX adalah typesetter yang digunakan oleh profesor, peneliti, ilmuwan, matematikawan, mahasiswa, dan pelajar untuk menulis dokumen sejak dulu kala (1980) sebelum adanya Microsoft Office. Terlalu banyak skripsi, tesis, paper, bahkan buku dan tutorial dikerjakan dengan \LaTeX. Segera Anda akan menyadari bahwa banyak tutorial Linux yang Anda unduh selama ini ternyata ditulis dengan \LaTeX (baca Properties-nya). Banyak orang menggunakan \LaTeX. Karena itu, Anda tidak akan pernah kekurangan tutorial untuk \LaTeX.
  2. \LaTeX menghasilkan dokumen yang tingkat kerapiannya sangat tinggi. Bisa dibilang lebih rapi dari Microsoft Word.
  3. \LaTeX menghasilkan teks rumus matematika dengan tingkat ketelitian sangat tinggi. Ia bisa menuliskan rumus sesulit apa pun (oleh karena itu para profesor menggunakannya).
  4. \LaTeX itu otomatis. Penomoran heading otomatis dipegang oleh LaTeX. \LaTeX otomatis membuatkan daftar isi, daftar gambar, daftar tabel, bahkan daftar kode sumber. Begitu pula penomoran footnote, halaman, abstrak, margin, dan lain-lain.
  5. \LaTeX memiliki sintaks yang mirip HTML, dan sama sekali tidak sulit. Anda hanya butuh beberapa hari saja untuk bisa menggunakan \LaTeX (saya mulai menggunakan LaTeX 5 hari lalu/22 Oktober 2013).
  6. \LaTeX itu gratis.
  7. \LaTeX itu open source.
  8. \LaTeX punya banyak sekali package (baca: plugin) yang memperluas fungsinya sebagaimana Firefox dengan addons-nya.

Anda dan LaTeX

  • Anda, jika sudah bosan dengan Microsoft Word atau Libreoffice Writer, cobalah \LaTeX.
  • Jika Anda merasa Writer kekurangan fungsi equation editor (kalah dengan Word), maka Anda harus mencoba \LaTeX. Rasakan power-nya.  $latex \[ \int_a^b f(x)\,dx.\]$
  • Jika Anda menyukai matematika, sayang sekali jika tidak kenal \LaTeX.
  • Jika Anda merasa gairah menulis menurun karena kurang tantangan, cobalah \LaTeX.
  • Jika Anda sangat menyukai kerapian, gunakan LaTeX.
  • Jika Anda menyukai matematika, sayang sekali jika tidak kenal Jika Anda menyukai matematika, sayang sekali jika tidak kenal \LaTeX.
  • Jika tombol Delete Anda rusak sedangkan Libreoffice Writer maupun Kingsoft Writer tidak menerima rebinding Anda dengan xev dan xmodmap, maka cobalah Gummi + \LaTeX.
  • Atau jika Anda memang sedang senggang.

Saya dan LaTeX

Alhamdulillah, kemarin saya baru saja menyelesaikan tutorial Qt ke-11 sekaligus versi PDF-nya. Versi PDF ini adalah dokumen \LaTeX pertama saya. Biasanya saya hanya mengandalkan Writer untuk membuatnya. Sekarang bisa dilakukan dengan \LaTeX dan saya sangat puas. Hasilnya begitu rapi untuk ukuran seseorang yang baru memakai \LaTeX (yah, tutorialnya memang banyak, sih). Berikut ini skrinsot tulisan saya dengan \LaTeX.

latex-transisi

Tak pernah saya mengira tulisan saya bisa serapi ini. Tak putus-putus rasa hati ingin memandangnya. Padahal saya baru memakai sedikit kode \LaTeX. Dan tujuan saya menginstal Gummi di Ubuntu adalah menulis seluruh versi PDF untuk posting selanjutnya dengan LaTeX.

Daftar Tutorial LaTeX

Bagian yang paling saya suka adalah tutorial. Tentunya saya tak perlu menuliskannya karena sudah ada orang sebelum saya yang melakukannya. Mereka ahlinya. Maka silakan membaca tutorial mereka. Istimewa untuk buku Kang Tedy, saya sudah sebutkan tautannya di atas.

  1. http://matematika.upi.edu/wp-content/uploads/2011/03/LaTeXpemula.pdf
  2. http://ctan.cermin.lipi.go.id/macros/latex/contrib/hyperref/doc/manual.pdf
  3. http://www.stdout.org/~winston/latex/latexsheet.pdf
  4. http://ece.uprm.edu/~caceros/latex/introduction.pdf
  5. http://www.andy-roberts.net/res/writing/latex/original_toc.pdf
  6. http://en.wikibooks.org/wiki/LaTeX/Colors
  7. http://www.maths.tcd.ie/~dwilkins/LaTeXPrimer/GSWLaTeX.pdf
  8. http://www.tug.org/twg/mactex/tutorials/ltxprimer-1.0.pdf
  9. http://latex-project.org/guides/usrguide.pdf
  10. http://www.ling.ohio-state.edu//events/lcc/tutorials/intro-latex.pdf
  11. http://tex.stackexchange.com/questions/38978/how-can-i-manually-install-a-latex-package-debian-ubuntu-linux
  12. http://tex.stackexchange.com/questions/867/syntax-coloring-in-latex
  13. http://texblog.org/2011/06/11/latex-syntax-highlighting-examples/
  14. http://tex.stackexchange.com/questions/83882/how-to-highlight-python-syntax-in-latex-listings-lstinputlistings-command

[PDF] Unduh Tutorial Pemrograman GUI dengan Qt C++ Edisi 1-7


Bismillahirrahmanirrahim.

Unduh Satu Per Satu

Berikut ini kumpulan tutorial pemrograman GUI Qt yang mencapai edisi 7 sampai sekarang. Ini semua PDF yang direct link. Semoga bermanfaat.

Pemrograman Qt 1 – Membuat Dialog, GroupBox, Layout, dan Tombol dengan Menulis Kode (Bukan Designer)

Pemrograman Qt 2 – Mendayagunakan QGroupBox dan QHBoxLayout untuk Membentuk Kolom dalam QDialog

Pemrograman Qt 3 – Mendayagunakan QFrame dan QVBoxLayout untuk Membentuk Kolom Lebih Banyak dalam QDialog

Pemrograman Qt 4 – QStackedLayout dan QComboBox untuk Window Layering

Pemrograman Qt 5 – QStackedLayout dan QPushButton untuk Layering (setCurrentIndex)

Pemrograman Qt 6 – Membuat Program GUI Sederhana Menggunakan Sebanyak Mungkin Kelas (QStackedLayout, QPushButton, QLabel, QComboBox, dan Lainnya)

Pemrograman Qt 7 – Menjalankan Perintah Linux dari GUI C++ dengan Mudah Menggunakan system()

Unduh Sekaligus Satu Paket PDF

Tautan: http://www.mediafire.com/download/f76q15p246qgh6q/Tutorial_Pemrograman_GUI_Qt_C%2B_Edisi_1-7.tar.gz
Ukuran: 1.6 MB

Unduh Sekaligus Satu Paket Saved Web Pages (HTML)

Tautan: http://www.mediafire.com/download/mm6dn0l5xhmmycm/Pemrograman_Qt_1-7_Laman_Web_(Non-PDF).zip
Ukuran: 6 MB

Pemrograman Qt – Membuat Dialog, GroupBox, Layout, dan Tombol dengan Menulis Kode (Bukan Designer)


Bismillahirrahmanirrahim.

Saya sebenarnya lebih suka cara drag and drop akan tetapi karena sudah kesulitan, maka cara terakhir adalah hard coding. Hard coding (begitu orang menyebutnya) adalah membuat aplikasi GUI tidak dengan drag and drop melainkan menulis kodenya semua dari nol. Kedengarannya mengerikan tetapi nyatanya tidak. Saya ingin mendemonstrasikan sedikit contoh hard coding (walaupun sebetulnya ini belum masuk hard level) untuk membuat satu dialog, di atasnya diberi layout, lalu di atas layout itu diberi tombol. Tetap kita lakukan ini dengan Qt Creator, dengan bahasa C++, dan di atas Ubuntu. Semoga ini bermanfaat.

Wujud Program yang Ingin Dibuat

ngite-hardcoding

Alur Kode

Saya nggak berani bilang ini algoritma. Namun inilah alur pikir sederhana dari program ini.

  1. Membuat sebuah dialog (QDialog).
  2. Mengisi dialog itu dengan groupbox (QGroupBox).
  3. Mengisi groupbox dengan layout (QHBoxLayout).
  4. Membuat tombol (QPushButton).
  5. Memasukkan tombol itu ke dalam layout.
  6. Otomatis, jika ada widget (entah button entah apa) masuk ke dalam layout, yang layout itu sendiri ada dalam groupbox, dan si groupbox ada di dalam Dialog, maka sempurnalah tampilan Dialog dengan tombol.

Urut-urutan di atas harus dipenuhi dalam hard coding di Qt karena jika tidak, maka hanya muncul jendela saja tanpa ada isinya. Atau malah hanya muncul pesan galat. Memang terlihat mbulet tetapi saja janji insya Allah akan mudah dengan penjelasan.

Kode Pembuatan Widget Qt (QPushButton, QHBoxLayout, QGroupBox)

Sebelum saya beberkan kodenya secara keseluruhan, saya tunjukkan dulu bagaimana hard coding untuk tombol, groupbox, dan layout agar Anda merasa juga bahwa sama sekali ini tidak hard.

Kode untuk Membuat Tombol (PushButton)

QPushButton *tombol = new QPushButton("PULAU BUTON");

Mudah dipahami. Maksudnya adalah membuat objek bernama tombol (dengan sifat pointer karena pakai *), yang diturunkan dari kelas QPushButton, dengan teks PULAU BUTON. Bisa saja tidak memakaikan sifat pointer (tanda *), tetapi nanti objek tombol tidak bisa menunjuk (tanda -> kepada fungsi). Ingat, nama kelas untuk tombol adalah QPushButton bukan QButton. Ingat, C++ adalah bahasa pemrograman yang berbasis objek. Jadi, sedikit-sedikit kita akan bertemu dengan objek. Oh iya, nama objek di sini bebas Anda ubah.

Kode untuk Membuat GroupBox

QGroupBox *groupbox = new QGroupBox(tr("Horizontal Layout"));

Maksudnya adalah membuat objek bernama groupbox dari kelas QGroupBox, dengan teks judul Horizontal Layout. Buat apa sih, groupbox? Ini berguna untuk mengelompokkan layout agar dalam satu dialog/jendela, bisa ada lebih dari satu layout. Latar belakang saya memakai groupbox ini akan dijelaskan di bawah. Sekali lagi, nama objek boleh Anda tentukan sendiri.

Kode untuk Membuat Layout

QHBoxLayout *layout = new QHBoxLayout;

Maksudnya, membuat objek layout berbasis BoxLayout yang bertipe horizontal, yang bernama layout. Buat apa layout itu? Oke, gunanya besar sekali untuk mengatur secara otomatis item-item GUI yang kita buat baik tombol atau lainnya. Sebagai informasi, layout dalam Qt itu sangatlah banyak jenisnya. Hanya saja, saya di sini pilih salah satunya saja yakni BoxLayout yang tipenya horizontal. Sekali lagi, Anda bebas mengganti nama objek. Cukup jelas, bahwa sampai layout pun dianggap objek dengan C++.

Kode Program

Saatnya membeberkan seluruh kode yang saya miliki. Selayang pandang, ada 5 berkas saja yang digunakan dalam program ini yakni:

  1. main.cpp
  2. mainwindow.cpp
  3. mainwindow.h
  4. mainwindow.ui
  5. DialogPertama.pro

Yang akang Anda utak-atik hanyalah mainwindow.cpp dan sedikit di mainwindow.h. Fokus hanya di dua berkas ini. Ah, jangan bingung dengan nama DialogPertama.pro. Kalau Anda buat proyek Qt baru dengan nama BotolMizone maka namanya jadi BotolMizone.pro. Berkas pro ini adalah konfigurasi proyek Qt kita. Otomatis diciptakan oleh Qt Creator. Kebetulan saja saya menamainya DialogPertama.

main.cpp

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    w.show();

    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QDialog>
#include <QGroupBox>
#include <QPushButton>

class QGroupBox;
class QPushButton;

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog();

private:
    void createHorizontalGroupBox();

    QGroupBox *horizontalGroupBox;
    QPushButton *tombol;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include <QtGui>
#include "mainwindow.h"
#include "ui_mainwindow.h"

Dialog::Dialog()
{
createHorizontalGroupBox();
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(horizontalGroupBox);
setLayout(mainLayout);
}

void Dialog::createHorizontalGroupBox()
{
horizontalGroupBox = new QGroupBox(tr("Ini Horizontal Layout"));
QHBoxLayout *layout = new QHBoxLayout;
QPushButton *tombol = new QPushButton("PULAU BUTON");
QPushButton *timbil = new QPushButton("PULAU SERAM");
QPushButton *tambal = new QPushButton("PULAU ANGKER");
layout->addWidget(tombol);
layout->addWidget(timbil);
layout->addWidget(tambal);
horizontalGroupBox->setLayout(layout);
}

mainwindow.ui

Abaikan isinya karena tidak dipakai.

DialogPertama.pro

Abaikan isinya karena tidak dipakai.

Hasil

ngite-hardcoding

Penjelasan Kode

Di dalam main.cpp, kode yang perlu diperhatikan hanya 2 baris yakni

Dialog w;
w.show();

Maksudnya adalah membuat objek bernama w dari kelas Dialog. Kelas Dialog ini dijelaskan di dalam mainwindow.h. Inilah pemrograman C++, beberapa berkas pemrograman saling terkait dan saling memanggil. Maka, Anda akan temukan di bagian atas main.cpp ada #include “mainwindow.h”.

Di dalam mainwindow.h, kode yang perlu diperhatikan adalah

class Dialog : public QDialog

karena kita memakai Dialog menggantikan MainWindow. Kalau Anda baru membuat proyek baru, pasti kode di dalam mainwindow.h isinya adalah deklarasi kelas MainWindow. Di sini kita menggantinya dengan Dialog.

public:
    Dialog();

karena Dialog ini dipakai di main.cpp untuk membuat objek bernama w.

private:
    void createHorizontalGroupBox();

    QGroupBox *horizontalGroupBox;
    QPushButton *tombol;

karena fungsi createHorizontalGroupBox() dipakai di mainwindow.cpp (sedangkan mainwindow.cpp memanggil mainwindow.h ini), horizontalGroupBox adalah objek yang dibuat dari kelas QGroupBox yang objek ini dipakai di mainwindow.cpp, dan objek tombol yang dibuat dari kelas QPushButton yang objek ini juga dipakai di mainwindow.cpp.

#include <QDialog>
#include <QGroupBox>
#include <QPushButton>

karena di dalam mainwindow.h dipakailah tiga kelas ini yakni QDialog, QGroupBox, dan QPushButton. Enaknya mendeklarasikan ini di atas pada mainwindow.h adalah jika mainwindow.cpp memanggil objek QDialog, maka tidak usah dideklarasikan. Cukup deklarasikan #include “mainwindow.h” dalam mainwindow.cpp karena header inilah yang bertugas memanggil ketiga pustaka tersebut.

Di dalam mainwindow.cpp, kode yang perlu diperhatikan hanya dua blok yakni:

//BLOK PERTAMA
Dialog::Dialog()
{
createHorizontalGroupBox();
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->;addWidget(horizontalGroupBox);
setLayout(mainLayout);
}

karena berkas .cpp yang satu ini adalah inti pemrograman kita. Semua kode sebelumnya hanyalah pelengkap, sebetulnya. Blok pertama ini tujuannya memberikan pada dialog, sebuah layout BoxLayout bertipe vertikal. Layout ini, objeknya diberi nama mainLayout. Mengapa? Karena layout kedua nanti akan diletakkan di atas layout pertama ini.

Hal penting lainnya adalah mekanisme pemasukan objek ke dalam layout dan pemasukan layout ke dalam Dialog. Pertama-tama kita harus menciptakan objek layout entah apa tipenya (kalau dalam kode ini QVBoxLayout). Kedua, kita point (->) objek tadi kepada method/fungsi bernama addWidget, dengan memasukkan objek layout kedua ke dalam passing parameter-nya (simpel, passing parameter itu isi dari () setelah kata addWidget). Ingat, method addWidget ini akan sangat sering dipakai dalam hard coding GUI karena memang pembuatan GUI di Qt ini isinya bikin objek lalu tempelkan (addWidget), bikin objek lagi tempelkan (addWidget) lagi, dan begitu terus. Ketiga, kita tempelkan (setLayout) layout yang sudah berisi objek-objek tadi ke dalam parent object (dalam blok ini, Dialog). Jadi, mekanismenya adalah nanti tombol masuk ke groupbox, groupbox masuk ke layout ini, dan layout ini masuk ke Dialog maka muncullah tampilan.

//BLOK KEDUA
void Dialog::createHorizontalGroupBox()
{
horizontalGroupBox = new QGroupBox(tr("Ini Horizontal Layout"));
QHBoxLayout *layout = new QHBoxLayout;
QPushButton *tombol = new QPushButton("PULAU BUTON");
QPushButton *timbil = new QPushButton("PULAU SERAM");
QPushButton *tambal = new QPushButton("PULAU ANGKER");
layout->addWidget(tombol);
layout->addWidget(timbil);
layout->addWidget(tambal);
horizontalGroupBox->setLayout(layout);
}

lihat, mudah sekali. Kode pada blok kedua inilah yang paling penting dalam pemrograman kali ini. Sebetulnya, andai bisa membuat objek tanpa deklarasi header, maka semua kode yang sebelumnya tidak dibutuhkan. Lihat, di sini terjadi pembuatan objek, lalu penempelan objek ke dalam layout, lalu menempelkan layout ke dalam groupbox. Cuma itu yang dilakukan dengan hard coding GUI di Qt kita kali ini.

Bisa dipahami dari kode ini, pembuatan GUI dengan hard coding ini dilakukan dengan cara membuat objek lalu menempelkan (addWidget) objek tersebut ke dalam layout lalu memasukkan layout tadi ke dalam groupbox (kalau pakai groupbox).

Unduh Source Code Proyek Qt Ini

Ukuran: 4 KB
Tautan: http://otodidak.freeserver.me/tarball/DialogPertama.zip

Baca lebih lanjut