• Tidak ada hasil yang ditemukan

PEMROGRAMAN I

N/A
N/A
Protected

Academic year: 2017

Membagikan "PEMROGRAMAN I"

Copied!
92
0
0

Teks penuh

(1)

by Eko Budi Setiawan, S.Kom Halaman - 1 DIKTAT MATA KULIAH PEMROGRAMAN I

IF

BAB I

PENGENALAN BAHASA C

Pendahuluan

Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang keSmudian mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ritchie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. Bahasa C pertama kali digunakan pada komputer Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi UNIX.

Standar bahasa C yang asli adalah standar dari UNIX. Sistem operasi, kompiler C dan seluruh program aplikasi UNIX yang esensial ditulis dalam bahasa C. Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat untuk komputer mikro. Untuk membuat versi-versi tersebut menjadi standar, ANSI (American National Standards Institute) membentuk suatu komite (ANSI committee X3J11) pada tahun 1983 yang kemudian menetapkan standar ANSI untuk bahasa C. Standar ANSI ini didasarkan kepada standar UNIX yang diperluas.

Bahasa C adalah suatu bahasa pemrograman. Bahasa C termasuk sebagai bahasa pemrograman tingkat menengah, maksudnya bahasa C bisa dipelajari dengan lebih mudah karena mudah dimengerti tetapi mempunyai kemampuan yang tinggi.

Bahasa C bisa digunakan untuk merekayasa program untuk segala kebutuhan, baik untuk aplikasi bisnis, matematis atau bahkan game.

Semua bahasa mempunyai kelemahan atau kelebihan sendiri-sendiri. Begitu juga dengan bahasa C. Adapun sebagian kelebihan dari bahasa C adalah sebagai berikut :

a. Banyak memiliki operator untuk mengolah/memanipulasi data.

b. Bahasa C termasuk sebagai bahasa yang terstruktur sehingga program dapat lebih mudah dipahami atau dikembangkan.

c. Bahasa C lebih mudah dimengerti karena lebih mirip kepada bahasa manusia.

d. Kecepatan eksekusi tinggi.

e. Mengenal data pointer.

Sedangkan kelemahan dari Bahasa C adalah :

(2)

by Eko Budi Setiawan, S.Kom Halaman - 2 b. Perlunya ketelitian dalam penulisan program karena perintah (statement) dalam bahasa C bersifat

case sensitive (huruf kapital dan huruf kecil dibedakan).

Kekurangan-kekurangan tersebut akan banyak terjadi pada awal-awal mempelajari bahasa C. Tetapi setelah sering membuat program atau mempelajarinya maka kesulitan tersebut sedikit demi sedikit akan berkurang.

Proses Kompilasi dan Linking Program C

[image:2.595.167.440.280.543.2]

Proses dari bentuk source program, yaitu program yang ditulis dalam bahasa C hingga menjadi program executable ditunjukkan pada Gambar dibawah ini.

Gambar 1 Proses Kompilasi dari Program C

Struktur Penulisan Program C

(3)

by Eko Budi Setiawan, S.Kom Halaman - 3 memiliki pernyataan, kurung kurawal haruslah tetap ada. Sebah kurung kurawal mengisyaratkan awal dan akhir definisi fungsi. Berikut ini adalah struktur dari program C.

Main ()

{

statemen-statemen; Fungsi Utama

}

Fungsi_fungsi_lain ()

{

Statemen-statemen; Fungsi lain yang ditulis oleh

programmer

}

Bahasa C dikatakan sebagai bahasa pemrograman terstuktur karena strukturnya menggunakan fungsi-fungsi sebagai program-program bagiannya. Fungsi yang ada selain fungsi-fungsi utama (main ()) merupakan program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau diletakkan di file pustaka (library). Jika fungsi-fungsi diletakkan di file pustaka dan akan dipakai di suatu program, maka nama file judulnya (header file) harus dilibatkan dalam program yang menggunakannya dengan preprocessor directive berupa #include.

Pengenalan Fungsi-fungsi dasar

a. Fungsi main ()

Fungsi main () harus ada pada program, sebab fungsi inilah yang menjadi titik awal dan titik akhir eksekusi program. Tanda { diawal fungsi menyatakan awal tubuh fungsi dan sekaligus awal eksekusi program, sedangkan tanda } diakhir fungsi merupakan akhir tubuh fungsi dan sekaligus adalah akhir eksekusi program. Jika program terdiri dari atas lebih dari satu fungsi, fungsi main () biasa ditempatkan pada posisi yang paling atas dalam pendefinisian fungsi. Hal ini hanya merupakankebiasaan. Tujuannya untuk memudahkan pencarian terhadap program utama bagi pemrogram. Jadi bukanlah merupakan suatu keharusan.

b. Fungsi printf ()

Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan suatu keluaran pada layar peraga. Untuk menampilkan tulisan

Selamat datang di Teknik Informatika UNIKOM Misalnya, pernyataan yang diperlukan berupa :

(4)

by Eko Budi Setiawan, S.Kom Halaman - 4 Pernyataan diatas berupa pemanggilan fungsi printf() dengan argumen atau parameter berupa stri g. Dala C suatu ko sta ta stri g ditulis de ga diawali da diakhiri ta da petik ga da . Perlu juga

diketahui pernyataan dalam C selalu diakhiri dengan tanda titik koma (;). Tanda titik koma dipakai sebagai tanda pemberhentian sebuah pernyataan dan bukanlah sebagai pemisah antara dua pernyataan.

Tanda \ pada string yang dilewatkan sebagai argumen printf () mempunyai makna khusus. Tanda ini bisa digunakan untuk menyatakan karakter khusus seperti karakter baris-baru ataupun karakter backslash (miring kiri). Jadi karakter seperti \n sebenarnya untuk menyatakan sebuah karakter. Contoh karakter yang ditulis dengan diawali tanda \ adalah :

\ e yataka karakter petik ga da

\\ menyatakan karakter backslash

\t menyatakan karakter tab

Dalam bentuk yang lebih umum, format printf () pri tf stri g ko trol , daftar argu e ;

Dengan string kontrol dapat berupa satu atau sejumlah karakter yang akan ditampilkan ataupun berupa penentu format yang akan mengatur penampilan dari argumen yang terletak pada daftar argumen. Mengenai penentu format diantaranya berupa :

%d : untuk menampilkan bilangan bulat (integer)

%f : untuk menampilkan bilangan titik-mengambang (pecahan) %c : untuk menampilkan sebuah karakter

%s : untuk menampilkan sebuah string

Contoh :

#include <stdio.h> main ()

{

printf (“No : %d\n”, 10); printf (“Nama : %f\n”,”Wenger”); printf (“Nilai : %f\n”, 80.5); printf (“Huruf : %c\n”,’A’); }

(5)

by Eko Budi Setiawan, S.Kom Halaman - 5 Untuk masuk kedalam lingkungan Turbo C 4.5, ada beberapa cara yang bisa dilakukan, cara yang bisa dilakukan, cara-cara berikut disusun dengan asumsi bahwa pemakai sedang memakai sistem operasi window.

1. Fasilitas Run dari start menu

a. Klik tombol start kemudian pilih menu Run

b. Pada menu Open, ketikan C:\TCWIN45\BIN\TCW.EXE c. Tekan tombol OK,tunggu sampai muncul program C.

(6)

by Eko Budi Setiawan, S.Kom Halaman - 1 DIKTAT MATA KULIAH PEMROGRAMAN I

IF

BAB II

FIRST PROGRAM

Pendahuluan

Untuk membuat program dalam C maka langkah pertama adalah memanggil program C seperti yang telah dijelaskan pada bab I. Tulis source code program berikut pada layar editornya.

/*

Program Ke – 1

Nama File : Lat1.CPP */

//Program Hello #include “stdio.h” #include <conio.h> main ()

{

clrscr();

printf (“ini program saya yang pertama\n”);

printf (“\nSaya Belajar Bahasa C\n Di \”UNIKOM\”\nBandung.”);

getch(); return 0; }

Setelah selesai menulis perintah tersebut simpan program tersebut dengan menekan tombol File -> Save As. Tulis nama file tanpa spasi. Jika telah ditulis tekan tombol Enter atau klik tombol OK. File-file tersebut berekstensi C atau CPP.

(7)

by Eko Budi Setiawan, S.Kom Halaman - 2 Gambar diatas adalah proses compile program, terlihat informasi jumlah baris, warnings, bahkan errors dari program yang anda buat. Jika program anda tidak bermasalah, maka informasi hasil compile tersebut akan tampak seperti diatas.

Proses compile hanya memeriksa program secara bahasa saja dan belum mengeksekusi/menjalankan programnya. Untuk menjalankan program maka tekan menu Run kemudian pilih sub menu Run atau dengan hotkey Ctrl+F9. Proses Run ini sebenarnya melakukan dua langkah yaitu proses compile dan menjalankan programnya.

Setelah proses run terjadi, maka akan tercipta suatu file yang berekstensi EXE yang mempunyai nama seperti nama file C nya. Suatu file EXE dapat langsung dijalankan disemua komputer walaupun di komputer tersebut tidak terdapat program C.

Program tersebut ketika dijalankan akan menghasilkan tulisan dilayar sebagai berikut :

