• Tidak ada hasil yang ditemukan

Pendahuluan a. Deskripsi

Dalam dokumen 210798067 Pemrograman Terstruktur Bahasa C (Halaman 48-76)

PENYELEKSIAN KONDISI

1. Pendahuluan a. Deskripsi

Dalam bab ini dijelaskan tentang fungsi – fungsi yang digunakan untuk membuat perintah perulangan dan perbedaan penggunaan masing - masing fungsi.

b. Tujuan Pembelajaran

Setelah mengikuti perkuliahan ini, mahasiswa diharapkan mampu menyelesaikan masalah perulangan dengan menggunakan program bahasa C.

2. Teori Dasar

Perulangan data atau yang biasa disebut dengan “looping” adalah proses yang dilakukan secara berulang-ulang sampai batas yang ditentukan. Perulangan akan berhenti jika nilai yang dimasukan sudah tidak memenuhi syarat yang diberikan. Jenis – jenis perulangan:

a. For

For digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Syntax untuk menuliskan perintah for adalah sebagai berikut [4]:

for (inisialisasi; syarat_perulangan; pengubah_nilai_pencacah)

Keterangan :

 Inisialisasi : bagian untuk memberikan nilai awal untuk variabel – variabel tertentu

 Syarat pengulangan : memegang kontrol terhadap pengulangan, karena bagian ini yang akan menentukan suatu perulangan diteruskan atau dihentikan.

 Pengubah nilai pencacah : mengatur kenaikan atau penurunan

nilai pencacah. Contoh program 1: #include <stdio.h> #include <conio.h> void main () { int a; for (a = 1; a <=10; a++) {

printf ("%d. UNIVERSITAS HASANUDDIN MAKASSAR\n",a); }

getch(); }

Tampilan program diatas :

Contoh program 2 :

Berikut adalah contoh program untuk menghitung nilai factorial dari n (n!) menggunakan for.

#include <stdio.h> #include <conio.h> main () { int i, j; int hasil = 1;

printf ("PROGRAM UNTUK MENGHITUNG FAKTORIAL N!"); printf ("\n\nInput N = ");

scanf ("%i", &j); for (i = j; i >=1; i--)

{hasil = hasil*i; }

printf ("\n\nHasil faktorial : %d", hasil); getch ();

}

Tampilan Program diatas :

Contoh program 3 [2]:

Berikut akan diberikan contoh penggunaan perintah for dalam for : #include <stdio.h> #include <conio.h> main () { int i, j; for (i = 1; i < 6; i++)

{printf ("%d",i); } printf ("\n"); } getch (); }

Tampilan program diatas:

b. While

While digunakan untuk mengulang suatu proses yang belum diketahui jumlahnya. Pengecekan kondisi akan dilakukan terlebih dahulu. Jika kondisi masih bernilai true, maka looping akan terus berlanjut. Bentuk penulisan while adalah sebagai berikut[1]:

while (syarat_pengulangan) { statement_yang_akan_diulang; } Contoh program 1: #include "stdio.h" #include "conio.h" void main() { clrscr(); int bil = 1;

while (bil <= 10) {

printf ("%i", bil); bil++;

}

getch(); }

Tampilan program diatas adalah :

Contoh program 2 [2]: #include <stdio.h> #include <conio.h> main() { int i; float f; i=1; while (i<=1000) { printf("%i\n",i); i++; } f=10; while (f>=0) { printf("%6.2f\n",f); f=f-0.5; } getch(); return 0;}

c. Do while

Do while digunakan untuk mengulang suatu proses yang belum diketahui jumlahnya. Instruksi akan dijalankan lebih dahulu, kemudian dilakukan pengecekan kondisi apabila masih bernilai true maka looping akan terus berlanjut. Bentu penulisannya sebagai berikut [1]: do { statement-yang-akan-diulang; } while (syarat-pengulangan); Contoh program : # include <stdio.h> # include <conio.h> void main () { int bil = 2; do

{

printf ("%i", bil); bil +=2;

}

while (bil<=10); getch ();

}

Tampilan program diatas adalah :

Contoh program 2 [2]:

Contoh program berikut akan menunjukkan bagaimana proses penjualan n buah barang dengan melakukan entry harga barang dan jumlah pembelian.

# include <stdio.h> #include <conio.h> main ()

