Arsip Tag: zenity

Linux Desktop Masih Kurang User Friendly


Bismillahirrahmanirrahim. Saya sangat senang mencari lahan baru. Masih banyak yang bisa digarap. Saya sangat terinspirasi dengan apa yang senantiasa dilakukan para inovator. Mereka senantiasa ingin tahu, senantiasa membuktikan konsep, dan senantiasa membuat sesuatu yang sebelumnya tak terpikirkan orang lain. Yang paling penting, lahan yang mau digarap itu harus bermanfaat nyata bagi banyak orang. Apa yang harus digarap? Banyak sekali. Dan bidang yang akan saya bicarakan adalah GUI. Tulisan ini berbicara mengenai masa depan Linux desktop versi saya. Unduh versi PDF.

Alasan Dikatakan Demikian

Karena Linux desktop saat ini masih kompleks untuk pengguna.

User Friendly itu Apa?

Realitas yang bicara. Sesuatu dikatakan user friendly jika:

  • User hanya butuh sedikit gerak untuk mencapai satu tujuan
  • Ujung-ujungnya hemat waktu, hemat tenaga, dan hemat uang

Untuk Siapa Tulisan Ini

  • Semua orang yang menyadari kekurangan Linux desktop
  • Semua orang yang objektif mengakui kesederhanaan OS lain
  • Nonfanatis OS
  • Semua orang yang mau turut membangun Linux
  • Yang memegang prinsip mesin yang melayani manusia

Bukan Untuk Siapa Tulisan Ini

  • Fanatis Linux
  • Yang merasa Linux desktop tidak usah diperbaiki
  • Yang merasa Linux desktop tidak ada masalah
  • Yang memegang prinsip kebalikan dari mesin yang melayani manusia

Ide Dasar

Saya ingin mempromosikan Linux (desktop) yang bukan Windows kepada pengguna Windows. Minimal, mereka mau dual boot. Semoga OS halal semakin mendominasi pasar OS Indonesia.

Masalah Utama

Linux itu rumit. Linux itu kompleks. Linux (desktop) masih belum user friendly. Saya bisa bilang begini karena saya menggunakan Linux sehari-hari. Jadi, Linux (desktop) harus disederhanakan. Bukan dengan membuat distro baru, tetapi cukup membuatkan aplikasi atau sistem di atas yang sudah ada. Juga bukan dengan membuang kerumitan itu 100% (mustahil), melainkan sekadar berusaha menguranginya.

To Reduce Complexity

Sebelum melaju lebih jauh, ini dulu. Inilah slogan inti yang saya angkat dalam esai ini. Satu kata: sederhana. Membuat sesuatu menjadi sederhana. Artinya adalah mengurangi kerumitan. Prinsip to reduce complexity inilah yang akan membawa sesuatu yang tadinya kompleks/rumit menjadi sederhana. Kalau sederhana, sesuatu itu akan mudah digunakan. Saya beri contoh sebagaimana hasil obrolan saya di kanal #debian-id oleh seorang maintainer Debian internasional yang bernama jonass.

Ada 2 benda. Satu kotak dan satu lingkaran.

Rumus matematika untuk kotak panjang x lebar sedangkan lingkaran 22/7 x pi x r x r

  1. Mana yang lebih kompleks rumusnya? Jawabannya tentu lingkaran.
  2. Mana yang lebih susah kalau digunakan menggelinding? Jawabannya tentu kotak.

Terima kasih untuk jonass atas analogi ini.

Poin 1 menunjukkan bahwa kotak () itu lebih mudah alias lebih sederhana daripada lingkaran () dari sisi developer. Poin 2 menunjukkan bahwa lingkaran () itu, meski rumusnya susah, tetapi sederhana dan mudah digunakan dalam hal menggelinding (digunakan sebagai ban) dari sisi pengguna. Dari sini bisa kita ambil kesimpulan kalau kompleks itu = lebih banyak gerak untuk mencapai 1 tujuan. Lawan kata kompleks adalah sederhana, jadi sederhana sendiri = sedikit gerak untuk mencapai 1 tujuan. Dan esai ini hanya membahas sederhana untuk poin 2. Sederhana untuk pengguna. Linux desktop itu kompleks. Harus disederhanakan. Dan kesederhanaan untuk pengguna ini bisa dicapai dengan konsep to reduce complexity. Bagaimana melakukannya?

