The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Pemrograman GUI di GNU atau Linux Menggunakan Glade

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Perpus Kota Semarang, 2018-10-30 18:33:57

Pemrograman GUI di GNU atau Linux Menggunakan Glade

Pemrograman GUI di GNU atau Linux Menggunakan Glade

PENERBIT ANDI STMIK AMIKOM

YOGYAKARTi\

PEMROGRAMAN

MENGGUNAKAN

GLADE

Ema Utami, S.Si, M.Kom•
.Tamrizal, A.Md.

Arief Dwi Cahyadi, A.Md.

Pemrograman
GUIdi GNU/Linux
Menggunakan Glade

Ema Utami, S.Si, M.Kom
Tamrizal, A.Md

Arief Dwi Cahyadi, A.Md

Penerbit ANDI Yogyakarta

Pemrograman Gm di GNU/Linux Menggunakan Glade
Oleh: Ema Utami, S.Si., M.Kom.

Tamrlzal, A.Md.
Arief Dwi Cahyadi, A. Md.

Hak Cipta © 2004 pada penulis.

Hak Cipta dilindungi undang-undang. Dilarang memperbanyak atau memindahkan
sebagian atau seluruh isi buku ini dalam bentuk apapun, baik secara elektronis
maupun mekanis, termasuk menifotocopy, merekam atau dengan sistem
penyimpanan lainnya. tanpa izin tertulis dari Penulis.

Penerbit:
ANDI
JL Beo 38-40,
Telp. (0274} 561881 (Hunting}, Fax. (0274) 588282 Yogyakarta 55281

Percetakan:
ANDIOFFSET
Jl. Beo 38-40,
Telp. (0274) 561881 (Hunting}, Fax. (0274) 588282 Yogyakarta 55281

Perpustakaan Nasional: Katalog dalam Terbitan

Utami.Ema

Pemrograman GUIdi GNUI Unux Menggunakan Glade/

Ema Utami. Tamrizal dan AriefDwi Cahyadi ;

- Ed. I.- Yogyakarta: Andi,
09- 08- 07- 06- 05- 04
xvi + 188 hlm .; 16 x 23 Cm
10 9 8 7 6 5 4 3 2 1

ISBN: 979-731-462-6

1. GNUI UNUX (Computer Program)

2. Tamrizal
3. Cahyadi, AriefDwi
I. Judul

005.713

Kata Penaantar

BAHASA pemrograman merupakan hal fundamental
yang harus diajarkan oleh sebuah institusi pendidikan
bidang komputer. Seorang mahasiswa informatika
mutlak menguasai suatu bahasa pemrograman dan
ini merupakan keunggulan bagi seorang mahasiswa
bila selesai menempuh kuliah. Namun sampai saat
ini banyak pengetahuan bahasa pemrograman masih
berkutat pada pemrograman berbasis sistem operasi
DOS atau Windows, seperti Pascal, Delphi, FoxPro,
Cobol, dan Basic.
Pengetahuan mengenai bahasa pemrograman yang
dapat berjalan di sistem operasi lain masih kurang.
Padahal masih banyak macam bahasa pemrograman
selain yang telah disebut di atas, seperti C, C++, Lisp,
Java, Perl, Python, dan lain-lain. Mengerti bahasa
pemrograman selain DOS atau Windows akan
menjadi suatu hal yang mempunyai nilai lebih.
Perkembangan sistem operasi GNU/Linux
semakin pesat. Hal ini tentu saja diiringi dengan

iii

It

•••••••• 0 •• 0 •• 0 •••• 0 •• 0. 0. 0 •• 0 0 0 ••• 0 ••••••••••••••••••••••••••••••••• 0 •••••••• 0 ••• 0 0 ••••••• 0 •••• :. 0 •••• 0 ••• 0.

berkembangnya program-program yang berjalan pada sistem operasi
GNU/Linux. GNU/Linux sudah sangat dikenal sebagai sistem
operasi yang handal untuk keperluan server, seperti Apache Web
Server, PostgreSQL Server, Mail Server, dan sebagainya.

Penggunaan GNU/Linux pada awalnya hanya herbasis teks dan
terbatas untuk administrasi seperti backup system, management
user, atau kegiatan lain yang memakai mode teks. Namun seiring
pemakaian GNU/Linux untuk keperluan desktop, maka banyak
program yang dibutuhkan untuk berjalan di mode X Window.
Sepanjang pengetahuan penulis, saat ini belum ada buku yang
mengulas pemrograman X Window.

Buku ini mengenalkan dasar-dasar pemrograman berbasis XWindow
pada sistem operasi GNU/Linux menggunakan GTK dan Glade. Buku
ini juga mengulas pemakaian GTK untuk membuat program berbasis
X Window dilanjutkan dengan Glade yang merupakan antarmuka
yang mempermudah pembuatan program lingkungan X Window.
Koneksi antara GTK dan database MySQL juga turut disampaikan.
Jadi, buku ini sangat tepat bagi mahasiswa Teknik Informatika dan
Ilmu Komputer atau pembaca yang tertarik pemrograman berbasis X
Window di GNU/Linux.

Pada buku ini banyak diberikan contoh kasus disertai altematif solusi
penyelesaiannya dengan harapan pembaca dapat mengembangkan
sesuai dengan kreatifitas masing-masing. Demikian pula dengan
beberapa latihan yang diberikan dalam Bah 3, 5, dan 6, diharapkan
dapat membantu pembaca untuk lebih memahami konsep dan
pembuatan program X Window menggunakan Glade ini.

Pada kesempatan ini penulis menghaturkan beribu-ribu terima kasih
yang tak terkira kepada ALLAH SWT, yang telah memberikan rahmat
dan hidayah-Nya sehingga penulis mampu menyelesaikan buku ini.
Penulis juga mengucapkan banyak terima kasih kepada Penerbit
ANDI Yogyakarta yang telah berkenan menerbitkan buku ini, serta
untuk keluarga kami yang telah memberikan semangat untuk selalu
berkarya.

iv

Akhir kata, semoga buku ini bermanfaat dan dapat menambah
wawasan pembaca yang ingin mempelajari pemrograman GUI di
GNU/Linux menggunakan Glade. Saran dan kritik yang ditujukan
untuk membangun buku ini dapat ditujukan ke alamat email:
[email protected] atau [email protected]

Yogyakarta, Juni 2004

Penulis,
Ema Utami, S. Si., M.Kom.
Tamrizal, A. Md.
Arie£ Dwi Cahyadi, A. Md.

v



Daftar lsi

Kata Pengantar iii
Daftar lsi vii

Bab I Pendahuluan I

1.1 M.engenal Linux - 1
1.2 Menggunakan Linux - 4
1.3 Text Editor di Linux - 5
1.4 Mengenal GTK+ - 8
1.5 Perinlah-Perintah Dasar Linux - 8

Bab_l..D.asar=O.au.r._.P..emmgr_am.an_C - I3

2.1 Pengenal- 15
2.2 Kala Kunci - 15

2.3 llpe Data Dasar - 16

2.4 Variabel - 17

vii

2.4. 7 Variabel Lokal - 78
2.4.2 Variabel Global - 78

2.5 Konstanta - 19
2.6 Operator - 19

