Arsip Tag: open source

Qt Creator – Pemrograman Aplikasi GUI di Linux


Bismillahirrahmanirrahim.

Tulisan ini tidak lain ingin memaparkan bagaimana membuat aplikasi GUI dasar dengan mudah menggunakan Qt Creator. Aplikasinya sederhana, hanya menunjukkan fungsi dasar tombol dan label (untuk gambar). Jika tombol pertama diklik, maka gambar A muncul. Jika tombol kedua diklik, maka gambar B muncul. Hanya itu saja sudah cukup untuk memahami cara pakai 2 dasar terpenting memrogram dengan Qt Creator yakni signal dan slot. Tutorial ini dibuat di Linux dan aplikasinya untuk Linux.

SATU :: Menyiapkan Proyek

1. Buka Qt Creator dan buat proyek baru. Pilih Qt Widget Project > Qt GUI Application. Selalu pilih ini untuk proyek yang akan datang.qtproject

2. Beri nama Double karena kita hanya akan membuat program dengan 2 tombol. Selanjutnya Next.

qtproject2

3. Next terus sampai pada bagian Class Information, berikan nama Double pada Main Class maka semuanya akan mengikuti secara otomatis.

qtproject3

4. Finish, maka tampilan Qt Creator Anda akan seperti ini.

qtproject4

5. Perhatikan, dalam proyek ini Anda 5 berkas penting secara otomatis:

                        • Double.pro (berkas proyek Qt Creator yang bisa dipakai di OS mana pun)
                        • double.cpp (berkas kode inti tempat signal dan slot dituliskan)
                        • double.h (berkas header)
                        • double.ui (berkas GUI)
                        • main.cpp (berkas berisi fungsi yang selalu ada dalam semua program C/C++ yakni main())

Selalu seperti ini jika Anda membuat proyek GUI baru.

DUA :: Sedikit Pengaturan Qt Creator

Klik pada ikon Filter Tree > Simplify Tree. Maka kerumitan folder yang tadinya begini:

 qtproject5  qtproject7

menjadi sederhana begini:

qtproject6

TIGA :: Membuat Aplikasi

1. Buka double.ui ini adalah berkas XML yang mengatur GUI. Kalau diklik, maka GUI Builder milik Qt Creator akan langsung muncul. Di sini letak enaknya memrogram dengan Qt Creator. Bisa drag and drop dan jadi GUI langsung seperti di Microsoft Visual Basic. Cari elemen GUI bernama Push Button. Tempelkan dua biji. Di bawahnya, tempelkan Label. Jadinya seperti ini.

qtproject8

2. Buang teks asli dari Label sehingga kosong. Lalu ganti teks Push Button dengan SATU dan DUA. Lihat ini. Pastikan Label masih terpilih.

qtproject9

3. Berikan nama objek untuk Label ini pada Property Panel di samping kanan. Di situ, di bagian atas sendiri ada QObject, di bawahnya pas ada objectName. Pas di situ, ganti tulisan label dengan Gambar. Ingat-ingat nama objek ini.

qtproject10

4. Sekarang ganti juga nama objek dari tombol SATU dan DUA menjadi SATU dan DUA.

5. Sekarang klik kanan tombol SATU > Go To Slot. Di sinilah Anda akan berjumpa 2 inti Qt Creator, signal dan slot. Lihat jendela yang muncul. Yang ada di situ semuanya adalah signal. Apa itu signal? Anggap saja sekarang, signal = nama fungsi ketika terjadi sesuatu pada tombol SATU. Kebetulan yang harus kita pilih adalah signal bernama clicked(). Anda tidak usah perhatikan kolom sebelah kanan. Tekan OK saja.

qtproject11

5. Hasil dari signal terpilih adalah slot, yakni satu fungsi baru yang kosong pada berkas double.cpp. Perhatikan, Anda sedang menyunting double.cpp. Dan perhatikan pula, nama objek SATU menjadi nama fungsinya. Apa sih, yang sedang kita kerjakan ini? Intinya, kita membuat jalan (signal) bagi tombol SATU, agar jika diklik (clicked), dia mengganti isi (slot) dari objek Gambar. Anda hanya akan fokus pada fungsi kosong ini.

