Anda di halaman 1dari 12

LAPORAN PRAKTIKUM ALGORITMA PEMOGRAMAN DAN STRUKTUR DATA LAPORAN AWAL JOBSHEET 8

OLEH : MELDIYA REZA 1102689/2011

PROGRAM STUDI PENDIDIKAN TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRONIKA FAKULTAS TEKNIK UNIVERSITAS NEGERI PADANG

2012

A. TUJUAN Setelah melakukan pratikum, diharapkan mahasiswa: 1. Mengimplementasikan Array dengan Bahasa C. 2. Mengimplementasikan struktur modular dengan Bahasa C. B. TEORI SINGKAT
Bahasa C sangat mendukung modular programming. Sejak awal bahasa C sudah membagi programprogramnya menjadi modul-modul (bagian-bagian). Modul pada bahasa C dikenal dengan nama fungsi (function). Fungsi berguna untuk mengumpulkan statement yang dapat dijalankan menjadi satu dalam suatu blok dan menjalankannya kembali hanya dengan menuliskan nama fungsi yang menampungnya. Cara mendefinisikan Fungsi tipe nama-fungsi(argumen1, argumen2,) { tubuh fungsi } Bahasa C tidak mengenal istilah prosedur seperti bahasa pascal. Dalam pascal sendiri, prosedur didefinisikan sebagai suatu proses yang tidak mengembalikan nilai. Untuk melakukan hal ini di dalam c, maka kita harus membuat suatu fungsi dengan tipe void, yang berarti tidak memiliki nilai balik (return value). Deklarasi Fungsi Suatu fungsi yang memberikan hasil balik selain tipe int perlu dideklarasikan sebelum digunakan. Dengan demikian jika suatu fungsi tidak dideklarasikan, maka akan dianggap fungsi tersebut memberikan hasil balik berupa nilai tipe int. tipe nama-fungsi(); //titik koma harus ditulis Larik (Array) adalah tipe terstruktur yang mempunyai komponen dalam jumlah yang tetap dan setiap komponen mempunyai tipe data yang sama. Posisi masing-masing komponen dalam array dinyatakan dengan nomer indeks. Array mempunyai tipe indeks yang merupakan batasan nilai. Tipe indeks ini dapat berbentuk satu dimensi, dua dimensi hingga n dimensi. Bentuk umum dari deklarasi tipe array adalah : Type [nama_variabel] = Array [tipe_index] of tipe; Keterangan: [nama_variabel] : Nama variabel yang akan dideklarasikan. [tipe_index] : Tipe data untuk nomor index. Tipe : Tipe Data dari komponen Array. Contoh Pendeklarasian : Type Matrik = Array[1..3,1..3] of Byte;

C. LATIHAN
1. Program menggunakan fungsi tanpa nilai balik

A //program utama untuk menghitung luas segitiga #include "stdio.h" int Alas; int Tinggi; void HitungLuasSegitiga(); {Deklarasi fungsi} main() { printf("Menghitung luas sebuah segitiga\n"); HitungLuasSegitiga(); {Pemanggilan fungsi} printf("\nselesai"); } void HitungLuasSegitiga() { float Luas; {Blok Program Utama} printf("Alas : ");scanf("%d",&Alas); printf("Tinggi : ");scanf("%d",&Tinggi); luas = (Alas * Tinggi)/2; printf("Luas segitiga = %f",Luas); }

Analisa listing program Pada listing program A terdapat beberapa error yakni pada : {Deklarasi fungsi}. Karena statemen ini sifatnya komentar maka tanda {} harus diganti dengan /* */ . Disamping itu Bahasa c tidak mengenal {} sebagai komentar. - Pada proses luas pemanggilan luas tidak sama dengan pendeklarasian pada variabel, bahasa C sangat sensitif sehingga huruf kapital dan huruf kecil berbeda artinya. Maka pada proses variabel luas harus diganti dengan Luas. Perbaikan listing program dapat dilihat pada bagian B. Output

2.

Program fungsi dengan nilai balik A

/* Program menghitung rata-rata */ #include <stdio.h> int N; float U; void HitungRatarata(int N, float *U); main(); { printf("Jumlah data : ");scanf("%d", &N); printf("menghitung rata-rata N buah bilangan bulat\n"); HitungRatarata(N); printf("%f"); } void HitungRatarata(int N, float *U) { int K, Jumlah, X; Jumlah = 0; for (K=1; K<=N; K++) { printf("data ke-%d : ",K);scanf("%d", &X); Jumlah = Jumlah + X; } U = Jumlah/N; }

Analisa listing program Pada listing program A terdapat beberapa error yakni pada : Penggunaan tanda asterik (*) untuk nilai balik U harus di hapus karena jika tetap digunakan program error. Pemanggilan fungsi Hitung Ratarata harus disertai dengan variabel global yang ada pada badan program utama, atau tidak hanya satu variabel saja yang di ikut sertakan. Sehingga statementnya menjadi HitungRatarata(N,U);
Pada main() tidak boleh menggunakan tanda (;).

Output

Untuk output program harus ditulis pada badan fungsi sehingga nilai U sebagai output dapat dibaca di program utama. Dengan sintak printf("Nilai Rata-rata : %f",U);

3.

