Digital Pengukuran Kecepatan Literatur mantap gile
-
Upload
awal-onggaa-saputra -
Category
Documents
-
view
34 -
download
0
description
Transcript of Digital Pengukuran Kecepatan Literatur mantap gile
-
4
BAB II
LANDASAN TEORI
2.1 REAL TIME LINUX
Sistem operasi merupakan hal yang sangat penting dalam menyediakan
sarana hubungan antara perangkat lunak dengan perangkat keras. Sebuah sistem
operasi menyediakan sebuah lapisan abstraction di antara platform perangkat
keras dan perangkat lunak dengan menggunakan interface yang terdefinisi dengan
baik di antara sebuah program user space, kernel space driver dan perangkat keras.
Dalam domain komputasi, kernel adalah inti dari sistem operasi. Kernel ini
dikelilingi oleh lapisan software, menyediakan hak akses pengguna dan
memfasilitas interaksi seperti shell, window manager, dan program aplikasi.
Untuk menjalankan program real time, maka diperlukan sistem operasi yang mana
telah mengalami perubahan yang khusus pada kernel standarnya sehingga
memiliki sifat yang real time. Oleh karena itu, diperkenalkan sistem operasi yang
berbasis Linux dan bersifat real time. Sistem operasi real time Linux memiliki
keuntungan lain seperti bebas untuk dimodifikasi bagian kernel sistem operasi
tersebut tanpa perlu khawatir melanggar hak cipta dan juga memudahkan para
developer dalam mencari informasi yang berhubungan dengan pengembangan
kernel tersebut.
Linux dikembangkan pertama kali oleh Linus Torvalds di University of
Helsinki sebagai bagian dari tugas proyek mahasiswanya. Versi pertama dari
kernel Linux pertama kali dirilis pada bulan September 1991. Saat ini kernel
Linux telah banyak dikembangkan oleh para developer di seluruh dunia. Sistem
operasi real time Linux adalah jawaban bagi para pengguna aplikasi yang
membutuhkan kemampuan real time.
2.1.1 Definisi Real Time
Sebuah sistem real time adalah suatu sistem yang menjamin kebenaran
dari suatu komputasi perhitungan dan ketepatan waktu pelaksanaan komputasi
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
5
perhitungan tersebut. Jika kebutuhan akan ketepatan waktu tidak dapat terpenuhi,
kesalahan pada sistem dapat terjadi. Dengan kata lain, sistem real time tidak
hanya memperhatikan apakah hasil yang dihasilkan dari suatu proses benar, tetapi
juga memperhatikan kapan hasil tersebut dihasilkan.
Dilihat dari definisi real time tersebut, sebuah sistem real time tidak hanya
harus cepat, sebagaimana dipercaya oleh sebagian besar orang. Sebagai contoh
untuk penuntun sistem dari sebuah kapal dapat saja dikatakan sebagai suatu sistem
yang non real time. Akan tetapi, karena kecepatan kapal yang rendah, maka
memungkinkan memiliki waktu yang cukup bagi sistem untuk mengambil
keputusan kontrol. Menurut definisi dari kata real time yang dijelaskan
sebelumnya, sistem ini dapat secara efektif dikatakan sebagai suatu sistem real
time. Jadi perlu diketahui bahwa sebuah sistem real time adalah bukan sebuah
sistem dalam real time. Sistem dalam real time secara umum adalah sistem yang
memiliki kemampuan cepat demi memberikan kesan realitas misalnya pada
aplikasi game simulasi.
Untuk mendefinisikan secara spesifik dari tingkatan yang berbeda-beda
dari real time, hal ini sangat penting dalam mendefinisikan terlebih dahulu dua
sifat sistem real time yaitu, preemptive dan deterministic.
Preemptive berhubungan dengan kemampuan menentukan sebuah pekerjaan yang berprioritas tinggi untuk dilaksanakan terlebih dahulu
dengan mencegah/menunda pelaksanaan pekerjaan yang berprioritas
rendah, sehingga resource dapat tersedia.
Deterministic berhubungan dengan kemampuan untuk memprediksi kapan sebuah kejadian yang spesifik akan muncul pada waktu yang tepat.
2.1.2 Soft Real Time dan Hard Real Time
Soft real time adalah sebuah respons yang tidak mementingkan seberapa
tepat waktu responsnya terhadap suatu intstruksi yang diberikan kepadanya. Soft
real time tidak memiliki sifat preemptive dan deterministic.
Hard real time membutuhkan sebuah respons yang bersifat preemptive
dan deterministic terhadap suatu instruksi. Dalam sebuah sistem hard real time,
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
6
batas waktunya sudah tetap dan sistem harus menjamin responsnya dalam batasan
waktu yang telah ditentukan.
2.1.3 Gambaran Umum Kernel Linux
Arsitektur sistem operasi Linux mempartisi memori fisik ke dalam dua
bagian yaitu kernel space dan user space, di mana kernel space dialokasikan
untuk kode kernel Linux. Kernel Linux mengatur alokasi memori untuk dipakai
oleh program pengguna yang berjalan secara bersamaan di dalam user space.
Komunikasi di antara program user space dengan kode kernel dapat dicapai
dengan menggunakan system call ke kode kernel. Secara umum contoh dari
penggunaan system call adalah ketika saat mengakses disk drive, keyboard, mice
dan monitor. Jadi kode kernel berfungsi dalam menjembatani antara aplikasi
program pengguna dengan perangkat keras.
Sistem operasi Linux merupakan sistem operasi yang multi-threaded yaitu
mendukung prioritas thread dan menyediakan mekanisme sinkronisasi thread
yang dapat diprediksi. Kernel Linux memiliki sifat yang tidak preemptible. Hal ini
yang menyebabkan kecepatan waktu respons operasi kernel pada linux yang
standar lebih lambat bila dibandingkan dengan sistem operasi hard real time.
Perlu diketahui bahwa Linux bukan merupakan sistem operasi yang real time
karena ketidak-mampuannya dalam menjamin kinerja yang deterministic dan
pewaktuannya yang bersifat pukul rata sehingga memiliki dampak yang buruk
terhadap program real-time.
Ada dua alasan yang menyatakan bahwa kernel Linux memiliki kinerja
yang buruk pada sistem uniprosesor karena kernel menon-aktifkan interrupt dan
juga kernel tidak cocok dalam melakukan aktivitas preemption. Bila interrupt
dinon-aktifkan, sistem tidak berdaya dalam menjawab terhadap interrupt yang
datang. Semakin lama penundaan interrupt, maka semakin lama penundaan waktu
dari suatu program dalam menjawab interrupt yang diberikannya. Kurangnya
kemampuan preemption pada kernel memiliki arti bahwa kernel tidak mampu
memberikan fasilitas kepada tugas yang berprioritas tinggi untuk dijalankan
terlebih dahulu dan menunda tugas yang berprioritas rendah. Hal ini dapat
menyebabkan waktu penundaan yang cukup berarti.
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
7
2.1.4 Sejarah Singkat Real Time Linux (RTLinux)
RTLinux dikembangkan pertama kali oleh Victor Yodaiken di Department
of Computer Science of the Institute for Mining and Technology of New Mexico
dan diimplementasi pertama kali oleh Michael Barabanov pada tahun 1996.
Dengan mengambil konsep untuk tidak memodifikasi kernel dari Linux secara
ekstrim dalam membuat suatu sistem operasi yang real time, maka diajukan suatu
solusi dengan membuat kernel-kernel kecil yang terpisah dari kernel linux dan
sebuah scheduler. Kernel Linux yang dihasilkan dari strategi modifikasi ini
disebut sebagai micro kernel.
Implementasi dengan strategi ini menyediakan sebuah kernel kedua yang
mana sebagai lapisan interface antara kernel standar dan lapisan perangkat keras
sebagaimana ditampilkan dalam gambar 2.1.
Gambar 2.1 Arsitektur Real Time Micro Kernel [4]
2.1.5 Konsep Dasar Real Time Linux
Dasar pemikiran dalam mendesain RTLinux adalah tidak ada
kemungkinan untuk mengidentifikasi dan menghilangkan seluruh aspek dari
operasi kernel yang memunculkan hal-hal yang tidak dapat diprediksi. Sumber-
sumber dari hal-hal yang tidak dapat diprediksi terdiri dari algoritma Linux
scheduling, device driver, uninterruptible system call, penggunaan dari interrupt
disabling dan operasi virtual memory.
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
8
Hal terbaik dalam menghindari permasalahan ini adalah membentuk
kernel kecil (micro kernel) yang dapat diprediksi dan terpisah dari kernel linux.
Dengan membuat micro kernel ini secara sederhana, maka operasinya dapat
diukur dan dapat diprediksi. Micro kernel ini memiliki fungsi mengontrol
eksekusi tugas-tugas real time dan menjalankan kernel Linux standar sebagai
tugas yang berjalan dalam mode background.
Gambar 2.2 Kernel Linux Standar [3]
Gambar 2.2 menunjukkan kernel Linux standar tanpa dukungan hard real
time. Dalam gambar 2.2 ditunjukkan bahwa kernel Linux memisah hardware dari
user-level task. Kernel memiliki kemampuan dalam menunda user-level task
apapun, bilamana task tersebut telah melebihi penggunaan waktu yang
dialokasikan kepadanya oleh CPU. Asumsi, sebagai contoh, sebuah user task
yang mengontrol sebuah tangan robot. Kernel linux yang standar akan berpotensi
menunda tugas pengontrolan tangan robot dan memberikan alokasi CPU ke tugas-
tugas lain yang kurang genting. Konsekuensinya, tangan robot tersebut tidak dapat
memenuhi suatu kriteria waktu yang ketat yang telah ditentukan. Oleh karena itu,
dalam mencoba berlaku adil terhadap semua task, kernel tersebut telah
menghambat tugas (task) yang genting.
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
9
Gambar 2.3 Kernel RTLinux [3]
Gambar 2.3 menunjukkan sebuah kernel linux yang dimodifikasi untuk
mendukung hard real time. RTLinux berbentuk sebagai sebuah lapisan tambahan
berada di antara kernel Linux standar dan perangkat keras komputer. Dalam
pandangan kernel Linux standar, lapisan baru ini muncul sebagai perangkat keras
yang sebenarnya. RTLinux memperkenalkan fixed-priority pada scheduler-nya
sendiri. Scheduler (penjadwalan) menentukan prioritas terendah untuk kernel
Linux standar dan menjalankannya sebagai tugas yang terpisah dengan tugas-
tugas real time. Hal ini menyebabkan micro kernel mampu menginterupsi
perangkat keras dan menjamin kernel Linux standar tidak menunda interupsi
apapun yang bekerja dalam micro kernel sehingga waktu penundaan yang dapat
terjadi pada tugas-tugas real time dapat diminimalisir.
2.2 COMEDI
COMEDI, singkatan dari Control and Measurement Device Interface,
adalah suatu proyek free software yang mengembangkan driver-driver, tool dan
library untuk berbagai jenis DAQ (Data Acquisition) board. Dengan
menggunakan COMEDI, maka DAQ board dapat digunakan dalam melakukan
aktivitas seperti membaca dan menulis sinyal analog, membaca dan menulis
masukan/keluaran digital, melakukan proses encoder dan sebagainya. COMEDI
terdiri dari dua paket yaitu paket comedi (yang mengimplementasi fungsi kernel
space) dan comedilib (yang mengimplementasi akses user space ke fungsi
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
10
device driver). COMEDI dapat berjalan pada kernel Linux standar dan juga pada
RTLinux. Berikut ini adalah macam-macam paket yang didistribusi oleh pihak
COMEDI:
a. Paket Comedi merupakan kumpulan driver-driver untuk berbagai macam
kartu data akusisi.
b. Paket Comedilib merupakan paket distribusi yang terdiri dari sebuah user-
space library yang menyediakan antar muka bagi Comedi device. Hal-hal
lain yang turut dicantumkan dalam paket Comedilib adalah dokumentasi,
fasilitas kalibrasi dan program-program demo.
c. Paket Kcomedilib adalah sebuah modul kernel Linux (didistribusi
bersamaan dengan paket comedi) yang menyediakan antar muka yang
sama dengan comedilib dalam kernel space, dan cocok diterapkan untuk
program real time. Jadi kcomedilib adalah kernel library untuk
penggunaan Comedi pada program real time.
2.2.1 Definisi Device Driver
Sebuah kartu DAQ dapat diakses oleh program tidak terlepas karena
adanya driver atau device driver. Device driver adalah sekumpulan perangkat
lunak yang menjembatani ke sekumpulan perangkat keras misalnya printer, sound
card atau motor drive. Device driver berfungsi menerjemahkan perintah-perintah
yang diberikan dari perangkat keras untuk dapat dikonfigurasi, dibaca dan diolah
ke dalam fungsi-fungsi umum dan struktur data untuk program.
2.2.2 Hirarki Device
COMEDI mengorganisasi semua perangkat keras berdasarkan hirarki
umum berikut ini:
Channel: Komponen perangkat keras low level, yang mewakili suatu saluran data tunggal. Misalnya sebuah masukan analog atau sebuah
masukan digital. Setiap channel memiliki beberapa parameter seperti
voltage range, reference voltage, dan channel polarity (unipolar,bipolar).
Sub-device: sekumpulan channel yang memiliki fungsi yang sama yang secara fisik diimplementasi pada kartu interface yang sama.
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
11
Device: sekumpulan sub-device yang secara fisik diimplementasi pada kartu interface yang sama. Sebagai contoh, peralatan National
Instruments PCI 6024E memiliki empat sub-device yang terdiri dari 16
buah analog input channel, dua buah analog output channel, 8 buah digital
input/output channel dan dua buah counter.
2.3 DATA ACQUISITION BOARD
Data acquisition board merupakan instrumen yang dipakai dalam
melakukan suatu proses pengukuran terhadap suatu kejadian, misalnya mengukur
tegangan pada sensor temperatur. Secara umum, DAQ board melakukan kegiatan
mendigitalisasi signal masukan analog, melakukan konversi dari sinyal digital ke
analog, mengukur dan mengontrol sinyal digital input atau output. Sebagai
informasi tambahan, untuk kartu DAQ NI PCI 6024E menggunakan sistem timing
controller dari National Instruments untuk fungsi yang berhubungan dengan
waktu dan terdiri dari tiga kelompok timing yaitu mengontrol masukan analog,
keluaran analog dan fungsi general-purpose counter/timer.
2.3.1 Konsep Dasar General Purpose Counter/Timer
General-purpose counter/timer (GPCT) adalah counter yang memiliki
kemampuan untuk menghitung secara count up ataupun secara count down,
memiliki load dan save register, memiliki sebuah struktur pengontrol untuk
mengimplementasi beberapa perhitungan umum dan memiliki fungsi timing I/O.
Fungsi timing ini terdiri pengukuran periode, dan pulse-train generation dengan
frekuensi dan duty cycle yang dapat diprogram. Kebanyakan fungsi dapat
dioperasi dengan menggunakan hanya satu buah general-purpose counter. Ada
dua mode operasi pengukuran pada kartu NI PCI 6024E yaitu single mode dan
buffered mode. Dalam single mode, counter hanya melakukan satu buah
pengukuran. Dalam buffered mode, counter melakukan serangkaian pengukuran
yang berurutan.
Modul GPCT memiliki dua buah counter 24-bit binary up/down yang
identik dengan general-purpose counters 0 and 1. Gambar 2.4 menunjukkan
model sederhana dari sebuah counter.
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
12
Gambar 2.4 Model Sederhana dari General-Purpose Counter/Timer [2]
Setiap counter GPCT memiliki sebuah input source (G_SOURCE), sebuah
input gate (G_GATE) dan sebuah input control up/down (G_UP_DOWN). Ketika
counter diaktifkan untuk menghitung, rising edges pada input G_SOURCE dapat
menyebabkan counter menambah atau mengurang isi save register-nya. Masukan
G_GATE berlaku sebagai sebuah sinyal pengontrol general-purpose dan dapat
dioperasi sebagai sebuah sinyal pen-trigger counter, sinyal pengaktif counter,
sinyal save, sinyal reload, sinyal interrupt, sinyal kontrol output, sinyal pemilih
register load, dan sinyal penghenti counter. Input G_UP_DOWN bertujuan
menentukan metode perhitungan pada counter yaitu metode perhitungan count up
(penambahan) atau metode perhitungan count down (pengurangan). Keluaran
counter adalah sinyal G_OUT dan sinyal interrupt. Pin G_OUT berfungsi
mengeluarkan sinyal dari modul counter ke port keluaran pada kartu NI PCI
6024E.
2.3.2 Event-Counting pada GPCT
Dalam event-counting, counter menghitung kejadian pada input
G_SOURCE setelah counter diaktifkan. Kondisi-kondisi yang dialami oleh
counter pada saat event counting adalah:
a. Pin G_SOURCE berfungsi menerima pulsa-pulsa informasi.
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
13
b. Pin G_GATE untuk mengindikasi kapan untuk memulai dan
menghentikan interval penghitungan dan kapan untuk menyimpan isi
counter pada save register.
c. Software dapat membaca nilai counter secara asinkron atau membaca nilai
simpanan di save register setiap saat.
d. Pin G_UP_DOWN mengontrol metode perhitungan pada counter yaitu
penambahan atau pengurangan.
Dalam mode simple event counting, counter menghitung jumlah pulsa
yang diberikan pada G_SOURCE ketika counter diaktifkan. Software dapat
membaca isi counter kapan saja tanpa mengganggu proses perhitungan. Gambar
2.5 menunjukkan sebuah contoh dari simple event counting di mana counter
menghitung lima kejadian pada G_SOURCE.
Gambar 2.5 Simple Event Counting [2]
Dalam mode buffered non-cumulative event counting, counter secara
umum memiliki karakteristik yang mirip dengan mode simple event counting
kecuali adanya interval perhitungan secara berkelipatan. Sinyal G_Gate
mengindikasi adanya limit antara serangkaian interval perhitungan. Counter
menghitung pulsa yang diberikan pada sinyal G_SOURCE sesudah software
mengaktifkan counter tersebut. Setiap terjadi active edge pada sinyal G_GATE,
maka isi counter akan diisi ke hardware save register dan counter akan mengisi
kembali isi counter ke nilai inisialnya untuk memulai interval perhitungan
berikutnya. Sebuah interrupt akan memberitahukan CPU sesudah setiap interval
perhitungan sehingga interrupt software dapat membaca hasil yang disimpan
dalam hardware save register. Gambar 2.6 menunjukkan sebuah contoh
perhitungan counter pada mode buffered non-cumulative event counting.
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
14
Gambar 2.6 Buffered Non-Cumulative Event Counting dengan dua interval [2]
2.4 INSTRUMEN INCREMENTAL ROTARY ENCODER
Instrumen incremental rotary encoder atau dikenal juga sebagai
incremental shaft encoder adalah salah satu tipe dari peralatan encoder yang
memberikan keluaran dalam format digital. Hal ini menyebabkan instrumen
sejenis ini lebih nyaman digunakan pada aplikasi pengontrolan yang
menggunakan komputer, sebagaimana pengukuran dibutuhkan dalam bentuk
digital. Oleh karena itu, proses konversi dari sinyal analog ke digital tidak perlu
lagi dilakukan.
Dewasa ini, instrumen ini banyak digunakan dalam industri terutama pada
mesin-mesin seperti mesin pengemasan, tangan robot, pengontrol gerakan motor
derek, mesin penggiling. Biasanya instrumen ini digunakan dalam menghitung
sudut, posisi, revolusi, kecepatan, akselerasi dan jarak. Ada beberapa macam jenis
incremental rotary encoder yang telah dikembangkan seperti jenis magnetis,
kontak, resistif dan optis. Akan tetapi, jenis incremental rotary encoder yang akan
dibahas dalam sub bab ini adalah jenis optis saja.
2.4.1 Konsep Dasar Instrumen Incremental Rotary Encoder
Konsep dasar operasi instrumen incremental rotary encoder adalah
instrumen ini mengukur nilai sesaat posisi angular dari sebuah shaft yang sedang
berotasi dan menghasilkan pulsa-pulsa pada channel-channel-nya. Pulsa-pulsa
yang dihasilkan ini berbentuk gelombang square.
Instrumen incremental rotary encoder biasanya memiliki tiga buah sinyal
keluaran, yaitu sinyal A, sinyal B, dan sinyal Z, ditunjukkan dalam gambar 2.7.
Untuk sinyal A dan sinyal B, masing-masing sinyal keluaran tersebut saling
quadrature yang berarti terjadi pergeseran fasa 90O satu sama lain. Kedua sinyal
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
15
tersebut selain memberikan nilai posisi shaft dari encoder, juga mampu
menyediakan informasi mengenai arah putaran dari shaft misalnya berputar searah
jarum jam atau berputar berlawanan arah jarum jam. Hal penting yang perlu
diperhatikan hubungan antara sinyal A dan sinyal B adalah bahwa pergeseran fasa
satu sama lain antara kedua sinyal tersebut harus berada dalam batas toleransi
yang dapat diterima biasanya tidak melebihi 90O sehingga proses perhitungan
dapat berlangsung dengan akurat.
Untuk kebanyakan peralatan mesin motor atau aplikasi positioning, sinyal
Z dikenal sebagai index signal, yang memiliki peranan penting dalam menentukan
zero position dengan cara memberikan sebuah pulsa keluaran tunggal per satu
revolusi.
Gambar 2.7 Tiga Buah Sinyal Keluran Encoder[6]
2.4.2 Prinsip Kerja Instrumen Optical Incremental Position Encoder
Sebuah contoh dari sebuah optical incremental rotary encoder ditunjukkan
dalam gambar 2.8. Pada gambar tersebut, instrumen ini terdiri dari sebuah sumber
cahaya yaitu biasanya adalah LED, sebuah disc encoder (rotating disc), sebuah
fixed disc, dan photo-detector. Letak posisi antara LED dan photo-detector
disusun dengan sejajar, sehingga cahaya dari LED dapat masuk ke detector
tersebut secara tegak lurus.
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
16
Gambar 2.8 Optical Incremental Shaft Encoder [6]
Disc yang ditunjukkan dalam gambar 2.9 adalah elemen kunci dari
encoder dan secara umum terbuat dari bahan kaca dan diberi cap yang terbuat dari
bahan logam sehingga membentuk slot-slot jendela yang mengelilingi bagian tepi
dari disc encoder tersebut. Slot-slot ini bersifat tembus cahaya. Jumlah slot
tersebut adalah sama dengan jumlah dari pulsa per satu revolusi. Sebagai contoh,
sebuah disc kaca yang dicap dengan 1000 slot, bila disc tersebut telah bergerak
180O jika dan hanya jika encoder tersebut telah mengeluarkan 500 pulsa.
Gambar 2.9 Susunan Jendela dalam Incremental Rotary Encoder [6]
Selama disc berotasi, LED secara konstan diaktifkan dan cahaya dari LED
tidak secara terus-menerus mencapai photo-detector, tetapi hanya saat cahaya
tersebut melewati slot-slot yang berada pada disc encoder tersebut. Saat cahaya
masuk ke photo-detector, detector tersebut menghasilkan pulsa-pulsa keluaran
berupa gelombang square.
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008
-
17
Kebanyakan dari incremental rotary encoder menyediakan sebuah tanda
tunggal pada disc, disebut channel Z atau marker. Pulsa dari channel ini
menyediakan sebuah referensi yang menandakan per satu revolusi.
2.5 GTK+ (GIMP Toolkit)
GTK+ merupakan singkatan dari GIMP Toolkit, asal mulanya GTK+
didesain untuk raster graphics editor yang dikenal dengan sebutan GNU Image
Manipulation Program (GIMP). GTK+ dibuat pertama kali di tahun 1997 oleh
Peter Mattis, Spencer Kimball, dan Josh MacDonald. Dengan berlisensi Lesser
General Public License (LGPL), GTK+ telah memberikan keuntungan berupa
tidak perlunya membayar lisensi atau royalti dalam menggunakan GTK+ untuk
penggembangan software baik open software, free software maupun software
komersial. Dewasa ini, GTK telah digunakan dalam sejumlah besar proyek
software termasuk di dalamnya proyek GNU Network Object Model Environment
(GNOME), yang saat ini merupakan lingkungan desktop linux yang amat populer.
GTK+ adalah sebuah object-oriented application programming interface
(API) yang ditulis dalam bahasa pemrograman C. GTK+ diimplementasi dengan
konsep kelas-kelas dengan tujuan membuat suatu sistem yang luas yang dibangun
atas dirinya. GTK selain menyediakan elemen-elemen yang biasa digunakan
dalam membuat interface suatu program misalnya button, label, text box dan
window, juga menyediakan komponen-komponen yang lebih abstrak yang
digunakan untuk application layout.
Pengukuran kecepatan putar...,Hermin Kosasih, FT UI, 2008