qtproject12

6. Karena akan butuh dua buah berkas gambar (JPG/PNG), maka kita impor gambar dulu sebelum menuliskan kodenya ke dalam slot void Double::on_SATU_Clicked() yang baru jadi. Ini caranya mengimpor gambar. Klik kanan proyek kita > Add New > Qt > Qt Resource File. Ini akan membuat sebuah berkas baru berformat .qrc dalam proyek kita. Beri nama citra (karena tadi sudah ada nama Gambar), dan alamat foldernya sudah biarkan saja default pada proyek kita.

qtproject13

qtproject14

7. Tampilan Qt Creator Anda akan seperti demikian. Ini sebenarnya Qt Creator sedang menyunting isi dari citra.qrc yang baru saja dibuat.

qtproject158. Klik Add > Add Prefix. Pasti hasilnya /new/prefix1. Sekarang Klik Add > Add Files. Pilih gambar apa saja dari sistem Anda. Kalau ada peringatan, oke-oke saja. Yang penting nanti harus ada 2 gambar seperti ini. Ingat nama berkas gambarnya.

qtproject16

9. Kembali ke double.cpp. Isikan kode C++ berikut pada slot yang sudah dibuat.

QImage bingkai;
bingkai.load(":/new/prefix/desktopfungsional-3a.jpg");
ui->Gambar->setPixmap(QPixmap::fromImage(bingkai));

PENTING! Ubah nama berkas gambar Anda sesuai berkasnya. Misalnya satu.png, maka ganti desktopfungsional-3a.jpg dengan satu.png. Saya hanya memberi contoh global.

10. Lakukan hal yang sama dari poin 5 agar tombol DUA juga memiliki fungsi untuk memanggil gambar pada Label. Pokoknya bedakan gambar untuk SATU dengan yang untuk DUA.

11. Jika sudah, maka keseluruhan kode double.cpp Anda akan menjadi seperti ini.

qtproject17

12. Sudah cukup. Sekarang klik tombol segitiga hijau (Run | Ctrl+R). Program Anda akan berjalan. Dia pasti bisa ganti gambar setiap klik tombol. Sampai sini, program Anda sudah berhasil. Selamat, aplikasi pertama Anda baru saja tercipta!

qtproject18

qtproject19

EMPAT :: Publikasi

Anda ingin agar aplikasi buatan Anda ini digunakan orang lain? Mudah. Lakukan saja Build maka sebuah eksekutabel (mirip EXE) akan tercipta dan ini bisa Anda jalankan di Linux lainnya. Klik saja tombol palu (Ctrl+B). Maka pada folder QtProject kita, akan muncul folder baru bernama Double-build-desktop-Qt_4_8_1_in_PATH__System__Release. Dalam Ubuntu saya, folder ini berada di /home/master/Publik/QtProject. Ya, berdampingan dengan folder Double dan bukan di dalam Double. Buka folder ini dan Anda pasti temukan satu berkas bernama Double. Coba jalankan. Pasti aplikasi Anda muncul. Pindahkan saja berkas Double ini ke Ubuntu teman Anda dan jalankan. Berkas lainnya abaikan saja. Selamat, Anda telah berhasil membuat aplikasi selayaknya aplikasi buatan para programer!

qtproject20

qtproject21

PERINGATAN

Saya menduga build yang dilakukan Qt Creator pada kondisi default-nya adalah dynamic linking yang artinya aplikasi buatan Anda ini tidak mandiri di komputer orang lain. Dia tidak bisa sendirian sebagaimana EXE di Windows sehingga butuh suatu pustaka tambahan yang mesti diinstal duluan di komputer lain sebelum dia dijalankan. Pustaka itu adalah Qt. Ini sebabnya aplikasi buatan kita ini bisa berjalan mulus di sesama Ubuntu (karena Ubuntu prainstal sudah ada Qt-nya). Lakukan perintah ldd Double untuk mengetahui apa saja pustaka yang diperlukan oleh aplikasi Anda ini. Puaskan rasa ingin tahu Anda.

Penutup

