Anda di halaman 1dari 44

BAB VI BAHASA C II

6.1

Tujuan Percobaan 1. Mengenal dan memahami fungsi (function) dan kegunaanya serta aplikasinya dalam program sederhana. 2. Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi dalam program sederhana. 3. Mengenal dan memahami struktur (struct) dan kegunaanya serta aplikasi dalam program sederhana. 4. Mengenal dan memahami operasi file dan aplikasinya dalam program sederhana.

6.2

Metode praktikum 1. Membuka Program MinGw 2. Membuat project dan file source code 3. Mengetikkan source code program yang akan dibuat 4. Meng-compile program 5. Melihat hasil compile program 6. Memperbaiki source code apabila terjadi kesalahan pada program 7. Jika tidak terjadi kesalahan maka execute program.

6.3

Data percobaan

6.3.1 Fungsi 6.3.1.1 Fungsi Tanpa Nilai Balik

6.1 Screenshot fungsi tanpa nilai balik

6.2 Screenshot running fungsi tanpa nilai balik

6.3.1.2 Fungsi dengan nilai balik

Gambar 6.3 Fungsi dengan nilai balik

Gambar 6.4 Running fungsi dengan nilai balik

6.3.2 Array

Gambar 6.5 Array satu dimensi

Gambar 6.6 Running Array satu dimensi

Gambar 6.7 Screenshot Array dua dimensi

Gambar 6.8 Screenshot running array dua dimensi

Gambar 6.9 Screenshot Array multi dimensi

Gambar 6.10 Screenshot running Array multi dimensi

6.3.3 Structure

Gambar 6.11 Screenshoot compile program saat praktikum

Gambar 6.12 Screenshoot compile program saat praktikum

6.4 Analisa dan pembahasan 6.4.1 Fungsi 6.4.1.1 Fungsi tanpa nilai balik Fungsi tanpa nilai balik adalah fungsi ini tidak memberikan hasil yang berupa nilai melainkan berupa sebuah proses. Fungsi ini bertipe void.

Source code fungsi tanpa nilai balik #include <stdio.h> #include <conio.h> void iseng(char x, int y); int main (){ char a; int b; printf("masukkan karakter:"); scanf("%c",&a); printf("masukkan jumlah:"); scanf("%i",&b); getch(); iseng(a,b); }

void iseng (char x,int y){ for (int i=0;i<y;i++){ for(int j=0;j<=i;j++){ printf("%c",x); } printf("\n"); } }

Gambar 6.1 Screenshoot source code fungsi tanpa nilai balik

Gambar 6.2 Screenshoot running fungsi tanpa nilai balik

6.4.1.2 Fungsi dengan nilai balik Fungsi dengan nilai balik adalah fungsi yang akan memberikan nilai umpan balik berupa nilai, jika dipanggil (return value).

Source code fungsi dengan nilai balik #include <stdio.h> #include <conio.h> int faktorial(int n); int main (){ int n,hasil; printf("masukkan nilai yang akan difaktorialkan n = "); scanf("%d", &n); hasil=faktorial(n); printf("hasil pemfaktorial adalah %d! = %d", n, hasil); getch(); } int faktorial(int n){ int nilai_fak=1; for(int i=1;i<=n;i++) nilai_fak=nilai_fak*i; return(nilai_fak); }

Gambar 6.3 Screenshoot source code fungsi dengan nilai balik

Gambar 6.4 Screenshoot running fungsi dengan nilai balik

6.4.2 Array 6.4.2.1 Array satu Dimensi Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 1 indeks atau subskrip. Bentuk umum pendeklarasian: nama_array[jumlah_eleman];

Source code Array satu Dimensi #include <stdio.h> #include <conio.h> int main (){ int jml,temp; int data [10]; printf("masukkan jumlah nilai:"); scanf("%i",&jml); for (int i=0;i<jml;i++){ printf("\n data ke-%i :",i+1); scanf("%i",&data[i]); } //menampilkan data awal //Algoritma Bubble Sort for(int j=0;j<jml;j++) { for (int k=0;k<jml;k++){ if(data[j]<data[k]) { //Algo Tukar temp=data[j]; data[j]=data[k]; data[k]=temp; } }} printf("\n setelah diurutkan"); for (int l=0;l<jml;l++){

printf("\n data ke-%i : %i",l+1,data[l]); } }

Gambar 6.1 Screenshoot source code array satu dimensi

Gambar 6.2 Screenshoot running array satu dimensi