{

int hitung = 0; // memberi nilai awal counter int n, jumlah;

long harga, subtotal, total = 0; do

{

printf ("\nBarang ke - %d\n", hitung+1);

printf ("Harga Barang : "); scanf ("%d", &harga); if (harga!=0)

{ printf ("Jumlah : "); scanf ("%d", &jumlah);

subtotal = harga * jumlah; total = total + subtotal; hitung ++;

printf("\nTotal Pembelian : %d", total); getch ();

}

Tampilan program diatas adalah :

Contoh aplikasi [3]:

Titik A dan titik B hanya dihubungkan oleh satu buah jalan sepanjang 1000 m. Ali berangkat dari titik A menuju titik B tepat jam 08 : 15 : 27 dengan kecepatan tetap 2 m/det. Badu berangkat dari titik B pada jam yang sama menuju titik A dengan kecepatan tetap 3 m/det. Susun program untuk mencetak pukul berapa ( Jam: Menit: detik) Ali dan Badu berpapasan di jalan.

# include <stdio.h> #include <conio.h> void main ()

{ int vAli, vBadu, sAli, sBadu, s, t; long int t1, t2, det, J, M, D;

vAli = 2; vBadu = 3; sAli = 0; sBadu;

s = 1000 ; t = 0;

while ((sAli + sBadu) < s) { sAli = sAli + vAli; sAli = sBadu+ vBadu; t = t + 1;

}

t1 = 8*3600L + 15*60 +27; t2 = t1 + t;

det = t2;

J = det/ 3600; det = det % 3600; M = det / 60; det = det % 60; D = det;

printf ("%li : %li : %li", J, M, D); getch ();

}

3. Latihan

1) Buatlah program menghitung 10 deret bilangan genap dengan

hasilnya!

2 + 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20 = 110 a. Dan ganjil dengan hasilnya!

b. 1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 = 100

2) Buatlah program untuk menghitung perkalian deret bilangan ganjil membentuk segitiga siku dengan hasilnya!

1 = 1

1 x 3 = 3

1 x 3 x 5 = 15

1 x 3 x 5 x 7 = 105

1 x 3 x 5 x 7 x 9 = 945

3) Seseorang menyimpan uang Rp 1.000.000,- di bank dengan bunga ber-bunga 2 % perbulan. Jadi setelah satu bulan uangnya menjadi Rp 1.020.000,-. Satu bulan berikutnya uangnya ini mendapat bunga lagi 2%, sehingga setetlah 2 bulan, uangnya menjadi Rp 1.020.000 + Rp 20.400,- = Rp 1.040.400,- dan demikian seterusnya. Buatlah program untuk menghitung dan mencetak jumlah uangnya stetlah 10 bulan.

Daftar Pustaka

[1] Frieyadie. 2005. “Panduan Pemrograman C++”. Penerbit Andi. Yogyakarta

[2] Kurniawan Khannedy Eko. 2007. “Pemrograman C”. Teknik Informatika. UNICOM.

[3] Sjukani Moh. 2009. “Algoritma (Algoritma & Struktur Data 1) dengan C, C++, dan Java, Teknik – Teknik Dasar Pemrograman Komputer”. Edisis 5. Mitra Wacana Media. Jakarta

[4] Solichin Achmad. “Pemrograman Bahasa C dengan Turbo C”.

BAB VI

ARRAY

1. Pendahuluan a. Deskripsi

Bab ini menyajikan tentang pengertian, cara deklarasi, dan penggunaan array baik array berdimensi satu, array berdimensi dua,

dan array multi-dimensi. Serta disajikan contoh – contoh

penggunaannya masing – masing.

b. Tujuan Pembelajaran

Setelah mengikuti perkuliahan ini, mahasiswa diharapkan dapat memahami penggunaan array serta mampu mengaplikasikan dalam menyelesaikan program yang membutuhkan penyelesaian dengan array.

2. Teori Dasar

Array atau larik adalah tipe terstruktur yan terdiri dari sejumlah komponen yang mempunyai tipe yang sama. Jumlah komponen dalam sebuah array adalah tetap. Banyaknya komponen dalam array ditunjukkan oleh indeks yang berfungsi untuk membedakan variabel yang satu dengan variabel lainnya. Dalam bahasa C dikenal 3 macam array yaitu :

a. Array Berdimensi Satu

Untuk mengakses setiap elemen dalam array dapat dilakukan dengan mengakses indeksnya. Indeks setiap array default dimulai dari nol. Adapun bentuk deklarasi array adalah [4]:

Tipe data untuk menyatakan tipe data yang digunakan dan ukuran digunakan untuk menyatakan jumlah maksimum elemen array. Sebuah array dapat digambarkan sebagai kotak anjang yang berisi kotak – kotak kecil di dalam kotak panjang tersebut. Contoh :

int nilai[5]; indeks [0] [1] [2] [3] [4] 50 85 90 70 95 Contoh program : # include <stdio.h> # include <conio.h> void main()

