BAB I
PENDAHULUAN
1.1 Latar belakang
Bahasa
C merupakan perkembangan dari BCPL yang dkembangkan oleh Martin Richards pada
tahun 1967.Selanjutnya bahasa ini merupakan ide kepada Ken Thompson yang
kemudian yang kemudian menggembangkan bahasa yang disebut bahasa B pada tahun
1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis
Ricthie sekitar tahun 1970-an di Bell Telephone Laboratories Inc.(sekarang
adalah AT&T Bell Laboratories).Bahasa C pertama kali digunakan di computer
Digital Equipment Corporation PDP-11
yang menggunakan system operasi
UNIX.Hingga saat ini pengguna bahasa C telah merata diseluruh dunia.Hampir
semua perguruan tinggi di dunia menjadikan bahasa C sebagai salah satu mata kuliah
wajib.Selain itu banyak bahasa pemrograman popular seperti PHP dan java
menggunakan sintaks dasar yang mirip bahasa C.oleh karena itu,kita juga sangat
perlu mempelajarinya.
Banyak
compiler yang telah di buat untuk menjalankan program dalam bahasa C.Untuk
pratikum ini akan digunakan compiler MinGw
Developer Studio 2.05.Pemilihan compiler ini disebabkan sudagh dapat
running (dijalankan).pada system windows XP dan sudah bersifat GUI (Graphical
User Interface).sehingga diharapkan akan memudahkan praktikan dalam melakukan
pratikum ini.
1.2 Tujuan Pratikum
§ 1. Mengenal dan memahami
fungsi dasar dalam Bahasa C.
§ 2. Mengerti dan
memahami header program Bahasa C.
§ 3. Dapat menggunakan
fungsi-fungsi dasar pemrograman C.
1.3 Manfaat
Pratikum
§ 1.Dapat menambah wawasan dan ilmu tentang bahasa pemrograman bahasa
C.
§ 2.Dapat mengenal sintaks-sintak bahasa C.
§ 3.Dapat mempelajari dasar-dasar bahasa C dan lebih mudah untuk
kedepannya.
BAB II
TEORI BAHASA
2.1 Pernyataan Kendala if
Pernyataan if
Pernyataan if mempunyai bentuk umum :
if (kondisi )
pernyataan;
Bentuk ini menyatakan :
jika kondisi yang diseleksi
adalah benar (bernilai logika = 1), maka pernyataan yang mengikutinya akan
diproses.
Sebaliknya, jika kondisi yang
diseleksi adalah tidak benar (bernilai logika = 0), maka pernyataan yang
mengikutinya tidak akan diproses.
Mengenai kodisi harus ditulis diantara tanda kurung, sedangkan
pernyataan dapat berupa
sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan
kosong. Diagram alir
dapat dilihat seperti gambar
Salah
|
Benar
Gambar Diagram alir if
Untuk pernyataan
if yang diikuti dengan pernyataan majemuk, bentuknya adalah sebagai
berikut :
if (kondisi)
{
/* tanda awal pernyataan majemuk*/
pernyataan-1;
pernyataan–2;
.
.
.
pernyataan-n;
} /* tanda akhir pernyataan majemuk */
Pernyataan-pernyataan yang berada dalam tanda kurung {
dan } akan dijalankan hanya bila kondisi if bernilai benar.
Pernyataan if-else
Pernyataan if-else memiliki bentuk :
if (kondisi)
pernyataan-1;
else
pernyataan-2;
Diagram alir dapat dilihat seperti gambar
Salah
Benar
|
|
Gambar Diagram alir if-else
Arti dari pernyataan if-else :
Jika kondisi benar, maka
pernyataan-1 dijalankan.
Sedangkan bila kondisi bernilai
salah, maka pernyataaan-2 yang dijalankan.
Masing-masing pernyataan-1 dan pernyataan-2 dapat berupa
sebuah pernyataan tunggal,
pernyataan majemuk ataupun pernyataan kosong.
Pernyataan if di dalam if
Di dalam suatu pernyataan if (atau if-else) bisa saja
terdapat pernyataan if (atau if-
else) yang lain. Bentuk seperti ini dinamakan sebagai
nested if. Secara umum, bentuk dari
pernyataan ini adalah sebagai berikut :
if (kondisi-1)
if (kondisi-2)
.
.
if(kondisi-n)
pernyataan;
else
pernyataan;
.
.
else
pernyataan;
else
pernyataan;
Kondisi yang akan diseleksi pertama kali adalah kondisi
yang terluar (kondisi-1). Jika kondisi-1
bernilai salah, maka statemen else yang terluar (pasangan if yang bersangkutan) yang akan
diproses. Jika else (pasangannya tsb) tidak ditulis, maka
penyeleksian kondisi akan dihentikan.
Jika kondisi-1 bernilai benar, maka kondisi berikutnya
yang lebih dalam (kondisi-2) akan diseleksi.
Jika kondisi-2 bernilai salah, maka statemen else pasangan dari
if yang bersangkutan yang akan
diproses. Jika else (untuk
kondisi-2) tidak ditulis, maka penyeleksian kondisi akan dihentikan.
Dengan cara yang sama,
penyeleksian kondisi akan dilakukan sampai dengan kondisi-n, jika
kondisi-kondisi sebelumnya bernilai benar.
2.2 Pernyataan Kendali Switch
Pernyataan switch merupakan pernyataan yang dirancang
khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah
alternatif, misalnya untuk menggantikan pernyataan if bertingkat. Bentuk umum
pernyataan switch adalah :
switch (ekspresi)
{
case konstanta-1:
pernyataan-1;
......
break;
case konstanta-2:
.
.
.
case konstanta-n:
pernyataan-n;
.......
break;
default:
.......
.......
break;
}
dengan ekspresi
dapat berupa ekspresi bertipe integer atau bertipe karakter. Demikian juga
konstanta-1, konstanta-2, …,
konstanta-n dapat berupa konstanta integer atau karakter. Setiap
pernyataan-i (pernyataan-1, … , pernyataan-n) dapat berupa pernyataan
tunggal ataupun pernyataan jamak. Dalam hal ini urutan penulisan pernyataan
case tidak berpengaruh. Proses penyeleksian berlangsung sebagai berikut :
pengujian pada switch akan dimulai dari
konstanta-1. Kalau nilai konstanta-1
cocok dengan ekspresi maka pernyataan-1 dijalankan. Kata kunci break harus disertakan di bagian
akhir setiap pernyataan case, yang akan mengarahkan eksekusi ke akhir
switch.
Kalau ternyata pernyataan-1
tidak sama dengan nilai ekspresi, pengujian dilanjutkan pada konstanta-2, dan
berikutnya serupa dengan pengujian pada konstanta-1.
Jika sampai pada pengujian case yang terakhir ternyata tidak ada
kecocokan, maka pernyataan yang mengikuti kata kunci default yang akan dieksekusi. Kata kunci default ini bersifat opsional.
Tanda kurung kurawal tutup (})
menandakan akhir dari proses penyeleksian kondisi case.
2.3 Bentuk Perulangan Looping
Macam Perulangan:
Perulangan dengan perhitungan
(counter)
Perulangan dengan kondisi
terpenuhi
Perulangan dengan kodisi tidak
terpenuhi
Perulangan Counter:
Perintah For… To … Do …
Perintah For… DownTo… Do …
Perintah For… To… Do…
Digunakan untuk perulangan dengan jumlah yang ditentukan
dahulu dari nilai kecil ke besar (
Increasing ).
Bentuk Umum :
For variabel_kontrol : = nilai_awal To nilai_akhir Do Statement ;
Contoh :
For index:=1 to 10 do
Writeln(‘Ulang’);
Contoh :
For i := 1 to n do a := 3*i{ dengan n > 1 }
Perintah For… DownTo… Do…
Digunakan untuk perulangan dengan jumlah yang ditentukan
terlebih dahulu dari nilai besar ke
kecil ( Decreasing ).
Bentuk Umum :
For variabel_kontrol:= nilai_awal DownTo nilai_akhir Do
Statement ;
Contoh :
For index:=10 downto 1 do writeln(‘Ulang’);
Contoh :
For i := 100 downto n do a := I {dengan n < 100}
Perulangan dengan kondisi terpenuhi
While … do …
While… Do …
Digunakan untuk perulangan sebanyak sampai sudah
terpenuhi kriteria yang ditentukan.
Bentuk Umum :
While ungkapan_logika Do Statement ;
While i<= 5 Do
begin
writeln(I);
i: = i +1 ;
end ;
Perulangan dengan kondisi tidak terpenuhi
Repeat … until…
Repeat… Until …
Digunakan untuk perulangan sebanyak sampai sudah
terpenuhi criteria yang tidak ditentukan.
Bentuk Umum :
Repeat Statement ;
Until ungkapan_logika;
Repeat
writeln( I ) ;
I : = I +1;
Until I >= 5;
2.4 Bentuk Perulangan for
Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui
jumlah perulangannya.
Ekspresi Umum:
for( awal ; kondisi ; counter )
{
Statementl;
Statement2;
}
Statement3;
Contoh:
int i;
for(i = l ; i <= 10 ; ++i)
printf ("\niterasi ke = %d" , i);
2.5 Bentuk Perulangan while
Perulangan WHILE banyak digunakan pada program yang terstruktur. Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui.
Ekspresi Umum while .. :
while( expression )
{
Statementl;
Statement2;
}
Statement3;
Contoh :
Int i;
while (i<=10)
{
printf("\n\titerasi ke = %d",i);
i++;
}
2.6 Bentuk Perulangan do while
Perbedaannya dengan while, do ... while memiliki pengecekan kondisi yang terletak setelah statement perulangan.
Ekspresi Umum while .. :
do
{
Statementl;
Statement2;
}
while( expression )
Statement3;
Contoh :
Int i;
do
{
printf("\n\titerasi ke = %d",i);
i++;
}
while(i<=10)
2.7 Bentuk Perulangan Kontinue break
Break ditempatkan di dalam statement perulangan. Ketika kursor kompilasi menjalankan statement break, maka kursor kompilasi akan melompat keluar dari scope perulangan terkait. Semua bentuk perulangan (do ... while, while, dan for) dapat menggunakan break.
Contoh:
#include <stdio.h>
#include <conio.h>
void main() {
int i;
clrscr();
for (i = 1; i <= 10; i++) {
if (i == 5)
break;
printf("%d ", i);
}
printf("\nBroke out of loop at i = %d\n\n", i);
for (i = 1; i <= 10; i++) {
if (i == 5)
continue;
printf("%d ", i);
}
printf("\nUsed continue to skip printing 5");
getch();
}
2.8 Pernyataan go to
Pernyataan Goto dipakai untuk melompat ke sebuah baris yang telah
diberi kata kunci.
2.9 Bentuk Deklarasi
Deklarasi Fungsi
Sebelum digunakan (dipanggil), suatu fungsi harus dideklarasikan dan didefinisikan terlebih dahulu. Bentuk umum pendeklarasian fungsi adalah :
tipe_fungsi nama_fungsi(parameter_fungsi);
Sedangkan bentuk umum pendefinisian fungsi adalah :
Tipe_fungsi nama_fungsi(parameter_fungsi)
{ statement
statement
............
............
}
2.10 Parameter
Parameter Formal dan Parameter Aktual
Parameter formal adalah
variabel yang ada pada daftar parameter dalam definisi fungsi.
Parameter actual adalah
variabel (parameter) yang dipakai dalam pemanggilan fungsi.
Dalam contoh program pertambahan diatas parameter formal terdapat
pada pendefisian fungsi:
Float tambah(float
x, float y) // parameter formal
{ return (a+b);
}
Sedangkan parameter aktual terdapat pada pemanggilan fungsi:
Void main ( )
{ …………..
…………..
c = tambah (a,b);
…………...
}
2.11 Rekursif
Rekursif merupakan alat/cara untuk memecahkan masalah dalam suatu
fungsi atau procedure yang memanggil dirinya sendiri. Manfaat fungsi rekursif
serta perbandingannya dengan looping/perulangan:
REKURSIF
|
ITERATIF
|
Perulangan
rekursif merupakan salah satu metode didalam
pemrograman yang mana dalam sebuah fungsi terdapat intruksi yang memanggil
fungsi itu sendri, atau lebih sering disebut memanggil dirinya sendiri.
|
Perulangan
iteratif merupakan perulangan yang melakukan
proses perulangan terhadap sekelompok intruksi. Perulangan dilakukan dalam
batasan syarat tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka
perulangan aka terhenti.
|
Kelebihan
perulangan rekursif
Sangat mudah untuk melakukan perulangan
dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang
besar
Dapat melakukan perulangan dengan
batasan fungsi
|
Kelebihan
perulangan iteratif
Mudah dipahami dan mudah dilakukan
debuging ketika ada perulangan yang salah
Dapat melakukan nested loop atau yang
disebut dengan looping bersarang
Proses lebih singkat karena perulangan
terjadi pada kondisi yang telah disesuaikan
Jarang terjadi overflow karena batasan
dan syarat perulangan yang jelas
|
Kekurangan
perulangan rekursif
Tidak bisa melakukan nested loop atau
looping bersarang
Biasanya membuat fungsi sulit untuk
dipahami, hanya cocok untuk persoalan tertentu saja
Memerlukan stack yang lebih besar, sebab
setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan
ditempatkan ke stack dan ada kalaya akan menyebabkan stack tak cukup lagi
(Stack Overum)
Proses agak berbelit-belit karena
terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang
ditumpuk
|
Kelemahan
perulangan iterative
Tidak dapat menggunakan batasan berupa
fungsi
Perulangan dengan batasan yang luas akan
menyulitkan dalam pembuatan program perulangan itu sendiri
|
Perbedaan dan Persamaan Rekursif dan
Iteratif :
Persamaan
- Sama-sama merupakan bentuk perulangan.
- Sama-sama merupakan bentuk perulangan.
- Dilakukan pengecekan kondisi terlebih
dahulu sebelum mengulang.
Perbedaan
- Iteratif menggunakan FOR, WHILE, DO-WHILE sedangkan rekursif hanya menggunakan IF.
- Iteratif menggunakan FOR, WHILE, DO-WHILE sedangkan rekursif hanya menggunakan IF.
- Iteratif dapat berjalan pada program
yang terdiri dari prosedur (Tidak terdapat fungsi) sedangkan rekursif merupakan
fungsi.
2.12 Represikasi array
Definsi : Kumpulan nilai dengan
tipe data yang sama yang menggunakan nama sama.
Deklarasi Array :
–
Tipe data elemen array
–
Nama array
–
Jumlah elemen array
Contoh :
short val[ 200 ];
//declaration
val[ 12 ] = 5; //assignment
Jika sebuah array y memiliki n
elemen, maka:
– Elemen pertama adalah : y[0]
– Elemen terakhir adalah : y[n-1]
Contoh :
–
Short y[4], memiliki elemen
y[0], y[1], y[2], y[3]
–
Tetapi y[4], bukan merupakan
elemen array ini.
Array dapat dibedakan menjadi :
–
Array berdimensi satu (1D),
berpadanan dg vektor di Matematika
–
Array berdimensi dua (2D),
berpadanan dg matriks di Matematika
–
Array berdimensi banyak
Contoh array integer 1D bernama
n yg memiliki 5 elemen,
n[0] = 1, n[1] = 3, n[2] = 5, n[3] = 7, n[4] = 9 dideklarasikan sbb:
n[0] = 1, n[1] = 3, n[2] = 5, n[3] = 7, n[4] = 9 dideklarasikan sbb:
– int n[5] = {1,3,5,7,9};
BAB III
HASIL PERCOBAAN
Latihan
Pernyataan
if
LISTING PROGRAM
:
#include<stdio.h>
#include<conio.h>
int main()
{
int
a,c=10;
printf("masukkan
sebuah nilai:");scanf("%d",&a);
if
(a<10)
{
printf("Nilai
%d lebih kecil dari %d\n",a,c);
}
printf("Jumlah
%d+%d=%d\n",a,c,a+c);
return
0;
}
Hasil Eksekusi
Keterangan : program untuk memunculkan
nilai angka yang lebih kecil dari 10 dan angka yang lebih besar dari 10.
Pernyataan
switch
LISTING PROGRAM
:
#include<stdio.h>
#include<conio.h>
int main()
{
int
a,b,c;
printf("masukkan
sebuah angka antara 1 - 3:");scanf("%d",&a);
switch
(a)
{
case
1: printf("Anda Memasukkan angka satu");break;
case
2: printf("Anda Memasukkan angka dua");break;
case
3: printf("Anda Memasukkan Angka Tiga");break;
default:
printf("Input Salah, Input angka 1-3");
}
return
0;
}
Hasil Eksekusi
Keterangan:
program untuk memunculkan pilihan angka 1 – 3.
Perulangan looping
LISTING PROGRAM
:
#include<stdio.h>
#include<conio.h>
int main()
{
int
i;
for
(i=1;i<=10;i++)
{
printf("%d\t",i);
}
return
0;
}
Hasil Eksekusi
Keterangan: program untuk memunculkan nilai
1 – 10
Perulangan for
LISTING PROGRAM
:
#include<stdio.h>
#include<conio.h>
int main()
{
int
i,j;
for(i=1;i<=10;j++)
{
for(j=1;j<=10;j++)
{
printf("*");
}
printf("\n");
}
return
0;
}
Hasil Eksekusi
Keterangan: program untuk memunculkan
bintang
Perulangan while
LISTING PROGRAM
:
#include<stdio.h>
#include<conio.h>
int main()
{
int
i;
i=1;
while(i<=10)
{
printf("%d\t",i);
i=i+1;
}
return
0;
}
Hasil Eksekusi
Keterangan: program untuk memunculkan nilai
1 – 10.
Perulangan
do while
LISTING PROGRAM
:
#include<stdio.h>
#include<conio.h>
int main()
{
int
i;
i=1;
do
{
printf("%d\t",i);
i=i+1;
}while(i<=0);
return
0;
}
Hasil Eksekusi
Keterangan: program untuk memunculkan nilai
1.
Pernyataan continue break
LISTING PROGRAM
:
#include<stdio.h>
#include<conio.h>
int main()
{
int
i,j;
for(i=1;i<=10;i++)
{
if(i==4)
continue;
{
printf("%d\t",i);
}
}
return
0;
}
Hasil Eksekusi
Keterangan: program untuk memunculkan angka
1 – 10
Pernyataan
go to
LISTING PROGRAM
:
#include<stdio.h>
#include<conio.h>
int main()
{
printf("Pernyataan
Pertama\n");
goto
bawah;
printf("Pernyataan
Kedua\n");
bawah:
printf("Pernyataan Ketiga");
return
0;
}
Hasil Eksekusi
Keterangan:
program untuk menyatakan permintaan pertama dan permintaan ketiga.
Bentuk deklarasi
LISTING PROGRAM :
#include<stdio.h>
#include<conio.h>
int kali(int angka_1, int angka_2);
int main();
{
printf("Hasil
kali angka 2 dan 3 adalah",kali(2,3));
return
0
}
int kali(int angka_1, int angka_2);
{
return
angka_1*angka_2
}
Hasil eksekusi
Keterangan: program untuk memunculkan hasil
perkalian dari 2 dan 3.
Parameter
LISTING PROGRAM
:
#include<conio.h>
#include<stdio.h>
int kali(int angka_1, int angka_2);
int jumlah(int *angka_1, int *angka_2);
int main()
{
int
a, b;
a=10;
b=10;
printf("Hasil
kali antara a dan b adalah %d\n",(a,b));
printf("Hasil
jumlah antara a dan b adalah %d",(&a,&b));
return
0;
}
Hasil Eksekusi
Keterangan: program untuk memunculkan hasil
kali antara a dan b, serta hasil jumlah antara a dan b.
Rekursife
LISTING PROGRAM
:
#include<stdio.h>
#include<conio.h>
int faktorial (int);
int main()
{
printf("%d",
faktorial(5));
return
0;
}
int faktorial (int angka_1)
{
if
(angka_1==0)
return
1;
else
return
angka_1*faktorial(angka_1-1);
}
Hasil Eksekusi
Keterangan:
program untuk memunculkan nilai dari lima factorial.
Array
LISTING PROGRAM
:
#include<stdio.h>
#include<conio.h>
int main()
{
int
i,bil_bulat[5];
float
bil_real[5];
char
nama[20];
for(i=0;i<=5;i++)
{
printf("Masukkan
bilangan bulat ke %d:",i+1);
scanf("%d",&bil_bulat[i]);
printf("Masukkan
bilangan pecahan ke %d:",i+1);
scanf("%f",&bil_real[i]);
}
printf("Masukkan
nama anda :"); scanf("%s",&nama);
for(i=0;i<5;i++)
{
printf("bilangan
bulat ke %d: %d\n",i+1,bil_bulat[i]);
printf("bilangan
bulat ke %d: %f\n",i+1,bil_real[i]);
}
printf("Nama
Anda : %s",nama);
return
0;
}
Hasil Eksekusi
Keterangan: program untuk memunculkan nama,
bilangan bulat, bilangan pecahan, sesuai dengan ketentuan.
BAB IV
ANALISA
HASIL PERCOBAAN
# Include
Merupakan salah satu jenis pengarah praprosesor
yang dipakai untuk membaca
file yang
dinamakan file-judul (header file).
Printf
Merupakan
pengalihan fungsi C untuk membuat pesan diantara tanda kutip pada layar, untuk
menampilkan suatu kalimat dalam satu
baris digunakan fungsi printf
tersebut.
Main
Fungsi main harus ada pada program, sebab fungsi
inilah yang menjadi titik
awal dan akhir eksekusi program.
String kontrol
Dapat berupa satu atau sejumlah
karakter yang akan ditampilkan ataupun berupa penentu format yang akan mengatur
penampilan dari argument yang terletak pada daftar argumen.
Scanf
Adalah perintah program
yang digunakan untuk menginput data berupa data numerik,karakter dan string
secara terformat dimana variabelnya harus menggunakan
Operator
alamat :
Fungsi
scanf yaitu memakai format,memberi pergantian baris secara otomatis serta tidak
memerlukan penentu lebar field.
Perintah \n
Menandakan atau menuju
baris selanjutnya yang ada dibawahnya.
Tanda persen
Tanda persen (%d) untuk
menandakan format data dalam tampilan bilangan bulat desimal.
Tanda persen (%f) menandakan format data dalam bentuk tampilan
pecahan bertitik.
Chart,Int,Float,dan Void
Jenis-jenis data dasar
yang kami gunakan dalam membuat program
praktek bahasa C.
Clrscr
Merupakan singkatan Clear
Screan dimana fungsinya untuk membersihkan layar pada saat melakukan compiler
pada program.
BAB V
PENUTUP
Kesimpulan
Program Bahasa C
merupakan salah satu program terpopuler dan strukturnya hampir sama dengan
program bahasa pascal seperti pada penggunaan IF,WHILE,FOR dll sehingga kami
lebih mudah dan tidak canggung dalam mempelajari bahasa C tersebut.
Kesulitan yang
muncul bagi kami para pemula dalam mempelajari bahasa C fungsi di dalamnya yang
dianggap sebagai kelompok belok namun semakin kita sungguh-sungguh mempelajarinya
malah akan menjadi semakin mudah sehingga berkeinginan untuk mempelajari
bahasa-bahasa pemograman yang lain.
Saran
Saran yang dapat kami
sampaikan yaitu pada kurangnya sarana praktikum yang memadai seperti kurangnya
computer dan ada sebagian computer yang tidak bisa menjalankan program yang
telah di buat sehingga bisa membuang waktu percuma dan juga tenaga instruktur
yang tidak sebanding dengan jumlah mahasiswa yang ikut praktikum sehingga
proses belajar mengajar kurang efektif dan sedikit terlihat tidak tertib.Semoga
saran yang disampaikan bisa bermanfaat buat pihat-pihak yang berkompeten demi
pelaksanaan praktikum ke depan agar lebih efisien dan tertib.
DAFTAR PUSTAKA
Tidak ada komentar:
Posting Komentar