Solusi

GUI.

Penjelasan Solusi

Yang bisa dilakukan adalah memperkaya Linux dengan GUI. Sebelumnya, mari mengenal makhluk apa ini. GUI adalah graphical user interface, sebuah teknologi untuk menerjemahkan bahasa antara pengguna (manusia) dan komputer. Manusia maunya begini, GUI menerjemahkan ke komputer begitu, dan sebaliknya. GUI adalah segala aspek bergambar yang kita lihat di monitor, yang bisa diklik. GUI adalah kesatuan dari tombol, ikon, menu, toolbar, combobox, panel, dan lain-lain untuk membantu kita menyelesaikan pekerjaan di komputer. GUI ini lawan dari CLI (command line interface), teknologi era lama. Di CLI, segalanya dilakukan di layar hitam dengan mengetik perintah-perintah. GUI berjiwakan prinsip click and run yang merupakan bentuk prinsip to reduce complexity. Dari tadinya harus hafal dan ketik perintah-perintah, sekarang cukup klik dan masalah sama-sama selesai. Sampai sini mestinya mudah dipahami. Jika belum, ini saya beri contoh:

  • Mana yang lebih sederhana: menyetir belok kanan di mobil dengan putar setir ke kanan (1 gerakan) atau dengan perintah $ sudo belok –45d –15d –5d kanan (34 gerakan)? Tentu lebih sederhana putar setir.
  • Mana yang lebih sederhana: mendesain poster dengan klik mouse (ratusan klik) atau dengan mengetik perintah-perintah Terminal tanpa mouse (tak hingga)? Tentu masih sederhana klik.
  • Mana yang lebih sederhana: membeli barang dengan bertanya harga-harga terlebih dulu atau membeli dengan sebelumnya melihat daftar harga di depan toko? Tentu lebih sederhana yang kedua.

Contoh Nyata Solusi

Otodidak dibuat dengan harapan to reduce complexity. Apa saja yang dilakukan oleh Otodidak?

  1. Untuk newbie pengguna Windows: tidak usah instal Linux (minus ratusan klik dan puluhan kegagalan) untuk sekadar belajar Linux.
  2. Untuk newbie pengguna Linux: tidak usah banyak browsing/tanya/menunggu lama/usaha untuk sekadar memahami dasar Linux.
  3. Untuk developer/pengayom komunitas: tidak usah repot mengajari newbie cukup katakan ‘cobalah Otodidak’ untuk hal-hal dasar.

Hasilnya adalah penghematan terhadap:

  • jumlah klik,
  • jumlah usaha yang harus dilakukan,
  • jumlah kegagalan yang bisa terjadi,
  • jumlah uang untuk browsing,
  • jumlah bandwidth pribadi yang harus dihabiskan, dan
  • jumlah waktu yang mesti terbuang.

Otodidak dibuat berdasarkan kesadaran bahwa Linux desktop itu rumit. Linux desktop masih kurang user friendly. Maka, minimal harus ada sistem yang mengurangi kerumitan itu. Otodidak adalah proposal untuknya, namun hanya dari sisi pembelajaran. Inilah contoh nyata penerapan to reduce complexity di Linux desktop.

Apa yang bisa dilakukan?

Dua hal saja. Menciptakan aplikasi berbasis GUI dan membuatkan GUI untuk aplikasi yang sudah ada. Jalan pertama contohnya adalah Otodidak dan jalan kedua contohnya apt-get (CLI) dengan front-end-nya, Synaptic Package Manager (GUI). Akan saya jelaskan mulai dari ide-ide untuknya.

Jalan pertama – Membuat Aplikasi GUI