Saya butuh fokus. Ketika menulis ini, sungguh rasanya saya bebas dari distraksi yang lama mengekang saya untuk menulis soal Qt. Alhamdulillah. Saya harap ini cocok untuk membuka pintu Anda memrogram Qt atau membuat aplikasi GUI di Linux. Semoga ini bermanfaat.

Iklan

Istirahat Bersama Otodidak


Lama sekali tidak melakukan penulisan manual, mungkin 4 bulan sudah. Sejak Otodidak mulai dibuat, saya hanya terfokus pada pengetikan mesin. Itu pun sedikit esai yang sempat saya tulis. Namun hati kecil tak bisa dibohongi. Saya masih ingin terus menulis. Setidaknya masih ada beberapa rencana yang sudah saya canangkan. Di antaranya menulis esai Behind The Scene berseri untuk Otodidak dan menulis esai khusus mengapa Otodidak dibuat. Tujuannya jelas, mengajak semua anak muda Indonesia untuk mengembangkan aplikasi. Kalau sudah ada gerakan pemrograman Android yang sanggup menarik minat banyak orang, mengapa tidak untuk gerakan pemrograman aplikasi Linux? Biarlah saya memulainya.

Pertama-tama, yang paling penting, memikirkan objek. Objek saya adalah anak-anak muda Indonesia. Usia SD/SMP/SMA dan sangat saya harapkan ada anak SMK tertarik mengembangkan. Karena objeknya adalah mereka, dan mereka adalah bagian dari Indonesia, maka ada 2 hal penting yang harus dipersiapkan: (1) pola pikir sederhana (2) hindari menggunakan pemikiran Barat untuk mengajari mereka. Dengan memerhatikan 2 hal ini, saya akan melangkah. Tanpanya, orang Indonesia akan sulit mengenal pemrograman. Inilah konsep yang saya bangun dalam rencana tersebut.

Sekaang, apa wujud dari 2 hal penting ini? Menurut saya, tentu saja dengan

  1. mengenalkan pemrograman berbasis visual, dominan gambar minim kode, hasil instan, dan interaktif, serta proses pengerjaan aplikasi secara keseluruhan yang sederhana (dikurangi kerumitannya secara ekstrem).
  2. pemikiran barat yang saya maksud ialah metode mengajar supermandiri yang menurut saya tidak cocok untuk orang Indonesia, apalagi usia SD/SMP/SMA. Jadi rencana saya, wujudnya adalah saya yang akan menyiapkan segalanya mulai dari buku, tutorial, gambar, contoh aplikasi (Otodidak), dan lain-lain sehingga minim sekali nanti saya suruh mereka cari sendiri. Tujuan saya hanya mengajari mereka bikin aplikasi, bukan memperumit mereka. Sederhana, bukan?

Mengapa saya melakukan ini? Sederhana juga. Inspirasi saya adalah adik-adikku di seluruh Indonesia yang putus sekolah, teman-temanku di usia SMA yang mencari jati diri, dan kisah Lintang di buku cerita Laskar Pelangi. Kalian semuanya, janganlah menyerah. Aku tahu kalian ingin jadi orang yang berguna, yang bermanfaat bagi orang lain. Jika keterbatasan menghimpit kalian, lawan! Kalian sanggup melakukannya. Adik-adikku, kawanku semuanya, percayalah. Hari ini pun kalian bisa jadi orang yang berguna, tidak perlu menanti. Tidak perlu ada putus asa, tidak perlu ada perkelahian. Kalian semua ada di Indonesia yang subur teknologi informasinya. Kalian semua bisa berguna dengan mendayagunakan teknologi informasi. Salah satu bidangnya adalah pembuatan aplikasi. Ya, aplikasi seperti Otodidak. Oleh karena itu, kakak ingin mengajak kalian semua untuk memulai bidang ini. Industri besar kita yang baru ini. Kita bikin aplikasi, mulai dari yang cara termudah yang kalian pasti bisa. Adik-adikku, kalian semua adalah inspirasi bagi kakak. Jangan pernah menyerah.