Keterangan program Lat-1.CPP diatas adalah : Komentar

Pada baris ke-1, ditemukan tanda /* dan pada baris 4 ditemukan tanda */. Kedua tanda tersebut berpasangan yang berguna untuk menuliskan suatu komentar tentang program atau perintah-perintah. Komentar tidak mempengaruhi program karena komentar tidak dijalankan seperti perintah (statement). Komentar dengan menggunakan tanda /* berlaku sampai ditemukan tanda */. Cara lain untuk memberikan komentar adalah dengan memberikan tanda garis miring 2 kali. Komentar dengan tanda ini hanya berlaku pada 1 baris saja. Komentar bersifat opsional untuk mempermudah orang mengetahui fungsi dari suatu program atau suatu algoritma.

#include

Pada aris dite uka peri tah #i lude stdio.h da pada aris terdapat perintah #include

<conio.h>. Kedua perintah tersebut digunakan untuk memanggil file header (include file) yang didalamnya terdapat perintah, fungsi atau prototype yang bisa digunakan dalam program yan dibuat. Jika perintah #include ini tidak ditulis, maka komputer tidak mengerti perintah-perintah yang ditulis.

Header File

(8)

by Eko Budi Setiawan, S.Kom Halaman - 3 terdapat fungsi atau prototipe yang bisa digunakan dalam program. Sebuah file header memiliki lebih dari 1 fungsi atau variabel global. File header stdio.h digunakan untuk penanganan input / output standar seperti penulisan ke layar, ke file atau pembacaan data dari keyboard atau file. File header stdio.h digunakan untuk penanganan ke layar seperti pengaturan warna, waktu jeda (delay), suara internal. Masih banyak file header standar selain stdio.h dan conio.h.

Fungsi main ()

Pada baris 8 terdapat pendeklarasian fungsi main(). Fungsi ini adalah suatu fungsi khusus yang akan dieksekusi pertama. Setiap program harus mempunyai fungsi main(). Fungsi main() diawali dengan tanda { yang menyatakan awal dari program dan diakhiri dengan tanda } yang menyatakan akhir dari program.

printf()

printf() adalah suatu fungsi yang berguna untuk menulis pesan ke layar. Pesan yang akan ditulis dalam diapit oleh tanda kutip. Pesan yang tertulis dapat diatur dengan mengatur format dari penulisannya. Fungsi printf() tidak hanya menulis pesan dalam 1 baris saja tetapi bisa lebih. Untuk berpindah baris maka gunakan perintah \n yang bera rti new line (baris baru). Penulisan \n boleh ditempatkan di depan, ditengah atau diakhir. U tuk e uliska ta da kutip aka harus digunakan tanda \ . Keterangan lebih lanjut akan diterangkan dalam bab-bab berikutnya.

Tanda ; (semikolon)

Setiap perintah harus diakhiri dengan tanda ;. Hilangnya tanda ; akan menyebabkan kesalahan kompile.

getch()

getch() adalah suatu fungsi yang berfungsi untuk pembacaan data sebuah karakter, sehingga program akan terdiam sampai pengguna menekan suatu tombol. Fungsi ini berada dalam file header conio.h sehingga perintah #i lude o io.h harus dituliska . Kalau peri tah get h tidak ditulis, maka program akan dikerjakan dengan cepat dan eksekusi tidak dapat terlihat.

return

return adalah perintah yang memberikan nilai kepada fungsinya. Setiap fungsi harus mempunyai nilai kembaliannya (return value).

Note

Jika eksekusi yang dilakukan cepat, untuk melihat hasil akhir dari eksekusi program

dapat dilakukan dengan cara menekan Alt-F5 atau dengan memilih menu Window

(9)

by Eko Budi Setiawan, S.Kom Halaman - 4

Contoh Program

/*

Program Ke - 2

Nama File : Lat2.CPP */ //Program Data_Diri #include <stdio.h> #include <conio.h> main () { clrscr();

printf ("Nama Lengkap : Turbo C\n"); printf ("Nama Panggilan : C\n");

printf ("Tempat, Tanggal Lahir : Bandung, 1 Januari 1991\n"); printf ("\nSaya Belajar Bahasa C\nDi \"UNIKOM\" Bandung\n"); printf("Untuk membuka Turbo C silahkan run

C:\\TCWIN45\\BIN\\TCW.EXE\n");

printf ("Nilai : %d\n", 10); printf ("Indeks : %c\n",'A'); getch();

return 0; }

/*Program aritmetika

Nama File :aritmatika.cpp */ #include <stdio.h> #include <conio.h> void main() { clrscr();

printf("Nilai dari 9+4 adalah=%i\n",9+4); printf("Nilai dari 9*4 adalah=%i\n",9*4); printf("Nilai dari 9-4 adalah=%i\n",9-4); printf("Nilai dari 9-10 adalah=%i\n",9-10); printf("Nilai dari 9-(-2) adalah=%i\n",9-(-2)); getch();

}

/*

Program operator

Nama File: operator.cpp */

#include <stdio.h> #include <conio.h>

main() {

int x=20, y=8,z; float w;

clrscr();

printf("X = %d dan Y = %d\n",x,y); w=float(x)/y;

printf("X / Y = %3.1f\n",w); printf("X %% Y = %d\n",x%y); x+=2;

(10)

by Eko Budi Setiawan, S.Kom Halaman - 5 x++;

printf("Nilai X setelah X++ : %i\n",x); printf("Nilai Y : %d\n",y++);

printf("Nilai Y setelahnya : %d\n",y); z=++x;

printf("Nilai Z : %d\n",z); getch();

return 0; }

/*

program berhitung nama file :hitung.cpp */

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