2.6. 7 Operator Penunjukan (Assignment) - 20
2.6.2 Operator Aritmatika - 20
2.6.3 Operator Relasional - 2 7
2.6.4 Operator Logika - 2 7

2.7 Pemyataan -21
2.8 Operasi Input dan Output- 22

2.8. 7 Fungsi printf - 23
2.8.2 Fungsi scanf- 24

2.9 Array dan String- 25
2.1 0 Struktur - 31
2.11 Poinler - 34
2.12 Pengendalian Program - 37

2. 72. 7 Perintah Percabangan - 38

2.12.1.1 lnstruksi if - 38
2. 12.1.2 lnstruksi switch - 40

2. 72.2 Perintah Perulangan - 43

2.12.2.1 lnstruksi for- 43
2.12.2.2 lnstruksi while- 44
2.12.2.3 lnstruksi do-while- 45

2.13 Fungsi - 48
2.14 Kompilasi - 54

Bab 3 GT_K__D_.a...,..sa:ur....="--'5..._,7.__ _ __

3.1 Struktur GTK Dasar - 57
3.2 Kompilasi- 58
3.3 Lafihan - 61

viii

r w·

Bab...4...Mengena.l..G.lade.=6.5 ..................

4.1 Memulai Glade - 65
4.2 Mengenal Ungkungan Kerja Glade - 66

4.2. 1 Main Window - 66

4.2.1.1 Menu Bar- 67
4.2.1.2 Toolbor- 72
4.2.1.3 Top-Level Window List- 72

4.2.2 Pallete Window - 72
4.2.3 Properties Editor - 80
4.2.4 Widget Tree - 85
4.2.5 Clipboard - 86

4.3 Mengenal Project Options - 86

4.3.1 Tab General- 87
4.3.2 Tab C Options - 88
4.3.3 Tab LibGiade Options - 91

4.4 Membuka Project- 91
4.5 Kompilasi - 92

Bab_S G.TK dengan Glade- 95

5.1 Filefile yang Dihasilkan Glade - 98
5.2 Membuat Antarmuka dengan Glade - 100
5.3 Data Entry - 107

LatihanDataEntry__·--·-····· .. .Ll6. _ ____

5.4 Radio Butbn - 118

5.5 Check Butbn dan Tex1view - 121
5.6 Combo Box - 125

Latihan Combo Box 128

5.7 Clist - 129

ix

B.a.b .6. O.atab.a.s.e.=..l.3.9........ _

6.1 Pengenalan MySQL - 139
6.2 Tipe Data MySQL - 139
6.3 Perinlah-Perintah Dasar MySQL - 140
6.4 Paket-Paket MySQL - 141
6.5 Koneksi GTK+2 dan MySQL- 141
6.6 Conloh Kasus - 145

6.6. 7 Pengo/ahan Data Barang - 745

6.2.2 Pengolahan Data Pelanggan - 163

Latih.an.......................................1. 83...... ............................
Daftar Pustaka - 185

X

Daftar Gambar

Gambar 1.1 Tampilan Desktop di Linux - 3
Gambar 1.2 Text Mode di Linux- 4
Gambar 1.3 Prompt Login di Linux- 4
Gambar 1.4 Shell Prompt- 4
Gambar 1.5 Beberapa Text Editor di Linux - 6
Gambar 1.6 Lingkungan Kerja Kate - 7
Gambar 3.1 Tampilan Prcgram 1- 59
Gambar 3.2 Tampilan Program 2- 60
Gambar 4.1 Main Window- 66
Gambar 4.2 Menu Project- 67
Gambar 4.3 Menu Edit- 68
Gambar 4.4 Menu View- 69
Gambar 4.5 Menu Setting- 69
Gambar 4.6 Jendela Grid Options- 70
Gambar 4.7 Jendela Snap Options- 71
Gambar 4.8 Menu Help- 71

xi



Gambar 4.9 Pallete Window- 74
Gambar 4.1 0 Properties Editor - 81
Gambar 4.11 Dialog Pilih Signal- 83
Gambar 4.12 Jendela WidgetTree- 85
Gambar 4.13 Jendela Clipboard - 86
Gambar 4.14 Jendela Project Options Tab General- 87
Gambar 4.15 Jendela Project Options Tab C Options- 88
Gambar 4.16 Jendela Project Options Tab LibGiade Options- 91
Gambar 4.17 Open Dialog- 92
Gambar 5.1 Main Window- 96
Gambar 5.2 Pallete Window- 97
Gambar 5.3 Properties Window- 98
Gambar 5.4 Opsi New .G_TK+Project -100
Gambar 5.5 Window Widget -101
Gambar 5.6 Window Baru -101
Gambar 5.7 Main Window dan Properties Window Aktif -102
Gambar 5.8 Menu Save -102
Gambar 5.9 Event Handler -106
Gambar 5.10 Contoh 1Data Entry- 108
Gambar 5.11 Contoh 2 Data Entry -111
Gambar 5.12 Latihan 1Data Entry -116
Gambar 5.13 Latihan 2 Data Entry- 117
Gambar 5.14 Contoh Radio Button -119
Gambar 5.15 Contoh Check Button dan Textview- 122
Gambar 5.16 Contoh Combo Box- 126
Gambar 5.17 Contoh Combo Box-128
Gambar 5.18 Latihan Cymbo Box- 128
Gambar 5.19 Contoh 1 Clist -129
Gambar 5.20 Contoh 2 Clist- 132

xii



Gambar 5.22 Latihan 2 Clist- 137
Gambar 6.1 Antarmuka Pengolahan Data Barang - 145
Gambar 6.2 Tampilan Aplikasi Pengolahan Data Barang -162
Gambar 6.3 Penginputan Data Barang- 162
Gambar 6.4 Pengeditan Data Barang- 163
Gambar 6.5 Antarmuka Pengolahan Data Pelanggan- 164
Gambar 6.6 Tampilan Aplikasi Pengolahan Data Pelanggan -181
Gambar 6.7 Penginputan Data Pelanggan - 182
Gambar 6.8 Pengeditan Data Pelanggan -183

xiii



Daftar Jabal

label 2.1 Kata Kunci - 16
label 2.2 lipe Data Dasar - 16
label 2.3 Perbandingan Tipe Data Dasar - 17
label 2.4 Fasilitas 1/0 lerformat - 22
label 4.1 GlK+ Basic - 74
label 4.2 GlK+ Additional - 77
label 4.3_ Gnome - 78
label 4.4 Deprecated - 79

XV

-----------------------------------------------------------------------------------------------------------------

Pendahuluan

1. 1 Mengenal Linux