6.4.2.2 Array dua Dimensi Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses melalui 2 indeks atau subskrip yaitu indeks baris dan indeks kolom. Bentuk umum pendeklarasian: nama_array[jumlah_eleman_baris][jumah_eleme_kolom];

Source code Array dua Dimensi #include <stdio.h> #include <conio.h> int main (){ int jml,temp; int data [10]; printf("masukkan jumlah nilai:"); scanf("%i",&jml); for (int i=0;i<jml;i++){ printf("\n data ke-%i :",i+1); scanf("%i",&data[i]); } //menampilkan data awal //Algoritma Bubble Sort for(int j=0;j<jml;j++) { for (int k=0;k<jml;k++){ if(data[j]<data[k]) { //Algo Tukar temp=data[j]; data[j]=data[k]; data[k]=temp; } }} printf("\n setelah diurutkan"); for (int l=0;l<jml;l++){

printf("\n data ke-%i : %i",l+1,data[l]); } }

Gambar 6.1 Screenshoot source code array dua dimensi

Gambar 6.2 Screenshoot running array dua dimensi

6.4.2.3 Array multi Dimensi Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses melalui banyak indeks atau subskrip. Array seperti ini biasa digunakan untuk matik, array 2 dimensi juga termasuk kedalam array multidimensi.

Source code Array multi Dimensi #include <stdio.h> #include <conio.h> int main() { int i, j, k; static int data[2][8][8] = { { { 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 0, 0, 0, 0, 1, 1 }, { 1, 1, 0, 0, 0, 0, 1, 1 }, { 1, 1, 0, 0, 0, 0, 1, 1}, { 1, 1, 0, 0, 0, 0, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1 } }, { { 1, 1, 1, 0, 0, 0, 1, 1 }, { 1, 1, 1, 0, 0, 1, 1, 0 }, { 1, 1, 1, 0, 1, 1, 0, 0 }, { 1, 1, 1, 1, 1, 0, 0, 0 }, { 1, 1, 1, 1, 1, 0, 0, 0 }, { 1, 1, 1, 0, 1, 1, 0, 0 }, { 1, 1, 1, 0, 0, 1, 1, 0 }, { 1, 1, 1, 0, 0, 0, 1, 1 } } }; /* menampilkan Huruf */

for(i=0; i<2; i++) { for(j=0; j<8; j++) { for(k=0;k<8; k++) if(data[i][j][k]) putchar('\x59'); else printf(" "); puts(" "); } puts(" "); } getch(); }

Gambar 6.1 Screenshoot source code array multi dimensi

Gambar 6.2 Screenshoot running array satu dimensi

Source code saat praktikum #include <stdio.h>/* file header pada stdio.h*/ #include <conio.h>/* file header pada conio.h*/ void tukar(int *px, int *py); /*fungsi tukar variabel *px dan *py dengan tipe data integer*/ void main() { /*awal dari program*/ int a,b; /*mendeklarasikan variabel a dan b dengan tipe data integer*/ a = 15; /*mendeklarasikan nilai a=15*/ b = 10; /*mendeklarasikan nilai b=10*/ printf("Nilai sebelum pemanggilan fungsi\n"); /*menampilkan tulisan "Nilai sebelum pemanggilan fungsi" pada screen hasil execute*/ printf("a = %i b = %i\n\n", a, b); /*menampilkan masukan nilai a dan nilai b*/ tukar(&a,&b); /*fungsi tukar variabel a dan b*/ printf("Nilai setelah pemanggilan fungsi\n"); printf("a = %i b = %i\n\n", a, b);

/*menampilkan hasil nilai a dan nilai b*/ getch(); } /*akhir dari program*/ void tukar(int *px, int *py) /*fungsi tukar variabel *px dan *py dengan tipe data integer*/ { /*awal dari program*/ int z; /*mendeklarasikan variabel z dengan tipe data integer*/ z = *px; /*mendeklarasikan z=*px */ *px = *py; /*mendeklarasikan *px=*py */ *py = z; /*mendeklarasikan *py=z */ printf("Nilai di akhir fungsi tukar()\n"); /*menampilkan tulisan "Nilai di akhir fungsi tukar" pada screen hasil excute*/ printf("*px = %i *py = %i\n\n", *px, *py); /*menampilkan hasil nilai *px dan nilai *py*/ }/*mengakhiri program */

Gambar 6.2 Screenshoot compile program saat praktikum