{ int index, barang[10]; clrscr();

// input jumlah barang//

printf ("Masukkan jumlah Barang :\n"); for (index =0 ; index < 10; index ++) {

printf ("Barang %i : ", index+1); scanf ("%i", &barang[index]);

}

printf ("Jumlah barang yang telah diinput:"); for (index = 0; index < 10; index++)

{

printf ("%i", barang[index]); }

getch (); }

Untuk mengakses array berdimensi 1, dapat digunakan bentuk pengaksesan sebagai berikut [1]:

Nama_array[indeks] Contoh :

nilai [3]; nilai [1]; nilai [0]; dst

Sedangkan untuk inisialisasi suatu array dapat dilakukan dengan bentuk :

Tipe_data nama_array[indeks] = {nilai array}; Contoh :

float nilai[5] = {75.8 78,67 87,5 90.0 65.7}; Contoh program inisiakisasi dan mengakses array : #include <stdio.h> #include <conio.h> main() { int i, nilai [5]; nilai [0] = 10; nilai [1] = 8; nilai [2] = 5; nilai [3] = 7; nilai [4] = 8;

printf ("Nilai = "); for (i = 0; i<5 ; i++) printf ("%i ", nilai[i]); getch();

}

Tampilan program diatas adalah :

Contoh program [1]: # include <stdio.h> # include <conio.h> void main()

{ int index,nilai[5] = {89, 75, 90, 65, 95}; for (index = 0; index <5 ; index ++) {

printf("\nNilai elemen ke %i adalah :%i", index+1, nilai[index]); }

printf ("\n\nNilai elemen ke 3 : %i", nilai[2] ); getch();

}

b. Array Berdimensi Dua

Array dimensi dua tersusun dalam bentuk baris dan kolom, dimana indeks pertama menunjukkan baris dan indeks kedua menunjukkan kolom. Array dimensi dua dapat digunakan pada pendataan penjualan, pendataan nilai, dan sebagainya.

Bentuk umum pendeklarasian array [1]:

Tipe_data Nama_variabel [indeks-1][indeks-2] Bentuk umum pengaksesan array berdimensi dua adalah :

Nama_array [index-1][index-2] Contoh :

Data [3][2] Data [0][1]

Bentuk pendefenisian array berdimensi dua adalah :

Tipe_data nama_array [juml_elemen] = {nilai array};

Contoh :

Int data [2][4] = {{ 1, 2, 3, 4}, 4, 3, 2, 1}; Contoh deklarasi array pada bahasa C [5]: #include <stdio.h>

#include <conio.h> main()

{ int i,j, matriks [3][3]; matriks [0][0] = 10; matriks [0][1] = 6; matriks [0][2] = 5; matriks [1][0] = 7; matriks [1][1] = 9; matriks [1][2] = 5; matriks [2][0] = 7; matriks [2][1] = 3;

matriks [2][2] = 2; printf ("Matriks = "); for (i = 0; i<3 ; i++) {for (j = 0; j < 3; j++)

{printf ("%i ", matriks[i][j]); } printf ("\n \t");

}

getch(); }

Tampilan program diatas adalah :

Contoh Program 2[4]: #include "stdio.h" #include "conio.h" void main()

{ int baris, kolom, matriks[3][4]; clrscr();

// Input elemen array secara Row Major Order printf("Input elemen Array : \n");

for(baris=0; baris<3; baris++) { for(kolom=0; kolom<4; kolom++)

{ printf("matriks[%i][%i] : ", baris+1, kolom+1); scanf("%i", &matriks[baris][kolom]);

}

printf("\n"); }

// Tampilkan elemen Array secara Row Major Order printf("Isi array : \n");

for(baris=0; baris<3; baris++) { for(kolom=0; kolom<4; kolom++) { printf("%i", matriks[baris][kolom]); }

} getch(); }

Tampilan program diatas adalah :

Contoh program 2 [2]: Penjumlahan dua buah matriks #include <stdio.h>

#include <conio.h> #define maks 3 main()

