GTK: Perbedaan antara revisi
Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 28008423; atribusi sumber disertakan. |
Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi |
||
| Baris 1: | Baris 1: | ||
[[File:Awf-2020-2.png|thumb|right|280px|Awf-2020-2]] | |||
'''GTK''' atau '''GIMP Toolkit''' adalah sebuah [[Peralatan gawit|toolkit gawit]] (''widget toolkit'') [[lintas platform]] untuk menghasilkan [[GUI]]. GTK adalah salah satu toolkit terpopuler untuk [[X Window System|Sistem X Window]] dan [[Wayland]], bersama-sama dengan [[Qt]]. | '''GTK''' atau '''GIMP Toolkit''' adalah sebuah [[Peralatan gawit|toolkit gawit]] (''widget toolkit'') [[lintas platform]] untuk menghasilkan [[GUI]]. GTK adalah salah satu toolkit terpopuler untuk [[X Window System|Sistem X Window]] dan [[Wayland]], bersama-sama dengan [[Qt]]. | ||
| Baris 6: | Baris 8: | ||
== Desain == | == Desain == | ||
GTK ditulis di dalam [[bahasa pemrograman C]], dan desainnya menggunakan [[sistem objek]] [[GObject]]. Berikut adalah beberapa ''[[language binding]]'' (ikatan bahasa) untuk GTK:<ref>[https://www.gtk.org/docs/language-bindings/index Language Bindings]. ''The GTK Project''.</ref> | |||
GTK ditulis di dalam [[bahasa pemrograman C]], dan desainnya menggunakan [[sistem objek]] [[GObject]]. Berikut adalah beberapa ''[[language binding]]'' (ikatan bahasa) untuk GTK: | |||
* [[GJS (perangkat lunak)|GJS]] ([[JavaScript]]) | * [[GJS (perangkat lunak)|GJS]] ([[JavaScript]]) | ||
* [[gotk3]] ([[Golang|Go]]) | * [[gotk3]] ([[Golang|Go]]) | ||
| Baris 17: | Baris 18: | ||
* Vala ([[Vala (bahasa pemrograman)|Vala]]) | * Vala ([[Vala (bahasa pemrograman)|Vala]]) | ||
Yang lainnya telah menuliskan beberapa binding untuk banyak [[bahasa pemrograman]] lainnya (seperti [[C Sharp]], [[Fortran]], [[Haskell (bahasa pemrograman)|Haskell]], [[Java]], [[Lua (bahasa pemrograman)|Lua]], [[Ocaml]], [[Pascal (bahasa pemrograman)|Pascal]], [[Pike (bahasa pemrograman)|Pike]], [[PHP]], [[Ruby (bahasa pemrograman)|Ruby]], [[Tcl (bahasa pemrograman)|Tcl]], dan [[Euphoria (bahasa pemrograman)|Euphoria]]). [[GTK-server]] menyediakan antarmuka [[komunikasi antar-proses|IPC]] bagi GTK yang memungkinkannya digunakan dari beraneka bahasa dengan kapabilitas [[Input/output|I/O]], termasuk [[shell script]]. Binding untuk banyak bahasa dapat dibangkitkan secara automatik melalui GObject-introspection. | Yang lainnya telah menuliskan beberapa binding untuk banyak [[bahasa pemrograman]] lainnya (seperti [[C Sharp]], [[Fortran]], [[Haskell (bahasa pemrograman)|Haskell]], [[Java]], [[Lua (bahasa pemrograman)|Lua]], [[Ocaml]], [[Pascal (bahasa pemrograman)|Pascal]], [[Pike (bahasa pemrograman)|Pike]], [[PHP]], [[Ruby (bahasa pemrograman)|Ruby]], [[Tcl (bahasa pemrograman)|Tcl]], dan [[Euphoria (bahasa pemrograman)|Euphoria]]). [[GTK-server]] menyediakan antarmuka [[komunikasi antar-proses|IPC]] bagi GTK yang memungkinkannya digunakan dari beraneka bahasa dengan kapabilitas [[Input/output|I/O]], termasuk [[shell script]].<ref>[http://www.gtk.org/language-bindings.html Salinan arsip].</ref> Binding untuk banyak bahasa dapat dibangkitkan secara automatik melalui GObject-introspection. | ||
Salah satu languange binding untuk GTK yang menggunakan GObject-introspection diantaranya PyGObject, Vala, GJS dan seed. | Salah satu languange binding untuk GTK yang menggunakan GObject-introspection diantaranya PyGObject, Vala, GJS dan seed. | ||
| Baris 36: | Baris 37: | ||
Mulai versi 2.8, GTK+ 2 bergantung kepada pustaka [[Cairo (graphics)|Cairo]] untuk merender grafik vektor pada GTK+ 2. | Mulai versi 2.8, GTK+ 2 bergantung kepada pustaka [[Cairo (graphics)|Cairo]] untuk merender grafik vektor pada GTK+ 2. | ||
GTK+ 3.0 merupakan pembaruan besar yang dirilis pada bulan Februari 2011 sebagai pengganti dari GTK+ 2. Fitur-fitur utama barunya mencakup pembaruan penanganan perangkat input, API tema baru menggunakan [[Cascading Style Sheets|CSS]] untuk membuat tema, dukungan untuk memilih beberapa backend untuk GDK saat runtime, beberapa widget baru, dan masih banyak lagi. | GTK+ 3.0 merupakan pembaruan besar yang dirilis pada bulan Februari 2011 sebagai pengganti dari GTK+ 2. Fitur-fitur utama barunya mencakup pembaruan penanganan perangkat input, API tema baru menggunakan [[Cascading Style Sheets|CSS]] untuk membuat tema, dukungan untuk memilih beberapa backend untuk GDK saat runtime, beberapa widget baru, dan masih banyak lagi.<ref>[https://blog.gtk.org/2011/02/ February 2011 – GTK Development Blog].</ref> | ||
Huruf '+' pada GTK+ dihilangkan menjadi GTK saja pada saat [[Hackathon|Hackaton]]. | Huruf '+' pada GTK+ dihilangkan menjadi GTK saja pada saat [[Hackathon|Hackaton]].<ref>[https://gitlab.gnome.org/GNOME/gtk/commit/d080be3e5091c98d5171063a95d55c01170881f3 Rename some references to GTK+ (d080be3e) · Commits · GNOME / gtk]. ''GitLab''.</ref> | ||
GTK 4 yang merupakan versi terbaru dari GTK, dirilis pada Desember 2020. GTK 4 menghadirkan fitur-fitur baru seperti perenderan menggunakan [[Vulkan (API)|Vulkan]], pembaruan untuk API [[Drag and Drop|drag-and-drop]], dukungan untuk shaders, dan masih banyak lagi. | GTK 4 yang merupakan versi terbaru dari GTK, dirilis pada Desember 2020. GTK 4 menghadirkan fitur-fitur baru seperti perenderan menggunakan [[Vulkan (API)|Vulkan]], pembaruan untuk API [[Drag and Drop|drag-and-drop]], dukungan untuk shaders, dan masih banyak lagi.<ref>[https://blog.gtk.org/2020/12/16/gtk-4-0/ GTK 4.0 – GTK Development Blog].</ref> | ||
== GTK hello world == | == GTK hello world == | ||
=== Sampel 1 === | === Sampel 1 === | ||
<syntaxhighlight lang="c"> | |||
#include <gtk/gtk.h> | |||
int main (int argc, char argv[]) | |||
{ | |||
gtk_init (&argc, &argv); | |||
GtkWidget * window = gtk_window_new (GTK_WINDOW_TOPLEVEL); | |||
gtk_window_set_default_size (GTK_WINDOW (window), 400 , 400); | |||
gtk_window_set_tile (GTK_WINDOW (window), "Hello World! "); | |||
g_signal_connect (G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); | |||
gtk_main (); | |||
return 0; | |||
} | |||
</syntaxhighlight> | |||
=== Sampel 2 === | === Sampel 2 === | ||
<syntaxhighlight lang="c"> | |||
#include <gtk/gtk.h> | |||
int main (int argc, char argv[]) | |||
{ | |||
gtk_init (&argc, &argv); | |||
GtkWidget * window = gtk_window_new (GTK_WINDOW_TOPLEVEL); | |||
gtk_window_set_default_size (GTK_WINDOW (window), 400 , 400); | |||
gtk_window_set_tile (GTK_WINDOW (window), "Hello GTK!\nHello World GTK Sample"); | |||
g_signal_connect (G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); | |||
gtk_main (); | |||
return 0; | |||
} | |||
</syntaxhighlight> | |||
== Penggunaan == | == Penggunaan == | ||
=== Lingkungan yang menggunakan GTK === | === Lingkungan yang menggunakan GTK === | ||
* [[GNOME]] didasarkan pada GTK, artinya program-program GNOME menggunakan GTK | * [[GNOME]] didasarkan pada GTK, artinya program-program GNOME menggunakan GTK | ||
* [[Xfce]] didasarkan pada GTK, meskipun aplikasi-aplikasinya biasanya tidak bergantung kepada banyak pustaka (inilah perbedaan antara sesuatu yang dicap sebagai "program GNOME" atau sebagai "program GTK") | * [[Xfce]] didasarkan pada GTK, meskipun aplikasi-aplikasinya biasanya tidak bergantung kepada banyak pustaka (inilah perbedaan antara sesuatu yang dicap sebagai "program GNOME" atau sebagai "program GTK") | ||
| Baris 82: | Baris 108: | ||
* [[Pidgin (software)|Pidgin]] - Pesan instan | * [[Pidgin (software)|Pidgin]] - Pesan instan | ||
* [[VMware Player]] - Mesin virtual | * [[VMware Player]] - Mesin virtual | ||
* [[Wireshark]] - Analis, dekode, dan capture paket (diganti dengan [[Qt]] sejak versi 1.11.0) | * [[Wireshark]] - Analis, dekode, dan capture paket (diganti dengan [[Qt]] sejak versi 1.11.0<ref>[https://blog.wireshark.org/2013/10/switching-to-qt/ We’re switching to Qt. Sniff free or die].</ref>) | ||
== Lihat pula == | == Lihat pula == | ||
* [[Daftar toolkit widget|Daftar toolkit gawit]] | * [[Daftar toolkit widget|Daftar toolkit gawit]] | ||
* [http://en.wikipedia.org/wiki/Portal:Free_software Portal perangkat lunak bebas] | * [http://en.wikipedia.org/wiki/Portal:Free_software Portal perangkat lunak bebas] | ||
* [http://en.wikibooks.org/wiki/X_Window_Programming/GTK+ Buku wiki tentang GTK] | * [http://en.wikibooks.org/wiki/X_Window_Programming/GTK+ Buku wiki tentang GTK] | ||
== Pranala luar == | == Pranala luar == | ||
* [http://www.gtk.org/ Situs web GTK] | * [http://www.gtk.org/ Situs web GTK] | ||
* [http://expander.gtk.org/ Planet GTK] | * [http://expander.gtk.org/ Planet GTK] | ||
* [http://www.gtk-apps.org/ Daftar aplikasi GTK] | * [http://www.gtk-apps.org/ Daftar aplikasi GTK] | ||
== Referensi == | |||
<references /> | |||
== Sumber dan atribusi == | |||
== | Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=GTK&oldid=28008423 Wikipedia bahasa Indonesia], revisi 28008423 (2025-10-16T08:11:11Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Gambar pada artikel ini bersumber dari Wikimedia Commons dan mengikuti ketentuan lisensi masing-masing berkas. Mohon gunakan konten dan media secara bijak serta sesuai dengan ketentuan lisensi yang berlaku. | ||
<!-- WIKI_UNISSULA_PRESENTATION_V4 --> | |||
Revisi terkini sejak 24 Agustus 2026 18.07

GTK atau GIMP Toolkit adalah sebuah toolkit gawit (widget toolkit) lintas platform untuk menghasilkan GUI. GTK adalah salah satu toolkit terpopuler untuk Sistem X Window dan Wayland, bersama-sama dengan Qt.
GTK mulanya dibuat untuk GNU Image Manipulation Program, sebuah penyunting grafik raster, pada 1997 oleh Spencer Kimball dan Peter Mattis, anggota eXperimental Computing Facility di University of California, Berkeley.
Dilisensikan di bawah GNU Lesser General Public License, GTK adalah perangkat lunak bebas dan bagian dari Proyek GNU.
Desain
GTK ditulis di dalam bahasa pemrograman C, dan desainnya menggunakan sistem objek GObject. Berikut adalah beberapa language binding (ikatan bahasa) untuk GTK:[1]
- GJS (JavaScript)
- gotk3 (Go)
- Gtk-rs (Rust)
- gtk2-perl (Perl)
- GtkD (D)
- gtkmm (C++)
- PyGObject (Python)
- Vala (Vala)
Yang lainnya telah menuliskan beberapa binding untuk banyak bahasa pemrograman lainnya (seperti C Sharp, Fortran, Haskell, Java, Lua, Ocaml, Pascal, Pike, PHP, Ruby, Tcl, dan Euphoria). GTK-server menyediakan antarmuka IPC bagi GTK yang memungkinkannya digunakan dari beraneka bahasa dengan kapabilitas I/O, termasuk shell script.[2] Binding untuk banyak bahasa dapat dibangkitkan secara automatik melalui GObject-introspection.
Salah satu languange binding untuk GTK yang menggunakan GObject-introspection diantaranya PyGObject, Vala, GJS dan seed.
Seperti Qt, tetapi tidak sama dengan beberapa toolkit widget lainnya, GTK tidak didasarkan pada Xt. Ini memungkinkan fleksibilitas dan memungkinkan GTK dapat digunakan pada semua platform yang tidak memiliki Sistem X Window. Tetapi, tanpa kebergantungan ini, GTK memiliki kelemahan akses terhadap basis data X resources, cara tradisional untuk mengkustomisasi aplikasi-aplikasi X11.
GTK mulanya menyertakan beberapa rutin utilitas yang tidak secara tegas berhubungan dengan grafik, misalnya menyediakan beberapa struktur data sebagai daftar-daftar yang saling terpaut dan beberapa pohon biner. Utilitas-utilitas umum sedemikian, bersama-sama dengan sistem objek disebut GObject, kini telah bermigrasi menjadi pustaka terpisah, GLib, yang dapat digunakan para programer untuk mengembangkan kode yang tidak memerlukan antarmuka grafis.
Platform
GTK mulanya ditargetkan pada Sistem X Window, dan masih menyisakan platform target utamanya. Platform lain yang ditargetkan adalah Microsoft Windows (Windows 2000 dan yang lebih baru, hampir didukung sepenuhnya), DirectFB, dan Quartz (Mac OS X v10.4 dan yang lebih baru, masih dikembangkan).
Tampilan dan citarasa
Pengguna-akhir dapat mengonfigurasi tampilan toolkit-nya, hingga kepada pemberian sejumlah mesin tampilan yang berbeda. Mesin-mesin yang ada yang berupaya mengemulasi tampilan toolkit atau platform populer lainnya seperti Windows 95, Motif, Qt dan NEXTSTEP.
Sejarah
GTK+ 2 adalah pengganti GTK+ 1. Fitur-fitur barunya antara lain render teks yang diperbaiki menggunakan Pango, mesin tema baru, aksesibilitas yang diperbaiki menggunakan Accessibility Toolkit, peralihan sepenuhnya ke Unicode menggunakan string-string UTF-8 dan API yang lebih fleksibel. Tetapi, GTK+ 2 kurang kompatibel dengan GTK+ 1, dan para programer harus menge-port aplikasi ke GTK+ 2.
Mulai versi 2.8, GTK+ 2 bergantung kepada pustaka Cairo untuk merender grafik vektor pada GTK+ 2.
GTK+ 3.0 merupakan pembaruan besar yang dirilis pada bulan Februari 2011 sebagai pengganti dari GTK+ 2. Fitur-fitur utama barunya mencakup pembaruan penanganan perangkat input, API tema baru menggunakan CSS untuk membuat tema, dukungan untuk memilih beberapa backend untuk GDK saat runtime, beberapa widget baru, dan masih banyak lagi.[3]
Huruf '+' pada GTK+ dihilangkan menjadi GTK saja pada saat Hackaton.[4]
GTK 4 yang merupakan versi terbaru dari GTK, dirilis pada Desember 2020. GTK 4 menghadirkan fitur-fitur baru seperti perenderan menggunakan Vulkan, pembaruan untuk API drag-and-drop, dukungan untuk shaders, dan masih banyak lagi.[5]
GTK hello world
Sampel 1
<syntaxhighlight lang="c">
- include <gtk/gtk.h>
int main (int argc, char argv[]) {
gtk_init (&argc, &argv); GtkWidget * window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 400 , 400); gtk_window_set_tile (GTK_WINDOW (window), "Hello World! "); g_signal_connect (G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_main (); return 0;
} </syntaxhighlight>
Sampel 2
<syntaxhighlight lang="c">
- include <gtk/gtk.h>
int main (int argc, char argv[]) {
gtk_init (&argc, &argv); GtkWidget * window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 400 , 400); gtk_window_set_tile (GTK_WINDOW (window), "Hello GTK!\nHello World GTK Sample"); g_signal_connect (G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_main (); return 0;
} </syntaxhighlight>
Penggunaan
Lingkungan yang menggunakan GTK
- GNOME didasarkan pada GTK, artinya program-program GNOME menggunakan GTK
- Xfce didasarkan pada GTK, meskipun aplikasi-aplikasinya biasanya tidak bergantung kepada banyak pustaka (inilah perbedaan antara sesuatu yang dicap sebagai "program GNOME" atau sebagai "program GTK")
- LXDE didasarkan pada GTK, singkatan untuk "Lightweight X11 Desktop Environment"
- ROX Desktop adalah desktop yang ringan, dengan fitur-fitur dari GUI-nya RISC OS
- GPE Palmtop Environment
- Maemo (framework tablet-internet Nokia)
- Access Linux Platform (pengganti platform PDA Palm OS)
- Projek Satu Laptop Per Anak menggunakan GTK dan PyGTK
- Projek Broncho (sebuah projek linux mobile)
Pengelola jendela
Aplikasi
Beberapa aplikasi terkenal yang menggunakan GTK sebagai toolkit widget-nya adalah:
- AbiWord - Pengolah kata
- CinePaint (bekas FilmGimp) - Penyunting grafik beranimasi HDR Raster
- Ekiga (bekas GnomeMeeting) - Perangkat lunak telepon VoIP H.323/SIP
- Evolution - Alat kirim-terima surat elektronik
- Firefox - alat selancar web
- GIMP - Penyunting grafik raster
- Gnumeric - Perangkat lunak lembar hampar
- Chromium - Alat selancar web yang didasarkan pada Webkit dan sebagian besar dikembangkan oleh Google
- GRAMPS - Perangkat lunak genealogi
- Inkscape - Penyunting grafik vektor SVG
- K-3D - Program animasi dan pemodelan 3-dimensi yang bebas
- Marionnet - Simulator jejaring interaktif
- Midori - Alat selancar web portabel
- Nero Linux - Program autorisasi media cakram
- Pidgin - Pesan instan
- VMware Player - Mesin virtual
- Wireshark - Analis, dekode, dan capture paket (diganti dengan Qt sejak versi 1.11.0[6])
Lihat pula
Pranala luar
Referensi
Sumber dan atribusi
Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 28008423 (2025-10-16T08:11:11Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Gambar pada artikel ini bersumber dari Wikimedia Commons dan mengikuti ketentuan lisensi masing-masing berkas. Mohon gunakan konten dan media secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.