Pada saat praktikum masih terdapat kesalahan. Hal ini bisa terlihat pada gambar 6.2, masih terdapat 2 errors pada baris ke lima. Hal ini dikarenakan prototype fungsi masih belum tercantum. Source code setelah dikoreksi #include <stdio.h> /* file header pada stdio.h*/ int main() /*kepala fungsi integer utama*/ { /*awal dari program*/ int a,b; /*mendeklarasikan variabel a dan b dengan tipe data integer*/ void tukar(int *px,int *py); /*fungsi tukar variabel *px dan *py dengan tipe data integer*/ a = 15; /*mendeklarasikan nilai a=15*/ b = 10; /*mendeklarasikan nilai b=10*/ printf("Nilai sebelum pemanggilan fungsi\n"); /*menampilkan tulisan "Nilai sebelum pemanggilan fungsi" pada screen hasil excute*/ printf("a = %i,b = %i\n\n", a, b); /*menampilkan masukan nilai a dan nilai b*/ tukar(&a,&b); /*fungsi tukar variabel a dan b*/ printf("a = %i,b = %i\n\n", a, b); /*menampilkan hasil nilai a dan nilai b*/ } /*akhir dari program*/ void tukar(int *px, int *py) /*fungsi tukar variabel *px dan *py dengan tipe data integer*/ { /*awal dari program*/ int z ; /*mendeklarasikan variabel z dengan tipe data integer*/ z = *px;

/*mendeklarasikan z=*px */ *px = *py; /*mendeklarasikan *px=*py */ *py = z; /*mendeklarasikan *py=z */ printf("Nilai di akhir fungsi tukar()\n"); /*menampilkan tulisan "Nilai di akhir fungsi tukar" pada screen hasil excute*/ printf("*px = %i *py = %i\n\n", *px, *py); /*menampilkan hasil nilai *px dan nilai *py*/ } /*mengakhiri program */

Gambar 6.3 Screenshoot compile program sesudah dikoreksi

Pada gambar 6.3 merupakan source code program yang sudah benar. Hal ini dapat terlihat pada tulisan 0 error dan 0 warning pada saat di compile. Kesalahan pada saat praktikum sudah diperbaiki dengan mengganti char tukar; pada baris ke empat dengan void tukar (int *px,*py). Sehingga program bisa diexecute.

Gambar 6.4 Screenshoot hasil execute program

Pada gambar 6.4 merupakan running program dari source code yang sudah diperbaiki. Program pada gambar tersebut adalah program yang menggunakan fungsi pass by reference. Pada fungsi pass by reference, parameter yang dilewatkan kedalam fungsi bukanlah berupa nilai, melainkan suatu alamat memori. Pada saat kita melewatkan parameter berdasarkan alamat, terjadi proses referensial antara variabel yang terdapat pada parameter formal dengan variabel yang terdapat pada parameter aktual. Hal tersebut menyebabkan kedua variabel tersebut akan berada pada satu alamat dimemori yang sama sehingga apabila terdapat perubahan nilai terhadap salah satu variabel tersebut maka nilai variabel satunya juga akan ikut berubah.

6.4.1.2 Program Konversi Celcius ke Fahrenheit dengan Fungsi Program yang dikerjakan saat praktikum a. Algoritma 1. 2. 3. Memulai program Memasukkan nilai celcius Merumuskan Fahrenheit dengan cara mengalikan celcius dengan 1,8 kemudian menjumlahkan dengan 32 4. Menampilkan nilai fahrenheit yang telah diproses

b. Listing Program #include <stdio.h>

/* file header pada stdio.h untuk operasi input dan output standar*/ int main() /* kepala fungsi utama*/ { /*memulai program*/ float Celcius, Fahrenheit; /* deklarasi variable celcius dan fahrenheit*/ printf ("masukan nilai celcius: "); /*menampilkan tulisan dalam tanda petik*/ scanf ("%f",&Celcius); /* masukan data dengan tipe data pecahan*/ Fahrenheit = Celcius*1.8+32; /*memasukan rumus untuk menghitung fahrenheit*/ printf("maka nilai dari %f celcius adalah %f fahrenheit",Celcius, Fahrenheit); /*menampilkan hasil perhitungan celcius ke fahrenheit*/ return 0; /*menterminate program setelah menjalankan program*/ } /* mengakhiri program*/

Gambar 6.5 Screenshoot hasil compile program saat praktikum