Kapan akan dilakukan? Tentu setelah saya siap. Memang sesaat setelah saya putuskan membuat Otodidak, saya langsung mendokumentasikannya. Saya tulis dan gambar desain aplikasi di buku tulis sekolah saya (SIDU 58 lembar). Saya juga catat potongan kode istimewa yang dibutuhkan setiap saya mengedit Otodidak. Cukup lengkaplah dokumentasi manualnya. Hanya saja saya belum memotret buku itu (revisi: sudah dipotret pada 10 Maret 2013). Dokumentasi itulah yang akan menjadi titik berat Otodidak Behind The Scene nanti. Tentulah ditambah literatur luar agar tujuan membuat aplikasi tercapai. Sederhana dan mudah, bukan? Jadi, ini baru bisa dilaksanakan setelah buku itu selesai dipotret.

Apakah hanya dengan menulis esai? Tidak. Saya ingin menerapkan apa yang selalu dicari jawabannya oleh Microsoft: what’s next? Jadi, setelah ini, saya ingin mengadakan kuliah online bagaimana membuat aplikasi dengan Netbeans. Bentuk kuliahnya sama persis dengan kuliah kami biasanya yang diselenggarakan oleh komunitas. Bagaimana itu? Ya, chatting di kanal IRC #ubuntu-indonesia pada server freenode. Sederhana tetapi banyak manfaatnya. Kanal ini bisa menampung jumlah orang tak terhingga. Sebagaimana kuliah kami biasanya, nanti tentu bisa tanya-jawab di sana. Akan saya tunjukkan betapa menyenangkannya. Lagipula, ini berguna juga untuk meramaikan kanal ini.

Setelah merilis Otodidak pada 24 Februari 2013 ini, esok harinya saya langsung istirahat total selama 48 jam. Selama itu saya tidak menyentuh mesin sama sekali. Sekarang badan saya sudah bugar lagi dan siap bertempur kembali. Saya berharap semua ini bermanfaat untuk saya sendiri dan masyarakat Indonesia semuanya. Dukung Indonesia Goes Open Source! Sampai di sini, saya tutup esai ini dengan terima kasih. Terima kasih untuk semua inspirator dan para pembaca.

 

 

Diselesaikan di Mojokerto
pada 26 Februari 2013

Terima Kasih untuk Para Tester Otodidak


Bismillahirrahmanirahim,

Saya mengucapkan terima kasih yang tak terhingga atas bantuan besar para penguji aplikasi Otodidak (pada masa testing). Seluruh penguji telah memberikan jasa yang besar sekali untuk Otodidak. Karena Otodidak adalah proyek rahasia, maka hanya sedikit orang yang mendapat bocoran keberadaannya. Merekalah para tester, dan semua dari forum Ubuntu Indonesia. Saya memilih tester hanya dari forum Ubuntu Indonesia karena sungguh saya merasa percaya dan sangat nyaman dengan keramahan warga yang ada di sana. Inilah mereka:

blackshirt
Alakulihal
v1rus
p4t_k4i
pingsut
ilham
rizaaal
mepro
CDX
chiki
yogieza
KuKuKaChu

Dari luar FUI (kalau berkualitas, saya langsung minta):
ibnutoriq
wahidin <<< hidup di pedalaman hutan tapi pengguna Slackware, saya sangat kagum

Terima kasih dari sisi lain:
Ayah <<< atas segalanya
Ibu <<< atas inspirasi keawaman beliau
Ridlo Widyanto <<< atas dukungan beliau

Dan untuk semua orang yang membantu saya hingga Otodidak bisa dirilis. Mohon maaf saya terlambat sekali menulis laman ini (namun tetap FUI yang dapat posting ini pertama kali). Mohon maaf juga jika ada nama akang yang tidak saya sebut di sini karena saya lupa (mohon diingatkan). Jazakumullahu khairan wa barakallahu fiikum.

Otodidak Versi 1 Dirilis


Pemula-1Bismillahirrahmanirrahim,

Halaman ini dimutakhirkan pada 14 Agustus 2016