{

int mat1[maks][maks], mat2[maks][maks], mathasil[maks][maks]; int b,k; printf("Pengisian Matrik 1 : \n"); for (b=0;b<maks;b++) { for (k=0;k<maks;k++) { printf("Matrik [%d,%d] : ",b,k); scanf("%d",&mat1[b][k]); }

} printf("Pengisian Matrik 2 : \n"); for (b=0;b<maks;b++) { for (k=0;k<maks;k++) { printf("Matrik [%d,%d] : ",b,k); scanf("%d",&mat2[b][k]); } }

// awal operasi pertambahan matrik for (b=0;b<maks;b++)

for (k=0;k<maks;k++)

mathasil[b][k]=mat1[b][k]+mat2[b][k]; // akhir operasi perhitungan

printf("Matrik 1 :\n") ; for (b=0;b<maks;b++) { for (k=0;k<maks;k++) { printf("%6d",mat1[b][k]); } printf("\n"); } printf("Matrik 2 :\n"); for (b=0;b<maks;b++) { for (k=0;k<maks;k++) { printf("%6d",mat2[b][k]); } printf("\n"); } printf("Matrik Hasil :\n"); for (b=0;b<maks;b++) { for (k=0;k<maks;k++) {

printf("%6d",mathasil[b][k]); } printf("\n"); } getch(); return 0; }

Tampilan program diatas adalah :

c. Array Multi-dimensi

Array multi-dimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array sama saja dengan array dimensi satu maupun array dimensi dua. Bentuk umumnya yaitu [4]:

tipe_array nama_array[ukuran1][ukuran2]…[ukuranN]; Contoh :

float X[2][4][3]; Contoh program [4]: #include “stdio.h” #include “conio.h” void main() { int i, j, k;

static int data_huruf[2][8][8] = { { { 1, 1, 1, 1, 1, 1, 1, 0 }, { 1, 1, 0, 0, 0, 0, 1, 0 }, { 1, 1, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 1, 1, 1, 0 }, { 0, 0, 0, 0, 1, 1, 1, 0 }, { 1, 0, 0, 0, 1, 1, 1, 0 }, { 1, 1, 1, 1, 1, 1, 1, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0 } }, { { 1, 1, 0, 0, 0, 1, 1, 0 }, { 1, 1, 0, 0, 0, 1, 1, 0 }, { 1, 1, 0, 0, 0, 1, 1, 0 }, { 1, 1, 1, 1, 1, 1, 1, 0 }, { 1, 1, 1, 0, 0, 1, 1, 0 }, { 1, 1, 1, 0, 0, 1, 1, 0 }, { 1, 1, 1, 0, 0, 1, 1, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0 } } }; /* Tampilkan Huruf */ for(i=0; i<2; i++) { for(j=0; j<8; j++) { for(k=0;k<8; k++) if (data_huruf[i][j][k]) putchar(„\xDB‟); else putchar(“ “); /* spasi */ puts(“”); } puts(“”);

} getch(); }

Contoh aplikasi :

 Pencarian data (searching) menggunakan array[5] :

#include <stdio.h> #include <conio.h> int main() { int a[20] = {0}; int i;

int n; //mengacu pada jumlah array int target; //berisi data yang akan dicari

int ketemu; // status dari proses pencarian; 1 = ketemu, 0 = tidak ketemu

printf("Masukkan data - data yang ingin dibuat MAX 20 data :\t"); scanf ("%i", &n);

if (n >= 20) return 0;

printf ("Masukkan data - data pada array yang akan dibuat :\n"); for (i = 0; i < n; i++)

{

printf ("data ke-%d\t :", i+1); scanf ("%d", &a[i]);

}

for (i = 0; i < n; i++) // perulangan digunakan untuk menampilkan seluruh elemen array

{

printf("%d",a[i]); }

printf ("\nMasukkan angka yang akan dicari : "); scanf ("%d", &target);

for (i = 0; i < n-1; i++) // proses pencarian dilakukan mulai dari elemen ke-0 (pertama)

if (a[i] == target) {

printf (" Data %d ditemukan pada urutan ke %d", target, i+1); ketemu = 1; // variabel ketemu diberi nilai 1 untuk menunjukkan bahwa proses pencarian berhasil

return 0 ; }

printf ("Data tidak ditemukan"); }

getch () ; }