Gambar 6.6 Screenshot hasil Execute program

Meskipun program konversi dari celcius ke fahrenheit pada gambar 6.6 ini bisa di execute namun program ini masih dianggap salah karena program ini dibuat dengan cara yang biasa dan tidak menggunakan fungsi seperti yang diperintahkan pada soal.

Program yang benar a. Algoritma 1. Memulai program 2. Memasukan nilai celcius 3. Merumuskan Fahrenheit dengan cara mengalikan celcius dengan 1,8 kemudian menjumlahkan dengan 32 4. Menampilkan nilai fahrenheit yang telah diproses 5. Mengakhiri program

b. Listing Program #include <stdio.h> /* file header pada stdio.h untuk operasi input dan output standar*/ #include <conio.h> /*file header pada conio.h untuk suatu operasi */ float rmf(float x) /*deklarasi fungsi*/

{ /*memulai program*/ return (x*1.8+32); /*rumus untuk fungsi rmf*/ } /*mengakhiri fungsi*/ int main () /* kepala fungsi utama*/ { /* untuk membuka program*/ float Celcius, Fahrenheit; /* deklarasi variable celcius dan fahrenheit*/ printf ("masukan nilai celcius: "); /*menampilkan tulisan dalam tanda petik*/ scanf("%f",&Celcius); /* masukan data dengan tipe data pecahan*/ Fahrenheit=rmf(Celcius); /*menghitung konversi menggunakan fungsi rmf*/ printf("maka nilai dari %.2f celcius adalah %.2f fahrenheit \n",Celcius, Fahrenheit); /*menampilkan hasil perhitungan celcius ke fahrenheit*/ return 0; /*menterminate program setelah menjalankan program*/ } /* mengakhiri program*/

Gambar 6.7 Screenshot compile program konversi desimal ke biner

Pada gambar 6.7 dapat di lihat bahwa source code yang dituliskan sudah benar. Hal ini, dapat dilihat tidak adanya kesalahan saat source code di compile.

Sehingga program dapat di execute. Program ini juga sudah menggunakan fungsi dengan nama rmf. Fungsi ini digunakan pada baris ke 12.

Gambar 6.8 Screenshot Execute program konversi desimal ke biner

Gambar

6.8

merupakan

screenshot

dari

hasil

execute

program

pengkonversian celcius ke fahrenheit. Sehingga jika kita ingin mengkonversikan celcius ke fahrenheit, kita tinggal memasukkan nilai celcius maka program akan otomatis mengkonversikannya ke bilangan fahrenheit. 6.4.2 Array 6.4.2.1 Koreksi Array Source code sebelum dikoreksi #include <stdio.h> /* file header dengan menggunakan stdio.h*/ #define MAX = 5 /*mendeklarasikan konstanta global yaitu nilai maximum = 5*/ int main () /*kepala fungsi utama pada integer */ { /*membuka program*/ int A [MAX]; /*fungsi array dengan tipe data int dengan nama A dan dengan range MAX yaitu sebanyak 5*/ int j; /*memasukkan nilai ke dalam array*/ printf ("Masukan nilai array!\n"); /*menampilkan perintah masukkan nilai array! pada hasil execute*/ for (j=0; j<MAX; j++) /* fungsi untuk nilai pembatas =0 dengan nilai array naik bertingkat tetapi kurang dari nilai max*/ { /* membuka program*/

printf ("A[%d] = ", j); scanf("%d", &A[j]); /*memasukan elemen array ke A(A1,A2,,A5), dengan j sebagai pembatas atau alamat ke-*/ } /*menutup program */ printf ("Tampilkan nilai array!\n"); /*menampilkan perintah Tampilkan nilai array pada hasil execute*/ for (j=0; j<MAX; j++) /* fungsi untuk nilai pembatas =0 dengan nilai array naik bertingkat tetapi kurang dari nilai max*/ { /*membuka program*/ printf ("A[%d] = %d\n", j, A[j]); scanf("%d", &A[j]); /*memasukan elemen array ke A(A1,A2,,A5), dengan j sebagai pembatas atau alamat ke-*/

} /*menutup suatu program*/ } /*menutup program*/

Gambar 6.9 Screenshoot compile program sebelum dikoreksi

Terlihat pada gambar 6.9, source code ini masih terdapat 4 errors. Errors ini terletak pada penggunaan karakter = pada define hal ini merupakan hal yang tidak perlu bahkan penggunaaannya dapat mengakibatkan error pada program.