GNU/Linux atau lebih sering disebut Linux, merupakan sistem
operasi yang dapat berjalan di berbagai platform komputer. Seiring
dengan diberlakukannya UU HAKI per 29 Juli 2003, pemakai Linux
di Indonesia bertambah pesat. Perkembangan Linux sangat didukung
oleh lisensi yang digunakan, yaitu GPL (General Public License).
Linux bersifat open source, artinya para pengguna dapat ikut
mengembangkan dan menyebarluaskan aplikasi Linux. Pengguna
berhak menerima source code beserta semua hak yang diizinkan oleh
penulis asli. Aplikasi tersebut dapat dimodifikasi maupun digunakan
dalam aplikasi lain di mana lisensi dari aplikasi baru tetap pada GNU
GPL. Sekalipun demikian, adanya GPL tidak menutup kemungkinan
komersialisasi. Paling tidak biaya dapat ditarik sebagai pengganti
biaya kopi dan media distribusi. Jasa layanan, seperti dukungan
teknis dapat merupakan produk komersial pula.
Sistem operasi Linux pertama kali dibangun dengan kernel Linux oleh
Linus B. Torvalds pada tahun 1991. Pada masa itu ia masih menjadi
mahasiswa di University of Helsinki, Finlandia. Kernel-yang terdiri

1

I

atas fungsi Manajemen Proses, Manajemen Memori, Manajemen
Sistem File, dan Komunikasi Jaringan-merupakan bagian penting
dalam sebuah sistem operasi yang berinteraksi langsung dengan
perangkat keras komputer.
Kemampuan sistem operasi Linux antara lain:
1. Multitasking, beberapa program dapat berjalan pada suatu saat.
2. Multiuser, menangani banyak user secara baik pada aplikasi yang

sama pada suatu saat.
3. Multiplatform, berjalan di banyak CPU berbeda, tidak hanya Intel.

Terdapat versi Linux untuk selain Intel x86.
4. Berbasis jaringan, dukungan terhadap TCP/IP.
5. Multiple virtual consoles, beberapa sesi login independent dengan

console.
6. Linux mendukung demand paging, yaitu pages hanya diload jika

diperlukan saja.
7. Linux mengizinkan shared executables, yaitu bila ada lebih dari

satu aplikasi yang dijalankan, semua task dapat membagi pakai
memori yang sama. Metode ini dinamakan copy-on write pages agar
penggunaan RAM lebih efisien.
8. Linux mendukung dynamically shared library yang dapat mem-
perkecil ukuran program.

Adapun distribusi (distro) Linux-yang merupakan hasil pemaketan
oleh perusahaan untuk mempermudah pemerolehan Linux-di
antaranya adalah RedHat, Mandrake, Slackware, S.u.s.e, dan Debian.
Semua distro tersebut menggunakan kernel yang sama dan disetujui
Linus Torvald yang menjamin kompatibilitasnya. Perbedaan masing-
masing distro terletak pada paket-paket perangkat lunak yang
disertakan, struktur direktori, metode pemaketan perangkat lunak,
dan inisialisasi sistem.
Linux juga mendukung banyak arsitektur komputer seperti Alpha, Mac
dan lain-lain. Linux dapat dipakai sebagai sistem operasi untuk keperluan

2

I

desktop sampai dengan server. Bahkan tampilan Linux yang dipakai
sebagai desktop telah dapat mengimbangi sistem operasi seperti Microsoft
Windows (lihat Gambar 1.1).

Ema Utami, SSi, M.K.om

Gambar 1.1 Tampilan Desktop di Linux

Pada dasarnya Linux dapat menjalankan berbagai aplikasi yang
sama dengan aplikasi-aplikasi pada sistem operasi lain. Misalnya
Mozilla untuk menjelajah web, XMMS untuk menjalankan file-file
audio, gimp untuk manipulasi gambar, dan lain-lain. Selain memiliki
tampilan desktop yang cantik, Linux juga dapat beroperasi dalam
mode teks dengan tampilan prompt seperti Gambar 1.2.

3

I

naufal~nrar:~$ ls - l users 4544 Jul 31 03:09 erna
root 4B Sep 19 2002 ftp
drwxr-xr-x 4 6 ema users 12B May 28 2002 kependudukan
drwxr-xr-x 2 root root 72 Dec 7 2002 local
drwx--x--x 2 1003 users BBB Feb 24 OB :51 mp3
drwxr-xr-x 3 root users 304 Jun 27 2002 naufal
drwxr-xr-x 21 l!p3 users 168 Dec 7 2002 nrar
drwx--x--x 3 test
drwx--x--x 3 1006 dba 864 Mar 13 22:45 oracle
drwx--x--x 16 oracle root 504 Feb 12 2000 var
drwxr-xr-x 17 root users
drwxr-xr-x 85 wa2n users 9152 Jul 31 06:40 wa2n
drwxr-xr-x 55 wa2n 3568 Apr 22 06:17 wawan

Gambar 1.2 Text Mode di Linux

1.2 Menggunakan Linux

Sebelum memasuki sistem operasi GNU/Linux, pengguna akan
dihadapkan pada prompt login seperti Gambar 1.3.

Gambar 1.3 Prompt Login di Linux

Prompt login di atas memerlukan pasangan user dan password yang
benar. Setelah berhasil melakukan login maka akan didapatkan shell
prompt seperti Gambar 1.4.

Gambar 1.4 Shell Prompt

naufal menunjukkan nama login Anda, sedangkan @nrar (at nrar)
menunjukkan Anda berada di komputer server. Tanda - berarti
berada di home direktori, yaitu /homefnamaloginanda atau pada
contoh ini /homejnaufal. Sedangkan $ menunjukkan prompt bahwa
Anda user biasa.
Setelah mendapatkan prompt, rnaka kita dapat rnelakukan perintah-
4

II

perintah dasar Linux seperti Is, cp, rm, cat, dan lain-lain. Perintah ini
umumnya mempunyai format namainstruksi [pilihan] [argumen].
Misal:
$ Is tanpa argumen
$ Is -a dengan opsi (pilihan)
$ Is /bin tanpa opsi dengan argumen
Untuk melihat bantuan pada suatu perintah dalam Linux, Anda
cukup mengetikkan perintah man (namaperintah). Misal: man Is.

1.3 Text Editor di Linux

Text editor adalah sebuah program untuk menuliskan teks dan/
atau script program ke dalam sebuah file. Dalam lingkungan Linux
terdapat banyak macam text editor. Beberapa di antaranya adalah vi,
vim, joe, pico, nano untuk text editor mode teks (berbasis console),
dan kwrite, gedit, vim, kate untuk mode grafik (berbasis grafis).
Dalam pemrograman bahasa C penulisan source program dapat
menggunakan salah satu text editor yang ada. vi merupakan salah
satu text editor yang banyak dipakai dalam lingkungan LinuxjUnix.
Gambar 1.5 merupakan contoh beberapa text editor.

5

I

VIM - Vi IMproved

version 6 .1. 48
by Bram Moolenaar et al.

Vim is open source and freely distributable

Help poor children in Uganda!

type :help iccf<-Enter> for information

type :q<Er;te<> to exit

type :help<=.Entet·> or <..Fl> for on-line help

type :help version6<Enter> for version info

Gambar 1.5 Beberapa Text Editor di Linux

Dalam buku ini, kita akan mempelajari salah satu text editor berbasis
grafis, yaitu Kate. Untuk menjalankan Kate bisa melalui shortcut
pada start menu (masing-masing distro berbeda), atau bisa melalui
console dengan perintah kate [namafile]. Namafile bersifat opsional
karena bisa diberikan belakangan waktu menyimpan file.
Kate mempunyai bagian-bagian penting, yaitu console, text editor,
open file list, dan file explorer. Kate mempunyai beberapa keunggulan
dari text editor lain, di antaranya adalah:
1. Mempunyai console sendiri. Jadi, kita bisa menggunakan console