Dengan mengharap rahmat Allah, saya merilis aplikasi Otodidak versi 1 hari ini. Otodidak adalah aplikasi open source baru yang terinspirasi dari Electrodroid, dengan kegunaan utama sebagai aplikasi belajar Linux yang all-in-one untuk pemula. Otodidak mulai dibuat pada 6 November 2012 dan siap diunduh hari ini. Dengan antarmuka GUI berbahasa Indonesia, prinsip click and run, beserta dominasi gambar untuk menjelaskan, jadilah Otodidak aplikasi khusus untuk orang awam dan pemula dalam belajar Linux. Otodidak dirilis untuk Linux dan Windows (serta Mac OS X) dengan harapan bermanfaat bagi seluruh umat manusia. Otodidak dirancang agar bisa dimanfaatkan oleh perorangan, sekolah dasar maupun menengah, perguruan tinggi, korporasi, warnet, dan siapa pun yang ingin migrasi ke sistem operasi Linux. Kini dengan Otodidak, diharapkan pembelajaran Linux dapat dikurangi kerumitannya karena cukup membuka satu aplikasi ini untuk:

1) Simulator Terminal (Anda bisa belajar Terminal tanpa Terminal).

2) Kumpulan tutorial instalasi modem di Ubuntu.

3) Kumpulan penjelasan mengenai Ubuntu semisal kelebihan/kekurangan.

4) Tabel perbandingan aplikasi Windows dan Ubuntu.

5) Semua kumpulan pengetahuan Linux bergambar.

6) Tutorial instalasi aplikasi di Ubuntu.

7) Tutorial instalasi kodek MP3 di Ubuntu.

8) Kumpulan penjelasan mengenai 5 desktop environment di Linux.

9) Kumpulan perintah Terminal yang sering digunakan.

10) Kumpulan trik cepat menggunakan Terminal.

11) Kumpulan pengetahuan dasar Linux, GNU, Free Software, Open Source, Repositori, dan cara belajar Linux dalam Bahasa Indonesia dan disertai ilustrasi (didesain dengan Inkscape).

Otodidak dirancang agar sederhana. Karenanya Otodidak dirilis dalam format DEB (bisa langsung diinstal di Ubuntu) dan EXE (Windows). Dan siapa pun yang menemukan kerumitan atau kesalahan di dalamnya hendaklah melaporkan ke pengembangnya.

Unduh Otodidak

Linux dan Windows: Otodidak_versi_1.jar (12 MB)

Ubuntu: Otodidak_versi_1.deb (12 MB)

Windows: Otodidak.exe (12 MB)

Kode Sumber:

*) Linux lainnya dan Mac OS X bisa menggunakan versi JAR saja (terima kasih untuk Pak Dedy yang telah mengetes Otodidak di Mac OS X dan melaporkan bahwa ia berjalan lancar di sana)

**) Otodidak dibuat dengan Java, sehingga Anda memerlukan Java Runtime Environment (JRE) di komputer Anda untuk bisa menjalankannya. Baca cara instalasi JRE untuk Linux Anda di sini.

Plus

Bagi yang ingin tahu, nantikan Otodidak Behind The Scene di web resmi Otodidak yang menjelaskan bagaimana tahapan desain dan pemrograman selama Otodidak dikembangkan.

Skrinsot

Simulator-Terminal

Pemula-2 Lanjutan-2 Lanjutan-1

Open Source Translation – Konsep Mengajar Bahasa yang Baru


trans-logoPernahkah Anda mendengar frase open source? Pernah jugakah Anda mendengar bahwa kita bisa ikut serta menerjemahkan antarmuka aplikasi ke Bahasa Indonesia? Open source adalah konsep yang memelopori itu semua dan menjadikannya mudah untuk kita. Alangkah bagusnya kalau ini bisa kita manfaatkan untuk mengajar peserta didik. Esai ini sepenuhnya bersifat alternatif.

Tulisan ini tersedia dalam bentuk PDF.

Target Tulisan Ini

  1. Guru Bahasa Inggris.
  2. Guru Bahasa Indonesia.
  3. Siapa pun yang ingin mendalami Bahasa Inggris secara mandiri.
  4. Siapa pun yang ingin memperbaiki Bahasa Indonesianya sendiri.
  5. Siapa pun yang tertarik dengan open source. Baca lebih lanjut