Source code setelah dikoreksi #include <stdio.h> /* file header dengan menggunakan stdio.h*/ #define MAX 5 /*mendeklarasikan konstanta global yaitu nilai maximum = 5*/ int main () /*kepala fungsi utama pada integer */ { /*membuka program*/ int A [MAX]; /*fungsi array dengan tipe data int dengan nama A dan dengan range MAX yaitu sebanyak 5*/ int j; /*memasukkan nilai ke dalam array*/ printf ("Masukan nilai array!\n"); /*menampilkan perintah masukkan nilai array! pada hasil execute*/ for (j=0; j<MAX; j++) /* fungsi untuk nilai pembatas =0 dengan nilai array naik bertingkat tetapi kurang dari nilai max*/ { /* membuka program*/ printf ("A[%d] = ", j); /*memasukan elemen array ke A(A1,A2,,A5), dengan j sebagai pembatas atau alamat ke-*/ scanf("%d", &A[j]); /*memasukan nilai dari printf ke memori j*/ } /*menutup program */ printf ("Tampilkan nilai array!\n"); /*menampilkan perintah Tampilkan nilai array pada hasil execute*/ for (j=0; j<MAX; j++) /* fungsi untuk nilai pembatas =0 dengan nilai array naik bertingkat tetapi kurang dari nilai max*/

{ /*membuka program*/ printf ("A[%d] = %d\n", j, A[j]); /*memasukan elemen array ke A(A1,A2,,A5), dengan j sebagai pembatas atau alamat ke-*/ } /*menutup suatu program*/ } /*menutup program*/

Gambar 6.10 Screenshoot compile program setelah dikoreksi

Pada gambar 6.10 dapat dilihat bahwa source code yang ditulis berhasil. Hal ini dapat dilihat tidak adanya kesalahan pada saat listing program dicompile. Sehingga program dapat berhasil di execute.

Gambar 6.11 Screenshoot Execute program setelah dikoreksi

Pada gambar 6.11 merupakan hasil execute dari listing program yang berhasil. Sehingga kita dapat menjalankan program array seperti gambar di atas. Program di atas adalah program yang menggunakan array yang merupakan suatu variable yang merepresentasikan daftar (list) atau kumpulan data yang memiliki tipe data yang sama. Pada data ke 0 nilainya 87 kemudian data ke 1 = 52, data 2 = 50, data 3 = 51, dan terakhir data ke 4 nilainya 89. 6.4.2.2 Program Menghitung jumlah 15 bilangan dengan Array Program yang dikerjakan saat praktikum a. Algoritma 1. Mulai 2. deklarasi jumlah maksimal bilangan yang akan dimasukan adalah 15 3. buat variabel kontrol untuk bentuk array 4. masukan bilangan yang akan dijumlahkan 5. loading... 6. selesai b. Listing program #include <stdio.h> /* file header pada stdio.h*/ int main () /* kepala fungsi utama pada integer */ {

/* membuka program*/ int i; /*mendeklarasikan variable i dan variable jumlah(bernilai 0)*/ int bil[15]; /*bentuk array dengan tipe data integer dan dengan jumlah makasimal 15*/ printf("masukan sejumlah angka sampai 15:\n"); for (i=1;i<=15;i++){ printf("angka ke-%d ",i); /*memasukan elemen array mulai dari 1 sampai 15 dengan i sebagai alamat ke-*/ scanf("%d",&bil[i]); } printf("jumlah seluruh nilai adalah: loading...."); /*Melakukan proses perhitungan*/

} /*menutup program*/

Gambar 6.12 Screnshot compile program saat praktikum

Gambar 6.13 Screenshot hasil execute percobaan

Pada gambar 6.12 terlihat saat menampilkan hasih penjumlahan seluruh nilai array yang dimasukan terlihat tulisan loading..... itu bukanlah karena kesalahan, kami sengaja menampilkan tulisan tersebut karena saat itu kami masih bingung rumus untuk menjumlahkan seluruh elemen array.

Program yang benar a. Algoritma 1. Mulai 2. deklarasi jumlah maksimal bilangan yang akan dimasukan adalah 15 3. buat variabel kontrol untuk bentuk array 4. masukkan bilangan yang akan dijumlahkan 5. jumlahkan seluruh bilangan yang di masukan 6. selesai

b. Listing program #include <stdio.h> /* file header pada stdio.h*/ int main () /* kepala fungsi utama pada integer */

