LAPORAN RESMI PRAKTIKUM PEMROGRAMAN DASAR
Oleh : SAEUN MU’ ARIF (NPM. 1412110300)
Dosen : Andik Adi S,S.Kom
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS PGRI RONGGOLAWE TUBAN 2012
1
KATA PENGANTAR
Segala puji bagi Tuhan yang maha kuasa, yang mana telah melimpahkan rahmat, taufiq dan hidayah-Nya sehingga saya dapat menyelesaikan Laporan Resmi dengan judul: “Praktikum Pemrograman Dasar” dari Pak Andik Adi Suryanto ,S.Kom . Dalam menyelesaikan tugas ini saya menyadari bahwa dalam penyusunan Laporan Resmi ini masih banyak mengalami kesulitan dan hambatan. Namun berkat bantuan dan dorongan dari beberapa pihak maka segala kesulitan dan hambatan yang saya hadapi dapat teratasi. Saya menyadari bahwa dalam penulisan Laporan Resmi ini banyak kekurangannya, untuk itu kritik dan saran yang membangun dari para pembaca sangat saya harapkan. Semoga isi dari Laporan Resmi ini bisa bermanfaat bagi para pembaca sekalian dan bagi saya sendiri tentunya.
Tuban, 12 April 2012 Ttd
Penulis
2
BAB I PENDAHULUAN 1.1 Latar Belakang Bahasa C merupakan bahasa pemrograman yang bersifat open source. Turunan dari bahasa C adalah salah satunya bahasa java. Oleh sebab itu, bahasa java tidak jauh berbeda dengan bahasa C. Selain bahasa java, ada C++, mysql, php, dan masih banyak lagi. Namun, dalam praktikum di sini akan dibahas mengenai bahasa C yaitu induk dari bahasa pemrograman yang telah disebutkan tadi. Dalam praktikum Modul 1 ini, praktikan di perkenalkan dengan bahasa C yang merupakan induk dari bahasa java. Semua orang boleh mengeksploitasi bahasa pemrograman ini, sebab bahasa ini bersifat open source. Berdasarkan itulah, bahasa C akan digunakan dalam praktikum kali ini. Dari praktikum pertama ini, praktikan akan diperkenalkan struktur dasar dari bahasa C, pendeklarasian sebuah variabel, tipe data, konstanta, dan berbagai perkenalan mengenai struktur dari pemrograman bahasa C ini serta fungsi dan manfaat penggunaanya. 1.2 Tujuan Tujuan mahasiswa mengikuti praktikum Algoritma Pemrograman Modul 1 ini adalah : 1.
Untuk mengetahui struktur pemrograman Bahasa C
2.
Untuk mengetahui macam-macam tipe data dalam Bahasa C
3.
Untuk mengetahui pendeklarasian variabel dan konstanta dalam Bahasa C
4.
Untuk mengimplementasikan program yang telah dibuat.
5.
Dapat membuat program sederhana dengan menggunakan bahasa C.
6.
Memahami fungsi standar untuk operasi numerik & matematika serta operasi karakter & string pada bahasa C.
3
BAB II TINJAUAN PUSTAKA 2.1. Sejarah Perkembangan Bahasa C Berasal dari bahasa BCPL (Basic Combined Programming Language) oleh MARTIN RICHARD, Cambridge tahun 1967. KEN THOMPSON membuat bahasa B untuk dipakai pada komputer DEC PDP -7 di bawah sistem operasi UNIX pada Bell laboratory, Murray Hill, New Jersey tahun 1970. Bahasa B merupakan suatu bahasa pemrograman yang tidak memiliki jenis suatu data seperti halnya PL/M. Berdasarkan gambaran bahasa B, DENNIS RITCHIE menulis bahasa C. Nama C diambil berdasarkan urutan sesudah B dari bahasa BCPL. Tujuan bahasa C pada mulanya untuk membentuk suatu sistem operasi yang akan digunakan pada mesin komputer DEC PDP-11 yang baru. Pada tahun 1975, sistem operasi UNIX versi 6 dan bahasa C mulai diberikan kepada Universitas maupun Akademi. Dan pada tahun 1979, system operasi UNIX versi 7 dikeluarkan dengan bahasa C. Sistem operasi ini (versi 7) seluruhnya ditulis dalam bahasa C. Pada 1978 Dennis Ritchie dan Brian Kernighan kemudian mempublikasikan buku The C Programming Language yang semakin memperluas pemakaiannya dan dijadikan standar oleh ANSI (American National Standard Institute) pada tahun 1989. C kemudian dikembangkan lagi oleh Bjarne Stroustrup menjadi C++ (1986). C dan/atau C++ banyak digunakan (sehingga menjadi „standar‟) sebagai bahasa pemrograman untuk membuat sistem operasi.
2.2. Pengenalan Turbo C++ Turbo C++ dengan IDE yang terintegrasi yang dikembangkan oleh Borland, terkenal karena kecepatannya dalam kompilasi dan linking. Produk ini merupakan bagian dari keluarga kompiler borland yang sangat populer termasuk Turbo Pascal, Turbo Basic, Turbo Prolog, dan Turbo C. Turbo C++ merupakan suksesor dari Turbo C yang merupakan pengembangan lebih lanjut dengan keseragaman tata cara dalam kompiler seperti halnya cara yang terdapat pada Turbo Pascal 5.5 dalam menambahkan fungsionalitas object pada versi-versi Turbo Pascal sebelumnya. Namun tidak seperti halnya Turbo Pascal, Turbo C++ senantiasa mengikuti dan mempertahankan standar-standar yang berlaku pada bahasa C++.
4
2.3. Pengenalan Algoritma Definisi Definisi algoritma adalah urutan langkah-langkah logis penyeselaian masalah yang disusun secara sistematis dan logis. Kata logis (logika) merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus dapat ditentukan bernilai benar atau salah. Algoritma Dalam Kehidupan Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun algoritma juga digunakan dalam kehidupan sehari-hari, contohnya resep makanan. Di dalam resep makanan terdapat langkah-langkah yang merupakan algoritma. Selain itu masih banyak contoh algoritma yang lain.
5
2.4. Pengenalan Program C 2.4.1 Proses Penerjemahan bahasa C Untuk dapat dimengerti oleh komputer, bahasa C yang ditulis harus diterjemahkan terlebih dahulu ke dalam bentuk yang dikenal oleh bahasa mesin. Ada dua jenis translator atau penerjemah yang digunakan dalam bahasa C, yaitu interpreter dan compiler . Interpreter merupakan suatu translator yang menerjemahkan bahasa C ke dalam bahasa yang dikenal mesin satu persatu, dan hasil terjemahan langsung dikerjakan. Sedangkan pada compiler, diterjemahkan secara keseluruhan dan hasil terjemahan tersebut disimpan dalam bentuk kode mesin (object code), dan kode eksekusi (execute code). Object code dari compiler baru dapat dilaksanakan setelah object code tersebut diubah menjadi execute code oleh linker. Secara lengkap prosesnya adalah sebagai berikut :
Gambar 2.1 Proses Penerjemah Bahasa C
2.4.2 Struktur Program C Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari program harus dimengerti terlebih dahulu. Tiap bahasa komputer mempunyai struktur program yang berbeda. Jika struktur dari program tidak diketahui, maka akan sulit bagi pemula untuk memulai menulis suatu program dengan bahasa yang bersangkutan. Struktur dari program C terdiri dari koleksi satu / lebih fungsi-fungsi. Fungsi pertama yang harus ada di program C sudah ditentukan namanya, yaitu bernama main() . Suatu fungsi di dalam program C dibuka dengan kurung kurawal buka “{” dan ditutup dengan kurung kurawal tutup “}”. Di antara kurung kurawal
6
dapat dituliskan statemen-statemen program C dan pada setiap statemen diakhiri dengan tanda titik koma “;”. Berikut adalah struktur dari program C:
Gambar 2.2 Struktur Umum Bahasa C
Bahasa C dikatakan sebagai bahasa pemrograman terstruktur, karena strukturnya menggunakan fungsi-fungsi sebagai program-program bagian (subroutine). Fungsi-fungsi selain fungsi utama merupakan program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau diletakkan pada file pustaka dan akan dipakai di suatu program, maka nama judulnya (header file) harus dilibatkan di dalam program yang menggunakan preprocessor directive #include . Header file merupakan file yang berisi dengan prototype (judul, nama, sintak) dari sekumpulan fungsi-fungsi pustaka tertentu. Jadi file ini hanya berisi dengan prototipe dari fungsi-fungsi pustaka, sedangkan fungsi-fungsi pustakanya sendiri disimpan dalam file pustaka (library file dengan nama extension file -nya adalah .LIB). Misalnya prototipe dari fungsi-fungsi pustaka printf() dan scanf() terdapat di file stdio.h, sehingga jika fungsi-fungsi ini digunakan di program, maka nama file judulnya harus dilibatkan dengan menggunakan preposcessor #include. File judul stdio.h berisi prototype fungsi-fungsi pustaka untuk operasi input dan output standar. Ada dua cara melibatkan file judul disuatu program C, yaitu : #include<stdio.h> atau #include “stdio.h”.
File judul selain berisi dengan prototype dari fungsi-fungsi pustaka, juga umumnya berisi dengan konstanta-konstanta terdefinisi dan makro-makro. Misalnya nama konstanta terdefinisi M_PI telah didefinisikan di file judul math.h oleh Turbo-C. Selanjutnya untuk menggunakan nilai phi, nama konstanta M_PI dapat digunakan yang telah berisi dengan nilai konstanta
7
3.14159265358979323846. 2.4.3 Program C Sederhana Berikut merupakan contoh program sederhana menggunakan bahasa C : /* Program C yang sederhana */ #include <stdio.h> main() { float Celcius, Fahrenheit; printf(“masukkan nilai celcius?”; scanf(“%f”,&Celcius); Fahrenheit = Celcius * 1.8 + 3.2; printf(“%f celcius adalah %f fahrenheit \n”, Celcius, Fahrenheit); }
Output dari listing program di atas adalah : masukkan nilai celcius?10 10.000000 celcius adalah 50.000000 fahrenheit
Pembahasan program secara singkat : 1. Untuk memberi keterangan program, suatu komentar bebas dapat diletakkan dimanapun di program C. Komentar atau keterangan program diawali dengan bentuk /* dan diakhiri dengan bentuk */ yang terlihat sebagai berikut : /* Program C yang sederhana */ 2. Karena program ini menggunakan fungsi-fungsi pustaka printf() dan scanf() yang disediakan oleh C dan diletakkan di file pustaka, maka nama file yang berisi prototype dari fungsi-fungsi ini (file ini disebut header file) harus disebutkan dengan prepocessor directive #include. File judul (header file) untuk fungsi-fungsi printf() dan scanf() adalah dengan nama stdio.h. Nama extention file .h menunjukkan suatu header file. 3. Di dalam fungsi utama, digunakan lima buah statemen sebagai berikut: float Celcius, Fahrenheit;
8
printf(“masukkan nilai celcius?”; scanf(“%f”,&Celcius); Fahrenheit = Celcius * 1.8 + 3.2; printf(“%f celcius adalah %f fahrenheit \n”, Celcius, Fahrenheit); Masing-masing statemen ditulis dengan diakhiri oleh titik koma. Statemenstatemen (pernyataan-pernyataan) di program C dapat dibentuk dari kata-kata kunci (seperti misalnya float, int, for atau if), dibentuk dari fungsi-fungsi (misalnya printf(), scanf()) atau dibentuk dari suatu pengerjaan (seperti perhitungan, memindahkan suatu nilai ke suatu variabel). 2.4.4 Kelebihan dan kelemahan Bahasa C Kelebihan Bahasa C: - Bahasa C tersedia hampir di semua jenis computer. - Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer. - Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata kunci. - Proses executable program bahasa C lebih cepat - Dukungan pustaka yang banyak. - C adalah bahasa yang terstruktur - Bahasa C termasuk bahasa tingkat menengah penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman yang berorientasi pada mesin. yang merupakan ciri bahasa tingkat rendah. melainkan berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan cepat. secepat bahasa mesin. inilah salah satu kelebihan c yaitu memiliki kemudahan dalam menyusun programnya semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat rendah.
9
Kekurangan Bahasa C: - Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai. - Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
10
BAB III PENGENALAN PEMROGRAMAN BAHASA C 3.1 Pokok Bahasan Fungsi Fungsi main () Fungsi printf () Praposesor #include 3.2 Tujuan Agar mahasiswa mampu dan memahami fungsi dasar bahasa C. Agar mahasiswa mengerti dan memahami header program bahasa C. Agar mahasiswa dapat menggunakan fungsi-fungsi dasar pemrograman bahasa C. Agar mahasiswa mampu membuat program dasar sederhana . 3.3 Dasar Teori Fungsi Program C pada hakekatnya tersusun atas sejumlah blok fungsi. Sebuah program minimal mengandung sebuah fungsi. Setiap fungsi terdiri dari satu atau bebrapa pernyataan dimaksudkan untuk melaksanakan tugas khusus. Secara umum fungsi mempunyai bentuk ssebagai berikut. nama fungsi (daftar parameter) deklarasi parameter; { bagian isi fungsi } Fungsi main () Fungsi main( ) harus ada pada program, sebab fungsi inilah yang menjadi titik awal dan akhir eksekusi program. Tanda { diawal fungsi menyatakan awal tubuh fungsi
dan
juga sebagai awal program
dijalankan, sedangkan tanda } di akhir fungsi merupakan akhir bagian isi fungsi dan sekaligus adalah akhir dari eksekusi program. Fungsi printf()
11
Merupakan fungsi yang umum dipakai utuk menampilkan suatu keluaran pada layar peraga. Praposesor #include #include merupakan salahsatu jenis pengarah praprosesor yang dipakai untuk membaca file yang dinamakan file-judul (header file). File-judul yaitu file yang diantaranya berisi deklarasi fungsi dan definisi konstanta. File ini mempunyai ciri yaitu nama file-nya diakhiri dengan extensi .h , misalnya = stdio.h. 3.4 Hasil Praktikum 3.4.1 Percobaan 1 Menganalisa kesalahan dari menampilkan data ke layar di bawah ini : #include “stdio.h” Main() { Printf(“belajar pemrograman bahasa C”) Printf(“dengan Borland turbo c++ versi 4.5”); Printf(“PRODI STUDI TEKNIK PERANGKAT LUNAK”); }
Berikut di bawah ini adalah pembenaranya : #include <stdio.h> main () { printf ("belajar Pemrograman Bahasa C\n"); printf ("dengan borland turbo c++ versi 4.5\n"); printf ("PRODI TEKNIK INFORMATIKA"); }
Maka hasil dari pembenaran program di atas akan seperti pada gambar di bawah ini :
Gambar 3.1 percobaan
Keterangan : manfaat dari program di atas yaitu , mahasiswa mampu menganalisa kesalahan program serta dapat membenarkanya.
12
3.4.2 Percobaan 2 Membuat biodata pribadi Di sini saya akan membuat sebuah contoh program yang cukup sederhana , yaitu menampilkan sebuah biodata pribadi tentang latar belakang diri saya , Berikut di bawah ini scripnya : #include <stdio.h> main () { printf ("\t\tBIODATA PRIBADI\n"); printf ("==========================================\n"); printf ("NAMA\t = SAEUN MU'ARIF\n"); printf ("NPM\t = 1412110300\n"); printf ("PRODI\t = TEKNIK INFORMATIKA\n"); printf ("ALAMAT\t = SOKO - TUBAN\n"); printf ("\tTELEPON\t = 081515624505\n"); printf ("\tKODE POS = 62372\n"); printf ("ASAL SEKOLAH\t = SMKN 2 BOJONEGORO\n"); printf ("HOBY\t\t = OTAK-ATIK KOMPUTER dll.\n"); printf ("AGAMA\t\t = ISLAM\n"); printf ("TEMPAT/LAHIR\t = TUBAN , 06 MARET 1992\n"); printf ("==========================================\n"); }
Maka dari hasil scrip program di atas akan menghasilkan output atau sebuah keluaran seperti pada gambar di bawah ini :
13
Gambar 3.2 percobaan 2
Keterangan : Manfaat dari program di atas yaitu mahasiswa dapat membuat program biodata dengan fungsi dasar bahasa C++. 3.4.3 Percobaan 3 Mencari Letak kesalahan dari listing program di bawah ini : #include <stdio.h> Main () { Printf(“%d dan %d adalah bilangan genap” 2 , 4); Printf(“%s pangkal %s, “rajin” , pandai ); }
Maka dari kesalahan srcip program di atas , akan menghasilkan sebuah pembenaran seperti scrip program di bawah ini #include <stdio.h> main() { printf ("% d dan % d adalah bilangan genap\n", 2,4); printf ("% s pangkal % s","rajin","pandai"); }
Dari pembenaran scrip program diatas , maka akan menghasilkan sebuah output atau keluaran seperti pada gambar berikut di bawah ini :
14
Gambar 3.3 percobaan 3
Keterangan : Manfaat dari program di atas yaitu mahasiswa mampu menganalisa letak kesalahan program serta memperbaikinya.
BAB IV
15
DASAR PEMROGRAMAN DAN OPERASI MASUKANKELUARAN 4.1 Pokok Bahasan Pengenal (identifitier) Kata kunci (reserved word) Tipe Data Dasar Variabel Operator Aritmatika 4.2 Tujuan Agar mahasiswa mampu dan mengerti pengenal dan kata kunci dalam bahasa C. Agar mahasiswa mampu menggunakan variabel dan tipe variabel dalam sebuah program. Agar mahasiswa mampu mengenal dan mengerti variabel , tipe data dalam bahasa C.
4.3 Dasar Teori Tipe Data Dasar Data berdasarkan jenisnya dapat dibagi menjadi lima kelompok, yang dinamakan sebagai tipe data dasar. Kelima tipe data dasar : Tipe
Total
Kapasitas
Keterangan
Bit Char
8
-128 s/d 127
Karakter
Int
16
-32768 s/d 32767
Float
32
3.4E-38 s/d 3.4E+38
Bil. Real (presisi tunggal)
Double
64
1.7E-308 s/d 1.7E_308
Bil. Real (presisi ganda)
Void
0
Bil. Interger
Tak bertipe
Variable Bentuk pendeklarasian variabel :
16
Tipe
daftar-variabel
Contoh deklarasi : int jumlah; float, harga, bayar; Operator Aritmatika
Yang tergolong operator binary
Yang tergolong operator unary
*
Perkalian
-
Tanda minus
/
Pembbagian
+
Tanda plus
%
Sisa pembagian
+
Penjumlahan
-
Pengurangan
4.4 Hasil Praktikum
17
4.4.1 Percobaan 1 Menganalisa sebuah kesalahan program Berikut dibawah ini adalah scrip yang salah : #include <stdio.h> #include <math.h> int main() { float a,b,c; printf("masukkan a: ") scanf("%f",a); printf("masukkan b: ") scanf("%f",b); c=a*a+b*b printf("jadi sisi miring segitiga adalah=%2.f",sqrt(c)); }
Dari scrip program kesalahan diatas , maka akan didapatkan sebuah pembenaranya seperti pada scrip berikut dibawah ini : #include<stdio.h> #include<math.h> main() { float a,b,c ; printf ("masukan a : "); scanf ("%f",&a); printf ("masukan b : "); scanf ("%f",&b); c=a*a+b*b; printf ("jadi sisi miring segitiga adalah : %2.f",sqrt(c)); }
Dari scrip program pembenaran di atas akan dapat menghasilkan sebuah keluaran seperti pada gambar di bawah ini :
Gambar 4.1 percobaan 1
Dari output program di atas ,sebuah proses masih belum selesai karena saya masih akan menginputkan sebuah nilai „a‟ dan nilai „b‟, contoh di sini saya akan menginput nilai a=4 dan nilai b=5 , seperti pada gambar
18
di bawah ini hasilnya :
Gambar 4.2 menginputkan nilai ‘a’ dan nilai ‘b’
Dan langkah terakhir saya akan menekan enter program di atas , maka akan menghasilkan sebuah tampilan seperti pada gambar di bawah ini :
Gambar 4.3 hasil sisi miring segitiga
Jadi dari program di atas telah dihasilkan sebuah sisi miring segitiga dengan nilai 6. Keterangan : Manfaat dari program diatas yaitu mahasiswa mampu menganalisa kesalahan serta dapat memperbaiki dan menghasilkan sisi miring segitiga . 4.4.2 Percobaan 2 Membuat program mencari luas permukaan balok, keliling dan luas lingkaran,serta volum sebuah kubus. Berikut di bawah ini scripnya : Ket : dari sebuah scrip program di bawah ini saya telah menggabungkan scrip dari program luas permukaan balok,keliling dan luas lingkaran serta volume kubus , jadi intinya satu program bisa menghasilkan beberapa hasil output , #include<stdio.h> main () {
19
int la,p,l,t,v,s,r; double luas,k; printf ("======================================\n"); printf ("\t Luas permukaan Balok\n"); printf ("======================================\n"); printf ("Masukan panjang : ");scanf("%d",&p); printf ("Masukan lebar
: ");scanf("%d",&l);
printf ("Masukan tinggi
: ");scanf("%d",&t);
la = 2*((p*l)+(p*t)+(l*t)); printf ("Luas permukaan Balok : %d\n",la); printf ("======================================\n"); printf ("\tKeliling dan Luas Lingkaran\n"); printf ("======================================\n"); printf ("Masukan jari-jari : ");scanf("%d",&r); if (r%7 == 0) {k=2*22/7*r; printf ("Keliling Lingkaran: %.2lf\n",k);} else {k = 2*3.14*r; printf ("Keliling Lingkaran: %.2lf\n",k);} if (r%7 ==0) {luas = 22/7*7*7; printf ("Luas Lingkaran : %.2lf\n",luas);} else {luas = 3.14*r*r; printf ("Luas Lingkaran : %.2lf\n",luas);} printf ("======================================\n"); printf ("\t Volume Kubus\n"); printf ("======================================\n"); printf ("Masukan rusuk : ");scanf("%d",&s); v = s*s*s; printf ("Volume Kubus : %d\n",v); }
Dari scrip program diatas saya telah menginputkan beberapa nilai dai luas permukaan balok,keliling dan luas lingkaran,serta volume kubus ,
20
Maka hasil akhir setelah saya menginputkan beberapa nilai diatas akan menghasilkan sebuah tampilan keluaran seperti pada gambar berikut di bawah ini :
Gambar 4.4 hasil dari penjumlahan
Keterangan : Manfaat dari program di atas yaitu mahasiswa dapat membuat program dengan sekaligus 3 fungsi . 4.4.3 Percobaan 3 Program menghitung kapasitansi : Input : banyaknya muatan (Q), Tegangan (V) Output : Kapasitansi Proses : Q dibagi V Berikut di bawah ini adalah scripnya : #include<stdio.h> main() { double q,v,kp; printf ("**************************************\n"); printf ("\t Menghitung Kapasistansi\n"); printf ("**************************************\n"); printf ("Banyak Muatan : ");scanf("%lf",&q); printf ("Tegangan
: ");scanf("%lf",&v);
kp = q/v; printf ("Kapasistansi : %.2lf",kp);
21
}
di sini saya menyontohkan memasukan nilai input banyak muatan : 7 , Tegangan : 4 , maka akan menghasilkan Kapasitansi 1.75 Maka hasil dari scrip di atas akan menghasilkan sebuah output seperti gambar di bawah :
Gambar 4.5 hasil kapasitas
Keterangan : Manfaat dari program di atas yaitu mahasiswa mampu menghitung hasil kapasitansi.
22
BAB V PENGAMBILAN KEPUTUSAN DENGAN IF ELSE 5.1 Pokok Bahasan Operator relasi. Operator logika. Prioritas operator logika dan relasi Pernyataan If 5.2 Tujuan Mahasiswa mampu mengenal dan memahami operator untuk control bahasa C. Mahasiswa mampu mengerti dan memahami struktur control if else. Mahasiswa dapat menggunakan struktur control if else dalam program. 5.3 Dasar Teori Operator Relasi Operator relasi biasa digunakan untuk membandingkan 2 buah nilai. Hasil pembandingan berupa keadaan benar atau salah. Adapun operator relasi dalam Bahasa C, sebagai berikut : >
Lebih dari
>=
Lebih dari atau sama dengan
<
Kurang dari
<=
Kurang dari atau sama dengan
==
Sama dengan
!=
Tidak sama dengan
Operator Logika Operator logika biasa digunakan untuk menghubungkan ungkapan relasi. Adapun operator logika dalam Bahasa C, sebagai berikut : &&
dan (AND)
||
atau (OR)
!
tidak (NOT)
Prioritas operator Logika daan relasi Tertinggi
!
> >= < <=
23
= = != && Terend ah
||
Pernyataan If Pernyatan if mempunyai bentuk penggunaan yang bermacam-macam sesuai dengan kasus pengambilan keputusan yang dikerjakan . Contoh Program Program 1 #include <stdio.h> main() { double beli, diskon, bayar; printf(“jumlah pembelian = Rp. “);scanf(“%lf”, &beli); if (beli >= 100000) diskon = 10000; else diskon = 0; bayar = beli – diskon; printf(“jumlah pembelian = Rp. %.2lf”, beli); printf(“besar diskon = Rp. %.2lf”, beli); printf(“total pembayaran = Rp. %.2lf”, bayar); }
-
Program 2 #include <stdio.h> main() { int data; printf(“Masukkan Nilai data = “); scanf(“%d”,&data); if (data == 2)
24
printf("Data Sekarang %d\n",data); else if (data < 5) printf("Data Sekarang %d,lebih kecil dari 5\n",data); else printf("Data Sekarang %d,Lebih Besar Dari 4\n",data); }
5.4 Hasil Praktikum 5.4.1 Percobaan 1 Membuat program algoritma di bawah ini : -
Masukan : NAMA, NPM, Nilai UTS, Nilai UAS , Nilai Tugas
-
Proses : Nilai Akhir = 45% x Nilai UAS + 30% Nilai Tugas + 25% Nilai UTS Nilai Akhir
Huruf
90 – 100
A
70 – 89
B
60 – 69
C
50 – 59
D
0 – 49
E
Berikut adalah scripnya : #include <stdio.h> #include <string.h> main () { double nu,na,nas,nt,npm; char nm[25]; printf ("=========================================\n"); printf ("NAMA\t
: ");gets(nm);
printf ("NPM \t
: ");scanf("%lf",&npm);
printf ("Nilai UTS
: ");scanf("%lf",&nu);
printf ("Nilai UAS
: ");scanf("%lf",&nas);
printf ("Nilai Tugas: ");scanf("%lf",&nt);
25
na = (45*nas)/100 + (30*nt)/100 + (25*nu)/100; //printf ("Nilai Akhir :%.2",&na); if (na<=100&&na>=90) {printf ("Nilai Akhir %s adalah : A",nm);} else if (na<=89&&na>=70) {printf ("Nilai Akhir %s adalah : B",nm);} else if (na<=69&&na>=60) {printf ("Nilai Akhir %s adalah : C",nm);} else if (na<=59&&na>=50) {printf ("Nilai Akhir %s adalah : D",nm);} else if (na<=49&&na>=0) {printf ("Nilai Akhir %s adalah : D",nm);} printf ("\n========================================="); }
Gambar 5.1 nilai akhir
Keterangan : Manfaat dari program di atas yaitu mahasiswa dapat mengetahui hasil dari nilai akhir atas UTS, UAS, TUGAS . 5.4.2 Percobaan 2 Membuat program menentukan bilangan prima yang di inputkan dari keyboard ! Berikut scripnya di bawah ini : #include <stdio.h> main() { int x;
26
printf("Masukkan bilangan yang akan di Cek: "); scanf("%d",&x); int prima = 1; for(int i=2; i<x; i++) { if(x%i==0) prima=0; } if (prima) { printf("%d Adalah bilangan prima",x); } else { printf("%d Bukan bilangan prima",x); } }
Dari scrip program di atas maka akan di dapat output seperti terlihat pada gambar di bawah ini :
Gambar 5.2 output
27
Dari keterangan output program di atas , maka kita akan diarahkan untuk memasukan sebuah bilangan angka untuk di cek , di sini misalnya saya akan menginputkan angka 11 , apakah angka 11 termasuk bilangan prima atau kah tidak , berikut di bawah ini jawabanya :
Gambar 5.3 11 adalah bilangan prima
Keterangan : Manfaat dari program di atas yaitu mahasiswa mampu untuk membuat sebuah program untuk mengecek bilangan prima atau tidak . 5.4.3 Percobaan 3 Program menentukan nilai terbesar dan terkecil Berikut di bawah ini scripnya : #include <stdio.h> main() { int a,b,c; printf("================================\n"); printf ("Masukan angka kesatu : "); scanf ("%d", & a); printf ("Masukan angka kedua : "); scanf ("%d", & b); printf("Masukan angka ketiga : "); scanf ("%d", & c); printf("================================\n"); if ((a>b)&&(b>c)) printf("Angka kesatu terbesar\nAngka ketiga terkecil"); else if ((a>c)&&(c>b)) printf("Angka kesatu terbesar\nAngka kedua terkecil"); else if ((b>a)&&(a>c))
28
printf("Angka kedua terbesar\nAngka ketiga terkecil"); else if ((b>c)&&(c>a)) printf("Angka kedua terbesar\nAngka kesatu terkecil"); else if ((c>a)&&(a>b)) printf("Angka ketiga terbesar\nAngka kedua terkecil"); else if ((c>b)&&(b>a)) printf("Angka ketiga terbesar\nAngka kesatu terkecil\n"); }
Maka dari output program di atas saya akan menetukan sebuah nilai yang kesatu 56, kedua 98, ketiga 76 , selanjutnya saya akan mengeksekusi sebuah program diatas maka akan menghasilkan tampilan seperti pada gambar di bawah ini :
Gambar 5.4 nilai terbesar dan terkecil
Keterangan : Manfaat dari program di atas yaitu mahasiswa dapat menentukan nilai terbesar dan terkecil dengan menggunakan program sederhana seperti di atas.
29
BAB VI PENGAMBILAN KEPUTUSAN DENGAN SWITCH 6.1 Pokok Bahasan Pernyataan Switch 6.2 Tujuan Mahasiswa mampu dan mengenal struktur control switch dalam bahasa C. Mahasiswa dapat menggunakan struktur control switch dalam sebuah program. 6.3 Dasar Teori Pernyataan swicth Pernyataan
switch merupakan pernyataan yang dirancang khusus
untuk menangani pengambilan keputusan yang melibatakan sejumlah alternatif. Bentuk umum pernyataan switch. switch (ekspresi) { case konst anta1: pern yataa n-1 brea k; case konst anta2: pern yataa n-2
30
brea k; case kons tant a-x: pern yata an-x brea k; default: pernyataan-n } Contoh Program #include <stdio.h> #include
main() { char operatore; double operand1, operand2; clrscr(); puts("Program kalkulator sederhana.....\n"); puts("operator yang dapat digunakan adalah : "); puts("* => perkalian\n"); puts("/ => pembagian\n"); puts("+ => penjumlahan\n") ; puts("- => pengurangan\n")
31
; puts("Contoh Menghitung => 5 / 2 Lalu tekan ENTER"); printf("\nSilahkan Menghitung Angka : "); scanf("%lf %c %lf", &operand1, &operatore, &operand2); switch (operatore) { case '*' : printf("Hasil = %.10lg", operand1 * operand2); break; case '/' : printf("Hasil = %.10lg", operand1 / operand2); break; case '+' : printf("Hasil = %.10lg", operand1 + operand2); break; case '-' : printf("Hasil = %.10lg", operand1 - operand2); break; default : puts("\nPerintah Anda Salah Silahkan Ulangi"); } }
Hasil output dari program di atas :
Gambar 6.1 contoh program kalkulator
32
6.4 Hasil Praktikum 6.4.1 Percobaan 1 Membuat program Menu pilihan proses “RANGKAIAN SERI” Berikut di bawah ini scripnya : #include<stdio.h> #include #include<stdlib.h> main() { int r1,r2,r3,pilihan,total,max,min,menu; char sembarang; menu: clrscr(); gotoxy(35,6);printf("Menu Pilihan Proses"); gotoxy(20,7);printf("=============================== ================="); gotoxy(20,8);printf("[1] Menentukan R Total Rangkaian Seri"); gotoxy(20,9);printf("[2] Menentukan nilai R Terbesar dan Terkecil"); gotoxy(20,10);printf("[3] Selesai"); gotoxy(20,11);printf("============================== =================="); gotoxy(20,12);printf("Masukkan Pilihan Anda [1/2/3]="); scanf("%d",&pilihan); switch(pilihan) { case 1: clrscr(); printf("Menentukan R pada rangkaian seri \n"); printf("masukkan R1 :"); scanf("%d",&r1); printf("masukkan R2 :"); scanf("%d",&r2);
33
printf("masukkan R3 :"); scanf("%d",&r3); total=r1+r2+r3; printf("Rtotal =%d \n",total); printf("Tekan Sembarang Untuk Ke menu :"); scanf("%s",&sembarang); goto menu; case 2: clrscr(); printf("masukkan R1 :"); scanf("%d",&r1); printf("masukkan R2 :"); scanf("%d",&r2); printf("masukkan R3 :"); scanf("%d",&r3); if((r1>=r2)&&(r1>=r3)) max=r1; if((r2>=r1)&&(r2>=r3)) max=r2; if((r3>=r1)&&(r3>=r2)) max=r3; printf("R terbesar adalah=%d \n",max); if((r1<=r2)&&(r1<=r3)) min=r1; if((r2<=r1)&&(r2<=r3)) min=r2; if((r3<=r2)&&(r3<=r1)) min=r3; printf("R terkecil adalah=%d \n",min); printf("Tekan Sembarang Untuk Ke menu :"); scanf("%s",&sembarang); goto menu; case 3 : _exit(0); break; default : printf("salah input");
34
break;
} }
Dari scrip program di atas , maka akan dihasilkan sebuah output seperti pada gambar di bawah ini :
Gambar 6.2 pilihan proses
Dan selanjutnya saya akan mencontohkan memilih menu pilihan di atas , missal saya akan memilih pilihan nomor 1 , langkahnya kita tinggal memasukan angka 1 lalu tekan enter dan setelah itu saya akan memasukan sebuah angka R1 : 4, R2 : 6, R3 : 3, hasil yang di dapat pada Rtotal=13 . berikut outputnya :
Gambar 6.3 hasil dari Rangkaian seri
Keterangan : Manfaat dari program di atas yaitu mahasiswa mampu untuk mencari hasil dari sebuah rangkaian seri.
35
6.4.2 Percobaan 2 Membuat program Menu pilihan proses “RANGKAIAN PARALEL” Berikut di bawah ini scripnya : #include<stdio.h> #include<stdlib.h> #include main(){ float c,d,s,x,y,a,z,r_tot; char pilih; menu: clrscr(); puts("\t\tMenu Pilihan Proses"); puts("=========================================== ==="); puts("[1] Masukan R Total Rangkaian Paralel\n"); puts("[2] Menentukan nilai R Terbesar dan Terkecil\n"); puts("[3] selesai\n"); puts("=========================================== ==="); printf("Pilihan Anda [ 1 / 2 / 3 ] : "); scanf("%s",&pilih); clrscr(); switch(pilih){ case '1': printf("Masukkan Nilai R1 : "); scanf("%f",&x); printf("Masukkan Nilai R2 : "); scanf("%f",&y); printf("Masukkan Nilai R3 : "); scanf("%f",&a); r_tot=(1/x)+(1/y)+(1/a); printf("R total Dari Rangkaian Paralel adalah : %.2f\n",r_tot); break;
36
case '2': puts("Menentukan nilai R Terbesar dan Terkecil"); z = max(x, y); s = max(z, a); c = min(x, y); d = min(c, a); printf("Nilai Terbesar adalah : %.0f\n",s); printf("Nilai Terkecil adalah : %.0f\n",d); break; case '3': goto keluar; break; default: puts("Maaf Pilihan Yang Anda Masukkan Salah"); printf("Kembali Ke menu sebelumnya [y/t] : "); scanf("%s",&pilih); if(pilih=='y'||pilih=='Y') goto menu; else goto keluar; break; } printf("Kembali Ke menu sebelumnya [y/t] : "); scanf("%s",&pilih); if(pilih=='y'||pilih=='Y') goto menu; else goto keluar; keluar: clrscr(); printf("Terima Kasih");
37
}
Dari scrip program di atas maka akan dihasilkan tampilan tepatnya seperti pada gambar di bawah ini :
Gambar 6.4 pilihan parallel
Selanjutnya saya akan mencontohkon memilih menu nomer 1 , misalnya saya akan menginputkan sebuah nilai R1: 3, R2: 5, R3: 6 , maka nilai yang dihasilkan dari totalR “0.70” , untuk membuktikan berikut dibawah ini outputnya :
Gambar 6.5 hasil totalR paralel
Keterangan : Manfaat dari program di atas yaitu mahasiswa mampu menghitung total nilai parallel.
38
BAB VII PERULANGAN 7.1 Pokok Bahasan Do – while While Pernyataan for 7.2 Tujuan Mahasiswa mampu mengenal dan mengerti proses pengulangan do while dan for. Mahasiswa dapat menggunakan perulangan do – while dan for pada program. 7.3. Dasar Teori Do-while Tahapan proses : mula-mula pernyataan dijalankan dulu, kemudian kondisi di uji, jika kondisi bernilai benar , maka pernyataan dijalankan lagi dan jika nilai salah maka pernyataan tidak dijalankan lagi (dihentikan). While Tahapan proses : dari awal langsung dilakukan tes kondisi jika kondisi bernilai benar maka menjalankan pernyataan dan jika kondisi bernilai salah maka akan keluar dari lop. Jadi pada perulangan menggunakan while memungkinkan sebuah pernyataan tidak dijalankan sama sekali. Yang membedakan antara perulangan menggunakan do-while dan while, biasanya adalah pada pernyataan while harus diberikan terlebih dahulu inisialisasi terhadap variabel yang akan dijadikan sebagai kondisi dari while. Pernyataan for Tahapan proses: pernyataan akan dijalankan mulai dari nilai awal (ungkapan1) dan keluar dari lop jika sudah dengan nilai akhir (ungkapan2). Sintaks : For (ungkapan1,ungkapan2,ungkapan3) Pernyataan
39
-
Ungkapan1 digunakan untuk memberikan inisialisasi terhadap variabel pengendali loop.
-
Ungkapan2 digunakan sebagai kondisi keluar loop.
-
Ungkapan3 digunakan sebagai pengatur kenaikan nilai ariabel pengendali loop.
Contoh program Program 1 #include <stdio.h> #include main() { int hitung1,hitung2; hitung1 = 0; while (hitung1 < 6) { printf("Nilai Hitung %d\n",hitung1); hitung1 = hitung1 + 1; } hitung2= 6; while (hitung2 < 15) { printf("Nilai Hitung %d\n",hitung2); hitung2 = hitung2 + 1; } gets(0); return(0); }
Maka dari program di atas akan dihasilkan output seperti dibawah ini :
Gambar 7.1 contoh 1
40
- Program 2 #include <stdio.h> main() { int baris, kolom, hasil_tambah; for (baris = 1; baris <= 5; baris++) { for (kolom = 1; kolom <= 5; kolom++) { hasil_tambah = baris + kolom; printf (" %2d", hasil_tambah); } printf("\n"); } }
Dari contoh scrip program di atas makan akan dihasilkan tampilan berikut di bawah ini :
Gambar 7.2 contoh 2
41
7.4 Hasil Praktikum 7.4.1 Percobaan 1 Membuat sebuah program seperti output di bawah ini : 1 22 333 4444 55555 Berikut di bawah ini scripnya : #include <stdio.h> main() { int a,b; for(a=1;a<=5;a++){ for(b=1;b<=a;b++){ printf("%d",a);} printf("\n");} }
Maka dari scrip program di atas akan menghasilkan sebuah output si bawah ini :
Gambar 7.3 hasil percobaan 1
Keterangan : Manfaat dari program di atas yaitu mahasiswa dapat menyusun sebuah angka dalam bentuk segitiga siku – siku.
42
7.4.2 Percobaan 2 Membuat program seperti output di bawah ini : 1 232 34543 4567654 567898765 Keterangan : scrip di bawah ini sengaja saya modifikasi dalam bentuk pencarian segitiga pyramid , Berikut di bawah ini scripnya : #include <stdio.h> #include int main() { int a,b,c,tinggi; clrscr(); printf("Masukkan Tinggi Segitiga : "); scanf("%d",&tinggi); printf("\n\n"); clrscr(); printf("Berikut Tampilan Segitiganya\n"); for(a=1; a<=tinggi; a++) { for(c=tinggi; c>=a; c--) printf(" "); for(c=a;c<2*a;c++) { b=c%10; printf("%d",b); } for(c=2*(a-1);c>=a; c--) { b= c%10;
43
printf("%d",b); } printf("\n"); } getch(); }
Dari scrip program di atas maka telah dihasilkan sebuah piramida segitiga , berikut di bawah ini outputnya :
Gambar 7.4 percobaan 2
Keterangan : Manfaat dari program di atas yaitu mahasiswa mampu menyusun angka dalam bentuk segitiga pyramid atau segitiga sama kaki. 7.4.3 Percobaan 3 Membuat program mencari FPB dari dua bilangan yang diinputkan dari keyboard. Berikut di bawah ini scripnya : #include <stdio.h> #include #include <math.h> int fpb(int x,int y) { int hasil,sisabagi; if(y<=x && x%y==0) { return(y); } else if(x
44
{ hasil=fpb(y,x); return(hasil); } else sisabagi=x%y; hasil=fpb(y,sisabagi); return(hasil); } main() { int hasil,m,n; printf("Masukkan bilangan pertama :"); scanf("%d",&m); printf("Masukkan bilangan kedua
:");
scanf("%d",&n); printf("=============================="); hasil=fpb(m,n); printf("\nFPB dari kedua angka tersebut adalah %d",hasil); getch (); }
Maka dari scrip program di atas akan menampilkan sebuah program dan di sini saya akan menginputkan 2 bilangan , yaitu bilangan pertama : 2 dan bilangan kedua: 4 , maka hasil FPB dari kedua bilangan di atas : “2” … berikut outputnya :
Gambar 7.5 percobaan 3
45
Keterangan : Manfaat dari program di atas yaitu mahasiswa mampu menghitung hasil Faktor Persekutuan Terbesar (FPB) dari nilai yang telah diinputkan di atas.
46
BAB VIII FUNGSI 8.1 Pokok Bahasan Tujuan Fungsi Cara Melewati Parameter ke dalam Fungsi o Pemanggilan dengan nilai (call by value) o Pemanggilan dengan referensi (call by refrense) 8.2 Tujuan Mahasiswa mampu mengenal dan memahami fungsi parametik dan non parametik . Mahasiswa dapat menggunakan fungsi dalam pemrograman. 8.3 Dasar Teori Tujuan fungsi Fungsi adalah kumpulan baris perintah (blok program) yang di buat untuk melaksanakan tugus tertentu, yang tujuanya adalah : 1. Program menjadi lebih terstruktur, sehingga mudah untuk dipahami, mencari kesalahan kode dan dikembangkan lebih lanjut. 2. Untuk mengurangi penulisan kebali kode yang telah dibuat. Fungsi memerlukan masukan
yang dinamakan argumen atau
parameter, yang akan diolah oleh fungsi. Hasil akhir dari sebuah fungsi adalah sebuah nilai berupa nilai keluaran fungsi.
Tipe_fungsi nama_fungsi(parameter)
tipe_fungsi = tipe keluaran fungsi
Deklarasi parameter
Nama_fungsi= nama fungsi
{
Parameter= daftar parameter
Bagian fungsi
Deklarasi parameter= deklarasi variabel
}
bagian fungsi= tubuh/isi fungsi
Contoh Program #include <stdio.h> main( ) { int a, b; x = isika
47
n_a( ); print f(“ x = %d\n” ,x); y = isika n_b( ); print f(“ y = %d\n” ,y); } isikan_a( ) { return (0); } isikan_b( ) { return (0); }
Cara Melewatkan Parameter ke dalam Fungsi Ada dua cara yang dapat dilakukan untuk melewatkan parameter, yaitu 1. Pemanggilan dengan nilai (call by value) Nilai dari parameter aktual akan disalin dalam parameter formal, sehingga nilai pada parameter aktual tidak bisa berubah sekalipun nilai parameter formalnya mengalami perubahan. 2. Pemanggilan dengan referensi (call by reference) Dengan melewatkan alamat dari suatu variabel kedalam fungsi. Dengan cara ini isi dari sebuah variabel dapat diubah diluar fungsi dengan proses perubahan didalam fungsi.
48
8.4 Hasil Praktikum 8.4.1 Percobaan 1 Membuat program dengan menggunakan minimal 2 fungsi ! Di sini saya akan menghitung Luas Segitiga serta Sisi miringnya , berikut di bawah ini scripnya : #include <stdio.h> #include <math.h> void luas_segitiga() { double a,t,L; printf("Masukan alas : "); scanf("%1f",& a); printf("Masukan Tinggi : "); scanf("%1f", & t); L=0,5*a*t ; printf("luas segitiga:%.21f",L); } void sisi_miring() { int a,b; double c; printf("Masukan a : "); scanf("%d",& a); printf("masukan b : "); scanf("%d",& b); c=a*a+b*b; printf("Sisi miring segitiga: %.21f",sqrt(c)); } main() { int pil; pil: printf("=====================================\n"); printf("Menghitung sisi miring dan luas segitiga\n"); printf("=====================================\n");
49
printf("=====================================\n"); printf("1. Mencari Luas segitiga\n"); printf("2. Masukan sisi miring segitiga\n"); printf("=====================================\n"); printf("Masukan pilihan anda\n"); scanf("%d",& pil); if(pil==2) sisi_miring(); else printf("anda salah pilih"); }
Dari scrip program di atas maka akan menghasilkan output seperti pada gambar di bawah ini :
Gambar 8.1 menu pilihan
50
Selanjutnya saya akan memilih salah satu dari pilihan menu di atas , misal saya akan memilih no. 2 , di mana saya akan menginputkan sebuah angka yaitu a: 4, b:5 , maka hasil yang di dapat =6 , untuk membuktikanya langsung lihat tampilan di bawah ini :
Gambar 8.2 hasil sisi miring segitiga
Keterangan : Manfaat dari program di atas yaitu mahasiswa mampu membuat program sekaligus dengan 2 fungsi yang dimaksudkan disini Mencari Luas dan Sisi Miring segitiga.
8.4.2 Percobaan 2 Membuat program mencari permutasi ! Berikut di bawah ini scripnya : #include<stdio.h> void permutasi() { int n,r,x,y,i,j,p; printf("===============================\n"); printf("\tMencari Permutasi\n"); printf("===============================\n"); printf("Masukan Nilai n: "); scanf("%d",& n); printf("Masukan nilai r: "); scanf("%d",& r); if(n>r)
51
{ x=1; y=1; for(i=1;i<=n;i++); {x=x*i;} for(j=1;j<=(n-r);j++); {y=y*j;} p=x/y; printf("permutasi p(%d,%d);%d",n,r,p); } else printf("permutasi p(%d,%d);tidak valid",n,r); } main() {permutasi();}
Dari scrip program di atas maka akan dihasilkan tampilan berikut di bawah ini :
Gambar 8.3 mencari permutasi
52
Selanjutnya saya akan menginputkan nilai n dan r , berikut nilai n saya misalkan 8 dan nilai r 6 maka akan di dapat hasil permutasinya 3 , berikut di bawah ini untuk lebih jelasnya :
Gambar 8.4 hasil permutasi
Keterangan : Manfaat dari program di atas yaitu mahasiswa mampu mencari nilai permutasi dari sebuah bilangan dengan menggunakan program fungsi bahasa C++.
53
BAB IX ARRAY DAN STRING 9.1 Pokok Bahasan Array berdimensi Satu Array berdimensi dua Variabel string Input output data string Menampilkan isi variabel string 9.2 Tujuan Mahasiswa mampu mengenal dan memahami fungsi parametik dan nonparametik. Mahasiswa dapat menggunakan fungsi array dalam pemrograman. Mahasiswa mampu mengenal dan memahami konsep string. Mahasiswa dapat menggunakan I/O pada string. 9.3 Dasar Teori Array berdimensi satu Pendeklarasian dengan bentuk umum berupa :
Tipe nama_var[ukuran]
Contoh deklarasi : float nilai[5];
Bentuk pengaksesan
nama_var[indeks] Array berdimensi dua Pendeklarasian dengan bentuk umum berupa :
Tipe nama_var[ukuran1][ukuran2]
54
Contoh deklarasi : float data_nilai[4][3] Bentuk pengaksesan
nama_var[indeks pertama] [indeks kedua] String merupakan bentuk data yang biasa dipakai dalam bahasa pemrograman untuk keperluan menampung dan memanipulasi data teks, misalnya untuk menampung (menyimpan) suatu kalimat. Pada bahasa C, string bukanlah merupakan tipe data tersendiri, melainkan hanyalah kumpulan dari nilai-nilai karakter yang berurutan dalam bentuk array berdimensi satu. 1. Variabel string Variabel string adalah variabel yang dipakai utuk menyimpan nilai string. Char nama_var [size]
Misalnya : char name[15];
merupakan instruksi untuk mendeklarasikan variabel string dengan panjang maksimal 15 karakter (termasuk karakter NULL). Deklarasi tersebut sebenarnya tidak lain merupakan deklarasi array bertipe char. Input Output Data String Pemasukan data string ke dalam suatu variabel biasa dilakukan dengan fungsi gets() atau scanf(). Bentuk umum pemakaiannya adalah sebagai berikut : #include <stdio.h> gets(nama_array);
atau #include <stdio.h> scanf(“%s”, nama_array);
55
Menampilkan isi variable string Untuk menampilkan isi variabel string, fungsi yang digunakan adalah puts() atau printf(). Bentuk umum pemakaiannya adalah sebagai berikut : #include <stdio.h> puts(var_string);
atau printf("%s",var_string);
Fungsi-fungsi Mengenai string Fungsi strcpy() untuk menyalin nilai string Fungsi strlen() untuk mengetahui panjang nilai string Fungsi strcat() untuk menggabung nilai string Fungsi strcmp() untuk membandingkan dua nilai string Fungsi strchr() untuk mencari nilai karakter dalam string Contoh Program 1: #include <stdio.h> main() { char jur[25]; printf(“Masukkan Jurusan yang dipilih : “); gets(jur); printf(“\n Jurusan yang anda pilih %s”,jur); }
Contoh program 2: #include <stdio.h> main() { char nama[50]; printf(“Masukkan nama anda : “); gets(jur); printf(“\n Nama anda :
56
%s”,nama);
printf(“Jumlah
karakter
=
%d
karakter\n,strlen(nama)); }
9.4 Hasil Praktikum 9.4.1 Percobaan 1 Membuat program penjumlahan dan pengurangan matrik ordo 3x3 ! Berikut di bawah ini scripnya : Ket : Sengaja scrip di bawah ini saya beri komentar hal ini bertujuan untuk memperjelas penggunakan dari setiap fungsi. #include main() {
// Mendefinisikan tipe data yang berbentuk array dua dimensi typedef int MATRIK33 [3][3][3]; // Mendeklarasikan matriks1 sebagai array dua dimensi MATRIK33 matriks1,matriks2,matriks3,jumlahmatriks,hasilmatriks ; int i, j, k; // Mendeklarasikan variabel // untuk indeks pengulangan // Mengisikan nilai ke dalam elemen-elemen matriks1 cout<<"inputan matriks 1"<<endl; for (i=0; i<2; i++) { for (j=0; j<2; j++) { for (k=0; k<2; k++) { cout<<"matriks1["<>matriks1[i][j][k]; } } }
57
cout<<endl; // Mengisikan nilai ke dalam elemen-elemen matriks2 cout<<"inputen matriks 2"<<endl; for (i=0; i<2; i++) { for (j=0; j<2; j++) { for (k=0;k<2; k++) { cout<<"matriks2["<>matriks2[i][j][k]; } } } cout<<endl; // Melakukan penjumlahan matriks1,matriks2, dan matriks 3 // dan menyimpan hasilnya ke dalam jumlahmatriks for (i=0; i<2; i++) { for (j=0; j<2; j++) { for (k=0;k<2; k++) { jumlahmatriks[i][j][k] = matriks1[i][j][k] + matriks2[i][j][k]; } } } // Menampilkan hasil penjumlahan cout<<"hasil penjumlahan matriks"<<endl; for (i=0; i<2; i++) { for (j=0; j<2; j++) { for (k=0;k<2; k++) { cout<<"matriks["<
58
} cout <<endl; // Melakukan pengurangan matriks1,matriks2, dan matriks 3 // dan menyimpan hasilnya ke dalam jumlahmatriks for (i=0; i<2; i++) { for (j=0; j<2; j++) { for (k=0;k<2; k++) { hasilmatriks[i][j][k] = matriks1[i][j][k] matriks2[i][j][k]; } } } // Menampilkan hasil penjumlahan cout<<"hasil pengurangan matriks"<<endl; for (i=0; i<2; i++) { for (j=0; j<2; j++) { for (k=0;k<2; k++) { cout<<"matriks["<
59
Dari hasil scrip di atas maka akan di dapat sebuah outputan berikut gambar di bawah ini :
Gambar 9.1 inputan matrik
Dan langkah selanjutnya saya akan menginputkan beberapa bilangan pada program di atas , maka hasil yang di dapat akan seperti pada gambar di bawah ini :
Gambar 9.2 hasil percobaan 1
Keterangan : Manfaat dari program di atas yaitu Mahasiswa mampu menghitung nilai matrik pengurangan dan penjumlahan dengan menggunakan fungsi program array.
60
9.4.2 Percobaan 2 Membuat program menghitung nilai karakter. Berikut di bawah ini scripnya : #include<stdio.h> #include main() { char kar,kalimat; int jumkar=1, jumspasi=0; printf("\tMasukkan Kalimat : "); scanf("%c",&kalimat); while((kar = getchar()) != '\n'){ // jumlah karakter yang diinput tambah 1 hingga menemukan karakter enter jumkar++; // jika terdapat karakter spasi,maka variabel akan dihitung 1 if (kar == ' ') jumspasi++; } printf("\n\tJumlah karakter\t= %d", jumkar); printf("\n\tJumlah spasi\t= %d\n", jumspasi); }
Dari hasil scrip di atas maka akan didapatkan sebuah program berikut di bawah ini :
Gambar 9.3 masukan kalimat
61
Dan selanjutnya saya akan memasukan kalimat di mana kalimat yang akan saya masukan nanti akn di hitung jumlah karakter serta spasinya , berikut di bawah ini output programnya :
Gambar 9.4 hasil percobaan 2
Keterangan : Manfaat dari program di atas yaitu Mahasiswa mampu menghitung jumlah dari nilai kaarakter dan spasi yang telaah diiunputkan pada program.
9.4.3 Percobaan 3 Menganalisa dan memperbaiki kesalahan dari sebuah program . Berikut di bawah ini scripnya yang salah : #include<stdio.h> void main(){ struct date{ int tgl; int bulan; int tahun;} struct person{ char nama[30]; struct date lahir;} struct person siswa[2]; int i; printf("Masukkan Data siswa : \n"); for (i=0;i<2;i+) { printf("Masukkan Nama :"); fgets(siswa[i].nama, sizeof siswa[i]. nama, stdin); Printf("Masukkan Tanngal lahir : "); scanf("%d", &siswa[i].lahir.tgl);
62
Printf("Masukkan bulan lahir : "); scanf("%d", &siswa[i].lahir.bulan); printf("Masukkan tahun lahir : "); scanf("%d", &siswa[i].lahir.tahun) fflush(stdin); printf("\n"); }; for(i=0;i<2;i++) { printf(" data ke : %d \n ",i+1); printf("Nama Siswa : %s",siswa[i].nama); printf("Tanggal lahir : %d-%d-%d ",siswa[i].lahir.tgl,siswa[i].lahir.bulan,siswa[i ].lahir.tahun) printf("\n\n") ; } }
Berikut di bawah ini pembenaranya : #include<stdio.h> void main(){ struct date{ int tgl; int bulan; int tahun;};
struct person{ char nama[30]; struct date lahir;}; struct person siswa[2]; int i; printf("\t\tMasukkan Data siswa : \n"); printf("\t==================================\n"); for (i=0;i<2;i++) {
63
printf("Masukkan Nama\t\t : "); fgets(siswa[i].nama, sizeof siswa[i].nama, stdin); printf("Masukkan Tanggal lahir\t : "); scanf("%d", &siswa[i].lahir.tgl); printf("Masukkan bulan lahir\t : "); scanf("%d", &siswa[i].lahir.bulan); printf("Masukkan tahun lahir\t : "); scanf("%d", &siswa[i].lahir.tahun); fflush(stdin); printf("\n"); } for(i=0;i<2;i++) { printf("data ke : %d \n ",i+1); printf("Nama Siswa\t : %s",siswa[i].nama); printf("Tanggal lahir\t : %d-%d-%d ",siswa[i].lahir.tgl,siswa[i].lahir.bulan,siswa[i].lah ir.tahun); printf("\n\n") ; } }
Dari hasil pembenaran program di atas , maka akan di dapat sebuah output program berikut seperti pada gambar di bawah ini :
Gambar 9.5 input data
64
Langkah selanjutnya saya akan menginputkan nama, tanggal lahir,bulan lahir dan tahun lahir pada diri saya pribadi , maka tampilan yang akan di dapat berikut di bawah ini :
Gambar 9.6 hasil akhir percobaan 3
Keterangan : Manfaat dari program di atas yaitu Mahasiswa dapat menganalisa kesalahan program serta dapat membenarkanya .
65
BAB XI PENUTUP 10.1 Kesimpulan Dari
pelaksanaan
praktikum
yang
telah
berjalan
dengan
lancar,
alhamdulillah saya dapat memahami materi yang di ajarkan tentang pemrogaman bahasa C dengan cukup jelas. Bahasa C merupakan pemrogaman bahasa yang cukup rumit. Tetapi apabila kita tekuni dan berusaha sedikit, maka bahasa C adalah termasuk pemrogaman yang mudah untuk dipelajari.
10.2 Saran Dalam mempelajari pemrogaman bahasa C banyak sekali hal yang harus diperhatikan. Maka dari itu diperlukan adanya ketelitian dan kesabaran, serta analisa.
66
10.3 Daftar Pustaka Modul praktikum pemrograman dasar http://informatika11f.blogspot.com http://informatiak11d.wordpress.com http://ilmukomputer.com
67
10.4 LAMPIRAN
68