Program Array, Penjumlahan matrik /* Penjumlahan Matrik */ #include <stdio.h> #include <conio.h> void main() { int A[2][3],B[2][3],i,j,X; clrscr(); /** Matriks A **/ for (i=0;i<2;i++) { for(j=0;j<3;j++) { printf("Masukkan data matrik A[%i][%i]: ",i+1,j+1); scanf("%i", &A[i][j]); } } printf("\n"); printf("Matriks A\n"); for (i=0;i<2;i++) { for (j=0;j<3;j++) { printf(" %i",A[i][j]); } printf("\n"); } /** Matriks B **/ for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("Masukkan data matrik B[%i][%i]: ",i,j); scanf("%i", &B[i][j]); } } printf("\n"); printf("Matriks B\n"); for (i=0;i<2;i++) { for (j=0;j<3;j++) { printf(" %i",B[i][j]); } printf("\n"); }

printf("Penjumlahan matriks \n"); for( i=0;i<2;i++) { for( j=0;j<3;j++) { X=A[i][j]+B[i][j];printf("%i",X); printf(" ");printf(" "); } printf("\n"); }} Analisa listing program

Listing program pada jobsheet 8, LAT8C.C belum selesai sehingga listing program perlu ditambah
sesuai dengan listing program diatas. - Pengulangan for digunakan untuk pengulangan baris dan kolom matrik. - printf(" %i",A[i][j]); statement ini digunakan untuk menampilkan matrik A. - printf(" %i",B[i][j]); statement ini digunakan untuk menampilkan matrik B. - X=A[i][j]+B[i][j];printf("%i",X); statement ini digunakan untuk menambahkan matrik A dan B dengan variabel pengganti X. Output

LAPORAN PRAKTIKUM ALGORITMA PEMOGRAMAN DAN STRUKTUR DATA LAPORAN AKHIR JOBSHEET 8

OLEH : MELDIYA REZA 1102689/2011

PROGRAM STUDI PENDIDIKAN TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRONIKA FAKULTAS TEKNIK UNIVERSITAS NEGERI PADANG

2012

A. EVALUASI
1. Program untuk proses perkalian matrik.

Algoritma Program
Start A B C D

A[2][3],B[2][3],i,j, X

for (i=0;i<2; i++)

for (i=0;i<2; i++)

for (i=0;i<2; i++)

for (i=0;i<2; i++)

for (i=0;i<2; i++) For (j=0;j<3;j ++) For (j=0;j<3;j ++) For (j=0;j<3;j ++) For (j=0;j<3;j ++) For (j=0;j<3;j ++)

Output A[i][j]

Input B [i][j]

Output B[i][j]

X=A[i][j] * B[i][j]

Input A[i][j]

Output X

End

Listing program #include <stdio.h> #include <conio.h> void main() { int A[2][3],B[2][3],i,j,X; clrscr(); /** Matriks A **/ for (i=0;i<2;i++) { for(j=0;j<3;j++)

{ printf("Masukkan data matrik A[%i][%i]: ",i+1,j+1); scanf("%i", &A[i][j]); } } printf("\n"); printf("Matriks A\n"); for (i=0;i<2;i++) { for (j=0;j<3;j++) { printf(" %i",A[i][j]); } printf("\n"); } /** Matriks B **/ for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("Masukkan data matrik B[%i][%i]: ",i,j); scanf("%i", &B[i][j]); }} printf("\n"); printf("Matriks B\n"); for (i=0;i<2;i++) { for (j=0;j<3;j++) { printf(" %i",B[i][j]); } printf("\n"); } printf("Perkalian matriks \n"); for( i=0;i<2;i++) { for( j=0;j<3;j++) { X=A[i][j]*B[i][j];printf("%i",X);; printf(" ");printf(" "); } printf("\n"); }}

Output

2. Kegunaan tanda asterik (*) yang terdapat pada LAT8B.C, dan apa pengaruhnya jika tanda (*) dihilangkan.? Jawab : Tanda asterik digunakan untuk pelewatan parameter ke dalam fungsi dengan menyalin

alamat dari suatu variabel aktualnya. Fungsi yang menerima kiriman alamat ini akan menggunakan alamat yang sama untuk mendapatkan nilai datanya. Hal ini dilakukan dengan menggunakan pointer. Pointer adalah variabel yang merujuk pada alamat lokasi suatu memori tertentu, variable pointer dapat dideklarasikan dengan menuliskan nama variabelnya diawali dengan asterisk (*). Perubahan yang terjadi pada variabel asal akan mengakibatkan perubahan pada variabel pointernya dan sebaliknya. Jika tanda asterik(*) dihilangkan maka dengan beberapa perbaikan pada pemanggilan fungsi program dapat dijalankan. Sedangkan jika tanda (*) tetap dipertahankan terdapat error pada program.

3. Program untuk menghitung luas dan keliling lingkaran menggunakan fungsi.

Algoritma Program
Start
Luas_lingkaran (r,luas) Kel_lingkaran (r,kel)

Pi=3.14 ,r,luas,kel

luas=pi*r*r
Luas_lingkaran (r,luas)

kel=2*pi*r

luas

kel

Luas_lingkaran (r,kel)

Input r

End

Listing program
#include <stdio.h> #include <conio.h> float r,luas,kel; const float pi = 3.14; void luas_lingkaran(float r, float luas); void kel_lingkaran(float r, float kel); void main(){

printf("Program Menghitung Luas dan Keliling Lingkaran\n"); gotoxy(7,2); printf("Menggunakan Bahasa C\n\n"); printf("Masukkan jari-jari= ");scanf("%f",&r); printf("\n"); luas_lingkaran(r,luas); kel_lingkaran(r,kel);

} void luas_lingkaran(float r, float luas)

{ luas=pi*r*r; printf("Luas Lingkaran } void kel_lingkaran(float r, float kel) { kel=2*pi*r; printf("Keliling Lingkaran = %f ",kel);printf("cm\n\n"); } Output = %f ",luas);printf("cm2 \n\n");

Anda mungkin juga menyukai