{ /* membuka program*/ int i,jumlah=0; /*mendeklarasikan variable i dan variable jumlah(bernilai 0)*/ int bil[15]; /*bentuk array dengan tipe data integer dan dengan jumlah makasimal 15*/ printf("masukan sejumlah angka sampai 15:\n"); for (i=1;i<=15;i++){ printf("angka ke-%d ",i); /*memasukan elemen array mulai dari 1 sampai 15 dengan i sebagai alamat ke-*/ scanf("%d",&bil[i]); jumlah = jumlah + bil[i]; /*menjumlahkan seluruh elemen array yang akan dimasukan*/ } /*menutup suatu program*/ printf("jumlah seluruh nilai adalah:%d",jumlah); /*Melakukan proses perhitungan*/ } /*menutup program*/

Gambar 6.14 Screenshoot compile Program mencari rata-rata dengan Array

Pada gambar 6.12 dapat terlihat source code yang dibuat sudah benar, hal ini dapat dilihat tidak terdapat kesalahan saat program dicompile. Sehingga program dapat dijalankan.

Gambar 6.15 Screenshoot Execute Program mencari rata-rata dengan Array

Gambar 6.13 merupakan running program dari source code yang berhasil dibuat. Pada screenshot di atas, kita diperintah untuk memasukkan lima bilangan yang akan kita cari jumlahnya. Setelah memasukkan lima belas angka, program akan secara otomatis mencari jumlah dari kelimabelas angka yang kita masukkan. Pada gambar tresebut terlihat jumlah seluruh nilai yang dimasukan adalah 677. 6.4.3 Struct 6.4.3.1 Koreksi Structure Source code sebelum dikoreksi #include <stdio.h> /* file header dengan stdio.h*/ struct TANGGAL /*Mendefinisikan struktur TANGGAL pada program*/ { /*membuka program */ char *tanggal; /* merupakan variabel dari TANGGAL*/ char *bulan; /* merupakan variabel dari TANGGAL*/ char *tahun; /* merupakan variabel dari TANGGAL*/ } tgl_lahirr = {"21","04","1988"};

int main (void) /*kepala fungsi utama*/

{ /*membuka program*/ printf ("Tanggal lahir : %d-%d-%d", tgl_lahir,tanggal, tgl_lahir,bulan, tgl_lahir,tahun); /* menampilkan perintah tanggal lahir dalam fungsi string pada hasil execute*/ return 0; } /*menutup program*/

Gambar 6.16 Screenshoot compile program sebelum dikoreksi

Pada gambar 6.16 terlihat bahwa source code memiliki 5 errors. Yang antara lain terdapat pada : a) pada baris no 7 tertulis tgl_lahirr sedangkan di bawahnya tertulis tgl_lahir

b) pada baris 11-13 seharusnya menggunakan tanda titik (.) bukan tanda koma (,) c) format tanggalnya seharusnya adalah string (%s) bukan desimal (%d)

Source code saat praktikum

Gambar 6.17 Screenshoot compile program saat praktikum

Pada

saat

praktikum,

kami

belum

berhasil

untuk

mengkoreksi

program,terlihat pada gambar 6.17 masih terdapat empat error dan 3 warning,

kesalahan tersebut dikarenakan masih kurang lengkapnya karakter-karakter penting yang harus dimasukkan ke dalam fungsi. Dan lagi ketika praktikum strcopy tanggal dan bulan yang sudah betul menggunakan tanda koma(,) justru diganti titik koma(;) hal ini justru membuat kesalahan yang baru.

Source code setelah dikoreksi #include <stdio.h> /* file header dengan stdio.h*/ struct TANGGAL /*Mendefinisikan struktur TANGGAL pada program*/ { /*membuka program */ char *tanggal; /* merupakan variabel dari TANGGAL*/ char *bulan; /* merupakan variabel dari TANGGAL*/ char *tahun; /* merupakan variabel dari TANGGAL*/ } tgl_lahir = {"21","04","1988"};

int main (void) /*kepala fungsi utama*/ { /*membuka program*/ printf ("Tanggal lahir : %s-%s-%s",

tgl_lahir.tanggal, tgl_lahir.bulan, tgl_lahir.tahun); /* menampilkan perintah tanggal lahir dalam fungsi string pada hasil execute*/ return 0; } /*menutup program*/

Gambar 6.18 Screenshoot compile program setelah dikoreksi

