“e . ~ i}
Got |
iv
,
GNU/LINUX
Suwanto Raharjo, S.Si., M.Kom.sesereeseeee HE
Kata Pengantar .........cssssssssssesesee
1.1 Menggunakan Linux ...
1.2 Perintah-Perintah Dasar di Linux ..
1.3 Text Editor di Limux ....cssseccssscsernmsrcsennmsssssnmassssansacssssnaanssee 5
1.4 Latihan ....eeeseesseessees seer = 26
Bab 2 Bahasa Pemrograman C
1.1 Struktur Bahasa Cw
2.2 Kompilasi
BB LatiM an weeessesesseeennsecasesnssssssnssnnesssnseesnetssntessssaesanaesssnssssnsesnasesas 12
Bab 3 Dasar-Dasar Pemrograman C ..
3.1 Tipe Kesalahan....... .
3.1.1 Kesalahan Sintaks .........sssscasesnsssnssscnssassnnsssassssensenes 14
9.1.2 Kesalahan Run-time ..sssscssssscsscceccecssceessssmassssnssssnnsnssssseee 14
3.1.3 Kesalahan Logika ....
B.2 Elemen Dasar Cu.....csssssccssssssecsnsssssecsnssssecsssasseesansanssssesssasessses 15
3.2.1 Pengenal
3.2.2 Kata KUNG 0. ssessaessnsnssenesensssnssanssnsesnsesasssessnssnsenasenes 16
3.2.3 Tipe Data Dasar
3.2.4 Variabel ...sccssssseecsssnssessssssesssssssessssnsssssssnnsssssennsnsssssssess 18
8.2.5 Konstanta es ccsnessnnescnesennsssnassnnsssnacsssncssansiesnasesns 21\ x i Struktur Dato Menggunakan C di GNU/LINUX
3.2.6 Operator ....
3.2.7 Pernyataan
3.3 Latihan
Bab 4 Operasi Input Output
4.1 Fungsi printf ..
4.2 Fungsi scanf ..
4.3 Contoh-Contoh Soal
4.4 Latihan
Bab 5 Pengendalian Program
RAD HUK ST cr crscarnmn tra enRM aE
6.2 Instruks? SWHCH ssssssccsssessconsnsessesnssssiesissssesessassssseisnissseressssssce 47
5.3 Contoh-Contoh Soa .... oor
G4 LARA ct cssseesessssesncreneeesenntsnnscasnsnsonnasitosersanssssomnstsarisnnstsonisssss SD
Babs. 6: Perulan gan ‘sa. cinssisencesvinionsnnessiensaroean: sree OT
AD Instr POP scion ncnaiocoiaenma SE
6.2 Instruksi while 60
6.3 Instruksi do-while
6.4 Penggunaan break dan continue .
6.5 Contoh-Contoh Soal
6.6 Latihan ...
Bab 7 Array dan String.....
7.1 Contoh-Contoh Soa .ssssssssessesssssssssssncsssssesssassessssssnssssssssssssess 99
72 Latta ssescssssessecsssseornsessacsrasscenssesssercasesnaesssaassseeessassessssassce TOT,
Bab 8 Struktur
8.1 Definisi Strul
8.2 Contoh-Contoh Soal ...sssssssecssssesssssssesesssssasssesensesssesssssatsssrsssse 112
8.3. Latihan JDaftar Isi
Bab 9 Subprogram .
9.1 Rekursi ..
9.2 Contoh-Contoh Soal
Bab 10 Sorting ..
10.1 Metode Selection Sort
10.1.1 Pengurutan Naik (Ascending)
10.1.2 Pengurutan Turun (Descending)
10.2 Metode Bubble Sort ...
10.2.1 Pengurutan Naik (Ascending)
10.2.2 Pengurutan Turun (Descending)
10.3 Metode Insertion Sort
10.3.1 Pengurutan Naik (Ascending)
10.3.2 Pengurutan Turun (Descending)
10.4 Metode Merge Sort ....
10.4.1 Pengurutan Naik (Ascending)
10.4.2 Pengurutan Turun (Descending)
10.5 Latihan ...
Bab 11 Searching...
11.1 Metode Sequential Search
11.1.1 Pencarian pada Array Belum Terurut ..
11.1.2 Pencarian pada Array Terurut
11.2 Metode Binary Search
11.3 Latihan ...
Bab 12 Stack...
12.1 Single Stack.
12.1.1 Operasi- 9
12.1.2 Contoh Soal Single Stack
12.1.3 Latihan Single Stack ..
i220 DoUbIe Steck ee
12.2.10perasi-Operasi Double Stack
12.2.2 Contoh Soal Double Stack.
12.2.3 Latihan Double Stack ...& et Struktur Dato Menggunakan C di GNU/LINUX
Bab 13 Queue ........00008
13.1 Implementasi Queue dengan Linear Array..
13.1.1 Operasi-Operasi Queue dengan Linear Array
13.1.2 Contoh Soal Queue dengan Linear Array
13.1.3 Latihan Queue dengan Linear Array...
13.2 Implementasi Queue dengan Circular Arra‘
13.2.1 Operasi-Operasi Queue dengan Circular Array
13.2.2 Contoh Soal Queue dengan Circular Array .
13.2.3 Latihan Queue dengan Circular Array.....
Bab 14 Pointer dan Linked List
14.1 Operasi-Operasi Pointer
14.2 Alokasi Dinamis pada Poi
14.3 Contoh Program Pointer
14.5 Linked List
14.5.1 Operasi-Operasi Linked Li:
14.5.2 Contoh Soal Linked List...
14.5.3 Latihan Linked List...
Daftar PuStaka ........sceescsessseseseeseseteeees wenesbdansnsnbes 391
Profil PENUlis .......:.cscsssseeessseeessseseeseeesseeseseee an 3931.1 Tampilan Desktop di Linux
1.2 Text Mode di Linux ..
1.3 Prompt Login di Linux
1.4 Shell Prompt ....
1.5 Beberapa Text Editor di Linux .
2.1 Langkah Interpreter .
2.2 Langkah Compiler ...
12.1 llustrasi Single Stack
12.2 llustrasi Double Stack
13.1 llustrasi Queue ........
13.2 llustrasi Queue dengan
13.3 llustrasi Circular Array .
13.4 Ilustrasi Queue dengan Circular Array
14.1 Ilustrasi Linked List ...........0068
14.2 Menambah Simpul di Belakang
14.3 Menambah Simpul di Depan
14.4 Menambah Simpul di Tengah
14.5 Menghapus Simpul di Depan .
14.6 Menghapus Simpul di Tengah
14.7 Menghapus Simpul di Belakang
14.8 Mencetak List dengan Membaca Maju
14.9 Mencetak List dengan Membaca Mundir ..
13.10 Mencari Data pada List
3173.1 Tabel Kata Kunci
3.2 Data dalam Pemrograman ...
3.3 Tabel Tipe Dasar ...........
3.4 Perbandingan Tipe Dasar
4.1 Fasilitas /O Terformataa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Ww
atau banyak pengguna menjalankan task yang sama) semua task dapat
membagi pakai memori yang sama. Metode ini dinamakan copy-on-write
pages yang menjadikan penggunaan RAM menjadi lebih efisien.
3. Linux juga mendukung demand paging, yaitu hanya akan meload suatu
page jika diperiukan.
4. Penggunaan swap space yang akan membantu suatu komputer dengan
RAM yang kecil.
5. Dukungan terhadap dinamically shared library yang dapat memperkecil
ukuran dari program.
Struktur Data Menggunakan C di GNU/LINUX
Linux juga mendukung berbagai arsitektur komputer seperti Alpha, Mac,
dan lainnya, serta telah mendapat dukungan dari perusahaan komputer besar seperti
IBM dan Hewlett Packard. Umumnya Linux digunakan sebagai server dalam jaringan,
namun kini Linux digunakan untuk keperluan sehar-hari seperti mentik, menghitung,
menggambar, dan bermain games di lingkungan dekstop yang telah semakin banyak.
Tampilan Linux yang digunakan sebagai desktop telah dapat mengimbangi sistem
operasi yang telah ada seperti Microsoft Windows. Tampilan desktop dari Linux tampak
pada Gambar 1.1.
Gambar 1.1 Tampilan Desktop di Linux
Tampilan Gambar 1.1. menunjukkan bahwa Linux dapat menjalankan berbagai
aplikasi yang secara prinsip sama dengan aplikasi yang dijalankan pada sistem operasi
lain, seperti Mozilla sebagai web browser, OpenOffice untuk aplikasi perkantoran, gimp
untuk manipulasi gambar, dan lain-lain. Selain memiliki tampilan desktop yang cantik,aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Nee + S poe
14.
Struktur Data Menggunakan C di GNU/LINUX
Gambar 1.5 Beberapa Text Editor di Linux
1.4 Latihan
Instruksi apakah yang berfungsi untuk mengetahui posisi atau home directory?
Instruksi id berfungsi untuk apa?
Sebutkan langkah-langkah untuk membuat login.
Bagaimana caranya mengganti login?
Bagaimana caranya menghapus login?
Bagaimana caranya mematikan login?
Login sudah dibuat, tetapi password belum dibuat. Bagaimana caranya
mengisi atau melengkapi password?
Apabila kita lupa password, bagaimana solusinya?
Bagaimana caranya mengganti password?
Apabila kita akan melengkapi identitas, menggunakan instruksi apa?
Apabila kita akan mengcopy berkas pada direktori yang sama, instruksinya
bagaimana?
Apabila kita akan mengcopy berkas pada direktori yang berbeda yang nama
direktori asalnya juga ikut terkopi dengan nama file copy yang sama, maka
instruksinya bagaimana?
Apabila kita akan mengcopy berkas pada direktori yang berbeda yang nama
direktori asainya tidak ikut terkopi, hanya nama file copy saja (dengan nama
file copy sama) bagaimana?
Apabila kita akan mengcopy berkas pada direktori yang berbeda yang nama
direktori asalnya tidak ikut terkopi, hanya nama file copy saja (dengan nama
file copy berbeda) bagaimana?aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Struktur Data Menggunakan C di GNU/LINUX
float jumlah(float x,float y);<- fungsi
Penulisan library atau praprosessor selain diapit dengan tanda < > juga
main ( )
{
}
Dalam C fungsi main() harus didefinisikan dan pada setiap fungsi yang
ada dalam bahasa C akan memiliki bentuk:
nama_fungsi (parameter)
{
variabel lokal
Cc statement
}
Berikut contoh program dalam bahasa C
[wen eenen nee neeeeneee- */
i* Program Sederhana */aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Struktur Data Menggunakan C di GNU/LINUX
3.1 Tipe Kesalahan
Pemrograman merupakan proses yang kompleks dan tidak menutup
kemungkinan terjadi suatu kesalahan atau error. Berbagai macam kesalahan
dapat terjadi dalam sebuah pemrograman. Kesalahan pemrograman sering
dinamakan bug, sedangkan proses untuk pencarian kesalahan dinamakan dengan
debugging.
Pemrograman kesalahan dapat dibagi menjadi tiga macam, yakni
kesalahan sintaks (syntax error), kesalahan run-time (run-time error), dan
kesalahan logika (/ogic error). Pembagian jenis kesalahan ini dalam pemrograman
Gapat menjadikan proses pencarian kesalahan menjadi lebih cepat.
3.1.1 Kesalahan Sintaks
Bahasa C hanya dapat dieksekusi jika dan hanya jika program tersebut
memiliki sintaks yang telah sepenuhnya benar. Jika tidak, maka proses akan
berhenti dan memberikan pesan kesalahan. Sintaks menunjukkan pada struktur
program dan aturannya. Sintaks dalam bahasa Indonesia, misalnya sebuah
kalimat harus diawali dengan huruf besar dan diakhiri dengan titik. Bila terjadi
kesalahan sintaks dalam bahasa, maka beberapa pembaca tidak akan begitu
mempermasalahkan, tetapi C tidak demikian. C harus ditulis dengan benar tanpa
ada satupun kesalahan sintak.
3.1.2 Kesalahan Run-time
Kesalahan tipe kedua adalah kesalahan run-time, Disebut demikian
karena kesalahan ini tidak akan muncul sebelum program dijalankan, Kesalahan ini
juga sering disebut dengan exception karena kesalahan ini biasanya menunjukkan
sesuatu yang ganjil (dan tidak benar) terjadi.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.a ‘Struktur Data Menggunokan C di GNU/LINUX
Tabel 3.3 Tabel Tipe Dasar
De ae
char 1 5
unsigned char 1 0 255
short int 2 32768 32767
unsigned short int | 2 0 65536
(long) int 4 2 $241
float 4 3.210" +3.2x10%
double _ 4 -1.7x10% +1. 7x10"
Bila kita menggunakan Pascal, maka padanan tipe data dengan Pascal
adalah seperti tertampil pada tabel 3.4.
Tabel 3.4 Perbandingan Tipe Dasar
Char char
unsigned char ~
short int integer
unsigned short int -
(long) int longint
float real
Double extended
3.2.4 Variabel
Fungsi variabel di dalam program adalah untuk menyimpan suatu nilai
tertentu yang dapat diubah-ubah. Variabel dapat dianggap sebagai sebuah tempat
penyimpanan yang dapat diisi oleh suatu data yang isinya dapat berubah-ubah.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.yy Struktur Data Menggunakan C di GNU/LINUX
Operator Penunjukan (Assignment)
Memberikan nilai dari bagian sebelah kanan operator ke bagian sebelah
kiri operator. Operator penunjukan dalam bahasa C menggunakan tanda sama
dengan =. Termasuk: =, dan
Contoh : x =x + 1 sama artinya dengan x += 1.
Je wane neeee een e eee eee e eee */
/* Perhitungan Sederhana */
* by Ema & Wawan */
#include
main ()
{
float p,q.r,s.t:
tl;
pteqtr/s+t;
printf (*Hasil perhitungan p adalah %.0f \n",p);
Contoh pemberian nilai awal pada program di atas bisa disederhanakan
menjadi:
yt = -*/
/* Perhitungan Sederhana */
is by Ema & Wawan f
Jt -e2------------------- = */
#include
main ()
£
float p,g,r,s,tiaa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.‘Struktur Data Menggunakan C di GNU/LINUX
Dalam penggunaan operator, khususnya operator aritmatika, perlu di-
perhatikan urutan prioritasnya. Untuk mengubah urutan prioritas gunakan tanda
kurung buka dan kurung tutup. Perlu diperhatikan bahwa tipe data di sebelah
kiri operator penunjukkan (tanda =) harus sama dengan tipe data ekspresi yang
terdapat di sebelah kanan operator penunjukkan. Misalkan, jika di sebelah kanan
adalah perhitungan aritmatika yang menghasilkan nilai bilangan float, maka varia-
bel yang ada di sebelah kiri harus bertipe float juga.
3.2.7 Pernyataan
Pernyataan (statement) adalah satuan instruksi atau perintah yang akan
cikerjakan selama eksekusi program berlangsung. Sebuah program terdiri dari
sekumpulan pernyataan. Ada beberapa jenis pernyataan di dalam C misainya:
pernyataan penunjukan, pernyataan pemanggilan fungsi, dan pernyataan
pengendalian program.
Contoh pernyataan penunjukan:
c=sart (pow (a, 2) +pow(b,2));
Contoh pernyataan pemanggilan fungsi:
tukar (x,y);
Contoh pernyataan penunjukan yang melibatkan pemanggilan fungsi:
q=keliling(p,1);
Contoh pernyataan pengendalian program:
for (i=1;i<=4;i++)
printf£(*Hello semua\n");aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.go
Struktur Data Menggunokan C di GNU/LINUX
Setelah program di atas dialankan, selama belum di-enter data diinputkan
terus. Untuk menghentikan penginputan tekan Ctrl c sehingga muncul shell prompt.
Selain fasilitas dasar VO, bahasa C juga mempunyai fasilitas VO yang
terformat, yaitu dengan fungsi scant dan printf. Terformat artinya lebar dan bentuk
tampilannya dapat diatur. Tabel 4 merupakan penggunaan fasilitas I/O terformat:
Tabel 4.1 Fasilitas I/O Terformat
é char _| satu karakter
iva int angka desimal
° int angka oktal
x int angka haeksadesimal
na int desimal tak bertanda
s string | String
£ float angka pecahan
e float angka pecahan dalam notasi saintifik
g float | angka pecahan pengganti Sf atau Se tergantung yang
terpendek
Pp alamat memori untuk pointer
& menampilkan persen
Simbol % dinamakan momen, sering juga disebut penentu format. Mo-
men digunakan untuk mengeluarkan nilai dari suatu variabel dengan tipe tertentu.
Antara tanda % dan format dapat diberi (-) tanda minus atau angka integer. Tanda
minus dapat menjadikan karakter rata kiri, sedangkan angka integer menunjuk-
kan lebar field. Tanda m.n dengan m = lebar field dan n = digit presisi setelah titik.
Misal:
1. %ns artinya menampilkan hasil bertipe string rata kanan selebar n.
2. %ns artinya menampilkan hasil bertipe string rata kiri selebar n.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.wy ‘Struktur Data Menggunokan C di GNU/LINUX
Tampilan program:
Masukkan nilai panjang =
Masukkan nilai lebar = 6.
Luas = 63.05
9.7
5
Program berikut adalah untuk menghitung rata-rata dari dua buah data.
[* neneenennneeeeee nnn e- */
/* Menghitung Rerata */
* by Ema & Wawan*/
= */
#include
main()
{
float a,b,hasil;
printf ("Masukan dua buah nilai “\
“dipisahkan dengan koma “);
scanf("$f,%£", &a,&b);
hasil= (a+b) /2;
printf (*Rata-rata =%f\n",hasil);
Tampilan program:
Masukan dua buah nilai dipisahkan dengan koma 7,9
Rata-rata =8.000000 :
4.3 Contoh-Contoh€oal
1. Buatlah program untuk menghitung luas dan keliling lingkaran dengan
besarnya jari-jari lingkaran dimasukkan melalui keyboard.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.\38 ee tt Struktur Data Menggunokan C di GNU/LINUX
printf ("Setara dengan %i jam %i menit $i detik \
n”,jam,menit, detik) ;
}
Tampilan program:
Waktu ujian (dalam detik) = 7244
Setara dengan 2 jam 0 menit 44 detik
4, Buatlah program untuk menukar dua buah nilai,
Jawab:
jt --------------------- */
a Menukar Dua Nilai af
/* by Ema & Wawan ba
#include
main ()
{
float a,b, temp;
printf ("Enter first number : “);
scanf("tf£",&a);
print£("Enter second number : “);
scanf(“tf",&b);
temp=a;
a=b;
b=temp;
printf (*First number is %.2f and second number is
%.2£ \n",a,b);
Tampilan program:
Enter first number : 99
Enter second number : 75
First number is 75.00 and second number is 99.00aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bob 5 Pengendalian Program RY
Operator lain yang sering digunakan adalah temary (?) yang mempunyai
bentuk
(ekspresi) ? pernyataanl : pernyataan2;
Perintah di atas mempunyai nilai yang sama dengan perintah berikut:
if (ekspresi) pernyataanl else pernyataan2;
3. Instruksi if dengan pilihan if lainnya
if (ekspresil) pernyataanl;
else if (ekspresi2) pernyataan2;
else pernyataan3;
4. Instruksi if di dalam instruksi if
if (ekspresil) pernyataani;
if (ekspresiz) pernyataan2;
Contoh penggunaan perintah if adalah sebagai berikut:
[* ----------------------------- */
/* Data Terbesar dari 3 Data */
i* by Ema & Wawan */
#include
main()
{
int a,b,c;
printf ("Masukkan 3 buah data yang dipisahkan dengan
koma “);
scant ("ti, ti, ti", &a,&b, &e);
if (a>b)
{aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 5 Pengendalian Program
5.2 Instruksi switch
Instruksi switch dirancang untuk menangani pengendalian program yang
melibatkan banyak alternatif. Biasanya digunakan untuk menggantikan instruksi
if-else yang bertingkat. Bentuk umum instruksi switch adalah:
switch (ekspresi)
{
case iteml: pernyataanl;
break;
case item2: pernyataan2;
break;
default : pernyataan;
break;
Berikut contoh penggunaan instruksi switch:
/* Pilihan Mobil */
/* by Ema & Wawan */
#include
main ()
{
int kode;
puts (" Menentukan Pilihan”) ;
puts(" 1=BMW 2=AUDI 3=FIAT 4=VW 5=TIMOR”);
printf (" Masukan pilihan anda (1..5): “);
scanf(“d”, kode) ;
switch (kode)
{
case 1: puts(* Mobil pilihan anda BMW");
break;
case 2: puts(" Mobil pilihan anda AUDI");
break;aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 5 Pengendatian Program
(kode==2) puts("
puts ("
puts (*
puts ("
puts (™
puts ("
puts (*
puts(*
Bulan Februari”);
Bulan Maret”) ;
Bulan April”);
Bulan Mei”);
Bulan Juni”);
Bulan Juli”);
Bulan Agustus”) ;
Bulan September”) ;
0) puts(" Bulan Oktober") ;
11) puts(" Bulan Nopember") ;
12) puts(" Bulan Desember”) ;
i
1) puts(" Bulan Januari”);
else puts(" Yang Anda masukkan bukan pilihan (1..12)
kan ?");
}
Penyelesaian di atas menggunakan instruksi if-else, sedangkan apabila
menggunakan instruksi switch adalah seperti berikut ini:
/* => */
/* Pilihan Bulan */
/* by Ema & Wawan */
JR amaumemomonammases */
#include
main ()
{
int kode;
puts(" Menentukan pilihan”) ;
puts(" 1 = Januari”);
puts(" 2 Februari");
puts(" 3 Maret") ;
puts(* 4 = April”);
puts(" 5 Mei”);
puts(" 6 Juni");
puts(" 7 = Juli”);
puts(" 8 = Agustus”);
puts(" 9 = September”) ;aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.‘Bab 5 Pengendalian Program
&
5.4 Latihan
1. Berikut program untuk mencek apakah data yang dimasukkan merupakan
bilangan nol, genap, atau ganijil.
#include “stdio.h"
main()
{
int data;
printf ("Masukkan sebuah data =");
scanf ("%i", &data) ;
if (data==0) printf(“Data nol\n");
else if (datat2 0) printf (“Data genap\n”) ;
else printf(“Data ganjil\n");
Ubahlah program di atas dengan menggunakan tanda ternary (?) untuk
menggantikan if-else di atas.
2. Menggunakan switch buatlah program untuk menentukan nama hari jika
yang diinputkan bilangan integer 1 s/d 7.
3. Buatlah program di mana user diberi pilihan sebagai berikut:
Menu Pilihan
Bidang Jajaran Genjang
Bidang Persegi Panjang
Bidang Bujur Sangkar
Bidang Lingkaran
Bidang Segitiga
Bidang Trapesium
me powD
Setiap pilihan bidang menghitung luas dan keliling bidang yang di
Ukuran-ukuran yang berkaitan dimasukkan melalui keyboard.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.&-
Bab 6 Ferulangan
Tampilan program:
Penulisan instruksi for pada program di atas mempunyai arti yang sama
dengan instruksi for 3 downto 1 pada Pascal. Contoh lain adalah:
[eon n- nee e eee nee e eee eee eee eee eee */
/* Indeks Perulangan dengan Nilai Tertentu */
/* by Ema & Wawan af
[twa nnn nn nnn nn nnn eee eee */
#include
main()
int bilangan;
for (bilangan=1000; bilangan; bilangan/=10)
{
printf ("%d\n”, bilangan) ;
Tampilan program:
1000
100
10
1
Proses perulangan pada program di atas akan berhenti sampai nilai
variabel bilangan yang masih bisa dibagi dengan 10.
Ekspresi dapat lebih dari satu, misal:
for (x=0,y=4,2=1000;2;2/=10)aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 6 Perulangan
for (xx=5 ;xx<15 ;xx=xx+1)
{
if (xx==8)
{
printf("Break terjadi di sini saat xx = %d\n",xx);
break;
}
printf ("Loop ini terjadi sebelum break dengan xx =
Sd\n", xx);
}
flor (xx=5 ;xx<15 ; XX=xxt1)
{
if (xx==8)
printf(“Ini saat xx sama dengan %d\n”, xx);
cont inue;
printf ("Loop terjadi pada xx<8 dan akan diteruskan
setelah xx-8,
xx=td\n" xx);
Tampilan program:
Loop ini terjadi sebelum break dengan xx
Loop ini terjadi sebelum break dengan xx
Loop ini terjadi sebelum break dengan xx =
Break terjadi di sini saat xx = 8
Loop terjadi pada xx<8 dan akan diteruskan setelah
xx=8, xx=5
Loop terjadi pada xx<8 dan akan diteruskan setelah
xx=8, XX=6
Loop terjadi pada xx<8 dan akan diteruskan setelah
xx=8, XxX=7
Ini saat xx sama dengan 8
Loop terjadi pada xx<8 dan akan diteruskan setelah
5
6
7aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 6 Perulangan en: 7,
cpos=cneg=cnol=0;
for (i=l;i<=n;i++)
{
printf ("Masukkan data = ");
scant ("$i", &dt);
if (dt>0) cpos++; /* cpos=cpos+1 */
else if (dt<0) cnegt+;
else cnol++;
}
print£("Banyaknya data bernilai positif = %i\
n”,cpos) ;
printf ("“Banyaknya data bernilai negatif - %i\
n”, cneg) ;
printf (“Banyaknya data bernilai nol = %i\n",cnol);
}
Tampilan program:
Berapa banyaknya data yang akan dihitung ? 4
Masukkan data oO
Masukkan data 1
Masukkan data Qe
Masukkan data =&
Banyaknya data bernilai positif
Banyaknya data bernilai negatif
Banyaknya data bernilai nol = 1
BR
3. Buatlah program untuk mencari rata-rata yang sejak awal banyaknya data
yang akan dimasukkan belum ditentukan.
Jawab:
/* Penghitungan Rata-Rata _*/
7* by Ema & Wawan a7aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 6 Perulongan 7)
printf (*Masukan nilai c = “);
scanf (“%£", ac);
printf (*Persamaan kuadrat : %.1f x*x + $.1f£ x + %.1f
\n",a,b,c);
d=b*b-44atc;
if (d
#include
main ()
{
int i,n,sigma;
printf(* 0 + 7 - 26 + 63 - ...\n");
printf (*Banyak suku yang diinginkan = “);
scanf("si",&n);
sigma=0;
isl;
while (ican)
{
if (4$2==0) sigma=sigma+(pow(i,3)-1);
else sigma=sigma-(pow(i,3)-1);aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 6 Perulangan eet 83 j
11. Buatlah program yang dapat digunakan untuk mengidentifikasi setiap huruf
yang dimasukkan oleh pemakai melalui keyboard, apakah merupakan huruf
kecil atau huruf besar!
Jawab:
/* eee erie: */
/* Identifikasi Huruf */
/* by Ema & Wawan #/:
[toon n-ne ene eee eee */
#include
#include
main()
{
int kar;
printf ("Tekan enter,spasi atau tab untuk berhenti
a exe hE) 7
do
{
printf ("Masukkan satu karakter = “);
kar=getchar ();
if (isspace(kar)) break;
else
{
if (isalpha(kar))
printf ("$c adalah huruf “,kar);
if (islower(kar)) printf ("kecil\n”);
else printf("besar\n”); /* if (isupper(kar) */
}
else print£("tc adalah bukan huruf\n”,kar) ;
}
} while(1);
}
Program tersebut menggunakan fungsi-fungsi isspace, isalpha, islower,
dan isupper yang terdapat dalam library ctype.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bob 6 Perulongan
else
{
printf (“besar\n"); /* if (isupper(kar) */
printf("“Huruf kecilnya adalah %c\n",tolower (kar) );
cb++;
}
}
else
{
printf("%c adalah bukan huruf\n”,kar) ;
cnonh++;
}
printf£("Ada data lagi (¥/T)? = “);
scanf ("%s”, &pilihan) ;
print£("\nAnda telah memasukkan %i karakter\
n”,cacah) ;
printf ("Anda telah memasukkan %i huruf kecil\n”,ck) ;
printf ("Anda telah memasukkan ti huruf besar\n", cb) ;
printf ("Anda telah memasukkan %i bukan huruf\
n”,cnonh) ;
}
Tampilan program:
Masukkan satu karakter = a
a adalah huruf kecil
Huruf besarnya adalah A
Ada data lagi (¥/T)? = y
Masukkan satu karakter = K
K adalah huruf besar
Huruf kecilnya adalah k
Ada data lagi (¥/T)? = y
Masukkan satu karakter = U
U adalah huruf besar
Huruf kecilnya adalah u
Ada data lagi (¥/T)? = y
Masukkan satu karakter = E
E adalah huruf besaraa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.j
ab 7
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:
YS ccuceommonmtamemene */
/* Program Array */
/* by Ema & Wawan */
Je cic EESS. */
#include
int main()aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 7 Array dan St
printf ("Hasil Penjumlahan 2 Matriks\n");
for (i = 0; i < nj; i++)
{
for (j = 0; j < m; j++)
printf (*Elemen M3 (ti, %i] = #i\n”,i+1,
5+2,M3 (i) 051);
}
Tampilan program:
Penjumlahan 2 Matriks
Matriks berordo = 3,3
Masukkan elemen M1[1,1]
Masukkan elemen M1 [1,2]
Masukkan elemen M1[1,3] =
Masukkan elemen M1[2,1]
Masukkan elemen M1 [2,2]
Masukkan elemen M1 [2,3]
Masukkan elemen M1 [3,1]
Masukkan elemen M1[3,2]
Masukkan elemen M1[3,3]
Masukkan elemen M2[1,1]
Masukkan elemen M2[1,2] =
Masukkan elemen M2[1,3] =
Masukkan elemen M2([2,1]
Masukkan elemen M2 [2,2]
Masukkan elemen M2[2,3]
Masukkan elemen M2[3,1]
Masukkan elemen M2 [3,2]
Masukkan elemen M2 [3,3]
Hasil Penjumlahan 2 Matriks
Elemen M3[1,1] =
Elemen M3(1,2)
Elemen M3[1,3]
Elemen M3(2,1]
Elemen M3 [2,2]
Elemen M3 [2,3]
Elemen M3[3,1] =
WUUUHHAKHANNNNNNNNN
waaaa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 7 Array dan String:
7.1 Contoh-Contoh Soal
1 Modifikasi Program String 3 sehingga dapat menghitung banyak huruf kecil
dan huruf besar serta banyak karakter.
Contoh tampilan adalah sebagai berikut:
Masukan nama anda : Naufal RAR
Nama anda adalah : Naufal RAR
dumlah huruf kecil = 5
Jumlah huruf besar = 4
dumlah karakter termasuk spasi = 10
Jawab:
[st ~---------------------------- */
/* Huruf Kecil & Huruf Besar = */
/* by Ema & Wawan */]
jie seumooeet pews eeu eee ge eee */
#include
main ()
char line [17];
int ch, max=17, nch=0;
int jk=0,jb=0;
max = max - 1;
printf ("Masukan nama anda : “);
while((ch = getchar()) != EOF)
if(ch == ‘\n’) break;
aif(nch < max)
{
line[nch] = ch;
if (line (nch]>='a’ && line[nch]<='z’) jk++;
else if {line[nch]>='A’ && line [nch]<='2')
jb++e
neh = nch + 1;aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 7 Array dan String
Data terbesar adalah 28.00 merupakan data ke- 5
4, Buatlah program untuk mencari data terkecil pertama dan data terkecil kedua
dari n buah data beserta masing-masing posisinya dalam kumpulan data
tersebut.
Jawab:
fie oxweweeesereemeecuesseoesemeeeewe */
/* Data Terkecil Pertama dan Kedua */
/* by Ema & Wawan */
/*
#include
int main()
int n, index,imin1,imin2,temp;
float data [n] ;
float minl,min2;
printf ("Berapa data yang tersedia ? “);
scant ("%i", &n);
for (index = 0 ; index < n ; index++)
{
print£(*Masukkan data ke- ti = “,index+1);
scanf ("$f , &data [index] ) ;
if (data[0]>data[(1])
{
mini-data [1];
imin1=2;
min2=data [0];
imin2=1;
}
else
{
minl=data [0] ;
iminl=1;
min2=data [1];
imin2=2;aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 7 Array dan String ny
Masukkan elemen M1 [2,3]
Masukkan elemen M2[1,1]
Masukkan elemen M2[1,2] =
Masukkan elemen M2 [2,1]
Masukkan elemen M2[2,2] =
Masukkan elemen M2 [3,1]
Masukkan elemen M2[3,2] =
pea RR EL
Hasil Perkalian 2 Matriks
Elemen M3[1,1] = 36
Elemen M3[1,2] = 36
Elemen M3[2,1] 36
Elemen M3[2,2] = 36
7.2 Latihan
Buatlah program untuk mencari bilangan prima terbesar kedua dan bilangan
prima terkecil kedua disertai posisi atau letaknya dan berapa banyaknya
cacah untuk masing-masing bilangan prima terbesar kedua dan bilangan
prima terkecil kedua dari n buah data.
Buatlah program untuk menentukan matriks transpose.
Buatlah program untuk menentukan elemen terbesar dan elemen terkecil
yang tersimpan dalam matriks berukuran mxn.
Buatlah program untuk menukar dua buah kata yang dimasukkan melalui
keyboard.
Buatlah program untuk menceri apakah suatu nilai data tertentu merupakan
elemen dari suatu matriks A berordo mxn. Apabila datanya ditemukan maka
informasikan posisi atau letak ditemukannya.
Modifikasilah program operasi penjumiahan dan perkalian matriks di atas
supaya tampilannya lebih menarik.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.W127 ceuktur Data Menggunakan C di GNU/LINUX
8.2 Contoh-Contoh Soal
1. Buatlah program untuk menghitung fuas dan keliling lingkaran menggunakan
struktur.
Jawab:
* ~---------------------------------------- */
i Menghitung Luas & Keliling Lingkaran */
is by Ema & Wawan i
/*
#include
#include
main()
{
struct
{
float jari;
float luas;
float keliling;
} lingkaran;
print£(*Masukan jari-jari lingkaran = “);
scanf ("$f", &lingkaran.jari);
lingkaran.luas=3.14*pow(lingkaran.jari,2);
lingkaran.keliling=2*3.14*lingkaran.jari;
print£("Lingkaran berjari-jari %.2£ mempunyai luas
%.2£ dan keliling %.2£\n", lingkaran. jari, lingkaran. lua
s,lingkaran.keliling) ;
}
Tampilan program:
Masukan jari-jari lingkaran = 100
Lingkaran berjari-jari 100.00 mempunyai luas 31400.00
dan keliling 628.00aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Vigne Struktur Dota Menggunakan C di GNU/LINUX
4, Program di atas dapat dimodifikasi seperti di bawah ini:
je ween
*
/*
[* ----.
#include
main()
{
/* mendefinisikan tipe data_tanggal */
struct data_tanggal
{
int tanggal, bulan, tahun;
de
struct
char nama[40];
struct data_tanggal tgl_lahir:
} info_saudara = {
“Naufal Rasendriya Apta Raharema”,19,8,1999};
/* penampilan elemen variabel struktur */
printf ("Nama : %s\n", info_saudara.nama) ;
printf ("fanggal lahir : %d-%d-%d\n", info_saudara.tol_
lahir.tanggal,
info_saudara.tgl_lahir.bulan, info_saudara.tgl_
lahir. tahun);
daa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.wy ‘Struktur Data Menggunakan C di GNU/LINUX
4. Diberika Daftar Nilai Peserta Kuliah Pelatihan Super Unggul STMIK AMIKOM
Yogyakarta
Tempat &
Tgl. Lahir
Pape | ete |
a
[afoaacors| |__| | |onnesssarrr | 76 |
No. NIM Nama Email | Alamat Telepon Nilai
[8 oscuro 0
200 | 03.22.0997 A ee
a. Berikan deklarasi tipe datanya.
b. Tuliskan fungsi untuk mencetak daftar nilai masing-masing untuk jenjang
D3-T1, S1-T1, D3-M1, dan $1-S1 (--01-- D3-T1; --21--S1-T1; -02-D3-
M1; --22--S1-S1).
c. Tuliskan fungsi untuk menampilkan data mahasiswa yang pada bulan
April 2004 telah berusia minimal 20 tahun dan mengetahui banyaknya.
d. Tuliskan fungsi untuk menampilkan data mahasiswa yang lulus
menempuh kuliah Pelatihan Super Unggul dan mengetahui banyaknya.
Seorang mahasiswa dinyatakan lulus apabila memperoleh nilai minimal
56. Dari fungsi ini diketahui banyaknya mahasiswa yang lulus (dalam
prosentase).
e. Tuliskan fungsi untuk mengkonversikan nilai angka menjadi nilai huruf
dengan ketentuan:
Nilai Angka Nilai Huruf
86-100 A
71-85 B
56-70 c
<= 55 Daa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Struktur Dota Menggunakan C di GNU/LINUX
Masukkan nilai panjang = 40
Masukkan nilai lebar = 60
Hasil = 2400
Pada program di atas fungsi tampil merupakan fungsi yang tidak mem-
berikan hasil. Fungsi ini menggunakan void. Dalam Pascal, fungsi seperti ini dapat
disamakan dengan procedure.
/* Bilangan Faktorial */
ye by Ema & Wawan *]
#include
int fact();
main()
{
int n, m;
printf (*Masukkan angka: “);
scanf(“%d",&n);
m = fact (n);
printf (*Faktorial dari %d adalah %d.\n",n,m);
>
int fact (x)
int x;
{
int i, facto;
if (x==0) facto=1;
else
{
facto:
for ( pi<=x;i++)
{
facto=facto*i;
}aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.i287 ceruktur Data Menggunakan C di GNUILINUX
Tampilan program:
Masukkan angka: 10
Faktorial dari 10 adalah 3628800.
Proses operasi perkalian juga dapat ditelusuri menggunakan rekursi.
on ea
/* Perkalian dengan Rekursi */
* by Ema & Wawan “7s
[8 wanna anne nnn e nee n ene none "
#include
main ()
{
int a,b,hasil;
print£(“Masukkan dua buah nilai dipisahkan dengan
koma = “);
scanf (“td, ta”, &a,&b);
hasil=kali(a,b);
printf("%i x $i = %i\n",a,b,hasil);
}
int kali(x,y)
int x,y;
{
if (y: ) return(0);
else return(kali(x,y-1) +x);
}
Tampilan program:
Masukkan dua buah nilai dipisahkan dengan koma = 9,9
9x9 = 81
Bandingkan dengan yang tidak menggunakan rekursi seperti tampak di
bawah ini:aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.fi
i* File main.c “/
/* by Ema & Wawan */
ae “/
#include
extern int prima(int x);
main ()
{
int i,dt,n;
‘Struktur Data Menggunakan C di GNU/LINUX
print£("Berapa banyaknya data ? *);
scanf("%i",&n);
for (isl;i
int prima(int x)
{
int st,pembagi, batascek:
if (x==2) st=0;
else if((x<=1) || (x%2==0)) st=
else
{aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.y3e7 ‘Struktur Data Menggunakan ¢ di GNU/LINUX
int x;
{
int i,jml
for (i=1;i;
{
pit+)
if (prima(i)==0) jml=jml+((2*i) +pow(2,i)+2);
else jml=jm1- ((2*i)+pow(2, 4) +2);
}
return (jml);
}
int prima(j)
int j:
{
int st,pembagi, batascek;
if( 2) return(0);
else if ((j<=1)||(j%2==0)) return(1);
else
{
sts0;
pembagi=3;
batascek=ceil (sqrt (j));
while ( (pembagi<=batascek) &&(st==0) )
{
if (jtpembagi
else pembagi+=2;
}
if (st
) st=1;
) return (0);
Tampilan program:
-6+10+16-26+44-
Penjumlahan berapa suku ? 4
Penjumlahan 4 suku = -6aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.a
Vy
Steuktur Data Menggunakan C di GNU/LINUX
for (i=1;i<=x;i++)
{
if (i%2!=0) result=result+a/b;
else result=result-a/b;
a=at+3;
b=b*4;
}
return(result);
Tampilan program:
12/5-15/20+18/80-21/320+...+Un
Penjumlahan berapa suku ? 2
Penjumlahan 2 suku = 1.65
9.3 Latihan
4. Jelaskan perbedaan antara void namafungsi(); dan int namafungsi();
2. — Tunjukkan hasil keluaran dari program di bawah ini:
#include
float ssi(int mkom) ;
main( )
float ssi(int mkom)
{
int b=1;aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bots 10' Sorting: ae NAG,
}
for (i=0;i
main()
{
int i,j,n,temp;
int data[n];
printf ("Berapa data yang akan diurutkan ? “);
scanf (“%i",&n);
for (i=0;i
main()
{
int i,j,n,temp;
int data(n];
printf (*Berapa data yang akan diurutkan ? “);
scanf ("i",&n);
for (i=O;i0))
{
data(j+1]=data[j];
j=3-1;
}
if (temp<=data[j]) data[j+1]=temp;
else
{
data(j+1]=data[j];
data[j]=temp;
}
printf (“Setelah Pengurutan\n") ;
for (i=0;i0))
{
datal[j+1]=datal[j];
5-5-1;
}
if (temp<=datai[j]) datal[j+1]=temp;
else
datal[j+1]=datal[j];
datal[{j]=temp;
20))
{
data2 (k+1] =data2[k];
k=k-1;
}
if (templ<=data2[k]) data2[k+1]=temp1;
else
{
data2[k+1]=data2[k];
data2([k]=templ;
JecoucsssugeuccunesuseuesuTecueuEsEeeEeEEE EEE +
UM wade ge oe Sesto ce caters esuen css ae +aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.yy Struktur Data Menggunokan C di GNU/UNUX
Membaca array data
2. Menentukan data yang dicari
3. Mulai dari data pertama sampai dengan data terakhir, data yang dicari
dibandingkan dengan masing-masing data di dalam array
a. Jika data yang dicari tidak ditemukan, maka semua data atau elemen
array dibandingkan sampai selesai.
b. _Jika data yang dicari ditemukan, maka perbandingan akan dihentikan.
11.1.1 Pencarian pada Array Belum Terurut
t= “/
/* Pencarian dengan Sequential Search */
i* by Ema & Wawan ay
#include
main()
{
int i,n,dt,posisi,ketemu=0;
int data[n];
printf ("“Banyaknya elemen array = ");
scanf (“%i”,&n);
for (i=0;i
main ()
{
int i,j,n,dt, temp, ketemu=0,posisi;
int data[n];
printf ("Banyaknya elemen array = ");
scanf ("%i”,&n);
for (i=
{
printf (“Masukkan data ke-%i = “,i+1);
scanf("%i",&data[i]);
}
pi
#define MAX 50
#define true 1
#define false 0
char stack[MAX];
int top;
void init (void);
int full (void);
int empty (void) ;
char pop(void);
void push(char info);aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 12 Stack
MENU PILIHAN :
(1] PUSH
(2] BACA BALIK
[3] Selesai.
Pilihan : 1
PUSH M
MENU PILIHAN
(1] PUSH
[2] BACA BALIK
[3] Selesai...
Pilihan : 1
PUSH P
MENU PILIHAN
[1] PUSH
[2] BACA BALIK
[3] Selesai.
Pilihan
PUSH U
MENU PILIHAN :
(1] PUSH
[2] BACA BALIK
[3] Selesai.
Pilihan : 1
PUSH K
MENU PILIHAN
(1] PUSH
[2] BACA BALIK
[3] Selesai.
Pilihan :
PUSH A
MENU PILIHAN
[1] PUSH
[2] BACA BALIK
[3] Selesai...aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 12 Stack
a */
/* Data Terbesar dan Data Terkecil ap
i+ Pada Single Stack */
i* by Ema & Wawan */
Pi sees ceeauamaeesunnsemaae nessa */
#include
#define MAX 50
#define true 1
#define false 0
int stack[MAX];
int top;
void init (void);
int full (void);
int empty(void);
void push(int info);
int pop(void);
void baca(void);
void maxmin (void);
main()
{ char pilih;
int elm;
Data Terbesar & Data Terkecil--\n”);
Menggunakan Single Stack --\n");
printé(*
printé(*
init();
do
{
printf("MENU PILIHAN :\n”);aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 12 Stock
[2] BACA ISI TUMPUKAN
{3] MENCARI DATA TERBESAR
{4] Selesai...
Pilihan : 1
PUSH 3
MENU PILIHAN :
{1] MEMASUKKAN DATA
[2] BACA ISI TUMPUKAN
[3] MENCARI DATA TERBESAR
[4] Selesai...
Pilihan : 1
PUSH 5
MENU PILIHAN :
[1] MEMASUKKAN DATA
{2] BACA ISI TUMPUKAN
{3] MENCARI DATA TERBESAR
[4] Selesai
Pilihan : 1
PUSH 0
MENU PILIHAN :
[1] MEMASUKKAN DATA
{2] BACA ISI TUMPUKAN
(3] MENCARI DATA TERBESAR
{4} Selesai...
Pilihan : 1
PUSH 11
MENU PILIHAN :
[1] MEMASUKKAN DATA
[2] BACA ISI TUMPUKAN
[3] MENCARI DATA TERBESAR
[4] Selesai..
Pilihan :
Isi Stack : 2
MENU PILIHAN :
(1] MEMASUKKAN DATA
2
35011
DAN DATA TERKECIL
DAN DATA TERKECIL
DAN DATA TERKECIL
DAN DATA TERKECIL
DAN DATA TERKECIL
211aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.PNET Struktur Data Menggunakan C di GNU/LINUX
#include
#define MAX 50
#define true 1
#define false 0
int stack [MAX] ;
int top;
void init (void) ;
int full (void);
int empty(void) ;
int pop(void);
void cari(int data);
void push(int info
void baca(void) ;
main ()
{ char pilih;
int elm, dt;
printf(“-- Mencari Suatu Data --\n");
printf (“--Menggunakan Single Stack--\n");
init();
do
printf ("MENU PILIHAN :\n");
printf ("[1] MEMASUKKAN DATA\n”) ;
printf ("{2] BACA ISI TUMPUKAN\n") ;
printf (*(3] CARI DATA\n”);
printf£(*{4] selesai...\n");
printf(" Pilihan : “);
scanf ("ts", &pilih) ;
switch (pilih)
{aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.3. Buatlah program untuk faktorisasi bilangan bulat positif menjadi pembagi
primanya, urutannya menurun serta menggunakan tipe struktur data
stack. Dasar penyelesaian masalahnya adalah untuk mencari faktor prima
suatu bilangan, kita harus menceknya dengan membagi bilangan tersebut
dengan bilangan prima, yaitu 2, 3, 5, 7, .... Ada beberapa kemungkinan
untuk menyelesaikan masalah tersebut. Salah satunya adalah dengan
menggunakan prinsip bahwa tiap pembagi terkecil dari suatu bilangan pasti
merupakan bilangan prima.
Struktur Data Menggunakan C di GNU/LINUX
Contoh output program faktor prima dengan stack:
Masukkan sebarang bilangan = 4900
Faktor prima bilangan 4900 adalah 77 5 5 2 2
Contoh output program faktor prima dengan stack:
Masukkan sebarang bilangan = 2100
Faktor prima bilangan 2100 adalah 75 5 3 2 2
Contoh output program faktor prima dengan stack:
Masukkan sebarang bilangan = 101
Faktor prima bilangan 101 adalah 101
4, Ubahlah program mencari dala terbesar dan terkecil diatas tanpa
menggunakan operasi.
5. Buatlah program untuk penginputan data penduduk menggunakan struktur
data single stack.
12.2 Double Stack
Double stack merupakan bentuk pengembangan dari single stack den-
gan maksud untuk menghemat memori. Prinsip double stack adalah dalam satu
array terdapat dua stack.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.py ‘Struktur Data Menggunakan C di GNU/LINUX
case ‘3’: printf£(*no stack “);
scanf (“$d”, &no) ;
clear (no);
break;
case ‘4’: baca();
break;
case ‘S': break;
default : print£("Salah pilih...\n”);
break;
}
printf (*\n");
}while(pilih!='5");
)
void init (void)
void push(char info,int nostack)
{
if (full () !=true)
{
switch (nostack)
{
case 1 : topl++;
stack[topl]=info;
break;
case 2 : top2--;
stack[top2]=info;
break;
default: printf (“Invalid PUSH...\n");
break;
}
}
else
printf (Stack overflow...\n”);aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 12 Stack nn:
int elm,no,dt;
init();
do
{
printf ("MENU PILIHAN\n");
print£("[1] PUSH\n");
print£("(2] BACA ISI STACK\n");
print£("[{3] CARI DATA\n”);
print£("[4] Selesai...\n");
printf (" Pilihan : “);
scanf("ts”,&pilih);
switch (pilih)
{
case ‘1': printf ("PUSH ");
scanf ("td $d", &e1m, &no) ;
push (elm,no) ;
break;
case ‘2’: baca();
break;
case ‘3’; printf ("Masukkan data yang dicari :
scanf ("%d", &dt) ;
cari (dt);
break;
case ‘4’: break;
default : printf(“salah pilih...\n");
break;
2
printf("\n");
}while(pilih!
}
ayy
void init(void)
{
top1=0;
top2=MAX+1;aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.-Struktur Data Menggunakan C di GNU/LINUX
top2=MAX+1;
}
void push(int info,int nostack)
{
if(full() !=true)
{
switch (nostack)
{
case 1 : topl++;
stack[top1]=info;
break;
case 2 : top2--;
stack [top2] =info;
break;
default: printf("Invalid PUSH...\n”);
break;
}
t
else
printf ("Stack overflow...\n");
y
int pop(int nostack)
(
int info;
if (empty (nostack) !=true)
C
switch (nostack)
{
case 1: info=stack[top1];
topl--;
return (info);
break;
case 2 : info=stack[top2];
top2++;
return (info);
break;aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bob 12 Stack
PUSH 0 2
MENU PILIHAN
{1] PUSH
[2] BACA ISI STACK
[3] DATA TERBESAR DAN TERKECIL
[4] Selesai...
Pilihan : 1
PUSH 3 2
MENU PILIHAN
{1] PUSH
{2] BACA ISI STACK
[3] DATA TERBESAR DAN TERKECIL
1
MENU PILIHAN
[1] PUSH
[2] BACA ISI STACK
[3] DATA TERBESAR DAN TERKECIL
[4] Selesai...
Pilihan : 2
Isi Stack Pertama
Isi Stack Kedua: 8 0 3 11
MENU PILIHAN
{11 PUSH
{2] BACA ISI STACK
{3] DATA TERBESAR DAN TERKECIL,
[4] Selesai...
Pilihan : 3
Masukkan nomor stack : 2
Kondisi Stack Kedua
Data Terbesar = 11
Data Terkecilaa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.@
M0647 gps is ‘Menggunakan C di GNUILINUX
int Empty(void)
{
if(antri.akhir==0) return(true);
else return (false);
}
void baca (void)
{
int i;
printf(“Isi queue sekarang : “);
for (i=zantri.awal;i<=antri.akhir;it++)
printf (“sc “,antri.info[i]);
print£("\n");
}
‘Tampilan program:
Demo Queue dengan Linear Array
Operasi Queue
{1] InQueve (Insert Queue)
[2] DeQueue (Delete Queue)
[3] Baca
[4] Selesai...
Pilihan : 1
Antrian masuk : K
Operasi Queue
{1] InQueue (Insert Queue)
[2] DeQueue (Delete Queue)
(3] Baca
[4] Selesai...
Pilihan : 1
Antrian masuk : O
Operasi Queueaa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bob 13 Queue
break;
}
print£(*\n‘);
}while(pilih!=/4");
3
void init (void)
{
antri.awal
antri.akhi
}
void inQueue(int elemen)
{
if (Empty()==true)
{
antri.awal=1;
antri.akhir=1;
antri.info[antri.awal]=elemen;
else
{
if(Full() !=true)
{
antri.akhirt++;
antri.info[antri.akhir]=elemen;
}
else
printf ("Queue overflow...\n");
}
}
int deQueue (void)
{
int isi;
int i;
if(Empty() !=true)
307,aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Struktur Data Menggunckan C di GNU/LINUX
By
[1] InQueue (Insert Queue)
[2] Baca Isi Queue
[3] Cari Data
[4] Selesai
Pilihan :
13.1.3 Latihan Queue dengan Linear Array
1. Modifikasilah program membalik kata di atas tanpa operasi diQueue
2. Ubah menu program pada fungsi main menjadi:
Menu Program
1. Menambah Elemen Queue
2. Menghapus Elemen Queue
3. Menampilkan Isi Queue
4. Mengosongkan Queue
5. Keluar
Pilihan
3. Modifikasilah program mencari data terkecil dan terbesar di atas tanpa
menggunakan operasi deQueue.
3. Jelaskan kelemahan queue dengan linear array.
4. Tulislah fungsi untuk menghitung banyaknya elemen suatu queue.
5. Contoh program nomor 5 digunakan untuk mencari data dalam antrian yang
menggunakan algoritma Binary Search. Program berikut dimaksudkan untuk
mencarisuatu data apakah terdapat dalam queue, tetapi menggunakan operasi
DeQueue. Logikanya adalah mengambil data satu per satu dari dalam antrian
untuk dicek apakah nilai datanya sama dengan data yang dicari. Program
tersebut belum berfungsi dengan benar. Carilah letak kesalahan logikanya
dan perbaikilah supaya program dapat berjalan sesuai yang diinginkan.
#include
#define MAX 50
#define true 1
#define false 0aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 13 Queue hg
13.2 Implementasi Queue dengan
Circular Array
Salah satu variasi array adalah array melingkar (circular array), artinya
array dapat diakses mulai dari sembarang indeks (indeks awal) ke arah indek
terakhir (maksimun array), lalu memutar ke indeks pertama hingga kembali ke
indeks awal. Circular array adalah array yang dibuat seakan-akan merupakan
sebuah lingkaran dengan titik awal dan titik akhir saling bersebelahan jika array
tersebut masih kosong. Jumlah data yang dapat ditampung oleh array ini adalah
besamya ukuran array dikurangi 1. Jadi, misalnya besar array adalah 8, maka
jumlah data yang dapat ditampung adalah 7. Perhatikan ilustrasi berikut:
IS
Gambar 13.3 Hustrasi Circular Array
Dengan metode ini, meskipun posisi terakhir telah terpakai, elemen baru
tetap dapat ditambahkan pada posisi pertama jika posisi pertama dalam keadaan
kosong. Jika nilai head dan tail mencapai maksimum, maka akan dikembalikan ke
posisi awal.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 13 Queue oY
antri.awal=(antri.awal MAX) +1;
return(isi);
}
else
printf (“Queue underflow. ..\n”);
)
6. Fungsi Clear
Dituliskan seperti pada fungsi inisialisasi.
13.2.2 Contoh Soal Queue dengan Circular
Array
1
‘Ada queue bentuk karakter diimplementasikan dengan array (10 elemen).
a. Untuk keadaan array
T
A |B [c |p [EB [F
Indeks queue.depan =
= 3 dan queue.belakang = 7.
elemen queue.
. Tuliskan semua
|
A |B jc (D JE
b. Untuk keadaan array
s | t R_ |U_ |[K |T {|U |R_|[D [T
Indeks queue.depan = 7 dan queue.belakang = 3. Tuliskan semua
elemen queue.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Ey Struktur Data Menggunakan C di GNU/LINUX
if(Empty()!=true)
t
isi=antri.info[antri.awal];
antri.awal=(antri.awal%MAX) +1;
return (isi);
}
else
print£ ("Queue underflow. ..\n”);
dint Full (void)
{
i£((((antri.akhir%MAX) +1)%MAX) +1=-antri.awal)
return (true) ;
else
return (false);
int Empty(void)
{
if ((antri.akhir%MAX) +1==antri.awal)
return (true) ;
else
return (false);
void baca (void)
{
int i=antri.awal;
printf(“Isi antrian : “);
doaa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 13 Queue en:
4. Program membalik kata di atas dapat dimodifikasi menjadi program berikut.
[8 wanna nnn nnn nnn nnn nnn == s
* Membalik Kata */
if Queue dengan Circular Array ay
* by Ema & Wawan */
J* --------------------------------- *f
include
#include
define MAX 70
fidefine true 1
define false 0
struct queue
t
char info[MAX];
int awal;
int akhir;
Ve
struct queue antri;
void init (void);
void inQueue(char elemen);
char deQueue (void);
int Pull (void);
int Empty(void);
main()
{aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Ey Struktur Data Menggunakan C di GNU/LINUX
printf ("Menu Pilihan\n”);
printf("[1} InQueue (Insert Queue) \n”);
printf ("[2] Baca Isi Queue\n”);
printf (“[3} Cari Data\n");
print£("[4] Selesai\n”) ;
printf (* Pilihan : “);
scant (“%s”,&pilih);
switch (pilih)
t
case ‘1’: printf("Antrian masuk : “);
scant (“%s”,&elm) ;
inQueue (elm);
break;
case ‘2’: baca();
break;
case ‘3’: printf("Masukkan data yang dicari : *);
scant (“%e",&dt);
cari (dt);
break;
case : break;
default: printf ("Salah pilih...\n");
}
printf£("\n”):
}while(piliht='4');
d
void init (void)
{
antri.awal=1;
antri.akhir=MAX;aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Bab 13 Queue
Menu Pilihan
1
[2]
(31
(41
Inqueue (Insert Queue)
Baca Isi Queue
Cari Data
Selesai
Pilihan : 1
Antrian masuk : a
Menu Pilihan
113
{21
131
(4]
InQueue (Insext Queue)
Baca Isi Queue
Cari Data
Selesai
Pilihan : 1
Antrian masuk : 8
Menu Pilihan
11]
(21
13]
4]
InQueue (Insert Queue)
Baca Isi Queue
Cari Data
Selesai
Pilihan : 1
Antrian masuk : d
Menu Pilihan
(11
1
(31
41
InQueue (Insert Queue)
Baca Isi Queue
Cari Data
Selesai
Pilihan : 1
Antrian masuk : f£
Menu Pilihanaa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.‘Struktur Dota Mengeunakan C di GNU/LINUX
{4] Selesai
Pilihan : 1
Antrian masuk : 7
Menu Pilihan
(1] Inqueve (Insert Queue)
12] Baca Isi Queue
[3] Cari Data
[4] Selesai
Pilihan : 1
Antrian masuk : &
Menu Pilihan
[1] Inqueue (Insert Queue)
[2] Baca Isi Queue
{3] Cari Data
[4] Selesai
Pilinan : 1
Antrian masuk : @
Menu Pilihan
{1] InQueue (Insert Queue)
[2] Baca Isi Queue
[3] Cari Data
[4]
Menu Pilihan
{1] InQueue (Insert Queue)
{2] Baca Isi Queue
{3] Cari Data
[4] Selesai
Pilihan : 1aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Ey ‘Struktur Data Menggunokan C di GNU/LINUX
depan = 10
belakang = 4
a. Tulisiah semua elemen dari queue.
b. Bagaimana keadaan queue setelah dikenakan operas inQueue(M)?
c. Jika setelah langkah b dikenakan operasi deQueue, berapa nilai yang
dihapus dan bagaimana keadaan queue?
Buatiah program untuk mencari data terbesar dan data terkecil menggunakan
struktur data queue dengan circular array.
a. tanpa operasi deQueue
b. memanfaatkan operasi deQueue
Buatlah program untuk penginputan data barang menggunakan struktur data
queue dengan circular array.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Seruktur Data Menggunakan C di GNU/LINUX
Pc
ptr ptrl,ptr2;
int x,y:
x-5;
yr2*x;
ptrl=(ptr)malloc(sizeof (ptr) );
ptrl->info=x+2y;
ptr2=(ptr)malloc(sizeof (ptr) );
ptr2->info=2* (x+y);
printf(“Isi info dari data yang ditunjuk oleh ptri:
td\n", ptr1->info) ;
printf(“Isi info dari data yang ditunjuk oleh ptr2:
%d\n", ptr2->info) ;
}
Tampilan program:
Isi info dari data yang ditunjuk oleh ptrl : 25
Isi info dari data yang ditunjuk oleh ptr2 : 30
14.4 Latihan Pointer
Ada program seperti berikut. Tulisiah output beserta alur pengerjaannya.
#include
#include
main()
{
typedef struct data ‘ptr;aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.aa
You have either reached a page that is unavailable for viewing or reached your viewing limit for this
book.Penggunaan bahasa C diLinux akan
memperkaya pengetahuan mahasiswa
tentang bahasa pemrograman yang
dapat berjalan di sistem operasi selain
DOS dan Windows. Ini adalah suatu
nilai lebih yang diperoleh dari
pemahaman bahasa pemrograman
selain sistem operasi DOS atau
Windows. Dengan pertimbangan
tersebut, konsep-konsep struktur data
yang dibahas dalam buku ini dipelajari
‘menggunakan bahasa pemrograman C
untuk sistem operasi Linux yang akan
menggunakan GNU Compiler
Colection untuk mengkompile kode
sumber C
Buku ini membahas secara
mendalam konsep-konsep struktur
data seperti array, struktur, stack,
queue, pointer, dan linked list). Contoh
program dan soal serta contoh-contoh
lathan yang disertakan dimaksudkan
agar pembaca mudah memahaminya
dan dapat _mengembangkan sesuai
kreativitasnya.
Pokok Bahasan buku ini:
Bahasa Pemrograman C
Dasar-Dasar Pemrograman C
Operasi Input Output
Pengendalian Program
Perulangan
Array dan String
Struktur
Subprogram
Sorting
Searching
Stack
Queue
Pointer dan Linked List
Buku ini cocok bagi mahasiswa llmu Komputer, Teknik Informatika, Manajemen
Informatika, dan Teknik Industri yang sedang menempuh mata kuliah Struktur Data, Algoritma
dan Struktur Data, Struktur Data dan Pemrograman, serta Analisa Algoritma. Buku ini juga dapat
membantu kalangan umum yang tertarik bidang pemrograman.
ail : penerbitan@andipublishe
We ICEL NAG ctr Te
oS
~
MM |
45
31
ie