sekaligus menggunakan text editor.
2. Mempunyai open file list sehingga memudahkan untuk pindah

file.
3. Mempunyai file explorer sehingga memudahkan dalam membuka

file baru.

6

I

4. Mengenal script program sehingga script program ditampilkan
dengan warna yang menarik serta memudahkan pendeteksian
kesalahan sintaks.

ila. f.dll Qocument Yiew l!!ookmart;s ~!31tings Help
..
rn [}
a . • • afj,fi/0 ~ il.l')~:f:} x~• li?(~: "'-
. J '"·Q) ,,,:~,:~ g~., ·.· .

···"""•······':···;· ·····c.·.; a><

line: 1 Col: 1 INS Untilled Or · { ~i ; :.oc·· : :[•'; .: :

Gambar 1.6 Lingkungan Kerja Kate

Bagian Text Editor dipakai untuk menuliskan teks atau script. Untuk
membuat file baru, bisa melalui menu File:New atau melalui shortcut
Ctrl+N. Untuk menyimpan file, bisa melalui menu File:Save atau
melalui shortcut Ctrl+S. Untuk membuka file, kita bisa menggunakan
file explorer, lalu double klik pada file yang diinginkan. Kita juga bisa
membuka file melalui menu File:Open atau shortcut Ctrl+O. Selain
cara-cara di atas, icon pada toolbar juga bisa kita manfaatkan.

Bagian Open File List digunakan untuk menampilkan daftar file yang
sedang dibuka.

Bagian File Explorer digunakan untuk menampilkan file dan directory
dalam komputer.

Bagian Console digunakan untuk menuliskan perintah- perintah
Linux.

7

I

1.4 Mengenal GTK+

GTK+ (GIMP Tool Kit) adalah library untuk membuat antarmuka
(GUI) berlisensi GPL (General Public Lisence) yang memudahkan
pembuatan free software ataupun commercial sofhvare. Dinamakan
GIMP Tool Kit sebab pada awalnya merupakan pengembangan
General Image Manipulation Program (GIMP). Saat ini GTK juga
digunakan pada banyak project sofhvare seperti GNU Nehvork Object
Model Environment (GNOME) project.

GTK telah menerapkan teknik Object Oriented Programming (OOP)
dan Application Programmers Interface (API) menggunakan bahasa C
dan menggunakan teknik pemrograman system classes dan callback
function. Secara umum GTK+ adalah sebuah event control yang artinya
GTK akan menunggu pada bagian gtk_main() sampai pada peristiwa
(event). Misal klik tombol mouse kemudian akan dikendalikan agar
melewati fungsi yang telah ditentukan atau disebut sinyal.

1.5 Perintah-Perintah Dasar Linux

Sebelum mempelajari GTK+ lebih lanjut, kita harus menguasai
beberapa perintah dasar Linux. Sebab untuk mengkompilasi project
kita memakai jendela console. Perintah Linux bersifat case sensitive,
artinya antara huruf kecil dan huruf kapital dibedakan.

1. Perintah untuk melihat isi direktori.

Sintaks: ls [opsi] [direktori I file]

Contoh:

ls /hare/arief untuk melihat isi direktori /home/
arief.

ls -a untuk melihat isi direktori terma-
suk file hidden.

ls -al untuk melihat semua isi direktori
dan ditampilkan informasi secara
lengkap.

8

I '.

Opsi yang sering digunakan adalah:
-a untuk menampilkan semua file dan direktori terma-

suk file hidden.

-1 untuk menampilkan informasi file secara lengkap
(detail).

-o seperti -1 hanya tidak menampilkan informasi group.

-h untuk menampilkan file berserta ukuran byte (contoh
2K, 1M).

-A untuk menampilkan semua semua file dan direktori
kecuali . dan .. , yaitu direktori aktif dan direktori par-
ent (induk).

-R untuk menampilkan subdirektori secara rekursif.

-v menampilkan menurut versi.

-t menampilkan menurut waktu modifikasi file.

-1 untuk menampilkan satu file per baris.

--help untuk menampilkan help singkat tentang Is. Akan
menampilkan semua opsi yang dimiliki Is.

--version untuk menampilkan versi dari Is.

2. Perintah untuk mengcopy file atau direktori

Sintaks: cp [opsi] [source] [target]

Contoh:

cp filel. txt file2 .txt mengcopy filel.txt menjadi file2.txt

cp filel. txt /hcxne/arief mengcopy filel.txt ke direktori
/home/ arief

cp -Rf lat /home/arief mengcopy direktori lat ke direk-
tori /home/arief tanpa ada kon-
firmasi.

Dalam perintah cp, opsi yang sering dipakai antara lain:

-R untuk mengcopy direktori secara rekursif.

9

I

-f menghilangkan konfirmasi

-v menjelaskan apa yang sudah dilakukan

-u mengcopy hanya jika file sumber lebih baru dari file
target atau file target hilang/ tidak ada.

--help menampilkan help singkat tentang cp.

--version untuk menampilkan versi dari cp.

3. Perintah untuk melihat direktori yang sedang aktif.

Sintaks: pwd

4. Perintah untuk melihat manual page sebuah perintah.

Sintaks : man [cxmnand]

Contoh:

man ls untuk menampilkan manual page perintah Is

man cp untuk melihat manual page perintah cp

man chmod untuk melihat manual page perintah chmod

5. Perintah untuk pindah atau masuk direktori.

Sintaks: cxi [dizektori]

Contoh:

cd project untuk masuk ke dalam direktori
:rroject.

cd .. (l~uk keluar ,:<etu d.irektori/masuk
"1::\\tn:·i pJrent (im.:.uk).

cd project/src r; ..·"uk ke da!am irektori

6. Perintah untuk membuat dird

Sintaks: mkdir [direktcn.ij

Contoh:

rnkdir project untuk membuat dire:;;t.:.r~

rnkdir .. /project untuk membuat subdin~
ject pada direktori parent.

10

it

mkdir project/src untuk membuat subdirektori src
pada direktori project

7. Perintah untuk menghapus file atau direktori

Sintaks: r.m [opsi] [~e/direktori]

Contoh:

nn filel . txt untuk menghapus filel.txt.

nn .. /filel. txt untuk menghapus filel.txt pada
direktori parent.

rm -R project/src untuk menghapus subdirektori src
pada direktori project secara rekur-
sif.

Opsi yang sering dipakai dalam perintah rm antara lain:

-f untuk menghilangkan informasi dan konfirmasi
sekaligus membatalkan Fka target tidak ada.

-r, -R untuk menghapus direktori secara rekursif.

untuk menampilkan konfirmasi sebelum menghapus.

-v menampilkan apa yang sudah dilakukan.

-d untuk menghapus unlink file maupun direktori yang
belum kosong (hanya bisa untuk root j super user)

--help menampilkan help singkat tentang rm.

--version untuk menampilkan versi dari rm.

8. Perintah untuk memindah file atau direktori.

Sintaks: mv [opsi] [source] [target]

Contoh:

mv filel . txt filenew. txt untuk mengganti nama filel.txt
menjadi filenew.txt.

mv filel. txt src/filenew. txt untuk memindah (move) filel.txt ke
dalam direktori src dan mengubah
namanya menjadi filenew.txt

11

I

Opsi yang sering dipakai dalam perintah rm antara lain:
-f untuk menghilangkan konfirmasi sebelum overwrite
-i untuk menampilkan konfirmasi.
-v menampilkan apa yang sudah dilakukan.
--help menampilkan help singkat tentang mv.
--version untuk menampilkan versi dari mv.

12

Dasar-Dasar

Pemrograman c

Pemograman GTK+ membutuhkan pengetahuan bahasa C yang cukup.
Anda dapat mempelajarinya dalam bah ini.
Secara garis besar struktur dasar dari bahasa C meliputi:
1. Praprosessor
2. Prototipe fungsi
3. Variabel
4. Fungsi
Bentuk program C tampak seperti ilustrasi berikut:
I* -------------------- *I
I* Bentuk Program C *I <-- bentuk komentar
I* -------------------- *I
#include <stdio. h> <------ praprosessor
float jumlah (float x, float y) ; <- prototipe fungsi
main () <-------------- fungsi

int a 6;

13

int b = 3; <-------------- variabel

float c;

float jumlah(float x,float y) ;<- fungsi
Penulisan library selain diapit dengan tanda < > juga dapat diapit
menggunakan tanda petik ganda" ", misal #include "stdio.h".
Program C pada hakekatnya merupakan susunan atas beberapa fungsi.
Program C paling sederhana harus memiliki minimal satu buah fungsi.
Komentar dipakai untuk memberikan penjelasan atau keterangan di
dalam baris program. Teks yang ditulis sebagai komentar tidak akan
dikompilasi. Adapun salah satu tujuan pemakaian komentar dalam
sebuah program adalah agar programer atau orang lain yang membaca
source program mengetahui fungsi dari script yang kita tuliskan.
Dalam pemrograman C, untuk menuliskan sebuah komentar dipakai

tanda 1*, diikuti dengan komentar, dan diakhiri dengan tanda *I.

Penulisan komentar pada C bisa dengan cara mengapit komentar
menggunakan /* komentar *I atau sebelum menulis komentar

didahului dengan I/ komentar.

Bahasa C membutuhkan titik koma (semicolon) di belakang setiap
statement. printf merupakan fungsi standar C dipanggil dari fungsi
rna in. \ n memberikan baris barn dalam output.
Elemen dasar dari pemograman C sama dengan pemrograman lain, yaitu:
1. Pengenal
2. Kata kunci
3. Tipe data dasar
4. Variabel
5. Konstanta
6. Operator
7. Pemyataan
14

r ytr 'J ..

2. 1 Pengenal

Pengenal atau identifier merupakan nama yang digunakan sebagai
tempat untuk variabel, fungsi, dan konstanta yang didefinisikan
oleh pemrogram. Ada ketentuan-ketentuan khusus yang harus
diperhatikan dalam pendeklarasian variabel pemrograman C,
seperti:
1. Nama variabel harus diawali dengan huruf atau karakter garis

bawah (_), selanjutnya dapat diikuti dengan huruf maupun angka
atau tanda garis bawah.
2. Nama variabel tidak boleh diawali dengan angka.
3. Nama variabel tidak boleh menggunakan operator-operator arit-
matika seperti +, -,/,*,dan karakter-karakter khusus seperti :, ;, #,
@, dan sebagainya.
4. Jika nama variabel terdiri atas dua kata atau lebih, maka antarkata
tidak diperbolehkan menggunakan spasi.
5. Nama variabel tidak boleh menggunakan kata-kata yang telah
memiliki arti khusus dalam bahasa C.
6. Penggunaan huruf kecil dan huruf besar dibedakan.
7. Panjang maksimal suatu variabel adalah 32 karakter sehingga
jika mendeklarasikan suatu variabel yang panjangnya lebih dari
32 karakter, maka secara otomatis sistem tetap akan mengenali
sepanjang 32 karakter saja.

2.2 Kata Kunci

Bahasa C merupakan bahasa yang hanya mempunyai 32 kata kunci
(keywords), seperti terlihat pada Tabel 2.1.

15

e

Tabel 2.1 Kata Kunci

auto dauklle inL. at:ruc.t
break lonq
c.ase el.!Je register ll'lfitch
char enum t:ypedef
c.on.st return
c.ontizlue extet:n .short union
float .signed unsign"d
default far sizeof void
do static.
gate volatile
if whil..

~~ 2.3 Tipe Data Dasar
~
Menurut jenisnya, data dapat dibagi menjadi empat tipe data dasar,
yaitu:
1. Tipe integer.
Variabel bertipe integer digunakan untuk menyimpan data-data
bernilai bilangan bulat.
2. Tipe float.
Variabel bertipe float digunakan untuk menyimpan data-data ber-
nilai real.

3. Tipe char.
Variabel bertipe char digunakan untuk menyimpan data-data
berupa karakter, yakni huruf, simbol, dan angka.

4. Tipe tak bertipe (void).
Variabel ini digunakan apabila suatu fungsi tidak menghasilkan
nilai.

Tipe dasar dari bahasa C diperlihatkan pada Tabel 2.2.

Tabel 2.2 Tipe Data Dasar

16

Ifloat 4 ~-3.2xl<J381 +3.2x1038 1

double 4 . -1.7x10308 • .

Bila kita menggunakan Pascal, maka padanan tipe data dengan Pascal

dapat dilihat pada Tabel2.3.

Tabel 2.3 Perbandingan Tipe Data Dasar

2.4 Variabel

Fungsi variabel dalam program adalah menyimpan suatu nilai
tertentu di mana nilainya dapat diubah-ubah. Variabel merupakan
nama tempat penyimpanan data dalam memori sesuai dengan
jenis datanya. Dalam menuliskan program yang kompleks, pasti
memerlukan variabel. Pendeklarasian variabel dalam bahasa C
mempunyai sintaks sebagai berikut:

Type variable list;
Type merupakan tipe data dari variabel tersebut, dan variable_list
bisa berisi satu atau lebih nama variabel yang dipisahkan dengan
tanda kama(,). Perhatikan contoh berikut:

int i, j, l;
double laba, rata_rata, rugi;
char huruf;
Variabel dapat dideklarasikan dalam tiga tempat, yaitu di dalam fungsi,

di dalam parameter fungsi, dan di luar seluruh fungsi. Jika variabel

ditempatkan di atas fungsi main (), maka variabel tersebut merupakan
variabel global; sedangkan variabellokal terletak di dalam suatu fungsi.

17

2.4. 1 Variabel Lokal

Variabel yang dideklarasikan di dalam sebuah fungsi dinamakan
variabel lokal. Variabel lokal hanya bisa dipakai oleh fungsi yang
mendeklarasikannya. Variabel lokal hanya ada jika fungsi yang
mendeklarasikan dipanggil atau dieksekusi dan akan dihancurkan
atau didestroy saat keluar dari fungsi tersebut.
Contoh:

void fungsil(void)

int x;
X = 10;

void fungsi2(void)

int x;
X = 20;

Dalam contoh di atas, variabel x dideklarasikan dua kali, yaitu pada
fungsil dan fungsi2. Nilai x saat pindah dari fungsil ke fungsi2
tidak akan mempengaruhi nilai variabel x di fungsi2, begitu pula
sebaliknya.

2.4.2 Variabel Global

Tidak seperti variabellokal, variabel global dapat dipakai oleh semua
fungsi dalam sebuah program. Variabel global dideklarasikan di luar
seluruh fungsi. Nilai variabel global akan dipertahankan sampai
program selesai dijalankan atau sampai ada fungsi yang mengubah
nilainya.
Contoh:

#include <stdio.h>

18

II

int nilai;
/* nilai merupakan variabel global */

void fungsi1(void);
void main(void)

nilai = 100;
fungsi1();

void fungsi1(void)

print£ ("Nilai variabel %d",nilai);
/* akan menghasilkan 100 */

Dalam contoh di atas, variabel nilai merupakan variabel global.
Nilai dari variabel waktu sampai ke fungsil adalah 100. Hal ini
menunjukkan bahwa nilai sebuah variabel global akan dipertahankan
meskipun keluar dari sebuah fungsi.

2.5 Konstanta

Konstanta merupakan nilai tetap, pendeklarasiannya mmp
dengan variabel, hanya nilai dari konstanta tidak dapat berubah.
Pendeklarasiannya sebagai berikut:

int const 1;
const int 2;
Pendeklarasian konstanta biasanya memakai praprosessor #define.
Misal: #define PAJAK 0. 05, penulisan define tidak diakhiri
dengan titik kama.

2.6 Operator

Operator merupakan simbol khusus yang merepresentasikan perhi-
tungan sederhana seperti penambahan dan perkalian. Nilai yang di-

19

gunakan oleh operator disebut operand. Ekspresi merupakan kombi-
nasi dari operator dan operandnya. Dalam sebuah eksekusi program,
suatu ekspresi akan dievaluasi sehingga menghasilkan suatu nilai
tunggal. Ada beberapa tipe operator di dalam bahasa pemrograman
C; misalnya operator penunjukan, aritmatika, relasional, logika, dan
pernyataan.

2.6. 1 Operator Penunjukan (Assignmen~

Memberikan nilai dari bagian sebelah kanan operator ke bagian sebelah
kiri operator. Operator penunjukan dalam bahasa C menggunakan tanda
sama dengan, "=". Tem1asuk +=, -=, *=, /=,%=,dan**=.
Contoh:

x = x + 1 /* sama artinya x += 1 */

X = 5;
X = y 5; /* multiple assignment */
X = X + y;

2.6.2 Operator Aritmatika

Dalam bahasa C dan bahasa pemrograman lainnya dikenal standar
aritmatika yang menjadi simbol-simbol matematika, seperti:
1. Penambahan menggunakan simbol +(plus).
2. Perkalian rnenggunkan simbol * (asterik).
3. Pengurangan menggunakan simbol- (minus).
4. Pembagian menggunakan simbol / (garis miring); digunakan un-

tuk data bertipe integer maupun float.
5. Sisa hasil bagi atau modulus menggunakan simbol persen, %;

hanya dapat dilakukan untuk tipe integer.
6. Pemberian parenthesis atau tanda kurung dapat juga dilakukan

dalam bahasa C.

Namun, berbeda dengan beberapa bahasa pemrograman lain, bahasa
C mengenal adanya increment ++ dan decrement --. Tanda increment

20

dan decrement dapat berupa pre-fixed maupun post-fixed. Perhatikan
contoh berikut:

X = 5 - 3; /* menghasilkan 2 */
X = 5 + 3; /* menghasilkan 8 */
X = 5 * 3; /* menghasilkan 15 *I
X = 5 I 3; /* menghasilkan 1 */
X = 5 % 3; /* menghasilkan 2 *I

x-- /* sama dengan x = x - 1 atau -- x *I
x++ /* sama dengan X = X + 1 a tau ++x *I

2.6.3 Operator Relasional

Untuk membandingkan kesamaan dua nilai digunakan tanda
operator == (bukan = ) dan menghasilkan sebuah ekspresi boolean.
Operator-operator lainnya adalah:
1. x ! = y ( x tidak sama dengan y )
2.x > y ( x lebih besar dari y )
3.x < y ( x lebih kecil dari y )
4.x >= y ( x lebih besar atau sama dengan y )
5.x <= y ( x lebih kecil atau sama dengan y )

Simbol-simbol C berbeda dari simbol matematika. Ingat operator =
adalah assignment operator, sedangkan == adalah comparison operator.

2.6.4 Operator Logika

Operator logika dalam C terdiri atas:
1. Operator and menggunakan & &.
2. Operator or menggunakan I I .
3. Operator tidak menggunakan not.

2.7 Pernyataan

Pemyataan (statement) adalah satuan instruksi atau perintah yang

21

we·rl

akan dikerjakan selama eksekusi program berlangsung. Beberapa
jenis pernyataan misalnya: pernyataan penunjukan, pemanggilan
fungsi, dan pernyataan pengendalian program.

2.8 Operasi Input dan Output

Memasukkan dan menampilkan data merupakan hal yang paling sering
dilakukan dalam sebuah program. Dalam bahasa C, untuk mengerjakan
input dan output dibutuhkan praprosessor berupa #include <stdio.h>.
Ada beberapa fungsi input output dasar dalam bahasa C, di antaranya
adalah fungsi putdUlr dan getciUlr.
Fungsi putchar digunakan khusus untuk menampilkan sebuah karakter
ke layar, sedangkan fungsi getchar digunakan untuk membaca sebuah
karakter.
Selain fasilitas dasar 1/0, bahasa C juga mempunyai fasilitas 1/0 yang
terformat, yaitu fungsi scan f dan print f. Terformat, artinya lebar dan
bentuk tampilan dapat diatur. Tabel2.4 menyajikan penggunaan fasilitas
1/0 terformat.
Tabel 2.4 Fasilitas 1/0 Terformat

Simbol % dinamakan momen, atau sering juga disebut penentu format.
Momen dipakai untuk mengeluarkan nilai dari suatu variabel dengan
tipe tertentu. Antara tanda % dan format dapat diberikan tanda minus
22

(-) atau angka integer. Tanda minus dapat menjadikan karakter rata kiri,
sedangkan angka integer mequnjukan lebar field. Sedangkan tanda m.n,
m berarti lebar field dan n menunjukkan digit presisi setelah titik. Misal:
1. %ns artinya menampilkan l)asil bertipe string rata kanan selebar n.

'

2. %-ns artinya menampilkan hasil bertipe string rata kiri selebar n.
3. %n. ms artinya menampilkan hasil bertipe string rata kanan, m buah

karakter pertama saja dengan lebar n posisi.

2.8.1 Fungsi printf

Fungsi print£() merupakan fungsi yang dipakai untuk menampilkan
berbagai jenis data yang dapat diformat karena fungsi ini dapat
menggunakan kode-kode format, yaitu karakter-karakter konversi.
Bentuk umum dari fungsi ini adalah:

printf("string kontrol",argumen1,argumen2, ... );
string kontrol dapat berupa keterangan beserta penentu format (seperti
%d, %f, dan lain-lain). Argumen adalah data yang akan ditampilkan;
dapat berupa variabel, konstanta, maupun ungkapan. Berikut adalah
contoh program untuk menampilkan karakter terformat:

/* Contoh Pemakaian printf */
#include <stdio.h>
main()

int tahun = 2004;
float pi = 3.14159;

printf(" Sekarang Tahun %d\n", tahun);
printf("Nilai pi %.3f\n", pi);
printf(" =====================\n");
printf(" %-7s %-Ss \n", "TAHUN", "2004",

);

23

t: P.$r,ogr.amant.G.Witdi&GI)IW#linuxdxleng.gunakan;Giode'tr[£''d·· ''*ftAJ

Tanda \n digunakan untuk ganti baris (line feed).
Format %d digunakan untuk menampilkan isi variabel tahun yang
bertipe int.
Format %• 3 f digunakan untuk menampilkan floating point sebanyak 3
karakter di belakang koma (,).
Format %- 7 s digunakan untuk menampilkan format rata kiri dengan
Iebar field 7.

2.8.2 Fungsi scanf

Fungsi scanf() merupakan fungsi yang digunakan untuk memasukkan
berbagai jenis data, mirip dengan printf. Pada contoh-contoh program
di atas, data sudah ditentukan dari dalam program; sedangkan pada
contoh berikut, program akan membaca masukan dari keyboard.
Artinya, pemakai harus memberi masukan melalui keyboard.
Contoh pemakaian fungsi scanf dapat dilihat pada program berikut:

/* Contoh Pemakaian scanf */
#include <stdio.h>
main()

float a,b,c;
printf("Masukkan nilai A=");
scanf("%f", &a);
printf("Masukkan nilai B =");
scanf ("%f", &b);

c = a + b;

printf("Hasil penjumlahan %f dan %f adalah
%.2f\n",a,b,c);

24

I

2.9 Array dan String

Dalam beberapa literatur array sering diartikan larik. Array
merupakan koleksi data dengan setiap elemen data menggunakan
nama yang sama dan tiap elemen data bertipe sama. Setiap elemen
array dapat diakses melalui indeks array. Suatu array berdimensi satu
dideklarasikan dengan bentuk umum berupa:

tipe nama_var[ukuran]

Pengaksesan array dapat dilihat pada program berikut:

/* Contoh Pemakaian Array */
#include <stdio.h>
int main ()

{

int index;
int jumlah[12];
float harga [12];
for (index=O;index<12;index++)

{

jumlah[index]=index+10;
harga[index]=12.0*(index+7);

} jumlah[index

for (index=O;index<12;index++)
printf("%5d %5d %10.3f\n", index,
] , harga [index]);

}

Tampilan program:

0 10 84.000 .........................
1 11 96.000
2 12 108.000 25
3 13 120.000
4 14 132.000
5 15 144.000
6 16 156.000
7 17 168.000
8 18 180.000
9 19 192.000
10 20 204.000
11 21 216.000

• me••lP,JlMr,ogr,aman&C>.WkdiaGill:IWblioux,,Mengguoakao.,Giade&«e~'t'&trc

Perlu diperhatikan bahwa untuk memakai array yang ukuran
elemennya tidak ditentukan dari dalam program melainkan oleh si
pemakai melalui keyboard, maka untuk pendeklarasian array, seperti
int data[n], nilai dari variabel n-nya dimasukkan melalui keyboard.

/* Contoh Pemakaian Array 1 Dimensi */
#include <stdio.h>
int main ()

{

int n, index;
int data [n];
float rata, jumlah;
printf ("Berapa data yang tersedia? ");
scanf("%i",&n);
jumlah=O;
for (index = 0 ; index < n ; index++)

{

printf("Masukkan data ke- %i ",index+1);
scanf("%i",&data[index]);
jumlah = jumlah + data[index];

}

rata=jumlah/n;
printf("Rata-rata dari %d data di atas adalah
%.2f \n",n,rata);
return 0;

Tampilan program:
Berapa data yang tersedia ? 6
Masukkan data ke- 1 42
Masukkan data ke- 2 38
Masukkan data ke- 3 75
Masukkan data ke- 4 23
Masukkan data ke- 5 15
Masukkan data ke- 6 27
Rata-rata dari 6 data di atas adalah 36.67

Selain array satu dimensi, terdapat juga array dua dimensi; misalnya
untuk implementasi operasi matriks. Walaupun nantinya ordo yang

26


digunakan sesungguhnya lebih kecil dari batasan awal, ukuran array
berordo dua ditentukan dahulu (memesan alokasi memori) saat
pendeklarasian. Hal ini supaya matriks hasil operasi dapat dicetak
dengan benar.

/* Contoh Pemakaian Array 2 Dimensi */
#include <stdio.h>
int main ()

{

int n, m,i,j;
int Ml [100] [100];
in t M2 [ 10 0] [ 10 0] ;
int M3 [100] [100];

printf("Penjumlahan 2 Matriks\n");
printf ("Matriks berordo = ");
scanf("%i,%i",&n,&m);

for (i 0; i < n; i ++)

for (j = 0; j < m; j++)

printf("Masukkan elemen M1[%i,%i] ",i+1,j+1);
scanf ("%i", &M1 [i] [j]);

for (i 0; i < n; i ++) ",i+1,j+1);

for ( j = 0; j < m; j ++)

printf("Masukkan elemen M2[%i,%i]
scanf("%i",&M2[i] [j]);

}
}

for (i 0; i < n; i++)

27

li.t

for (j = 0; j < m; j++)
M3 [ i) [ j ) = Ml [ i) [ j ) +M2 [ i) [ j ) ;

}

printf("Hasil Penjumlahan 2 Matriks\n");
for (i 0; i < n; i++)

for (j = 0; j < m; j++) %i\n",i+1,
printf("Elemen M3[%i,%i)
j +1, M3 [ i ) [ j ) ) ;

}

}

Tampilan program:

Penjumlahan 2 Matriks

Matriks berordo = 3,3

Masukkan elemen M1[1,1) 2
Masukkan elemen M1[1,2) 2
Masukkan elemen M1 [ 1, 3) 2
Masukkan elemen M1 [ 2, 1) 2
Masukkan elemen M1[2,2) 2
Masukkan elemen M1[2,3] 2
Masukkan elemen M1 [3, 1) 2
Masukkan elemen M1 [ 3, 2] 2
Masukkan elemen M1 [ 3, 3] 2
Masukkan elemen M2 [ 1, l] 5
Masukkan elemen M2 [ 1, 2] 5
Masukkan elemen M2[1,3] 5
Masukkan elemen M2[2,1] 5
Masukkan elemen M2[2,2] 5
Masukkan elemen M2[2,3] 5
Masukkan elemen M2[3,1] 5
Masukkan elemen M2[3,2] 5
Masukkan elemen M2[3,3] 5
Hasil Penjumlahan 2 Matriks
Elemen M3 [ 1, 1] 7
Elemen M3[1,2] 7
Elemen M3[1,3] 7
Elemen M3 [ 2, 1] 7

.........................

28

I

Elemen M3[2,2] 7
Elemen M3[2,3] 7
Elemen M3[3,1] 7
Elemen M3[3,2] 7
Elemen M3[3,3] 7

String merupakan kumpulan dari karakter, biasanya berupa kelompok
huruf dalam alphabet. String didefinisikan sebagai kumpulan dari

tipe data char yang diakhiri dengan null character. Array merupakan

kumpulan dari data yang bertipe sama. String merupakan salah satu
kasus khusus dari array sebab string merupakan array dengan tipe
data char.

Pemasukan data string dari keyboard ke dalam suatu variabel dapat
menggunakan fungsi gets()-bentuk umumnya: gets (nama
array)- atau scan£() dengan bentuk scanf("%s", nama_array).
Sedangkan untuk menampilkan pada layar dapat memakai fungsi
print f. Perhatikan contoh berikut:

/* Contoh Pemakaian String */
#include <stdio.h>
int main ()

{

char name[lO]; /* mendefinisikan string*/

name[O] 'G' ;

name[l] 'N' ;

name[2] 'U' ;

name[3] 'I' ;
name[4]
, L, ;

name[S] , I' ;

name[6] 'N' ;

name[7] 'U' ;

name[8] 'X' ;

name[9] 0; /* Null character - end of text

*/

printf("Nama Sistem Operasi adalah %s\n",

name);

printf("Satu huruf dari nama tersebut %c\n",

29

11

name[4]);
printf("Bagian dari nama tersebut adalah %s\

n", &name[4]);

Tampilan program:
Nama Sistem Operasi adalah GNU/LINUX
Satu huruf dari nama tersebut L
Bagian dari nama tersebut adalah LINUX

Bandingkan dengan cara pemasukan data pada program di bawah
ini:

/* Contoh Pemakaian String */
main()

{

char nama[l7]; /* mendefinisikan string*/
printf(" Masukkan nama Anda: ");
gets(nama);
printf(" Nama Anda %s\n",nama);

}

Dari program di atas akan muncul pesan: the 'gets' function
is dangerous and should not be used. Fungsigets mempunyai
masalah dengan keamanan. Jadi, fungsi ini sebaiknya tidak
digunakan.

/* Contoh Pemakaian String */
main()

{

char nama[l7]; /* mendefinisikan string*/
printf(" Masukkan nama Anda: ");
scanf("%s",&nama);
printf(" Nama Anda %s\n",nama);

}

Tampilan program:

30

I

Masukkan nama Anda: NAUFAL
Nama Anda NAUFAL

Untuk mengambil masukan dari keyboard dapat digunakan fungsi
lainnya seperti scan f atau get char. Perhatikan contoh berikut:

/* Contoh Pemakaian String */
#include <stdio.h>
main()

{

char line[30];
int ch, max=30, nch=O;
max = max - 1;
system("clearn); /* membersihkan layar */
printf(" Masukkan nama Anda: ");
while ( (ch = get char() ) ! = EOF)

{

if (ch=='\n') break;
/* setelah tombol enter ditekan akan di-break
*/

if (nch<max)

{

line [nch) ch;
nch = nch + 1;

line [nch) = '\0'; */
/* supaya karakter terakhir tidak dieksekusi

printf(" Nama Anda adalah = %s \nn,line);

}

Tampilan program:
Masukkan nama Anda: EMA UTAMI, S.Si, M.Kom
Nama Anda adalah = EMA UTAMI, S.Si, M.Kom

2. 10 Struktur

Suatu objek benda biasanya mempunyai beberapa atribut yang perlu
dicatat. Seseorang yang namanya Naufal setidaknya mempunyai
atribut nama, tanggal lahir, pekerjaan, status, alamat,

31

"
dan lain-lain, sebagaimana tertulis pada kartu identitasnya. Apabila
Nauf a 1 menjadi seorang mahasiswa, maka ia akan mempunyai atribut
lain. Misalnya nomor mahasiswa, jurusan, program studi,
matakuliah yang diambil, nilai-nil'ai matakuliah, IPK,
dan lain-lain. Bila Naufal menjadi atlit, mungkin atribut yang akan
dimilikinya adalah cabang olah raga, daftar prestasi, dan
j adwal pertandingan tahun ini. Jadi, untuk satu benda yang
sama dimungkinkan mempunyai atribut yang berbeda-beda sesuai
dengan dari sudut mana objek itu dipandang. Untuk mengumpulkan
semua atribut atau data-data yang jenisnya tidak sama, dapat
menggunakan struktur data STRUKTUR.

Struktur merupakan kumpulan elemen-elemen data yang
digabungkan menjadi satu kesatuan. Masing-masing elemen data
tersebut dinamakan field atau elemen struktur. Secara umum, jumlah
field sebuah struktur adalah tidak terbatas. Namun untuk suatu objek,
atribut-atribut yang perlu dicatat akan terseleksi sesuai keperluannya.
Yang harus kita ketahui adalah bagaimana menentukan field-field
yang perlu dicatat untuk suatu objek benda. Field data tersebut dapat
memiliki tipe data yang sama ataupun berbeda. Meskipun field-field
tersebut berada dalam satu kesatuan struktur, tetapi masing-masing
field tetap dapat diakses secara individual.

Struktur digunakan untuk mengelompokkan beberapa informasi yang
berkaitan dengan sebuah kesatuan. Field-field tersebut digabungkan
menjadi satu struktur dengan tujuan untuk memudahkan.

Array dan struktur mempunyai persamaan serta perbedaan.
Persamaan antara array dan struktur adalah alokasi memori untuk
elemen-elemennya sudah ditentukan sebelum program dijalankan
(statis). Sedangkan perbedaan antara array dengan struktur adalah
sebagai berikut:

1. Array adalah struktur data yang tipe data dari elemen-elemen-
nya harus sama (homogen) dan elemen-elemennya diakses atau
diidentifikasi menggunakan indeks.

2. Struktur adalah struktur data yang tipe data dari elemen-elemen-

32

r

nya tidak harus sama (heterogen) dan elemen-elemennya diakses
atau diidentifikasi menggunakan identifier atau nama variabel.
Contoh deklarasi struktur:

struct mahasiswa

char nim [10];
char nama[25];
char prog[2];
float IPK;

};

Pendeklarasian struktur selalu diawali dengan kata kunci struct dan
diikuti dengan nama dari struktur. Field-field yang dikumpulkan dalam
sebuah struktur diletakkan di antara tanda kurung kurawal buka { dan
kurung kurawal tutup }, kemudian diakhiri dengan tanda titik koma (;).

Contoh lain:

struct data tanggal

int tanggal;
int bulan;
int tahun;

};

Deklarasi struktur di atas mendefinisikan tipe struktur bemama data_

tanggal yang terdiri atas tiga elemen: tanggal, bulan, dan tahun. Di dalam

struktur tersebut terdapat field-field yang bertipe sama sehingga dapat

dideklarasikan bersamaan dengan dipisahkan oleh tanda kama~). Jadi,

kita tidak perlu menuliskan tipe datanya berulang-ulang.

struct data_tanggal tahun;

{

int tanggal, bulan,

};

Contoh program:

/* Contoh Pemakaian Struktur */
#include <stdio.h>
#include <math.h>
main()

{

33


Click to View FlipBook Version
Previous Book
Pemrograman Aplikasi Android dengan Sencha Touch
Next Book
Strategi Tembus Perguruan Tinggi Favorit IPS Terpadu