Ternyata banyak sekali lowongan untuk membuat aplikasi GUI di Linux. Lebih mudah dipahami dengan ide.

  1. Internal Cropper untuk Libreoffice/Openoffice
  2. Image Viewer ringan yang bisa crop
  3. Download manager yang persis IDM (katakanlah IDM clone)
  4. Overcloker/underclocker
  5. Pemaket DEB menjadi 1 berkas siap instal (bayangkan EXE)
  6. Folder Protector
  7. Backup Tool yang superlengkap
  8. Customizer untuk desain kaos
  9. Customizer untuk desain sepeda motor/mobil 3D
  10. Perancang stiker otomatis
  11. Perancang undangan nikah otomatis
  12. Sketchup clone
  13. Alarm praktis
  14. Backup Tool yang praktis untuk Firefox/browser lain
  15. Pengingat waktu shalat
  16. Perancang tema WordPress drag and drop
  17. PC Suite serbabisa untuk hape-hape yang beredar di Indonesia
  18. Printer resetter
  19. Printer manager (bisa cleaning)
  20. Backup hape (sms, kontak, dkk.)
  21. Multisim, ISIS, Workbench clone
  22. PC Wizard clone
  23. Speedfan clone
  24. GUI mockup creator
  25. Color picker
  26. Web forum client

Jalan Kedua – Membuatkan GUI dari CLI

GUI untuk aplikasi CLI itu biasanya disebut front-end. Sedangkan CLI-nya disebut back-end. Contoh yang seperti ini adalah apt-get (back-end) yang memiliki GUI Synaptic (front-end). Contoh lainnya axel downloader (back-end) dengan Axel Kapt (front-end). Jalan kedua ini umumnya lebih mudah dari yang pertama karena hanya membuat GUI dari aplikasi yang sudah ada.

  1. Tweak Tool yang serbabisa
  2. Penyimpan DEB dari cache untuk diinstal di komputer lain
  3. System Language Changer yang sekali klik langsung berasa
  4. Proxy manager serbalengkap
  5. Wifi Sharing (seperti ConnectifyMe)
  6. Universal modem installer
  7. Pengecek hash berkas
  8. Show folder size
  9. Nautilus profile saver/loader
  10. Deepfreeze clone
  11. Perancang tema Ubuntu drag and drop
  12. Front-end yang lebih baik untuk axel
  13. Front-end yang lebih baik untuk wget
  14. Front-end yang lebih baik untuk aria2
  15. Front-end yang lebih baik untuk jigdo
  16. Stand alone DownThemAll!
  17. Attribute Changer yang praktis
  18. Switch untuk mematikan tombol suspend/hibernate
  19. Burner yang lebih cantik dari Nero
  20. KajianPlayer (streamer dan downloader untuk ilmoe.com)
  21. Backup flash disk (mirip thumbsuck)
  22. SudoThis! (sudo dpkg -i *.deb dalam klik kanan) untuk Nautilus
  23. Backup rutin isi cache APT
  24. Automatic wallpaper changer
  25. Libreoffice equation editor yang superpraktis
  26. Batch renamer

Sekian dulu ide di sini. Jika Anda ingin memperoleh ide juga, buka saja majalah PC Media atau sebangsanya lalu buka pada bab aplikasi bulan ini. Anda akan memperoleh jauh lebih banyak ide. Ya, jika dari satu orang saja bisa terlihat sekian banyak lowongan GUI di Linux, berapa lagi jika setiap warga KPLI memiliki idenya? Masih sangat luas.

Sedikit Penjelasan Ide