Gambar 6.18 menunjukan bahwa setelah dicompile source code yang sebelumnya masih terdapat error kini telah menunjukan 0 error dan 0 warning artinya bahwa program tersebut sudah siap di runing.

Gambar 6.19 Screenshoot Execute program setelah dikoreksi

Pada execute program gambar 6.19 terlihat struktur tanggal yang ditampilkan sesuai dengan struktur tanggal pada compiler. Yaitu tanggal-bulantahun. Yaitu tanggal 21 bulan 04 tahun 1988. 6.4.3.2 Program Memasukkan dan Menampilkan Data Mahasiswa dengan Struct Program saat Praktikum a. Algoritma 1. mulai 2. Mendeklarasikan struktur yang akan dimasukan 3. Membuat tampilan dan masukan data 4. selesai b. Listing program #include <stdio.h> /* file header dengan stdio.h*/ #include <string.h> /* file header dengan conio.h*/ typedef struct { char Nama [25]; /*mendeklarasikan nama*/ char NIM [20]; /*mendeklarasikan NIM*/ char Alamat [30]; /*mendeklarasikan Alamat*/ }M; int main(void) /*kepala fungsi utama*/ { float Nama,NIM,Alamat; /*mendeklarasikan varible*/ printf("Mahasiswa1:\n"); /*menampilkan tampilan yang diinginkan pada hasil execute*/ printf("Nama="); /*menampilkan nama= pada hasil execute*/ scanf("%s",&Nama); /*memasukan elemen nama */

printf("\n"); printf("NIM="); /*menampilkan NIM: pada hasil execute*/ scanf("%s",&NIM); /*memasukan elemen NIM */ printf("\n"); printf("Alamat="); /*menampilkan alamat: pada hasil execute*/ scanf("%s",&Alamat); /*memasukan elemen alamat */ printf("\n"); printf("Mahasiswa2:\n"); /*menampilkan tampilan yang diinginkan pada hasil execute*/ printf("Nama="); /*menampilkan nama= pada hasil execute*/ scanf("%s",&Nama); /*memasukan elemen nama */ printf("\n"); /*untuk memberi jarak satu baris pada identitas berikutnya*/ printf("NIM="); /*menampilkan NIM: pada hasil execute*/ scanf("%s",&NIM); /*memasukan elemen NIM */ printf("\n"); /*untuk memberi jarak satu baris pada identitas berikutnya*/ printf("Alamat="); /*menampilkan alamat: pada hasil execute*/ scanf("%s",&Alamat); /*memasukan elemen alamat */ printf("\n"); /*untuk memberi jarak satu baris pada identitas berikutnya*/ printf("Mahasiswa3:\n"); printf("Nama="); /*menampilkan nama= pada hasil execute*/ scanf("%s",&Nama); printf("\n"); /*untuk memberi jarak satu baris pada identitas berikutnya*/ printf("NIM="); /*menampilkan NIM: pada hasil execute*/ scanf("%s",&NIM); /*memasukan elemen NIM */ printf("\n"); printf("Alamat="); /*menampilkan alamat: pada hasil execute*/ scanf("%s",&Alamat); /*memasukan elemen alamat */ printf("\n"); /*untuk memberi jarak satu baris pada identitas berikutnya*/ return 0; }

Gambar 6.20 Screenshot compile program saat praktikum

Terlihat pada saat praktikum yaitu pada gambar 6.20 struktur yang digunakan terlihat tidak teratur dan dibuat sekenanya saja. Dan lagi pada saat praktikum tidak didefinisikan variable globalnya. Program saat yang benar a. Algoritma 1. Definisikan struktur identitas 2. Mendeklarasikan variable global 3. Mendeklarasikan struktur variable lokal 4. Membuat tampilan dan masukan data b. Listing program #include<stdio.h> /* file header dengan stdio.h*/ /*Mendefinisikan struktur identitas sekaligus mendeklarasikan variable M1*/ struct identitas { char nama, NIM, alamat; /*mendeklarasikan nama, NIM, alamat*/ } M1; /*Merupakan variable global*/ int main(void) { /*Mendeklarasikan struktur M2 dan M3*/ struct identitas M2,M3; /*membaca identitas mahasiswa untuk struktur M1*/