Tampilan program diatas adalah [5]:

 Pengurutan data dengan menggunakan array (menggunakan

metode selection short. #include <stdio.h>

#include <conio.h> main()

{

int N = 5; //jumlah elemen array arr int arr [5] = {63, 21, 3, 177, 8}; int i, j, k, temp, biggest;

printf ("Data elemen array arr sebelum di urutkan \n"); for (i = 0; i <= 4 ; i++);

{

}

printf ("\n");

// Proses pengurutan data bobble Sort for (i = 0; i <= N-2; i++)

{

biggest = 0;

for (j =0 ; j <= N-i-1; j++) {

if (arr [j] < arr [biggest]) {

biggest = j; }

}

temp = arr [N-1-i];

arr [N-1-i] = arr [biggest]; arr [biggest] = temp;

printf ("Loop - %d", i + 1); // Menampilkan hasil pengurutan setiap loopnya for (k = 0; k <=4; k++) { printf ("%d ", arr[k]); } printf ("\n"); }

printf (" Data elemen array arr setelah diurutkan\n"); for (i = 0; i <=4; i++) { printf ("%d ", arr[i]); } printf ("\n"); getch (); return 0; }

3. Latihan

1. Buatlah sebuah program untuk menghitung jumlah dan hasil kali matriks A dan B sebagai berikut :

A = [

]

B = [

]

2. Jumlah suara masing- masing calon pada sebuah pemilihan

walikota adalah sbb : Calon Kecamatan A B C D 1 304 125 112 111 2 203 236 231 145 3 112 312 332 211 4 98 142 167 245 5 346 154 287 123

Dengan menggunakan array, buatlah program untuk

menyelesaikan pekerjaan ini :

a. Membaca dan mencetak hasil pemilihan diatas dalam bentuk tabel

b. Menghitung dan mencetak jumlah suara masing – masing calaon hasil pemilihan tersebut.

c. Tampilkan pemenang hasil pemilihan tersebut.

3. Urutkanlah bilangan berikut dengan menggunakan metode

bubble sort.

[12, 35, 27, 5, 10, 56, 98, 75)

1. Terdapat sebuah array dua dimensi yang dibuat dengan int [3][5] dan telah diisi. Buatlah sebuah program untuk :

a. Mencetak nilai yang terbesar

b. Mencetak nilai yang terbesar dan mencetak ada berapa buah nilai yang terbesar.

c. Mencetak nilai yang terbesar dan mencetak ada berapa buah nilai yang terbesar, serta mencetak ada di lokasi mana saja nilai terbesar tersebut.

d. Memeriksa apakah diantara isi array tersebut ada yang nilainya = 50. Bila ada, maka cetak perkataan ada “ADA” dan bila tidak ada maka cetak “TIDAK ADA”.

Daftar Pustaka

[1] Frieyadie. 2005. “Panduan Pemrograman C++”. Penerbit Andi. Yogyakarta

[2] Kurniawan Khannedy Eko. 2007. “Pemrograman C”. Teknik Informatika. UNICOM.

[3] Sjukani Moh. 2009. “Algoritma (Algoritma & Struktur Data 1) dengan C, C++, dan Java, Teknik – Teknik Dasar Pemrograman Komputer”. Edisis 5. Mitra Wacana Media. Jakarta

[4] Solichin Achmad. “Pemrograman Bahasa C dengan Turbo C”.

www.ilmukomputer.com

[5] Swastika Windra. April 2012. "Dasar Algoritma dan Pemrograman menggunakan C & Java". Prestasi Pustaka Publisher. Jakarta

BAB VII

FUNGSI

1. Pendahuluan a. Deskripsi

Bab ini membahas tentang fungsi pustaka yaitu fungsi yang telah tersedia dalam turbo C dan fungsi yang dapat dibuat sendiri oleh programmer. Pada fungsi yang dapat dibuat sendiri oleh programmer akan dijelaskan tentang cara mendeklarasikan fungsi, jenis parameter dan variabel yang digunakan dalam bahasa C serta cara pemanggilan fungsi. Di akhir pembahasan, akan dijelaskan tentang fungsi rekursif. Dalam setiap pembahasan akan diberikan contoh program yang akan membantu mahasiswa lebih memahami tentang penggunaan fungsi.

b. Tujuan Pembahasan

Setelah mengikuti perkuliahan ini, mahasiswa diharapkan mampu memahami kegunaan penggunaan fungsi dalam bahasa pemrograman dan mampu menerapkan penggunaan fungsi dalam pemrograman bahasa C.

2. Teori Dasar

Fungsi adalah bagian dari program yang digunakan untuk suatu tugas tertentu dan letaknya terpisah dari program utama. Fungsi merupakan bagian utama dalam bahasa C karena program bahasa C sendiri tersusun atas kumpulan fungsi – fungsi dam dalam setiap program minimal terdapat satu buah fungsi yaitu fungsi main (). Adapun kegunaan penggunaan fungsi dalam bahasa C adalah :

 Program menjadi lebih terstruktur sehingga mudah untuk

 Untuk mengurangi pengulangan penulisan program yang sama. Dalam bahasa C fungsi dibagi menjadi dua yaitu fungsi pustaka atau fungsi yang telah tersedia dalam turbo C dan yang didefinisikan atau dibuat oleh programmer.

a. Fungsi Pustaka dalam Bahasa C [4]

1) Fungsi Operasi String (tersimpan dalam header file

Dalam dokumen 210798067 Pemrograman Terstruktur Bahasa C (Halaman 48-76)

Dokumen terkait