Senin, 10 September 2012

Pembahasan


            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
 

Flowchart: Decision: Kondisi 
                                                                                Salah
                                                                               


Pernyataan
 
 
                                                                             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
 
Flowchart: Decision: Kondisi                                                                                      
                                                                                     Salah

                                                                    Benar

Pernyataan-2
 

Pernyataan-1
 
 
 
 
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.
- Dilakukan pengecekan kondisi terlebih dahulu sebelum mengulang.
Perbedaan
- 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:
     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