printf("identitas mahasiswa 1 : \n"); /*menampilkan tampilan yang diinginkan pada hasil execute*/ printf("nama : "); /*menampilkan nama: pada hasil execute*/ scanf("%s",&M1.nama); /*memasukan elemen nama */ printf("NIM : "); /*menampilkan NIM: pada hasil execute*/ scanf("%s",&M1.NIM); /*memasukan elemen NIM */ printf("alamat : "); /*menampilkan alamat: pada hasil execute*/ scanf("%s",&M1.alamat); /*memasukan elemen alamat */ printf("\n"); /*untuk memberi jarak satu baris pada identitas berikutnya*/ /*membaca identitas mahasiswa untuk struktur 2*/ printf("identitas mahasiswa 2 : \n"); /*menampilkan tampilan yang diinginkan pada hasil execute*/ printf("nama : "); /*menampilkan nama: pada hasil execute*/ scanf("%s",&M2.nama); /*memasukan elemen nama */ printf("NIM : "); /*menampilkan NIM: pada hasil execute*/ scanf("%s",&M2.NIM); /*memasukan elemen NIM */ printf("alamat : "); /*menampilkan alamat: pada hasil execute*/ scanf("%s",&M2.alamat); /*memasukan elemen alamat */ printf("\n"); /*untuk memberi jarak satu baris pada identitas berikutnya*/ /*membaca identitas mahasiswa untuk struktur 2*/ printf("identitas mahasiswa 3 : \n"); /*menampilkan tampilan yang diinginkan pada hasil execute*/ printf("nama : "); /*menampilkan nama: pada hasil execute*/ scanf("%s",&M3.nama); /*memasukan elemen nama */ printf("NIM : "); /*menampilkan NIM: pada hasil execute*/ scanf("%s",&M3.NIM); /*memasukan elemen NIM */ printf("alamat : "); /*menampilkan alamat: pada hasil execute*/ scanf("%s",&M3.alamat); /*memasukan elemen alamat */ return 0; /*untuk terminate program*/ } /*menutup program*/

Gambar 6.21 Screenshoot compile Program Data Tiga Mahasiswa

Gambar 6.21 adalah screenshoot compile source code dari program data tiga mahasiswa. Terlihat 0 error yang artinya program sudah siap di execute.

Gambar 6.22 Screenshoot Execute Program Data Tiga Mahasiswa

Pada gambar 2.22 pada execute program menunjukan bahwa data dari tiga mahasiswa telah berhasil dimasukan. Tiga mahasiswa yaitu masing masing mahasiswa 1 nama Agung dengan NIM L2F009052 dan alamat Cilacap, mahasiswa 2 nama Ahmad dengan NIM L2F009050 dan alamat Pemalang, mahasiswa 3 nama Heri dengan NIM L2F009051 dengan alamat Pekalongan.

6.6. Kesimpulan 1. Bahasa C terdiri dari satu fungsi utama yaitu main ( ) dan beberapa fungsi tambahan yang dapat dipanggil untuk mempermudah proses eksekusi. 2. Pendeklarasian Fungsi adalah sebagai berikut : tipe_data NamaFungsi (parameter1, parameter2, .) { statemen_yang_akan_dieksekusi; return nilai_balik } 3. Parameter di dalam fungsi merupakan suatu variable untuk menampung nilai yang akan dikirimkan, parameter itu ada dua yaitu, parameter formal ( parameter yang terdapat di dalam pendefinisian fungsi ) dan parameter aktual (parameter yang terdapat saat pemanggilan fungsi). 4. Terdapat dua cara untuk melewatkan parameter ke dalam fungsi, yaitu dengan pass by value dan pass by references. Bedanya pass by value mengopykan nilai variabel dari parameter formal ke parameter aktual sedangkan yang pass by reference mengopykan nilai alamat memory dari parameter formal ke parameter aktual. 5. Prototipe fungsi adalah fungsi yang sudah didefinisikan (judulnya) sebelum fungsi main ditulis. 6. Array adalah suatu variabel yang merepresentasikan daftar (list) atau kumpulan data yang memiliki tipe data sama. Setiap data yang terdapat dalam array tersebut menempati alamat memori yang berbeda yang disebut dengan elemen array. Bentuk umumnya adalah : tipe_data nama_array [banyak elemen] 7. Kegunaan array antara lain untuk mengurangi proses pengulangan tanpa harus menuliskan semua kode untuk menjalankan program. 8. Struktur merupakan sekumpulan variable yang mungkin terdiri dari beberapa tipe data berbeda dan dikelompokan dalam satu nama untuk kemudian diakses oleh program.

Anda mungkin juga menyukai