Memang perlu untuk menjelaskan sebagiannya. Misalnya saja USB Modem Installer. Kita tahu hampir semua modem USB bisa dikerjakan dengan bantuan tim wvdial, usbserial, dan usb_modeswitch. Hanya saja, konfigurasinya beda-beda untuk setiap modem dan setiap versi Ubuntu. Bagusnya, semua tutorial konfigurasi telah tersedia. Yang belum ada, satu aplikasi yang menyatukan seluruh tutorial itu menjadi tombol-tombol. Misal saja ada tombol modem Smartfren ZTE AC682. Sekali modem ditancap, langsung dikonfigurasikan otomatis sesuai tutorial. Akan sangat memangkas waktu, biaya, tenaga, dan tentulah makin banyak orang mau menggunakan Linux. Ini hanya contoh ide. Jika ini ada, nilai user frriendly-nya Linux menjadi bertambah satu. Dan kerumitan Linux berkurang sekian poin.

Jembatan Menuju GUI

Di Windows, kita semua kenal Autoit. Ini adalah bahasa pemrograman untuk menciptakan GUI dari perintah-perintah CMD. Sebagai contoh, untuk melakukan assembling .asm, teman saya memakai Turbo Assembler (TASM.exe). Untuk menjadikan .exe, ia menggunakan (TLINK.exe). Setiap ingin membuat exe baru, ia buka CMD dan lakukan pengetikan perintah berulang kali. Anggap ada 10 ketukan kibor untuk melakukannya (sebenarnya lebih). Datanglah teman saya satunya membuatkan GUI dengan Autoit, berdasarkan perintah-perintah TASM/TLINK yang dia pakai. Jadilah cukup klik ASSEMBLING lalu klik LINK untuk membuat exe baru. Lihat, cukup 2 ketukan. Jauh lebih sederhana. Inilah Autoit.

Zenity dan Kdialog adalah Autoit untuk Linux. Ini tidak 100% sama tetapi inilah realitasnya. Kita bisa melihat kegunaan Zenity dalam otomasi perintah-perintah, dari salah satu produk open source buatan seniman, Awoken Icon Theme. Ini icon theme yang sangat canggih. Untuk mengubah warna dan bentuk ikon di seluruh komputer, ia memanfaatkan Zenity. Kita bisa mengubah wujudnya dengan GUI! Dan ini sebenarnya kita melakukan perintah terminal. Hanya saja, kita tidak melakukannya karena sudah dikerjakan oleh Zenity. Kita cuma klik dan jadi. Sangat menarik, bukan? Kdialog pun serupa.

Proyek Besar

Ini kesimpulannya: kita menghadapi proyek besar. Proyek yang sudah dijalankan sekian lamanya di lingkungan Windows, dan sebenarnya juga dilakukan di lingkungan Linux oleh orang seperti Matthias Ettrich sejak lama. Proyek memperkaya OS dengan GUI. Mengurangi kerumitan OS dengan GUI dan otomasi. Orang-orang di luar negeri sana sudah lama memulainya, tetapi sepertinya kita masih santai. Kita bukan meniru-niru mereka, kita hanya berinovasi demi memudahkan diri-diri kita sendiri. Dan sekian banyak manusia kelak. Saya memulai ini dari mencari tutorial Zenity dan Kdialog. Serta dengan menulis esai ini. Dengan ini, saya mengajak pembaca untuk turut membuat aplikasi GUI di Linux.

Otomasi

Ini sedikit uneg-uneg dari saya. Jiwa dari GUI adalah otomasi. Jiwa dari segala aplikasi adalah otomasi. Otomasi inilah yang akan mempermudah Linux. Semakin banyak otomasi, semakin mengecil jumlah usaha yang harus dilakukan demi 1 tujuan. Segala yang manual harus dibuatkan otomasinya. Namun harus tetap dijaga keberadaannya karena kita menyadari, bahwa tidak selamanya GUI adalah raja. Dan kita juga semestinya menyadari, GUI harus mendominasi. Karena sebagian besar pengguna bukanlah sysadmin, bukanlah profesional sekuriti, dan bukan programer.

Penasaran?

