Konten dihapus Konten ditambahkan
Starsvoyager (bicara | kontrib)
Tidak ada ringkasan suntingan
Tag: Suntingan perangkat seluler Suntingan aplikasi seluler
Reno-Sifana (bicara | kontrib)
k Perbaikan Tata Bahasa
 
(47 revisi perantara oleh 10 pengguna tidak ditampilkan)
Baris 1:
{{Infobox software
| name = GTK+
| logo = [[Berkas:GTK+ logo.svg|180px|Logo GTK+]]
| logo size = 64px
| author =Spencer Kimball, Peter Mattis, eXperimental Computing Facility (XCF)
| developer screenshot = GNOME FoundationAwf-2020-2.png
| caption = Contoh kumpulan widget GTK 3
| released = {{start date and age|1998|04|14}}
| author = Spencer Kimball, Peter Mattis
| latest release version = 3.90.8
| authordeveloper =Spencer Kimball,The PeterGNOME MattisProject, eXperimental Computing Facility (XCF)
| latest release date = {{release date|2017|03|24}}
| released = {{start date and age|1998|04|14}}
| latest preview version = 3.89.3
| latest preview date release version = {{release date|2017|01|17}}4.2.0
| latest release date = {{release date|20172021|03|2430}}<ref name="latest stable">{{cite mailing list
| status = Aktif
| url = https://mail.gnome.org/archives/ftp-release-list/2021-March/msg00201.html
| programming language = [[C (bahasa pemrograman)|C]]
| title = gtk 4.2.0
| operating system = [[Linux]], [[Unix-like]], [[Microsoft Windows|Windows]], [[OS X]]
| genredate = 30 Maret = [[Widget toolkit]]2021
| accessdate = 1 April 2021
| license = [[LGPL|GNU Lesser General Public License (GNU LGPL)]]
| last = Clasen
| website = [http://www.gtk.org/ www.gtk.org]
| first = Matthias
| mailinglist = GNOME Mail Services}}</ref>
| latest releasepreview version = 34.901.80
| latest preview date = {{release date|2021|01|31}}<ref name="latest preview">{{cite mailing list
| url = https://mail.gnome.org/archives/ftp-release-list/2021-January/msg00100.html
| title = gtk 4.1.0
| date = 31 Januari 2021
| accessdate = 22 Februari 2021
| last = Clasen
| first = Matthias
| mailinglist = GNOME Mail Services}}</ref>
| status = Aktif
| programming language = [[C (bahasa pemrograman)|C]], [[CSS]]
| operating system = [[Linux]], [[Mirip Unix-like]], [[Microsoft Windows|Windows]], [[OS X]]
| genre = [[Peralatan gawit]]
| license = [[LGPL|GNU Lesser General Public License (GNU LGPL)LGPLv2.1+]]
| website = [http{{URL|https://www.gtk.org/ www.gtk.org]}}
}}
 
'''GTK+''' atau '''GIMP Toolkit''' adalah sebuah [[widgetPeralatan gawit|toolkit gawit]] (''widget toolkit'') [[antar-lintas platform]] untuk menghasilkan [[GUI]]. GTK+ adalah salah satu toolkit terpopularterpopuler untuk [[X Window System|Sistem X Window]] dan [[Wayland]], bersama-sama dengan [[Qt]].
 
GTK+ mulanya dibuat untuk [[GIMP|GNU Image Manipulation Program]], sebuah penyunting grafik raster, pada 1997 oleh [[Spencer Kimball]] dan [[Peter Mattis]], anggota [[XCF|eXperimental Computing Facility]] di [[University of California, Berkeley]].
 
Dilisensikan di bawah [[LGPL|GNU Lesser General Public License]], GTK+ adalah [[perangkat lunak bebas]] dan bagian dari [[Proyek GNU|Proyek GNU]].
 
== Desain ==
{{main|Daftar ikatan bahasa untuk GTK}}{{Pemutakhiran|date=Maret 2021|reason=Untuk bagian "platform" dan "tampilan dan citarasa" perlu dimutakhirkan agar sesuai dengan perkembangan terbaru}}
GTK+ ditulis di dalam [[bahasa pemrograman C]], dan desainnya menggunakan [[sistem objek]] [[GObject]]. [[Platform]] [[GNOME]] menyediakan [[language binding]] untuk:
GTK ditulis di dalam [[bahasa pemrograman C]], dan desainnya menggunakan [[sistem objek]] [[GObject]]. Berikut adalah beberapa ''[[language binding]]'' (ikatan bahasa) untuk GTK:<ref>{{Cite web|url=https://www.gtk.org/docs/language-bindings/index|title=Language Bindings|website=The GTK Project|access-date=23 Februari 2021|archive-date=2023-06-25|archive-url=https://web.archive.org/web/20230625053241/https://www.gtk.org/docs/language-bindings/index|dead-url=no}}</ref>
* [[C++]] ([[gtkmm]])
* [[PerlGJS (perangkat lunak)|GJS]] ([[Gtk2-perlJavaScript]])
* [[Rubygotk3]] ([[Ruby-gnome2Golang|Go]])
* [[PythonGtk-rs]] ([[Rust (bahasa pemrograman)|Python]] ([[PyGTKRust]])
* [[C++gtk2-perl]] ([[gtkmmPerl]])
* [[Java (bahasa pemrograman)|Java]] ([[Java-gnome]]) (tidak tersedia untuk [[Microsoft Windows]])
* [[CGtkD]] Sharp([[D (bahasa pemrograman)|C#]] ([[Gtk Sharp|Gtk#D]])
* [[PHPgtkmm]] ([[PHP-GTKC++]])
* [[PyGObject]] ([[Python (bahasa pemrograman)|Python]])
* Vala ([[Vala (bahasa pemrograman)|Vala]])
 
Yang lainnya telah menuliskan beberapa binding untuk banyak [[bahasa pemrograman]] lainnya (termasukseperti [[AdaC (bahasa pemrograman)|AdaSharp]], [[D (bahasa pemrograman)|D]]), [[Fortran]], [[Haskell (bahasa pemrograman)|Haskell]], [[Java]], [[Lua (bahasa pemrograman)|Lua]], [[Ocaml]], [[Pascal (bahasa pemrograman)|Pascal]], [[Pike (bahasa pemrograman)|Pike]], [[JavascriptPHP]] <ref>http://svn.gnome.org/viewvc/seed/</ref><ref>http://svn.gnome.org/viewvc/gjs/</ref><ref>http://svn.gnome.org/viewvc/gscript/</ref>, [[TclRuby (bahasa pemrograman)|TclRuby]], [[EuphoriaTcl (bahasa pemrograman)|EuphoriaTcl]], dan semua[[Euphoria (bahasa pemrograman [[.NET Framework)|.NETEuphoria]]). [[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>{{Cite web |url=http://www.gtk.org/language-bindings.html |title=Salinan arsip |access-date=2009-04-21 |archive-date=2011-04-02 |archive-url=https://web.archive.org/web/20110402012219/http://www.gtk.org/language-bindings.html |dead-url=yes }}</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.
Bahasa-bahasa purpose-written untuk GObject dan oleh karenanya juga, GTK+ menyertakan [[Vala (bahasa pemrograman)|Vala]] dan GOB.
 
Seperti [[Qt]], tetapi tidak sama dengan beberapa toolkit widget lainnya, GTK+ tidak didasarkan pada [[Intrinsics|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 popularpopuler lainnya seperti [[Windows 95]], [[Motif (widget toolkit)|Motif]], [[Qt (toolkit)|Qt]] dan [[NEXTSTEP]].
 
== Sejarah ==
Baris 52 ⟶ 71:
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.<ref>{{Cite web|title=February 2011 – GTK Development Blog|url=https://blog.gtk.org/2011/02/|language=en-US|access-date=2021-02-23|archive-date=2023-05-18|archive-url=https://web.archive.org/web/20230518234813/https://blog.gtk.org/2011/02/|dead-url=no}}</ref>
=== Rilis ===
<!--{{tabel}}-->
 
Huruf '+' pada GTK+ dihilangkan menjadi GTK saja pada saat [[Hackathon|Hackaton]].<ref>{{Cite web|title=Rename some references to GTK+ (d080be3e) · Commits · GNOME / gtk|url=https://gitlab.gnome.org/GNOME/gtk/commit/d080be3e5091c98d5171063a95d55c01170881f3|website=GitLab|language=en|access-date=2021-02-23|archive-date=2021-02-25|archive-url=https://web.archive.org/web/20210225124433/https://gitlab.gnome.org/GNOME/gtk/commit/d080be3e5091c98d5171063a95d55c01170881f3|dead-url=no}}</ref>
=== Pengembangan masa depan ===
''Projek Ridley'' adalah upaya untuk mengonsolidasi beberapa pustaka yang saat ini masih di luar GTK+, misalnya libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel, dan gtkglext.<ref>http://live.gnome.org/ProjectRidley</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.<ref>{{Cite web|title=GTK 4.0 – GTK Development Blog|url=https://blog.gtk.org/2020/12/16/gtk-4-0/|language=en-US|access-date=2021-02-23|archive-date=2023-05-28|archive-url=https://web.archive.org/web/20230528122452/https://blog.gtk.org/2020/12/16/gtk-4-0/|dead-url=no}}</ref>
Para pengembanga juga memperhatikan arah-arah baru pustaka, termasuk penghentian [[Application binary interface|ABI]], penghilangan komponen-komponen [[API]] yang diperselisihkan, dan menambahkan sistem [[scene graph]] yang utuh, sama dengan pustaka grafis [[Clutter (computing)|Clutter]], mengintegrasikan GTK+ secara utuh dengan [[OpenGL]].<ref>http://aruiz.typepad.com/siliconisland/2008/03/gtk-hackfest-20.html</ref><ref>http://mail.gnome.org/archives/gtk-devel-list/2008-March/msg00017.html</ref>
 
== GTK hello world ==
=== RilisSampel 1 ===
GTK [[Hello world program|hello world]] di [[Linux]]
<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+ ===
<!--{{GAMBAR - [[Layar cuplik]] [[GIMP]] 2.0. GTK+ bertanggung jawab untuk mengelola komponen antarmuka program ini, termasuk menu, tombol, medan input, dan lain-lain}}-->
* [[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 Platform|Maemo]] (framework tablet-internet [[Nokia]])
* [[Access Linux Platform]] (pengganti platform [[Personal digital assistant|PDA]] [[Palm OS]])
* Projek [[XO-1 (laptop)|Satu Laptop Per Anak]] menggunakan GTK+ dan [[PyGTK]]
* Projek [[Broncho]] (sebuah projek linux mobile)
 
Baris 80 ⟶ 126:
 
=== Aplikasi ===
Beberapa aplikasi terkenal yang menggunakan GTK+ sebagai toolkit widget-nya adalah:
* [[AbiWord]] - Pengolah kata
* [[CinePaint]] (bekas FilmGimp) - Penyunting grafik beranimasi [[High dynamic range imaging|HDR]] Raster
Baris 97 ⟶ 143:
* [[Pidgin (software)|Pidgin]] - Pesan instan
* [[VMware Player]] - Mesin virtual
* [[Wireshark]] - Analis, dekode, dan capture paket (diganti dengan [[Qt]] sejak versi 1.11.0<ref>{{Cite web|title=We’re switching to Qt. {{!}} Sniff free or die|url=https://blog.wireshark.org/2013/10/switching-to-qt/|language=en-US|access-date=2021-02-23|archive-date=2013-10-19|archive-url=https://web.archive.org/web/20131019164809/https://blog.wireshark.org/2013/10/switching-to-qt/|dead-url=no}}</ref>)
* [[Wireshark]] - Analis, dekode, dan capture paket
 
== Lihat pula ==
* [[Daftar toolkit widget|Daftar toolkit gawit]]
* [http://en.wiki-indonesia.club/wiki/Portal:Free_software Portal perangkat lunak bebas] {{Webarchive|url=https://web.archive.org/web/20230625000052/https://en.wiki-indonesia.club/wiki/Portal:Free_software |date=2023-06-25 }}
* [http://en.wikibooks.org/wiki/X_Window_Programming/GTK+ Buku wiki tentang GTK+] {{Webarchive|url=https://web.archive.org/web/20230118211705/https://en.wikibooks.org/wiki/X_Window_Programming/GTK%2B |date=2023-01-18 }}
 
== Referensi ==
Baris 108 ⟶ 154:
 
== Pranala luar ==
* [http://www.gtk.org/ Situs web GTK+] {{Webarchive|url=https://web.archive.org/web/20110222211023/http://www.gtk.org/ |date=2011-02-22 }}
* [http://expander.gtk.org/ Planet GTK+] {{Webarchive|url=https://web.archive.org/web/20080913233410/http://expander.gtk.org/ |date=2008-09-13 }}
* [http://www.gtk-apps.org/ Daftar aplikasi GTK+] {{Webarchive|url=https://web.archive.org/web/20160624083231/http://gtk-apps.org/ |date=2016-06-24 }}
 
[[Kategori:GTK| ]]
[[Kategori:Projek GNU]]
[[Kategori:GTK]]
[[Kategori:Perangkat lunak projek GNU]]
[[Kategori:Toolkit widget]]
[[Kategori:Antarmuka pemrograman aplikasi]]
[[Kategori:Pustaka dan toolkit pengembangan bebas]]
[[Kategori:Pustaka berbasis-X]]
[[Kategori:Perangkat lunak bebas yang diprogram dengan C]]
[[Kategori:PerangkatPeralatan lunak antar-platformgawit]]
[[Kategori:Perangkat lunak lintas platform]]
[[Kategori:ToolkitPustaka widgetGNOME]]