{ clrscr();

int B,C,D,E; float A,Z;

printf("Masukkan nilai B : ");scanf("%d",&B); printf("Masukkan nilai C : ");scanf("%d",&C); printf("Masukkan nilai D : ");scanf("%d",&D); printf("Masukkan nilai E : ");scanf("%d",&E); Z=float(C)/D;

printf("Nilai C/D adalah :%f\n",Z); A=B+Z+E;

printf("Hasil perhitungan A=B+C/D+E : %f",A); getch();

(11)

by Eko Budi Setiawan, S.Kom Halaman - 6 Tugas

1. Printout tampilan program dari keempat source code diatas !

2. Cetak kalimat dalam beberapa baris, dengan tampilan sebagai berikut :

Hello... .. saya turbo

... do you know me ?

1 ..2 ...3

3. Menghitung penjumlahan 1024+4096 dan mencetak hasilnya

4. Mengisi 2 variabel int, menjumlahkan kedua isi variabel tersebut dan cetak hasilnya !

5. Mengisi nilai sebuah variabel float, mengalikan isi variabel tersebut dengan 50 dan cetak hasilnya 6. Berapakah nilai jawaban yang ditampilkan oleh program dibawah ini :

#include <stdio.h> #include <conio.h>

main () {

clrscr();

int jawab, hasil; jawab=100;

hasil=jawab-10;

printf ("jawabannya adalah %d\n",hasil+6); getch();

return 0; }

7. Apakah output dari program dibawah ini

#include <stdio.h> #include <conio.h>

main () {

clrscr();

int value1, value2, sum; value1=35;

value2=18;

sum=value1+value2;

printf("Jumlah dari %d dan %d adalah %d\n", value1, value2,sum); getch();

return 0; }

8. Program dibawah ini tidak berhasil dicompile karena masih teradapat beberapa kesalahan. Temukan kesalahannya. Selanjutnya tampilkan keluaran setelah program ini berhasi dijalankan.

main () {

int jumlah;

(12)

by Eko Budi Setiawan, S.Kom Halaman - 7 //TAMPILKAN HASIL

Printf(“Berapa hasil perhitungan dari 35+37-19 ?\n);

Printf(“Jawabannya adalah %d\n” jumlah);

}

9. Program dibawah ini seharusnya menampilkan keluaran sebagai berikut : c * c = 25,000000

Namun, belum berhasil karena masih ada beberapa kesalahan. Temukan kesalahan-kesalahan dalam program tersebut !

#include <Studio.h> Main ()

{

float a, b, c; a=3;

b=4.0; c=a*a+b*b

printf(“c * c = %d, c); getch();

return 0; }

Jawaban di buat berupa source code dan print out tampilan programnya, beserta kesimpulan hasil praktikum..

Kirim jawaban anda (*.doc) via e-mail ke ekobudisetiawan@ymail.com

Subject : Nama-NIM-Kelas-TC1

(13)

by Eko Budi Setiawan, S.Kom Halaman - 1 DIKTAT MATA KULIAH PEMROGRAMAN I

IF

BAB IV

INPUT DAN OUTPUT

Input Data

Umumnya suatu program mempunyai proses pemasukan data. Dalam program berbahasa

C, pemasukan data dapat dilakukan dengan perintah scanf. Fungsi scanf merupakan fungsi yang

dapat digunakan untuk memasukan berbagai jenis data, tergantung dengan format penentunya.

Format-format penentu tipe data yang umum dipakai adalah :

Format Kegunaan

%c Digunakan untuk pemasukan data bertipe char

%i atau %d Digunakan untuk pemasukan data bertipe int, char.

%f Digunakan untuk pemasukan data berupa bi;angan pecahan

%u Digunakan untuk pemasukan data berupa unsigned int atau

unsigned char

%s Digunakan untuk pemasukan data berupa string

Bentuk umum penggunaan fungsi scanf adalah

scanf (“format”,&namavariabel);

Contoh :

int i,jam,menit,detik; unsigned int j;

float f;

char nama[60]; scanf(“%i”,&i); scanf(“%u”,&j); scanf(“%f”,&f);

(14)

by Eko Budi Setiawan, S.Kom Halaman - 2

Fungsi scanf() kurang begitu bagus jika dipakai untuk pembacaan string. Karena data yang

tersimpan adalah hanya sampai menemukan spasi, maksudnya jika kita mengisikan 2 buah kata

dengan pemisah spasi, maka data yang masuk ke variabel tersebut hanyalah kata yang pertama.

Oleh karena itu, pembacaan data bertipe string biasanya menggunakan

perintah gets() yang bentuk umumnya adalah :

gets(namavariabel);

Contoh :

gets(nama); gets(alamat);

Untuk pembacaan data bertipe char, selain dengan menggunakan scanf() dengan format

%c, bisa juga dengan menggunakan fungsi getch() atau getche(). Perbedaan dari getch() dan

getche() adalah getch() digunakan untuk membaca data bertipe char tanpa menampilkannya di

layar, dan getche() digunakan untuk membaca data bertipe char dengan menampilkan data

karakternya di layar.

Contoh :

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

{

char a,b;

printf(“Masukan Huruf pertama : “); a=getch();

printf(“Masukan Huruf kedua : “); b=getche();

printf(“Data yang dimasukan adalah %c dan %d\n”,a,b);

(15)

by Eko Budi Setiawan, S.Kom Halaman - 3

Output Data

Untuk output data, perintah yang bisa dipakai adalah printf(). Untuk menampilkan data

dengan fungsi printf(), kita harus mengatur format tampilannya, dengan format-format penentu.

Untuk menentukan panjang medan yang disediakan bagi tampilan data, maka sesudah

tanda % dalam penentu format dapat disisipi dengan bilangan bulat yang menyatakan panjang

medan.

Untuk data yang berupa bilangan bulat, misalnya pada :

printf (“Abad %4d”, 20);

Ket :

%4d menyatakan medan untuk menampilkan bilangan 20 adalah sepanjang 4 karakter.

printf (“Abad %4d”, 20);

A b a d 2 0

Untuk data yang berupa bilangan real, spesifikasi medannya berupa

m.n

Ket :

m = panjang medan

n = jumlah digit pecahan

Contoh :

printf (“Harga:Rp %8.2 f\n”, 500.0);

%8.2f menyatakan panjang medan dari bilangan real yang akan ditampilkan adalah 8

karakter dengan jumlah digit pecahan 2 buah.

printf (“Harga:Rp %8.2 f\n”, 500.0);

(16)

by Eko Budi Setiawan, S.Kom Halaman - 4

Jika hanya jumlah digit pecahan yang perlu ditentukan, panjang medan tak perlu disertakan,

misal :

printf (“%.2f\n”, 600.0);

printf (“%.2f\n”, 7500.25);

hasilnya :

600.00

7500.25

Untuk data yang berupa string, contoh :

printf (“%12s”, “Bahasa C”);

maka akan ditampilkan sebagai berikut

B a h a s a C

Tampak dalam berbagai jenis data diatas, penentu format yang mengandung panjang

medan, secara default akan menampilkan data dalam bentuk rata kanan terhadap panjang

medan yang diberikan. Untuk data string yang biasanya dikehendaki untuk ditampilkan dalam

bentuk rata kiri, maka sesudah tanda % pada penentu format %s perlu disisipkan tanda – (minus),

contoh :

printf (“%-12s”, “Bahasa C”);

menyatakan bahwa string akan ditampilkan dalam medan dengan panjang 12 karakter dan diatur

rata kiri. Sehingga tampilan diatas berubah menjadi :

(17)

by Eko Budi Setiawan, S.Kom Halaman - 5

Untuk lebih jelas perhatikan program di bawah ini.

#include <stdio.h>

#include <conio.h>

main()

{

int a=25000;

unsigned int b=50000;

float c=12345.678;

char nama[50]="Universitas Komputer Indonesia";

char alamat[10]="Bandung";

clrscr();

printf("Penampilan data tanpa di format\n");

printf("Nilai a : %d\n",a);

printf("Nilai b : %u\n",b);

printf("Nilai c : %f\n",c);

printf("String : %s %s\n",nama,alamat);//rata kanan

printf("\nPenampilan data setelah di format\n");

printf("\n");

printf("Nilai a : %8d\n",a);

printf("Nilai b : %8u\n",b);

printf("Nilai c : %11.2f\n",c);

printf("String 1: %40s %10s\n",nama,alamat);//rata kanan

printf("String 2: %-40s %-10s\n",nama,alamat);//rata kiri

getch();

return 0;

(18)

by Eko Budi Setiawan, S.Kom Halaman - 6

Contoh Kasus :

Di suatu perusahaan, data penggajian dihitung dengan ketentuan sebagai berikut :

Gaji Pokok : Rp. 5000000

Gaji Lembur/jam : Rp. 5000

Total Gaji Lembur : Lama Lembur * Gaji Lembur/jam

Gaji Kotor : Gaji Pokok + Total Gaji Lembur

Pajak : 10%

Gaji Bersih : Gaji Kotor - Pajak

Data yang diinputkan adalah : Nama Pegawai, Lama Lembur.

Program ke-1 (tanpa memformat tampilan data)

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

{

int jamlembur;

long int gajipokok=500000,gajikotor,totalgajilembur; float pajak,gajibersih;

char nama[50];

printf("Nama Pegawai : ");gets(nama);

printf("Lama Lembur : ");scanf("%i",&jamlembur); totalgajilembur=(long int)5000*jamlembur;

gajikotor=gajipokok+totalgajilembur; pajak=0.1*gajikotor;

gajibersih=gajikotor-pajak; clrscr();

printf("Hasil Perhitungan\n"); printf("Nama Pegawai : %s\n",nama);

printf("Gaji Pokok : Rp. %li\n",gajipokok); printf("Lama Lembur : %i jam\n",jamlembur);

printf("Total Gaji Lembur : Rp. %li\n",totalgajilembur); printf("Gaji Kotor : Rp. %li\n",gajikotor);

printf("Pajak (10%%) : Rp. %f\n",pajak); printf("Gaji Bersih : Rp. %f\n",gajibersih); getch();

(19)

by Eko Budi Setiawan, S.Kom Halaman - 7

Program ke-2 (dengan memformat tampilan data)

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

{

int jamlembur;

long int gajipokok=500000,gajikotor,totalgajilembur; float pajak,gajibersih;

char nama[50]; clrscr();

printf("Nama Pegawai : ");gets(nama);

printf("Lama Lembur : ");scanf("%i",&jamlembur); totalgajilembur=(long int)5000*jamlembur;

gajikotor=gajipokok+totalgajilembur; pajak=0.1*gajikotor;

gajibersih=gajikotor-pajak; clrscr();

printf("Hasil Perhitungan\n");

printf("Nama Pegawai : %s\n",nama);

printf("Gaji Pokok : Rp. %10li\n",gajipokok); printf("Lama Lembur : %i jam\n",jamlembur);

printf("Total Gaji Lembur : Rp. %10li\n",totalgajilembur); printf("Gaji Kotor : Rp. %10li\n",gajikotor);

printf("Pajak (10%%) : Rp. %10.0f\n",pajak); printf("Gaji Bersih : Rp. %10.0f\n",gajibersih); getch();

(20)
(21)

by Eko Budi Setiawan, S.Kom Halaman - 9

TUGAS !

1. Contoh Kasus :

Di suatu perusahaan, data penggajian dihitung dengan ketentuan sebagai berikut :

Gaji Pokok : Rp. 5.000.000

Gaji Lembur/jam : Rp. 5.000

Total Gaji Lembur : Lama Lembur * Gaji Lembur/jam

Gaji Kotor : Gaji Pokok + Total Gaji Lembur

Pajak : 10%

Gaji Bersih : Gaji Kotor - Pajak

Data yang diinputkan adalah : Nama Pegawai, Lama Lembur.

Buat program untuk menghitung besarnya gaji bersih dengan ketentuan diatas,,

2. Buat program untuk menghitung Luas dan Keliling Bujur Sangkar dengan panjang sisi diinputkan dari keyboard.

3. Buatlah program untuk mengkonversi suhu dari Celcius ke Fahrenheit dengan rumus F = C * 1.8+ 32

(22)

by Eko Budi Setiawan, S.Kom Halaman - 1 DIKTAT MATA KULIAH PEMROGRAMAN I

IF

BAB IX

STRING & MATH

Tujuan

1. Menjelaskan tentang konsep string

2. Menjelaskan operasi I/O

3. Menjelaskan cara mengkases elemen string

4. Menjelaskan berbagai fungsi mengenai string

Dasar Te ori

String merupakan bentuk data yang biasa dipakai dalam bahasa pemrograman keperluan

menampung dan memanipulasi data teks. Misalnya untuk menampung (menyimpan) suatu

kalimat. Pada bahasa pemrograman C, string bukanlah sebagai tipe data tersendiri, melainkan

hanya jenis khusus dari array. String ditulis dengan diawali dan diakhiri tanda petik ganda dan

nilai string selalu diakhiri dengan tanda NULL (\0).

Misal ya : ABCDE

1. Konstanta String

Ko sta ta ABCDE disimpan dalam memory secara berurutan, dengan komposisi sebagai

berikut :

Setiap karakter akan menempati memory sebesar 1 byte. Byte terakhir secara otomatis akan

(23)

by Eko Budi Setiawan, S.Kom Halaman - 2

2. Variabel String

Variabel string adalah variabel yang digunakan untuk menyimpan string.

Misal :

char nama[15];

merupakan instruksi untuk mendeklarasikan variabel string dengan panjang maksimal 15

karakter.

Inisialisa si Stri ng

Cara untuk menginisialisasi string, dapat dilakukan dengan salah satu cara dibawah ini :

char nama[]=”ini adalah string”;

char nama2[]={„i‟,‟n‟,‟i‟,‟‟,‟s‟,‟t‟,‟r‟,‟i‟,‟n‟,‟g‟,‟\0‟};

char nama3[5]=”ACER”;

char nama4[5]={„A‟,‟C‟,‟E‟,‟R‟};

Untuk mengisi suatu string caranya adalah :

stcpy (nama, “Ini string”); nama5=”Ini juga string”;

Coba diperhatikan, untuk string yang dideklarasikan sebagai sebuah array karakter,

pengisian nilainya adalah dengan menggunakan suatu perintah strcpy yang berguna untuk

mengisikan suatu string ke string lain. Pengisiannya tidak boleh langsung. Tetapi jika string

dideklarasikan sebagai sebuah pointer karakter, maka pengisiannya boleh diisikan secara

langsung.

Input D ata String dari Ke yboard

Untuk memasukan data string kedalam suatu variabel dapat dilakukan dengan 2 jenis

perintah/fungsi :

a.gets (nama_array)

(24)

by Eko Budi Setiawan, S.Kom Halaman - 3

Keterangan :

- nama_array adalah variabel bertipe array_of_char

- Pada isntruksi scanf(), didepan nama_array boleh diberikan operator &, boleh

tidak.

- Prototype gets() ada pada file stdio.h

- gets() akan membaca seluruh karakter yang diketik sampai penekanan ENTER. Tidak

ada pengecekan terhadap batasan dari array. Jika string yang dimasukan melebihi ukuran

array, sisa string berikutnya akan ditempatkan sesudah bagian terakhir dari array. Hal ini

akan menimbulkan kejadian yang tidak diinginkan, seperti berubahnya isi variabel.

Output Data Stri ng ke Layar

Untuk menampilkan isi variabel string ke layar, dapat dilakukan dengan 2 jenis perintah /

fungsi :

a.puts(var_string);

b.printf(“%s”,var_string);

yang perlu diperhatikan adalah :

- var_string adalah berupa array of char

- puts()se ara oto atis e a ahka karakter \ ’ di akhir stri g

Fungsi-f ungsi Str ing

Merupakan kumpulan fungsi-fungsi pustaka string yang berada pada file string.h

gets dan puts

Fungsi gets digunakan untuk membaca data berupa string dari keyboard.

Fungsi puts digunakan untuk menampilkan suatu string ke layar (monitor)

#include <stdio.h>

main()

{

(25)

by Eko Budi Setiawan, S.Kom Halaman - 4 printf("Masukan Sebuah string:");gets(string);

puts(string);

return 0;

}

strlen

Fungsi strlen digunakan untuk mengetahui panjang suatu string.

Contoh program :

#include <stdio.h>

#include <string.h>

int main(void)

{

char string[80];

int panjang;

printf("Masukan String: ");gets(string);

panjang=strlen(string);

printf("Panjang String adalah %i karakter\n",panjang);

return 0;

}

strcpy dan strncpy

Fungsi strcpy adalah untuk menyalin isi suatu string ke string lain.

Fungsi strncpy berfungsi untuk menyalin isi suatu string ke string lain sebanyak n

(26)

by Eko Budi Setiawan, S.Kom Halaman - 5 Contoh program :

#include <stdio.h>

#include <conio.h>

#include <string.h>

main()

{

char string[31];

char str1[31] = "Universitas Komputer Indonesia";

char str2[31];

strcpy(string, str1);

printf("Isi String : %s\n", string);

strncpy(str2,str1,15);

str2[15]='\0';// menutup string

printf("Isi Str2 : %s",str2);

getch();

return 0;

}

strcmp dan strncmp

Fungsi strcmp digunakan untuk membandingkan 2 buah string secara case sensitive

Fungsi strncmp digunakan untuk membandingkan 2 buah string sebanyak n buah

karakter secara case sensitive.

Fungsi strcmpi digunakan untuk membandingkan 2 buah string secara insensitive

Fungsi strncmpi digunakan untuk membandingkan 2 buah string sebanyak n buah

karakter secara insensitive.

Semua fungsi tersebut akan menghasilkan sebuah nilai integer yang mempunyai

ketentuan :

- Nilai return akan lebih dari 0 (>0) ketika string1 lebih besar dari string2

(27)

by Eko Budi Setiawan, S.Kom Halaman - 6

- Nilai return akan kurang dari 0 (<0) ketika string1 lebih kecil dari string2

Contoh Program

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

{

char str1[5]="ABCD",str2[5]="abcd",str3[5]="BCDE",str4[5]="BCda"; int hasil;

hasil=strcmp(str1,str2); printf("Hasil STRCMP : \n");

if(hasil==0) printf("String1 sama dengan String2\n"); else if(hasil>0) printf("String1 lebih besar dari String2\n"); else if(hasil<0) printf("String1 lebih kecil dari String2\n"); hasil=strcmpi(str1,str2);

printf("\nHasil STRCMPI : \n");

if(hasil==0) printf("String1 sama dengan String2\n"); else if(hasil>0) printf("String1 lebih besar dari String2\n"); else if(hasil<0) printf("String1 lebih kecil dari String2\n"); hasil=strncmp(str3,str4,3);

printf("\nHasil STRNCMP : \n");

if(hasil==0) printf("String3 sama dengan String4\n"); else if(hasil>0) printf("String3 lebih besar dari String4\n"); else if(hasil<0) printf("String3 lebih kecil dari String4\n"); hasil=strncmpi(str3,str4,3);

printf("\nHasil STRNCMPI : \n");

if(hasil==0) printf("String3 sama dengan String4\n"); else if(hasil>0) printf("String3 lebih besar dari String4\n"); else if(hasil<0) printf("String3 lebih kecil dari String4\n"); getch();

(28)

by Eko Budi Setiawan, S.Kom Halaman - 7  strcat dan strncat

Fungsi strcat adalah untuk menggabungkan 2 buah string

Fungsi strncat berfungsi untuk menggabungkan 2 buah string sebanyak n karakter

#include <stdio.h>

#include <conio.h>

#include <string.h>

main()

{

char str1[80];

char str2[15]="Universitas ";

char str3[20]="Komputer Indonesia";

clrscr();

strcpy(str1,str2);

strcat(str1,str3);

printf("Hasil penggabungan dengan STRCAT : %s\n",str1);

strcpy(str1,str2);

strncat(str1,str3,8);

printf("Hasil penggabungan dengan STRNCAT : %s\n",str1);

getch();

return 0;

}

strlwr dan strupr

Fungsi strlwr berguna untuk mengubah isi string menjadi huruf kecil.

(29)

by Eko Budi Setiawan, S.Kom Halaman - 8 #include <stdio.h>

#include <conio.h>

#include <string.h>

main()

{

char str1[80]="Universitas Komputer Indonesia";

clrscr();

printf("Normal : %s\n",str1);

strupr(str1);

printf("UpperCase : %s\n",str1);

strlwr(str1);

printf("LowerCase : %s\n",str1);

getch();

return 0;

}

strrev

Fungsi strrev berguna untuk membalikan urutan string (reverse)

Contoh program :

#include <stdio.h>

#include <conio.h>

#include <string.h>

main()

{

char str1[80]="Universitas Komputer Indonesia";

clrscr();

printf("Normal : %s\n",str1);

strrev(str1);

printf("Reverse : %s\n",str1);

getch();

(30)

by Eko Budi Setiawan, S.Kom Halaman - 9 }

strset dan strnset

Fungsi strset berguna untuk mengganti isi suatu string dengan suatu karakter

tertentu

Fungsi strnset berguna untuk mengganti isi suatu strin fdengan suatu karakter

tertentu sebanyak n buah data.

Contoh program :

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

{

char str1[31]="Universitas Komputer Indonesia"; clrscr();

strnset(str1,'A',12);

printf("Setelah strnset 12 : %s\n",str1); strset(str1,'x');

printf("Setelah strset : %s\n",str1); getch();

return 0; }

gotoxy

#include <stdio.h>

main() {

gotoxy(1,1);printf("Halo\n"); gotoxy(2,2);printf("Selamat"); gotoxy(3,4);printf("belajar"); gotoxy(6,5);printf("di UNIKOM");

(31)

by Eko Budi Setiawan, S.Kom Halaman - 10 Math

Dibawah ini akan diberikan beberapa fungsi dasar penggunakan fungsi matematika yang

sering digunakan. Fu gsi ath i i e ggu aka pustaka dari ath.h

sqrt

sqrt digunakan untuk menghitung akar dari suatu bilangan

sin, cos, tan

digunakan dalam perhitungan trigonometri

pow

digunakan untuk menghitung pangkat

#include <stdio.h> #include <conio.h> #include <math.h>

main() {

float h_sin,h_cos,h_tan; int sudut=30;

int x,y;

float akar,pangkat; x=3;

y=4;

h_sin=sin(sudut*M_PI/180); h_cos=cos(sudut*M_PI/180); h_tan=tan(sudut*M_PI/180);

akar=sqrt(y); pangkat=pow(x,y);

printf("Sin %i adalah = %.3f",sudut,h_sin); printf("\nCos %i adalah = %.3f",sudut,h_cos); printf("\nTan %i adalah = %.3f",sudut,h_tan); printf("\n");

printf("\nAkar dari %i adalah = %g",y,akar);

printf("\n%i pangkat %i adalah = %g",x,y,pangkat);

(32)

by Eko Budi Setiawan, S.Kom Halaman - 1 DIKTAT MATA KULIAH PEMROGRAMAN I

IF

BAB V

PENGAMBILAN KEPUTUSAN

Tujuan

1. Menjelaskan tentang operator kondisi (operator relasi dan logika)

2. Menjelaskan penggunaan pernyataan if

3. Menjelaskan penggunaan pernyataan if – else

4. Menjelaskan penggunaan if dalam if

5. Menjelaskan penggunaan pernyataan else-if

6. Menjelaskan penggunaan pernyataan switch

Dasar Teori

Pengambilan keputusan diperlukan jika ada dua atau lebih kondisi yang harus dipilih salah

satu. Pernyataan-pernyataan yang dapat digunakan dalam pengamblan keputusan adalah :

a. Pernyataan if

b. Pernyataan if-else

c. Pernyataan switch

Pernyataan-pernyataan diatas memerlukan suatu kondisi  dibentuk dengan operator

relasi dan/atau operator logika.

1. Operator Relasi

(33)

by Eko Budi Setiawan, S.Kom Halaman - 2

Contoh :

2. Operator Logika

Bentuk operator logika adalah :

Prioritas dalam pengambilan keputusan untuk operator logika dan relasi :

Operator-operator yang biasa digunakan dalam operasi logika, dapat dilihat ditabel di

(34)

by Eko Budi Setiawan, S.Kom Halaman - 3

Pernyataan if

Syntax :

Penjelasan :

 Jika kondisi benar, maka pernyataan dilakukan

 Pernyataan bisa satu statement atau beberapa statement

 Jika per ataa lebih dari satu,gu aka ta da { da } u tuk per ataa

-pernyataan itu

Pernyataan if-else

Syntax

Penjelasan

Jika kondisi benar maka pernyataan 1 dilakukan

(35)

by Eko Budi Setiawan, S.Kom Halaman - 4

Untuk lebih jelasnya, perhatikan perintah berikut :

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

{

int Nilai;

printf("Nilai : ");scanf("%i",&Nilai); if(Nilai>=50)

printf("Selamat Anda Lulus."); else

printf("Maaf,, Anda Tidak Lulus."); getch();

return 0; }

Perintah diatas hanya mempunyai ke u gki a aitu ketera ga “ela at A da Lulus”

jika ilai lebih besar dari atau sa a de ga 5 da ketera ga Maaf,, A da Tidak Lulus”, ketika

nilai yang diinputkan lebih kecil dari 50.

Jika perintah yang akan dieksekusi ketika kondisi tercapai lebih dari 1 perintah, maka

perintah-perintah tersebut harus diblok dengan tanda kurung kurawal { }. Contoh :

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

{

int Nilai;

printf("Nilai : ");scanf("%i",&Nilai); if(Nilai>=50)

{

printf("Anda Hebat!\n");

printf("Selamat Anda Lulus."); }

else {

printf("Maaf. Anda Tidak Lulus.");

printf("Perbaiki semester depan yah!."); }

getch(); return 0; }

Perhatikan juga contoh program dibawah ini : #include <stdio.h>

#include <conio.h> main()

{

int a,b;

printf("Masukan A : ");scanf("%i",&a); printf("Masukan B : ");scanf("%i",&b); if(a==b)

(36)

by Eko Budi Setiawan, S.Kom Halaman - 5 else

if(a>b)

printf("Isi Variabel A lebih besar dari B"); else

if(a<b)

printf("Isi Variabel A lebih kecil dari B"); getch();

return 0; }

Program diatas akan meminta anda untuk memasukan nilai variabel A dan B, kemudian program

akan memeriksa apakah variabel A sama dengan B, atau A lebih besar dari B, dan A lebih kecil

dari B.

Contoh Kasus :

Disebuah universitas penilaian yang dipakai adalah :

Nilai Akhir = 20 % * tugas + 30 % * uts + 50 % * uas

Diluar nilai diatas, maka index adalah X (index tidak diketahui).

Data yang diinputkan adalah : tugas, uts, uas.

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

{

int tugas,uts,uas; float nilaiakhir; char index;

printf("Nilai Tugas : ");scanf("%i",&tugas); printf("Nilai UTS : ");scanf("%i",&uts); printf("Nilai UAS : ");scanf("%i",&uas); nilaiakhir=0.2*tugas+0.3*uts+0.5*uas;

printf("Nilai Akhir : %6.2f\n",nilaiakhir); if(nilaiakhir>=80)

index='A'; else

if(nilaiakhir>=68) index='B';

else

if(nilaiakhir>=56) index='C';

else

(37)

by Eko Budi Setiawan, S.Kom Halaman - 6 index='D';

else

if(nilaiakhir>=0) index='E'; else

index='X';

printf("Index : %c\n",index); getch();

return 0; }

Perintah switch

case - default

Selain perintah if – else, perintah yang digunakan untuk percabangan adalah switch –

case. Bentuk dasar dari perintah tersebut adalah :

switch(ekspresi) {

case kondisi1:perintah1;break; case kondisi2:perintah2:break; default : perintah3;

}

Cara kerja perintah diatas adalah : Jika ekspresi sa a de ga ko disi , maka perintah 1

akan dieksekusi dan kemudian keluar dari switch, dan jika ekspresi sama dengan kondisi2 maka

perinta 2 yang akan dieksekusi dan kemudian keluar dari switch, dan jika tidak 1 kondisi pun yang

sama dengan ekspresi maka perintah 3 (perintah default) yang akan dieksekusi. Perintah default

kalau tidak diperlukan bisa dihilangkan.

Untuk lebih jelas, perhatikan perintah dibawah ini.

switch (index) {

case 'A':printf("Keterangan : Bagus Sekali\n");break; case 'B':printf("Keterangan : Bagus\n");break;

case 'C':printf("Keterangan : Cukup\n");break; case 'D':printf("Keterangan : Kurang\n");break;

case 'E':printf("Keterangan : Kurang Sekali\n");break; default :printf("Keterangan : Index Tak Diketahui\n"); }

Ketera ga progra di atas adalah jika i de = A aka ketera ga Bagus Sekali, jika

i de = B aka ketera ga Bagus, jika i de = C aka ketera ga Cukup, jika i de = D aka ketera ga Kura g, jika i de = E aka ketera ga Kurang Sekali, dan jika index bukan A – E,

(38)

by Eko Budi Setiawan, S.Kom Halaman - 7

Pernyataan if-else dengan banyak kondisi

Jika kondisi yang harus diperiksa lebih dari 1 kondisi, maka hanya if-else lah yang bisa

dipakai. Operator-operator logika yang dipakai adalah operator && (and), dan operator || (or).

Contoh :

if((index=='A')||(index=='B')||(index=='C')) printf("Selamat Anda Lulus");

else

if((index=='D')||(index=='E'))

printf("Anda Tidak Lulus. Lebih giat lagi belajar!");

Perintah di atas akan menampilkan string “Selamat Anda Lulus” ketika index

berisi A, B atau C, dan akan menampilkan keterangan “Anda Tidak Lulus. Lebih giat lagi

belajar!” ketika index berisi D atau E.

Untuk lebih jelas, buatlah program untuk mengatasi kasus dibawah ini.

Di sebuah perusahaan bus, tabel harga dapat dilihat dalam tabel dibawah ini.

KELAS

EKSEKUTIF (1) BISNIS (2) EKONOMI (3)

JUR

USAN

JAKARTA (1) 70000 40000 10000

YOGYA (2) 80000 50000 20000

SURABAYA (3) 90000 60000 30000

Karena sekarang masa promosi, maka khusus untuk surabaya-eksekutif dan yogya-ekonomi

mendapatkan diskon sebesar 10 %. Buatlah program dengan data yang dimasukan adalah jenis

kelas, tujuan dan banyak tiket yang dibeli. Data yang ingin ditampilkan adalah harga tiket dan

(39)

by Eko Budi Setiawan, S.Kom Halaman - 8 Pilih Jurusan :

1. Jakarta 2. Yogya 3. Surabaya

Jurusan yang anda pilih : 2 [input] Pilih Kelas :

1. Eksekutif 2. Bisnis 3. Ekonomi

Kelas yang anda pilih : 3 [input] Banyak Tiket : 5 [input]

Harga Tiket : Rp. 20000 [output] Total Tiket : Rp. 100000 [output] Diskon : Rp. 10000 [output]

Bayar : Rp. 90000 [output]

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

{

int kodejurusan,kodekelas,banyaktiket; long int hargatiket,total;

float diskon,bayar;

printf("Pilih Jurusan :\n"); printf("---\n");

printf("1. Jakarta\n2. Yogya\n3. Surabaya\n"); printf("---\n");

printf("Jurusan yang dipilih : ");scanf("%i",&kodejurusan); printf("Pilih Kelas :\n");

printf("---\n");

printf("1. Eksekutif\n2. Bisnis\n3. Ekonomi\n"); printf("---\n");

printf("Kelas yang dipilih : ");scanf("%i",&kodekelas);

printf("Banyak Tiket : ");scanf("%i",&banyaktiket); if((kodejurusan==1)&&(kodekelas==1))

hargatiket=70000; else

if((kodejurusan==1)&&(kodekelas==2)) hargatiket=40000;

else

if((kodejurusan==1)&&(kodekelas==3)) hargatiket=10000;

(40)

by Eko Budi Setiawan, S.Kom Halaman - 9 if(kodejurusan==2)

{

if(kodekelas==1) hargatiket=80000; else

if(kodekelas==2) hargatiket=50000; else if(kodekelas==3) hargatiket=20000; }

else

if(kodejurusan==3) {

switch (kodekelas) {

case 1:hargatiket=90000;break; case 2:hargatiket=60000;break; case 3:hargatiket=30000;

} }

printf("Harga Tiket : Rp. %li\n",hargatiket); total=banyaktiket*hargatiket;

printf("Total Tiket : Rp. %li\n",total); if(((kodejurusan==3)&&(kodekelas==1))|| ((kodejurusan==2)&&(kodekelas==3))) diskon=0.1*total;

else diskon=0;

printf("Diskon 10%% : Rp. %.0f\n",diskon); bayar=total-diskon;

printf("Bayar : Rp. %.0f\n",bayar); getch();

(41)

by Eko Budi Setiawan, S.Kom Halaman - 10

TUGAS !

1. Buat program untuk membandingkan 2 buah bilangan, kemudian tentukan bilangan yang

terbesar dari kedua bilangan tersebut.

Contoh :

Bilangan yang pertama = 5 Bilangan yang kedua = 2 Output

Bilangan yang terbesar adalah 5

2. Buat program untuk menginputkan sebuah bilangan, keudian cetak layar ke bilangan

tersebut dan beri komentar apakah bilangan tersebut ganjil atau genap.

Contoh :

Input = 15

Output = Bilangan yang diinputkan adalah 15

Bilangan tersebut adalah bilangan ganjil

3. Dengan menggunakan pernyataan else – if, buatlah program kalkulator sederhana untuk

mendapatkan tampilan hasil sebagai berikut :

Masukan bilangan pertama : 5

Masukan bilangan kedua : 3

Menu Matematika

=============================== 1. Penjumlahan

2. Pengurangan 3. Pembagian 4. Perkalian

Masukan menu pilihan anda : 4 Hasil Operasi dari 5 x 3 adalah = 15 ===============================

Nilai Tambah : program bisa mengecek pembagian dengan nol, yaitu jika bilangan kedua adalah nol, maka tidak dilakukan proses pembagian, namun ditampilkan pesan kesalahannya (division by zero)

Note Jawaban di buat berupa source code dan print out tampilan programnya, beserta kesimpulan hasil praktikum..

Kirim jawaban anda (*.doc) via e-mail ke ekobudisetiawan@ymail.com

Subject Mail & Nama File : Nama-NIM-Kelas-TC4

(42)

by Eko Budi Setiawan, S.Kom Halaman - 1 DIKTAT MATA KULIAH PEMROGRAMAN I

IF

BAB VI

PERULANGAN (LOOP)

Pendahuluan

Untuk memahami mengenai fungsi perulangan, coba lihatlah kasus sebagai berikut :

Buatlah suatu program untuk menampilkan angka dari 1 sampai dengan 5. Maka untuk kasus

tersebut program yang dibuat adalah sebagai berikut :

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

{

printf(“1\n”);

printf(“2\n”);

printf(“3\n”);

printf(“4\n”);

printf(“5\n”);

getch(); return 0; }

Program diatas telah memenuhi yang diinginkan, tetapi jika bilangan yang akan

ditampilkan misalkan dari 1 sampai 1000, maka sangatlah merepotkan jika harus menulis angka 1

sampai dengan 1000 secara manual. Oleh karena itu, disemua bahasa pemrograman terdapat

suatu mekanisme yang bernama loop (perulangan).

Ada beberapa jenis perulangan yang dapat dilakukan oleh bahasa pemrograman C, yaitu :

1. For

2. While

3. Do While

(43)

by Eko Budi Setiawan, S.Kom Halaman - 2

Perulangan for

Perulangan for mempunyai bentuk umum seperti berikut :

for(inisialisasi counter; kondisi perulangan; pengatur) {

statement; }

Inisialisasi counter : digunakan untuk memberikan inisialisasi terhadap variabel pengendali loop

Kondisi perulangan : dipakai sebagai kondisi untuk keluar dari loop Pengatur : dipakai sebagai pengatur kenaikan nilai variabel

pengendali loop

Contoh berikut ini akan menampilkan angka 1 sampai dengan 100, kemudian

menampilkan angka 10 turun sampai 0 dengan perubahan nilanya adalah 0.5

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

{

int i; float f;

for (i=1;i<=100;i++)

printf(“%i\n”,i);

for (f=10;f>=0;f-=0.5)

printf(“%6.2f\n”,f); getch();

return 0; }

Contoh lain :

(44)

by Eko Budi Setiawan, S.Kom Halaman - 3

Perulangan while

Bentuk umum dari while adalah seperti berikut :

while (kondisi) {

perintah; perintah; }

Cara kerja dari perulangan while mirip dengan perulangan for. Tetapi dalam perulangan

while ini, tidak ada jaminan bahwa program akan masuk kedalam perulangan. Ini dikarenakan

pemeriksaan kondisinya dilakukan diawal perulangan.

#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;

(45)

by Eko Budi Setiawan, S.Kom Halaman - 4

Perulangan do-while

Bentuk umum dari while adalah seperti berikut :

do {

perintah; perintah; }

while (kondisi);

(46)

by Eko Budi Setiawan, S.Kom Halaman - 5

Cara kerja dari perulangan do while mirip dengan perulangan while. Tetapi dalam

perulangan do while ini, pengecekan kondisi dilakukan diakhir loop. Sehingga program pasti

dapat masuk ke perulangan ini minimal 1 kali.

#include <stdio.h> #include <conio.h> main() { int i; float f; i=1; do {

printf(“%i\n”,i); i++;

} while (i<=1000); f=10;

do {

printf(“%6.2f\n”,f); f=f-0.5;

} while (f>=0); getch();

return 0; }

Perulangan denan label

Perulangan dengan menggunakan teknik label, merupakan teknik perulangan yang paling

awal dikenal, biasanya ada dalam pemrograman berbahasa assembly. Tetapi perulangan seperti

ini tidak dianjurkan untuk dipakai karena bisa membuat struktur program menjadi tak teratur.

Untuk lebih jelas, perhatikan contoh program dibawah ini.

#include <stdio.h> #include <conio.h> main() { int i; i=0; awal: i=i+1; printf("%i\n",i); if(i<10) goto awal; else goto akhir;

printf("Perintah ini tak akan dieksekusi\n"); printf("Perintah ini juga tak akan dieksekusi\n"); akhir:

(47)

by Eko Budi Setiawan, S.Kom Halaman - 6 }

Program diatas akan menampilkan angka 1 sampai 10. Perhatikan perintah dibawah ini :

printf("Perintah ini tak akan dieksekusi\n"); printf("Perintah ini juga tak akan dieksekusi\n");

Perintah tersebut tidak akan pernah dieksekusi, karena ketika program telah mencapai

nilai 10, maka akan melewatkan perintah tersebut dan langsung loncat (go to) kebagian akhir

yang ditandai dengan perintah akhir :.

Contoh program :

//menentukan total pembelian minuman #include<stdio.h> #include <conio.h> main() { int jumlah,kode; float harga,total; double bayar; char kar;

printf("kode Jenis Harga\n"); printf("1 Milo Rp 10.000\n"); printf("2 Kopi Rp. 5000\n"); printf("3 Coca Cola Rp 2500\n"); printf("4 Orange Juice Rp 2000\n"); total=0;

do {

printf("Masukkan kode minuman : "); scanf("%d",&kode);

printf("Masukkan jumlah pesanan :"); scanf("%d",&jumlah);

if(kode==1)

harga = (float) 10000*jumlah; else if(kode==2)

harga = (float)5000*jumlah; else if(kode==3)

harga = (float)2500*jumlah; else if(kode==4)

harga = (float)2000*jumlah; total=total+harga;

printf("Mau menambah pesanan ? (Y/T) "); scanf("%s",&kar);

} while(kar=='Y'); if(total > 100000)

bayar=total-(0.15*total); else

bayar=total;

printf("\nHarga yang harus dibayar = %10.2f\n",bayar); getch();

(48)

by Eko Budi Setiawan, S.Kom Halaman - 7 //contoh program yang kedua

#include <stdio.h> main()

{

char kar;

int jumkar = 0, jumspasi = 0;

printf("Masukkan sebuah kalimat dan akhiri dengan ENTER."); printf("Saya akan menghitung jumlah karakter ");

printf("pada kalimat tersebut.\n"); while((kar = getchar()) != '\n') {

jumkar++;

if (kar == ' ') jumspasi++; }

printf("\nJumlah karakter = %d", jumkar); printf("\nJumlah SPASI = %d\n\n", jumspasi); }

//program triangular #include <stdio.h> main()

{

int n, jumlah = 0; for (n=1; n<=10; n++)

jumlah = jumlah + n;

printf("Jumlah 10 triangular adalah %d\n", jumlah); }

//program triangular2 #include <stdio.h> main()

{

int n, bil, jumlah = 0;

printf("Masukkan bilangan triangular : "); scanf("%d", &bil);

printf("\nTABEL PENJUMLAHAN TRIANGULAR\n\n"); printf("%3s%10s\n\n","n","Jumlah");

for (n=1; n<=bil; n++) {

jumlah = jumlah + n;

printf("%3d %7d\n", n, jumlah); }

(49)

by Eko Budi Setiawan, S.Kom Halaman - 8 #include <stdio.h> #include <conio.h> #include <math.h> main() { int no_mn; float sisi1,sisi2,sisimrg; float rad,kel,ls; float pjg,lbr,tng,vol,luass; clrscr(); no_mn=0;

while(no_mn != 4) {

printf("\n Fungsi Yang ingin anda pakai\n"); printf(" ---\n");

printf("\n1. Menghitung Sisi Miring Suatu Segitiga\n"); printf("2. Menghitung Keiling dan Luas Lingkaran\n"); printf("3. Menghitung Volume, Luas Selimut Balok\n"); printf("4. Keluar\n");

printf("\n ---\n");

printf(" Masukan No Pilihan : ");scanf("%d",&no_mn); clrscr();

if(no_mn==1) {

printf("Sisi 1 = ");scanf("%f",&sisi1); printf("Sisi 2 = ");scanf("%f",&sisi2); sisimrg=sqrt((sisi1*sisi1)+(sisi2*sisi2)); printf("\nHasil Perhitungan :\n");

printf("Sisi Miringnya = %.2f\n",sisimrg); }

else

if(no_mn==2) {

printf("Radius = ");scanf("%f",&rad); kel=3.14*2*rad;

ls=3.14*rad*rad;

printf("\nHasil Perhitungan :\n");

printf("Keliling Lingkarannya = %.2f\n",kel); printf("Luas Lingkarannya = %.2f\n",ls); }

else

if(no_mn==3) {

printf("Panjang = ");scanf("%f",&pjg); printf("Lebar = ");scanf("%f",&lbr); printf("Tinggi = ");scanf("%f",&tng); vol=pjg*lbr*tng;

luass=2*((pjg*lbr)+(lbr*tng)+(pjg*tng)); printf("\nHasil Perhitungan :\n");

printf("Volume Baloknya = %.2f\n",vol); printf("Luas Selimut Baloknya = %.2f\n",luass); }

else

if(no_mn==4) {

printf("\nKeluar Program Sampai Jumpa\n"); printf(" Terima Kasih... \n"); }

(50)

by Eko Budi Setiawan, S.Kom Halaman - 9

TUGAS !

Tugas

1. Buatlah program untuk menampilkan semua bilangan genap yang terletak antara 20 sampai

dengan 120, dengan menggunakan for.

2. Buat program untuk menghitung faktorial.

Contoh output :

Tentukan bilangan faktorial = 5

Hasil perhitungan 5 faktorial adalah = 120

3. Buatlah program untuk menampilkan tabel hasil faktorial dari suatu bilangan yang diinputkan

(tampilan bilangan rata kanan) :

Contoh output :

Masukan bilangan faktorial = 7

4. Buatlah program untuk menjumlahkan bilangan ganjil dan genap dari bilangan yang di

inputkan oleh user. Banyaknya bilangan, ditentukan terlebih dahulu. Contoh :

Data yang diinputkan = 4

Data ke 1 = 3

Data ke 2 = 10

Data ke 3 = 2

Data ke 4 = 5

Hasil Akhir :

Jumlah bilangan ganjil adalah = 8 Jumlah bilangan genap adalah = 12

Note Kerjakan semua contoh diatas kemudian compile.

Jawaban di buat berupa source code dan print out tampilan programnya, beserta kesimpulan hasil praktikum..

Kirim jawaban anda (*.doc) via e-mail ke ekobudisetiawan@ymail.com

(51)

by Eko Budi Setiawan, S.Kom Halaman - 10

Tugas Besar Sebelum UTS

1. Buatlah program untuk menjumlahkan bilangan ganjil dan genap dari bilangan yang di inputkan oleh user. Banyaknya bilangan, ditentukan terlebih dahulu. Contoh :

Data yang diinputkan = 4

Data ke 1 = 3

Data ke 2 = 10

Data ke 3 = 2

Data ke 4 = 5

Hasil Akhir :

Jumlah bilangan ganjil adalah = 8 Jumlah bilangan genap adalah = 12

2. Buatlah program untuk menghitung jumlah deret dan faktorial dari bilangan yang diinputkan oleh user.

Masukan Jumlah Nilai (n) = 6 Hasil Perhitungannya adalah : ==============================

Jumlah dari 1 + 2 + 3 + 4 + 5 + 6 = 21 6! = 720

3. Buatlah program untuk menampilkan bintang sesuai dengan jumlah baris yang di inputkan oleh user.

Banyaknya Baris = 5

Hasil yang diinginkan adalah ============================ 1 : *

2 : ** 3 : *** 4 : **** 5 : *****

4. Sedangkan untuk soal dibawah ini, buatlah program untuk menampilkan bintang sesuai dengan contoh dibawah ini.

Banyaknya Baris = 5

Hasil yang diinginkan adalah ============================ *

(52)

by Eko Budi Setiawan, S.Kom Halaman - 11 5. Buatlah program untuk menampilkan total penjumlahan dari inputan yang dibatasi nilai awal

dan akhirnya oleh user.

Masukan Nilai Awal = 5

Masukan Nilai Akhir = 10

===============================

Totalnya adalah = 5 + 6 + 7 + 8 + 9 + 10 = 45

6. Buatlah program untuk menampilkan tabel perkalian m x n dengan inputan nilainya diinputkan oleh user. (dibatasi dari 2 sampai 10). Jika user menginputkan nilai lebih dari 10

ta pilka ketera ga Nilai a g dii putka tidak boleh lebih besar dari

Masukan Nilai (2-10) = 5

TABEL PERKALIAN

1 2 3 4 5

---

1 | 1 2 3 4 5

2 | 2 4 6 8 10

3 | 3 6 9 12 15

4 | 4 8 12 16 20

5 | 5 10 15 20 25

7. Buatlah program untuk menghitung jumlah saldo yang sudah ditambahkan dengan bunga yang diinputkan oleh user dalam jangka waktu yang telah ditentukan

Masukan Saldo Awal = 100000

Masukan Besarnya Bunga (%) = 10 Masukan jangka waktu (bulan) = 5 ======================================== Hasil Perhitungan :

Saldo bulan ke-1 = 110000 Saldo bulan ke-2 = 121000 Saldo bulan ke-3 = 133100 Saldo bulan ke-4 = 146410 Saldo bulan ke-5 = 161051

8. Buatlah program untuk menghitung jumlah waktu yang diperlukan untuk memenuhi jumlah saldo yang diinginkan oleh user setelah ditambahkan bunga.

Masukan Saldo Awal = 100000

Masukan Besarnya Bunga (%) = 15 Masukan Jumlah Saldo Akhir = 150000 ======================================== Hasil Perhitungan :

Saldo bulan ke-1 = 115000 Saldo bulan ke-2 = 132250 Saldo bulan ke-3 = 152088

(53)

by Eko Budi Setiawan, S.Kom Halaman - 12 9. Buatlah program untuk menentukan bilangan yang terbesar dari 5 data yang diinputkan oleh

user.

Masukan sembarang bilangan bulat ================================

Data ke 1 = 2

Data ke 2 = 5

Data ke 3 = 6

Data ke 4 = 4

Data ke 5 = 3

Bilangan terbesar adalah = 6

10.Buatlah program untuk membalik posisi dari angka yang diinputkan oleh user.

Masukan bilangan yang akan dibalik = 4032 ========================================

Hasil Pembalikannya adalah = 2304

Note Jawaban di buat dalam bentuk makalah yang berupa source code dan printout tampilan programnya.. diwajibkan untuk menunjukkan informasi NIM di program yang sudah di Compile..

(54)

by Eko Budi Setiawan, S.Kom Halaman - 1 DIKTAT MATA KULIAH PEMROGRAMAN I

IF

BAB VII

FUNCTION

Tu j u a n

1. Menjelaskan tentang prinsip dasar fungsi

2. Menjelaskan tentang parameter formal dan parameter aktual

D a s a r T e o r i

Fungsi adalah suatu bagian dari program yang dirancang untuk melaksanakan tugas

tertentu dan letaknya dipisahkan dari program yang menggunakannya. Elemen utama dari

program bahasa C berupa fungsi-fungsi, dalam hal ini program dari bagasa C dibentuk dari

kumpulan fungsi pustaka (standar) dan fungsi yang dibuat sendiri oleh pemrogram. Fungsi

banyak digunakan pada program C dengan tujuan :

a. Program menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan.

Dengan memisahkan langkah-langkah detail kesatu atau lebih fungsi-fungsi, maka fungsi

utama ( main()) menjadi lebih pendek, jelas dan mudah dimengerti.

b. Dapat mengurangi pengulangan (duplikasi) kode. Langkah-langkah program yang sama

dan dipakai berulang-ulang diprogram dapat dituliskan sekali saja secara terpisah dalam

bentuk fungsi-fungsi. Selanjutnya bagian program yang membutuhkan langkah-langkah

ini tidak perlu selalu menuliskannya, tetapi cukup memanggil fungsi-fungsi tersebut.

D a s a r F u n g s i

Fungsi standar C yang mengemban tugas khusus contohnya adalah :

a.printf (), yaitu untuk menampilkan informasi atau data ke layar

b.scanf (), yaitu untuk membaca kode tombol yang diinputkan

Pada umumnya fungsi memerlukan nilai masukan atau parameter yang disebut sebagai

argumen. Nilai masukan ini akan diolah oleh fungsi. Hasil akhir fungsi berupa sebuah nilai (disebut sebagai return value atau nilai keluaran fungsi). Oleh karena itu, fungsi sering

(55)

by Eko Budi Setiawan, S.Kom Halaman - 2

Penggamabaran sebagai kotak gelap diantaranya menjelaskan bahwa bagian dalam

fungsibersifat probadi bagi fungsi. Tidak ada suatu pernyataan diluar fungsi yang bisa mengakses

bagian dalam fungsi, selain melalui parameter (atau varianel eksternal). Bentuk umum dari

definisi sebuah fungsi adalah sebagai berikut :

tipe-keluaran-fungsi namafungsi (deklarasi argumen) {

tubuh fungsi }

Keterangan :

 tipe-keluaran-fungsi, dapat berupa salah satu tipe data C, misalnya char atau

int. Jika penentu tipe tidak disebutkan, maka dianggap bertipe int (secara default).

 tubuh fungsi berisi deklarasi variabel (jika ada) dan statemen-statemen yang akan

melakukan tugas yang akan diberikan kepada fungsi yang bersangkutan. Tubuh fungsi ini

ditulis didalam tanda kurung kurawal buka dan kurung kurawal tutup.

Sebuah fungsi yang sederhana bisa saja tidak mengandung parameter sama sekali dan

tentu saja untuk keadaan ini deklarasi parameter juga tidak ada. Contoh :

int inisialisasi() {

return(0); }

inisialisasi() {

(56)

by Eko Budi Setiawan, S.Kom Halaman - 3

Pada fungsi diatas :

 tipe keluaran fungsi tidak disebutkan, berarti keluaran fungsi bertipe int.

 Inisialisasi adalah nama fungsi

 Tanda () sesudah nama fungsi menyatakan bahwa fungsi tak memiliki parameter

 Tanda { dan } adalah awal dan akhir fungsi

 return(0) merupakan sebuah pernyataan dalam tubuh fungsi.

M e m b e r i k a n N i l a i K e l u a r a n F u n g s i

Suatu fungsi dibuat untuk maksud menyelesaikan tugas tertentu. Suatu fungsi dapat

hanya melakukan suatu tugas saja tanpa memberikan suatu hasil keluiaran atau melakukan suatu

tugas dan kemudian memberikan hasil keluaran. Fungsi yang hanya melakukan suatu tugas saja

tanpa memberikan hasil keluaran misalnya adalah fungsi untuk menampilkan hasil dilayar.

Dalam tubuh fungsi, pernyataan yang digunakan untuk memberikan nilai keluaran fungsi

berupa return. Sebagai contoh, pada fungsi inisialisasi() diatas terdapat pernyataan

return (0);

merupakan pernyataan untuk memberikan nilai keluaran fungsi berupa nol.

Hasil Eksekusi :

x = 0

(57)

by Eko Budi Setiawan, S.Kom Halaman - 4

Program diatas sekaligus menjelaskan bahwa suatu fungsi cukup didefinisikan satu kali tetatpi

bisa digunakan beberapa kali. Pada keadaan semacam ini, seandainya tubuh fungsi mengandung

banyak pernyataan, maka pemakaian fungsi dapat menghindari duplikasi kode dan tentu saja

menghemat penulisan program maupun kode dalam memori.

Misalnya pada saat pernyataan

x = inisialisasi ();

dijalankan, mula-mula eksekusi akan diarahkan ke fungsi inisialisasi (), selanjutnya suatu nilai

keluaran (hasil fungsi) akhir fungsi diberikan ke x. Proses yang serupa, dilakukan untuk

pernyataan

y = inisialisasi ();

Bagi suatu fungsi, jika suatu pernyataan return dieksekusi, maka eksekusi terhadap fungsi

akan berakhir dan nilai pada parameter return akan menjadi keluaran fungsi. Untuk fungsi yang

tidak memiliki pernyataan return, tanda } pada bagian akhir fungsi akan menyatakan akhir

eksekusi fungsi.

Dibawah ini diberikan contoh sebuah fungsi yang mengandung dua buah pernyataan

return. Fungsi digunakan untuk memperoleh nilai minimum diantara 2 buah nilai yang menjadi

parameternya.

int minimum(int x, int y) {

if (x < y) return(x); else

return(y); }

Pada fungsi diatas terdapat dua buah parameter berupa x dan y. Oleh karena itu fungsi juga

mengandung bagian untuk mendeklarasikan parameter, yang menyatakan x dan y bertipe int.

Adapun penentuan nilai keluaran fungsi dilakukan pada tubuh fungsi, berupa pernyataan

if (x < y)

return(x); else

return(y);

yang menyatakan :

 jika x < y maka nilai keluaran fungsi adalah sebesar nilai x

(58)

by Eko Budi Setiawan, S.Kom Halaman - 5 F u n g s i D e n g a n K e l u a r a n B u k a n I n t e ge r

Untuk fungsi yang mempunyai keluaran bertipe bukan integer, maka fungsi haruslah

didefinisikan dengan diawali tipe keluaran fungsinya (ditulis didepan nama fungsi). Sebagai

contoh untuk menghasilkan nilai terkecil diantara dua buah nilai real, maka definisinya berupa :

float minimum(float x, float y) {

if (x < y) return(x); else

return(y); }

Perhatikan, didepan nama minimum diberikan tipe keluaran fungsi berupa float. Seluruh

parameter sendiri juga didefinisikan dengan tipe float.

Khusus untuk fungsi yang dirancang tanpa memberikan nilai keluaran (melainkan hanya

menjalankan suatu tugas khusus) biasa didefinisikan dengan diawali kata kunci void (didepan

nama fungsi).

P r o t o t i p e F u n g s i

Prototipe fungsi digunakan untuk menjelaskan kepada kompiler mengenai :

 Tipe keluaran fungsi

 Jumlah parameter

 Tipe dari masing-masing parameter

Bagi kompiler, informasi dalam prototipe akan dipakai untuk memeriksa keabsahan

(validitas) parameter dalam pemanggilan fungsi. Salah satu keuntungannya adalah, kompiler

akan melakukan konversi seandainya antara tipe parameter dalam fungsi dan parameter saat

pemanggilan fungsi tidak sama, atau akan menunjukkan kesalahan bila j

Gambar

Gambar 1 Proses Kompilasi dari Program C
tabel.

Referensi

Dokumen terkait

• Penulisan header fungsi dengan parameter hampir sama dengan fungsi tanpa parameter, yaitu diawali dengan tipe data, lalu nama fungsi, dan diikuti dengan parameter-parameter

Dalam bahasa C, fungsi dapat mengembalikan type bentukan. Nama-nama yang berasal dari pustaka telah ada deklarasinya dalam file include yang sesuai. Contoh: deklarasi

Penjelasan setw() merupakan suatu fungsi manipulator yang digunakan untuk mengatur lebar tampilan dilayar dari suatu nilai variabel.. File header yang harus disertakan file header

File Manager adalah Program utilitas yang melakukan fungsi-fungsi yang berkaitan dengan manajemen file, seperti memformat dan menyalin disk, menampilkan daftar file,

Nama yang didefinisikan di dalam bagian Deklarasi fungsi hanya dikenal dan berlaku di dalam fungsi yang bersangkutan saja, fungsi lain atau program utama tidak dapat

Form1 File :Projet1.bpr File : Unit1.dfm File :Projet1.res File :Projet1.cfg File :Projet1.tds COMPILE + File :Projet1.exe File : Unit1.obj File :Unit1.cpp dan Uni1.h Kode program

Andaikan kita diminta untuk membuat kode program yang dapat dipakai untuk. memasukkan 10 nama orang beserta nomer

Penjelasan Fungsi setiosflags() merupakan suatu fungsi manipulator yang digunakan untuk mengatur sejumlah format keluaran data... Fungsi ini biasa pada fungsi cout(), file