Jika Anda merasa terganggu dengan ulasan kekurangan Linux ini, mungkin ada faedahnya saya memperkenalkan diri. Saya adalah anak yang mengenal teknologi informasi dari game development (tidak sebaliknya). Tentulah game development itu adanya di Windows. Saya mulai mengenalnya tahun 2006. Dan hingga kini, saya, tidak bisa melupakan kesederhanaan dan kemudahan Windows dalam membuat game 3D. Saya masih percaya pembuatan software paling sulit adalah game. Dan Windows bisa melakukannya dengan sangat mudah. Dengan drag and drop. Alangkah mudahnya, bayangkan! Pemrograman yang paling susah saja bisa dilakukan dengan sangat mudah. Segalanya GUI. Tanpa saya belajar perintah terminal atau sedikit bahasa skrip sekalipun. HTML pun tidak! Bahkan hampir tidak memakai kode sama sekali. Saya bisa membuat game seperti Counter Strike dalam satu jam. Dan yang seperti ini tidak ada di Linux. Saya melihat prinsipnya, to reduce complexity itu diterapkan secara ekstrem di Windows. Maka sangat mudah bagi saya untuk mengatakan Linux itu kurang user friendly. Linux memang bukan Windows, tetapi kalau kita ingin mempromosikannya kepada pengguna Windows, maka kita mesti membuatnya sederhana.

Nah, apa sih kuncinya? Kuncinya adalah aplikasi pembuat game seperti

Saya dulu menggunakan trial-nya 3D Gamestudio dan sangat menakjubkan. Sangat gampang. Bandingkan jika harus belajar C++, kuasai texturing, kuasai 3D modelling, kuasai HDR, AI, stencil shadow, segalanya. Dengan aplikasi game authoring tersebut, kita tidak perlu belajar dulu. Cukup fokus ke konten game-nya. Ini sangat menyederhanakan kerumitan. Maka prinsip inilah yang saya ambil lalu mau masukkan ke Linux. Bukan dari sisi game development-nya (saya sudah hengkang), tetapi dari sisi aplikasinya. Jika Anda pernah melakukan hal yang sama, maka Anda akan sepakat dengan saya.

Penutup

Kiranya jelas maksud esai pendek ini. Saya ingin mengajak Anda sekalian untuk membuat aplikasi GUI di Linux. Otodidak Behind The Scene belum cukup matang untuk diterbitkan di sini. Sementara itu, mari kita sedikit mengenal Autoit for Linux ini. Ya, Zenity dan Kdialog. Akan sangat menyenangkan jika kelak di Linux kita cukup klik dan komputer berjalan semau kita tanpa repot. Akhirnya, prinsip mesin yang melayani manusia menjadi tidak mustahil terwujud. Semoga ini bermanfaat.

Rujukan Zenity

  1. http://linux.byexamples.com/archives/265/a-complete-zenity-dialog-examples-2/
  2. http://rangers206.blogspot.com/2013/01/membuat-aplikasi-gui-di-linux-dengan.html
  3. http://ugos.ugm.ac.id/wiki/panduan:panduan_membuat_aplikasi_gui_sederhana_menggunakan_zenity
  4. http://bash.cyberciti.biz/guide/Zenity:_Shell_Scripting_with_Gnome
  5. http://nanananana-curhatan.blogspot.com/2011/10/belajar-zenity-shell-script.html
  6. http://linuxlibrary.org/zenity-simple-gui-creation-tool/
  7. http://www.techrepublic.com/blog/opensource/gui-scripting-with-zenity/235
  8. http://jakedth.tumblr.com/post/115232785/festival-zenity-easy-gui-interface
  9. http://www.linuxplanet.com/linuxplanet/tutorials/6838/1
  10. http://www.linuxplanet.com/linuxplanet/tutorials/6838/2
  11. http://tildehash.com/?article=advanced-application-shortcuts-with-zenity

Rujukan Kdialog

  1. http://techbase.kde.org/Development/Tutorials/Shell_Scripting_with_KDE_Dialogs
  2. https://www.bg.bib.de/portale/bes/Scripting/Shell/kdialog/t1.html
  3. http://bash.cyberciti.biz/guide/Kdialog:_Shell_scripting_with_KDE
  4. http://www.wikilearning.com/articulo/shell_scripting_en_kde-kdialog_dialog_types/193-5
Iklan