Berlemah Lembutlah, Komunitasku…


Saya memahami keinginan komunitas yang menginginkan kerapian yakni bersihnya forum dari pertanyaan yang berulang-ulang padahal pertanyaan itu sudah terjawab sebelumnya, dan siapa pun dapat langsung memperolehnya dari sedikit usaha mencari. Kalau saya, saya mau saja cari sampai berjam-jam baru tanya soalnya buat saya kegiatan mencari itu menyenangkan sekali. Namun yang tidak dapat saya pahami ketika saudara-saudara saya menghadapi awam, mereka -dengan segala hormat- malah menyuruh si awam itu untuk mencari sendiri. Saya heran dan tak dapat saya terima sampai hari ini. Kaidahnya sederhana: jika Anda ingin mencari pahala dari membantu saudara sendiri, mengapa Anda tidak memberitahunya langsung jawabannya demikian dan demikian? Jika Anda ingin pahala ilmu yang tak putus, mengapa harus ikut aturan forum jika memberitahunya tidak akan menjadikan Anda di-ban? Mengapa Anda malah menyuruh dia yang memang tidak tahu apa-apa dalam masalah ini mencarinya sendiri? Pahamilah kalau dia memang 100% tidak tahu, tidak pengalaman, tidak mengerti, sehingga dia percaya kepada Anda dan bertanya. Dia belum bisa mencari sendiri. Trustment, Man! Karena tidak tahu itulah dia bertanya, ingatlah. Percayalah padaku dia takkan bisa tanpa bantuanmu. Bantulah dia, lagipula hanya beberapa kata, beberapa byte, tidak sampai ukuran TB. Dan niatkanlah yang ikhlas agar Anda memperoleh pahala. Ingatlah kalau trustment (kepercayaan) itu penting sekali. Sudah dipercaya kok malah memberatkan? Orang akan lari darimu dan kamu juga takkan suka. Sungguh aneh kalau sampai kita menyia-nyiakan kesempatan emas mencari pahala dan bagi-bagi ilmu ketika ada orang tanya kepada kita. Itu kesempatan besar yang mungkin terakhir dalam hidup kita! Ini nasihat khusus saya untuk saudara-saudaraku yang aktif di komunitas.

Satu lagi. Sepertinya komunitas Linux pada umumnya perlu belajar dari kisah-kisah ulama Islam. Anda yang telah mengenal jenius luar biasa yang akhlaknya sangat mulia seperti Imam Syafi’i, bisakah membayangkan ketika ada seseorang tua renta baru masuk Islam bertanya kepada seorang ‘alim ulama “Wahai Imam, bagaimanakah cara wudhu?” lantas sang ‘alim menjawab “Wah, baca buku ini dulu, Pak.” atau “Wah usahamu mana, Pak? Baca buku dulu dong. Baru kalau mentok, tanya ke saya.”? Apa-apaan itu? Mustahil orang berilmu mengatakan kata-kata yang sangat tidak menyenangkan itu. Jika memang Anda tahu ilmunya, maka sampaikan. Kalau mustahil lewat muka, coba saja lewat e-mail atau private message. Mungkin tidak enak kalau saya beri contohnya ulama Islam begini, tetapi saya hanya ingin memberi contoh. Ya susah orang belajar Linux kalau akhlak komunitasnya kurang menyenangkan. Kalau Anda tahu, maka usahakanlah memberi tahu awam yang bertanya.

Yakinlah, jika dengan akhlak yang baik, akan banyak sekali awam yang mau menggunakan Linux. Dan Anda akan menambah teman. Justru mungkin bukan karena dia melihat keunggulan Linux, melainkan karena dia kagum dengan akhlak yang mulia. Siapa tidak senang? Jadilah manusia yang lembut kepada orang lain, entah apa pun sistem Anda. Dan jadilah pengguna Linux yang ramah senyum, jawablah yang bisa Anda jawab, mudah-mudahan banyak orang jadi mau mengambil manfaat Linux gara-gara kebaikan hati Anda. Percayalah, mudah!