ii
LEMBAR PENGESAHAN
MODUL PRAKTIKUM DASAR – DASAR PEMROGRAMAN
Disahkan di : Jakarta
Pada Tanggal : Oktober 2020
Menyetujui,
Kepala Laboratorium Program Studi Teknik Informatika
Fakultas Teknik Universitas Muhammadiyah Jakarta
Mengesahkan,
Ketua Program Studi Teknik Informatika
Fakultas Teknik Universitas Muhammadiyah Jakarta
iii
KATA PENGANTAR
Assalamua’alaikum wr. wb.
Bismillahirrohmanirrohiim
Dengan segala doa dan harapan, modul praktikum Dasar – Dasar Pemrograman ini
diharapkan dapat menjadi panduan yang baik dan jelas bagi siapapun yang membacanya.
Modul ini akan digunakan dalam proses belajar praktikum Dasar – Dasar Pemrograman.
Tahun ini, Laboratorium Teknik Informatika FT-UMJ bekerja sama dengan dosen pengampu
mata kuliah Dasar – Dasar Pemrograman berusaha untuk menyelaraskan pelaksanaan
praktikum dengan pelaksanaan kuliah di kelas. Dengan usaha tersebut kami berharap
penyerapan materi Dasar – Dasar Pemrograman oleh para mahasiswa dapat lebih efektif,
sehingga pada akhir semester hasil evaluasi belajar mahasiswa dapat lebih meningkat
dibandingkan dengan tahun-tahun yang lalu.
Sebagai penutup, saya ucapkan banyak-banyak terima kasih kepada semua pihak yang telah
membantu terselesaikannya modul ini, dosen-dosen pengampu mata kuliah Dasar – Dasar
Pemrograman, serta tim penyusun modul Laboratorium Teknik Informatika FT-UMJ atas
seluruh dedikasi yang diberikan kepada Lab tercinta.
Terima kasih sebelumnya kami sampaikan kepada para pembaca modul ini, semoga ilmu
yang telah dipelajari dapat bermanfaat dan semakin berkembang di tangan anda semua.
Tim Penyusun
iv
DAFTAR ISI
1.2.1 Variabel........................................................................................................................ 1
a. Terformat ..................................................................................................................... 9
v
2.2 Operasi ....................................................................................................................... 10
vi
6.3 Bubble Sort ................................................................................................................ 26
vii
MODUL 1 PENGENALAN BAHASA C DAN
FUNGSI-FUNGSI PUSTAKA
Bahasa C merupakan hasil pengembangan dari bahasa B yang ditulis oleh Ken
Thompson pada tahun1970 yang akarnya yaitu dari bahasa BCPL yang dikembangkan oleh
Martin Richard pada tahun 1967. sedangkan bahasa C sendiri di tulis oleh Brian W.
Kernighan dan Denies M. Ritchie pada tahun 1972. Bahasa C pada awalnya dioperasikan
pada sistem operasi UNIX.
Bahasa C merupakan bahasa pemrograman tingkat menengah yang berada diantara
bahasa tingkat rendah dan bahsa tingkat tinggi yang biasa disebut dengan bahasa Assambly.
Bahasa C mempunyai banyak kemampuan, diantaranya membuat perangkat lunak seperti
dBASE, Word Star, dan lain-lain. Pada tahun 1980, seorang ahli Bjarne Stroustrup
mengembangkan beberapa hal dari bahasa C yang kemudian dinamakan C with Classes
karena disini lebih berbasis objek. Dan kemudian pada tahun 1983 berganti nama menjadi
++.
1.2.1 Variabel
1
Contoh :
int a;
Dari contoh di atas dapat diketahui sebuah variabel "a" dengan tipe data integer(int)
dimana tipe data akan dibahas pada bagian berikutnya.
Bahasa C sangat membedakan antara huruf kecil dan huruf besar misalnya variabel
HASILtidak sama dengan variabel Hasilatau denganvariabel hasil. Ketiganya merupakan
variabel yang berbeda.
Komentar atau White Space adalah bagian yang tidak akan dibaca atau dieksekusi
pada saat kompilasi. Pendeklarasian komentar pada C dapat ditulis seperti berikut ini :
Contoh :
/*kalimat ini tidak akan di eksekusi sampai di temukan tanda berikut */
// hanya baris ini saja yang tidak akan dieksekusi
Bahasa C merupakan kumpulan dari fungsi-fungsi dan terstruktur. Fungsi utama atau
badan dari bahasa C adalah main() kemudian diawali dengan kurawal "{" dan diakhiri dengan
kurawal tutup "}". Diantara kurung kurawal tersebut dapat dituliskan statement-statement
program C.
Syntax :
1. #include <header-include-nya>
2. tipe_fungsi main() {
3. statement_1;
4. statement_2;
5. ..
6. ..
7. statement_n;
8.
9. return 0; //nilai kembali. digunakan jika tipe_fungsi_main tidak void
10. }
2
Program-program bagian atau selain fungsi utama dapat dituliskan sesudah fungsi utama
atau diletakkan di file pustaka(library) dengan menggunakan file judul (header file) dengan
menggunakan preprocessor directive #include.
Contoh program 1-1:
1. #include <stdio.h> //stdio.h adalah nama header yang kita gunakan dalam program
ini
2. main() {
3. printf("Hello World\n"); /* printf adalah sintaks cetak Hello World */
4. printf("Ini adalah program pertama kita dengan bahasa C");
5. }
Penentu
Tipe Data Keterangan Ukuran Jangkauan Nilai
Format*
Bilangan Bulat
signed : -32768 s.d. 32767
Short int (short) Short integer 2 bytes
unsigned : 0 s.d. 65535
signed : -2147483648 s.d. 2147483647
Int Integer 4 bytes %d, %i, %u
unsigned : 0 s.d. 4294967295
Long int (long signed : -2147483648 s.d. 2147483647
long integer 4 bytes %ld
integer) unsigned : 0 s.d. 4294967295
Bilangan Pecahan
+/- 3.4E +/-3.8 (5-7 digit) %f, %e(pangkat)
Float floating point 4 bytes %g(desimal &
pangkat)
+/- 1.7E +/- 308 (15-16 digit)
Double kecepatan ganda 8 bytes
+/- 3.4E +/- 4932 (19 digit)
floating point
Long double 10 bytes
kecepatan panjang
Karakter
signed : -128 s.d. 127
Char Karakter 1 byte %c
unsigned : 0 s.d. 255
Boolean
Bool true / false
Penentu Format yang lain
3
Penentu
Tipe Data Keterangan Ukuran Jangkauan Nilai
Format*
String %s
hexadecimal
%x
integer
octal integer %o
Pointer %p
*)Penentu format akan di bahas pada modul berikutnya.
13. }
%i mengacu pada tipe data variabel a yang bertipe integer. Penentu format ini (pada
contoh %i) disesuaikan dengan tipe data variabelnya, misal %d dan %i untuk tipe data
integer, %f untuk floating point, %c untuk karakter, dan lain sebagainya.
1.2.6 Konstanta
Konstanta adalah suatu nilai yang sifatnya tetap.
Contoh program 1-3:
1. #include <stdio.h>
2. #define a 9
3. const float t=5.5;
4
4. main() {
5. float luasSegitiga;
6. luasSegitiga = a*t/2; //proses rumus Luas Segitiga
7. printf("Alas = %i",a);
8. printf("Tinggi = %f",t);
9.
10. printf("Luas Segitiga = %f", luasSegitiga);
11. }
Karakter Arti
\a Bunyi bel (speaker komputer)
\b Mundur satu spasi (backspace)
\f Ganti halaman (form feed)
\n Ganti baris baru (new line)
\r Ke kolom pertama baris yang sama (carriage return)
\t Tab horizontal
\v Tab vertical
\0 Nilai kosong (NULL)
\’ Karakter petik tunggal
\” Karakter petik ganda
\\ Garis miring terbalik (backslash)
1.2.7 Operator
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam program untuk
melakukan suatu operasi atau manipulasi, seperti penjumlahan, pengurangan, dan lain-lain.
a. Operator Aritmatika
Operator Arah Proses Jenjang Fungsi
* kiri – kanan 3 Perkalian
/ kiri – kanan 3 Pembagian
% kiri – kanan sisa pembagian (modulus)
+ kiri – kanan Penjumlahan
- kiri – kanan Pengurangan
5
Contoh program 1-4:
1. #include <stdio.h>
2. main() {
3. int a,b,c=0,d=0;
4. printf("Masukkan nilai a= "); scanf("%d",&a);
5. printf("Masukkan nilai b= "); scanf("%d",&b);
6.
7. c=a+b*3;
8. d=(a+b)*3;
9.
10. printf("a + b * 3 = %d\n",c);
11. printf("(a + b) * 3 = %d\n",b);
12. }
b. Operator Unary
Operator Arti
- unary minus
-- penurunan dengan pengurangan nilai 1
+ unary plus
++ peningkatan dengan penaikan nilai 1
(tipe) castukuran operand dalam byte
Sizeof unary NOT
! operator unary complement satu (bitwise NOT)
~ menghasilkan alamat memory operand (operator pointer)
& menghasilkan nilai pengenal di alamatnya (operator pointer)
* unary minus
6
9. printf("Nilai a setelah proses = %i\n",a);
10. printf("Nilai x setelah proses = %i\n",x);
11. printf("Nilai b setelah proses = %i\n",b);
12. }
c. Operator Koma
d. Operator Pengerjaan
Operator Contoh Ekuivalen dengan
= A=B+C masukkan nilai B+C ke dalam A
+= A+=1 A=A+1
-= A-=B A=A-B
*= A*=B A=A*B
/= A/=B A=A/B
%= A%=B A=A%B
e. Operator Hubungan
Operator Jenjang Arti
< 6 lebih kecil dari
<= 6 lebih kecil dari atau sama dengan
> 6 lebih besar dari
>= 6 lebih besar dari atau sama dengan
== 7 sama dengan
!= 7 tidak sama dengan
f. Operator Bitwise
Operator Jenjang Arti
<< 5 pergeseran bit ke kiri
>> 5 pergeseran bit ke kanan
& 8 bitwise AND
^ 9 bitwise XOR (Exclusive OR)
| 10 Bitwise OR
7
2. int main() {
3. int a=10, b=80, c=1, temp;
4. printf("a=%d, b=%d \n",a,b);
5. temp=a;
6. a=b+20;
7. b=temp;
8. printf("a=%d, b=%d \n",a,b);
9. c-=b;
10. printf("c=%d",c);
11. return 0;
12. }
Adapun perintah yang disediakan dalam standar input output header(stdio.h) dalam
menampilkan hasil secara terformat adalah printf()printf() perintah yang paling umum
digunakan dalam menampilkan hasil ke layar.
Syntax :
printf("string-kontrol", argumen1, argumen2, .., argumenN);
String-kontrol berupa keterangan yang akan ditampilkan beserta penentu formatnya
(ada pada modul sebelumnya). Sedangkan Argumen dapat berupa variabel, konstanta,
ungkapan.
Contoh Program 1-7:
1. #include <stdio.h>
2. main() {
3. float a=3.8, b=12.45678;
4. int c=6, d=256;
5. char e='a', f='b';
6.
7. printf("Menampilkan keluaran :\n\n");
8. printf("%2.2f \t %.3f",a,b);
9. printf("\n%d \t %i \n",c,d);
10. printf("%c \t %c \n",e,f);
11. }
8
1.2.9 Perintah Masukkan
C juga menyediakan 2 bentuk inputan data yang disediakan dalam header stdio.h dan
conio.h
a. Terformat
Perintah yang digunakan untuk memasukkan data terformat adalah scanf();
Syntax :
scanf("format data", &namaVariabel);
b. Tidak Terformat
Adapun fungsi-fungsi yang dimiliki oleh C untuk memasukkan data secara tidak
terformat adalah :
getchar() = tanpa argumen, langsung memberikan hasil, dan harus menekan tombol enter.
Contoh Program 1-9:
1. #include<stdio.h>
2. int main(){
3.
4. int a;
5. printf("masukkan angka yang anda suka: "); scanf("%d", &a);
6. printf("\n\nAnda menyukai angka %d",a);
7. return 0;
8. }
9
MODUL 2 STATEMENT KONDISI
2.1 Statement
Statement adalah suatu bentuk instruksi atau perintah pada program komputer. C
membedakan statement dalam beberapa jenis, yaitu :
a. Statement kosong adalah statement yang hanya terdiri dari pengakhir titik koma saja
dan tidak ada pernyataan apapun.
b. Statement ungkapan adalah statement yang dibentuk dari suatu ungkapan yang
diakhiri dengan titik koma.
Statement kendali adalah statement yang berfungsi untuk mengendalikan proses dari
program.
2.2 Operasi
Operasi ini digunakan untuk memecahkan persoalan untuk mengambil suatu
keputusan diantara sekian pernyataan yang ada.
2.2.1 Pernyataan if
Syntax:
if (kondisi)
statement;
Atau
if (kondisi) {
statement_1;
statement_2;
..
Statement_N;
}
10
16. return 0;
17.
18. }
Syntax :
if (kondisi1) {
statement1; }
else if (kondisi2) {
statement2; }
else {
11
statement3; }
12
16. statement_1;
17. ...
18. statement_N;
19. break;
20. }
13
13. printf("grade = %c\n",grade);
14. return 0;
15. }
16. }
14
MODUL 3 STATEMENT PERULANGAN
15
10. }
17
3.2.4 Pernyataan break
Pernyataan break berfungsi untuk keluar dari suatu struktur switch atau keluar dari
perulangan (for, while, do - while)
Contoh program 3-6:
1. #include <stdio.h>
2. main() {
3. int bil=1;
4. do {
5. if(bil >= 6)
6. break;
7. printf("%i",bil);
8. } while(bil++);
9. printf("\n");
10. }
18
Tugas Akhir Modul 3
a. Merangkum modul 4 dengan tulis tangan di buku laporan
b. Buatlah program dengan output sebagai berikut :
*
**
***
****
*****
c. Buatlah program untuk menentukan jumlah IPS (indeks predikat sementara) tertinggi
dari 10 mahasiswa
19
MODUL 4 Rekursif
Rekursif berarti suatu proses yang memanggil dirinya sendiri. Dalam rekursif
sebenarnya terkandung pengertian prosedur atau fungsi. Perbedaannya adalah bahwa rekursif
bisa memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat
pemanggil prosedur atau fungsi. Rekursif merupakan teknik pemrograman yang penting, dan
beberapa bahasa pemrograman modern mendukung keberadaan proses rekursif ini.
Pemanggilan prosedur atau fungsi ke dirinya sendiri bisa berarti proses yang berulang yang
tidak bisa diketahui kapan akan berakhir. Dalam pemakaian sehari-hari, rekursi merupakan
teknik pemrograman yang berdaya guna untuk digunakan pada pekerjaan pemrograman
dengan mengeksperisikannya ke dalam suku-suku dari program lain dengan menambahkan
langkahlangkah sejenis. Contoh paling sederhana dari proses rekursi adalah menghitung nilai
faktorial dari bilangan bulat.
Syntax :
Void nama_fungsi()
{
nama_fungsi();
}
#include<stdio.h>
#include<conio.h>
float fak(float n)
{
if (n<2)
{
return 1;
}
else
return n*fak(n - 1);
}
int main()
{
float n;
printf("Masukkan n = "); scanf("%f", &n);
printf("\n\n");
printf(" Faktorial = %0.f ", fak(n));
getch();
return 0;
}
20
Contoh program 4-2 :
#include<stdio.h>
#include<conio.h>
int fib(int n)
{
if (n<2)
{
return 1;
}
else
return fib(n - 1) + fib(n - 2);
}
int main()
{
int n;
printf("Masukkan n = "); scanf("%d", &n);
printf("\n\n");
printf(" Fibbonaci = %d ", fib(n));
getch();
return 0;
}
Contoh program 4 - 3 :
#include <stdio.h>
int pangkat(int x, int y)
{
if (y == 0)
{
return 1;
}
else
{
return x * pangkat(x, y - 1);
}
}
int main()
{
printf(" Menghitung 3 pangkat 2 : %d ", pangkat(3, 2));
}
21
Tugas Akhir Modul 4
22
MODUL 5 ARRAY
Array dapat digambarkan sebagai kotak-kotak kecil yang didalam setiap kotak
tersebut berisi elemen-elemen atau nilai-nilai array dengan index atau nomor kotak dimulai
dari nol.
Suatu array juga dapat dideklarasikan tanpa indeks yang menyatakan ukurannya.
Contoh membuat larik atau array yang tidak berukuran yaitu int x[ ]={9, 8, 7};Untuk
melakukan pengaksesan terhadap suatu array, ini dapat dilakukan dengan menggunakan
indeksnya yang dimulai dari nol(0).
Contoh program 5-1:
1. #include<stdio.h>
2. main(){
3. float x[ ]={9, 8, 7}, jum=0;
4. int i;
5. for(i=0; i<5; i++)
6. jum+=x[i];
7. printf("Jumlah = %.1f\n", jum);
8.program
Contoh } 5-2:
23
1. #include<stdio.h>
2. int main(){
3. int asli[100], balik[100], jml_data, i;
4. printf(“masukan jumlah data = “);
5. scanf(“%d”, &jml_data);
6. printf(“bilangan = “);
7. for(i=0; i<jml_data; i++)
8. scanf(“%d”,&asli[i]);
9. for(i=0; i<jml_data; i++)
10. balik[i]=asli[jml_data-i-1];
11. for(i=0; i<jml_data; i++)
12. printf(“%d”,balik[i]);
13. return 0;
14. }
24
Contoh program 6-2;
1. #include<stdio.h>
2. main() {
3. int A[3][4], B[3][4], C[3][4],i ,j;
4. puts(“Inputs matrik A dan B”);
5. for(i=0; i<=2; i++){
6. for(j=0; j<4; j++){
7. printf(“A[%d][%d]= “, i, j); scanf(“%d”, &A[i][j]);
8. printf(“B[%d][%d]= “, i, j); scanf(“%d”, &B[i][j]);
9. }
10. }
11. puts(“Jumlahkan Matrik A dan B\n”);
12. for(i=0; i<3; i++){
13. printf(“| “);
14. for(j=0; j<=3; j++){
15. C[i][j]=A[i][j]+B[i][j];
16. printf(“%d “, C[i][j]);
17. }
18. printf(“|\n”);
19. }
20. }
1. #include<stdio.h>
2. main(){
3. int A[3][4], jml=0, i, j;
4. puts(“Input matrik A dan B”);
5. for(i=0; i<=2; i++){
6. for(j=0; j<4; j++){
7. printf(“A[%d][%d]= “,i ,j); scanf(“%d”, &A[i][j]);
8. }
9. }
10. for(i=0; i<3; i++){
11. for(j=0; j<=3; j++){
12. if (i==1)
13. jml+=A[i][j];
14. }
15. }
16. printf(“hasil penjumlahan baris pertama = %d”, jml);
17. }
18.
25
MODUL 6 BUBBLE SORT DAN INSERTION SORT
6.1 Pengertian
Pengurutan (Sort) dalam pemrograman digunakan untuk mengurutkan (baik secara
ascending atau descending) beberapa bilangan/karakter yang sama tipenya. Sort
dipergunakan agar user/pengguna atau programer dapat mengetahui nilai yang terkecil
sampai dengan nilai yang terbesar atau sebaliknya. Sort biasanya digunakan di dalam aplikasi
aplikasi yang berhubungan dengan banyak data.
a. ‘Bubble Sort’ tidak efisien dan menyita lebih banyak waktu prosessor dibandingkan
dengan metode Sorting yang lain.
b. Penggunaan ‘Bubble Sort’ masih dapat terlihat baik jika jumlah data/elemen yang di
inputkan tidak lebih dari 30 atau kurang dari 30 elemen.
26
dengan membandingkan satu angka dengan angka-angka yang lain dalam deret, dan jika
angka yang dibandingkan lebih besar daripada angka pembanding, maka nilainya
dipertukarkan (swap).
Mari kita coba mengurutkan deret array "5 1 4 2 8", dari angka terendah ke angka
terbesar menggunakan Bubble Sort. Dalam setiap langkah, unsur-unsur yang ditulis dalam
huruf tebal sedang dibandingkan.
fase ke 2
(1 4 2 5 8)-->(1 4 2 5 8)
(1 2 4 5 8)-->(1 2 4 5 8)
(1 2 4 5 8)-->(1 2 4 5 8)
fase ke 3
Kini deret sudah terSortir, namun algoritma yang berjalan belum selesai, algoritma
msih mengecek deret hingga benar benar deret tidak ada lagi yang di swap/ di tukar.
(1 2 4 5 8) -->(1 2 4 5 8)
(1 2 4 5 8) -->(1 2 4 5 8)
(1 2 4 5 8) -->(1 2 4 5 8)
(1 2 4 5 8) -->(1 2 4 5 8)
27
Contoh program 2-1 :
#include<stdio.h>
#include<conio.h>
main()
{
datab baru;
int *tunjuk;
printf(" Masukkan jumlah data = "); scanf("%d", &data);
printf("\n\n");
for (i = 1; i <= data; i++)
{
printf(" A[%d] = ", i); scanf("%d", &baru.A);
tunjuk = baru.A;
h[i] = *tunjuk;
}
printf("\n\n");
printf("--------------Data tak terurut-----------------");
printf("\n\n");
printf(" A = { ");
for (i = 1; i <= data; i++)
{
printf("%d,", h[i]);
}
printf(" } ");
for (i = 1; i <= (data - 1); i++)
{
for (j = data; j >= (i + 1); j--)
{
if (h[j]<h [j - 1])
{
bantu = h[j - 1];
h[j - 1] = h[j];
h[j] = bantu;
printf("\n\n");
printf(" A = { ");
for (k = 1; k <= data; k++)
{
printf("%d,", h[k]);
}
printf(" }\a ");
}
}
printf("\n\n");
28
printf("--------------Data terurut---------------------");
printf("\n\n");
printf(" A = { ");
for (i = 1; i <= data; i++)
{
printf("%d,", h[i]);
}
printf(" } ");
getch();
return 0;
}
Insertion Sort bekerja seperti banyak orang yang sedang mengurutkan kartu di tangan.
Dimulai dengan tangan kiri yang kosong dan kartunya tertumpuk di meja. Selanjutnya kita
ambil satu persatu kartu di meja dan diletakkan di tangan kiri dengan posisi yang benar
(terurut). Untuk menemukan posisi yang benar, maka kita harus membandingkan satu persatu
kartu yang ada( di tangan kiri) secara berurutan.
Proses
a. Proses dilakukan sebanyak N-1 tahapan (dalam Sorting disebut sebagai “pass”).
b. Indeks dimulai dari 0
c. Proses Sorting dengan cara membandingkan data ke-I (dimana i dimulai dari data ke-2
sampai dengan data terakhir) dengan data berikutnya.
d. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai
dengan posisi yang seharusnya.
#include<stdio.h>
#include<conio.h>
main()
{
int i, j, data, k, x, bantu, A[100];
printf(" Masukkan jumlah data = "); scanf("%d", &data);
printf("\n\n");
for (i = 1; i <= data; i++)
29
{
printf(" A[%d] = ", i); scanf("%d", &A[i]);
}
printf("\n\n");
printf("--------------Data tak terurut-----------------");
printf("\n\n");
printf(" A = { ");
for (i = 1; i <= data; i++)
{
printf("%d,", A[i]);
}
printf(" } ");
for (i = 2; i <= data; i++)
{
x = A[i];
A[0] = x;
j = i - 1;
while (x<A[j])
{
A[j + 1] = A[j];
j = j - 1;
}
A[j + 1] = x;
}
printf("\n\n");
printf("--------------Data terurut---------------------");
printf("\n\n");
printf(" A = { ");
for (i = 1; i <= data; i++)
{
printf("%d,", A[i]);
}
printf(" } ");
getch();
return 0;
}
30
MODUL 7 PENCARIAN
Contoh program 4 – 1 :
#include<stdio.h>
int main()
{
int i, b, data[50], h[50], cari;
printf(" Banyak Data = "); scanf("%d", &b);
printf("\n");
for (i = 1; i <= b; i++)
{
printf("\n");
printf(" Data [%d] = ", i); scanf("%d", &data[i]);
}
printf("\n\n");
printf(" Data yang di cari = "); scanf("%d", &cari);
i = 1;
while ((data[i] != cari) && (i <= b))
{
i++;
}
if (i <= b)
{
printf("\n Data ditemukan dalam index ..");
}
else
{
printf("\n");
printf(" \a\aData yang anda cari tidak ditemukan pada index ");
}
return 0;
}
31
diperkirakan akan memegang kunci ( jika tersedia ) berdasarkan perbandingan yaitu jika
array diurutkan secara meningkat dan kuncinya adalah lebih kecil dari elemen tengah, itu
akan berada di index pertama , pilih kunci dan ulangi operasi yang sama lagi dan lagi sampai
kunci ditemukan atau tidak lebih dari elemen yang tersisa dalam array .
#include<stdio.h>
#include<conio.h>
int i,L, b, H, m, j, u, T, data, data_baru, ketemu, A[100];
main()
{
printf(" Masukkan jumlah bilangan = "); scanf("%d", &b);
printf("\n");
for (i = 1; i <= b; i++)
{
printf(" A[%d] = ", i); scanf("%d", &A[i]);
}
printf("\n");
for (u = 2; u <= b; u++)
{
data_baru = A[u];
A[0] = data_baru;
j = u - 1;
while ((data_baru<A[j]) && (j >= 1))
{
A[j + 1] = A[j];
j = j - 1;
}
m = j + 1;
A[m] = data_baru;
}
printf("\n");
printf("\n\n");
printf(" Masukkan data yang ingin dicari = "); scanf("%d", &data);
L = 1;
H = b;
ketemu = 0;
while ((ketemu == 0) && (L <= H))
{
T = (L + H) / 2;
if (A[T] == data)
{
ketemu = 1;
}
else
{
if (A[T]>data)
{
32
H = T - 1;
}
else
{
L = T + 1;
}
}
}
if (ketemu == 1)
{
printf("\n");
printf(" Data yang anda cari ditemukan pada index ");
}
else
{
printf("\n");
printf(" \a\aData yang anda cari tidak ditemukan pada index ");
}
return 0;
a. Buatlah program sederhana pencarian data pelanggan dengan dua keyword umur serta
id_pelanggan menggunakan pencarian biner !
b. Carilah contoh program pencarian selain yang diatas !
33
MODUL 8 FUNGSI
Untuk pemanggilan suatu fungsi dapat dilakukan dengan menuliskan nama fungsi
tersebut.
1. #include<stdio.h>
2. void garis(){
3. printf(“---------------------“);
4. }
5. main(){
6. garis(); //memanggil fungsi
7. printf(“Teknik Informatika FT-UMJ\n”);
8. garis(); //memanggil fungsi
9. getchar();
10. }
11.
34
8.2 Deklarasi Fungsi
Suatu fungsi yang memberikan hasil balik selain tipe int perlu dideklarasikan terlebih
dahulu sebelum digunakan. Deklarasi fungsi ditulis sebelum fungsi tersebut digunakan. Ini
digunakan jika definisi fungsi ditulis terpisah dengan badan fungsi.
Contoh program 7-2:
1. #include<stdio.h>
2. double absolut(double x); // pendeklarasian fungsi. Titik koma harus ditulis
3. int main(){
4. float nilai, hasil;
5. nilai=-12.5;
6. hasil=absolut(nilai); //pemanggilan fungsi
7. printf(“%.2f nilai mutlak = %.2f\n”, nilai, hasil);
8. return 0;
9. }
10. double absolut(double x){
11. if(x<0) x=-x;
12. return (x);
13. }
1. #include<stdio.h>
2. #include<math.h>
3. float f(int x);
4. int main(){
5. printf(“harga fungsi = %f”, f(5));
6. return 0;
7. }
8. float f(int x);
9. return –x*x;
10. }
35
8.5 Jenis Variabel pada Fungsi
36
Tugas Akhir Modul 8
a. Buatlah rangkuman modul 8 dengan tulis tangan di buku laporan
b. Buatlah program menggunakan function dengan output sebagai berikut :
Pilihan :
1. Luas dan keliling lingkaran
2. Luas dan keliling trapezium
3. Luas dan keliling jajar genjang
4. Exit
37
Daftar Pustaka
(2016, September 8). Retrieved from tutorialpoints.com:
http://www.tutorialspoint.com/cprogramming
Binary Search Algorithm- Fundamentals, Implementation and Analysis. (2015, Mei 15).
Retrieved September 9, 2016, from http://www.codingeek.com/algorithms/binary-
search-algorithm-fundamentals-implementation-and-analysis/
C - Array of pointers. (2015, November 2). Retrieved September 9, 2016, from
http://www.tutorialspoint.com/cprogramming/c_pointers.htm
PRANATA, A. (2005). ALGORITMA DAN PEMROGRAMAN. Yogyakarta: Graha Ilmu.
Quick Sort Program in C. (2015, Oktober 8). Retrieved September 9, 2016, from
http://www.tutorialspoint.com/data_structures_algorithms/quick_sort_program_in_c.h
tm
38