Upload
rum-burt
View
83
Download
31
Embed Size (px)
DESCRIPTION
Power
Citation preview
PRAKTIKUM 1
STRUKTUR C++, TIPE DATA & VARIABEL
A. TUJUAN
1. Memahami struktur dasar pemrograman bahasa C++.
2. Mengetahui beberapa tipe data dasar (jenis dan jangkauannya)
3. Memahami tentang variabel dan konstanta
4. Mengetahui aturan penggunaan variable dan konstanta
5. Dapat membuat program menggunakan variable dan konstanta untuk
menyelesaikan suatu masalah
B. DASAR TEORI
Struktur Dasar Pemrograman C
Program C terdiri dari satu / lebih fungsi, salah satu diantaranya harus
main(). Fungsi terdiri dari sebuah header dan sebuah badan. Header berisi
preprocessor statement seperti #include dan nama fungsi. Badan ditandai oleh {}
dan berisi serangkaian pernyataan yang masing-masing diakhiri tanda ;
Adapun bentuk umum dari program bahasa C adalah
Keterangan:
#include file :
Merupakan nama file library yang fungsinya akan digunakan dalam program.
# include file # define var konstan deklarasi fungsi main() { deklarasi variabel global : <pernyataan - pernyataan> : } nama fungsi (arg1, arg2,...) { deklarasi variabel lokal : < pernyataan - pernyataan> : }
#define var konstan :
Mendefinisikan sebuah nilai sebagai konstanta, dimana dalam program
nilainya selalu tetap.
Deklarasi fungsi:
Mendeklarasikan fungsi apa saja yang akan dipakai dalam program, selain
fungsi main().
main() :
Merupakan fungsi induk yang harus ada dalam program.
Deklarasi variabel:
Sebelum sebuah variabel digunakan dalam program maka harus
dideklarasikan yang maknanya adalah memesan tempat pada memori.
Banyaknya tempat yang dipesan bergantung pada tipe data apa yang
digunakan oleh variabel tersebut.
Pengenalan Fungsi-Fungsi Dasar C
a. Fungsi main()
Fungsi main() harus ada pada program, sebab fungsi inilah yang menjadi
titik awal dan titik akhir eksekusi program. Tanda { di awal fungsi menyatakan awal
tubuh fungsi dan sedangkan tanda } di akhir fungsi merupakan akhir tubuh fungsi.
b. Fungsi printf()
Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan
suatu hasil pada layar. Dalam bentuk yang lebih umum, format printf()
printf(“string kontrol”, daftar argumen);
String kontroldapat berupa satu atau sejumlah karakter yang akan ditampilkan
ataupun berupa penentu format yang akan mengatur penampilan dari argumen
yang terletak pada daftar argumen. Mengenai penentu format di antaranya
berupa:
%d untuk menampilkan bilangan bulat (integer)
%f untuk menampilkan bilangan titik-mengambang (pecahan)
%c untuk menampilkan sebuah karakter
%s untuk menampilkan sebuah string
Dalam string control dapat berisi karakter khusus yangbiasadisebutescape
sequencecharacters,yaitu :
Karakter Keterangan \0 Karakteerber-ASCIInol(karakternull) \a Karakterbell \b Karakterbackspace \f Karaktergantihalaman(formfeed) \n Karakterbaris baru(newline) \r Karaktercarriagereturn(keawalbaris ) \t Karaktertabhorizontal \v Karaktertabvertika \\ Karakter\ \’ Karakter‘ \” Karakter“ \? Karakter? \ooo Karakteryangnilaioktalnyaadalahooo(3digitoctal) \xhh Karakter yang nilai heksadesimalnya adalah hh (2 digit
heksadesimal)
Contoh:
#include <stdio.h> main( ) { printf(“No : %d\n”, 10); printf(“Nama : %s\n”, “Ali”); printf(“Nilai : %f\n”,80.5); printf(“Huruf : %c\n”,‘A’); }
Pengenalan Praprosesor #Include
#includemerupakan salah satu jenis pengarah praprosesor (preprocessor
directive). Pengarah praprosesor ini dipakai untuk membaca file yang diantaranya
berisi deklarasi fungsi dan definisi konstanta. File-file ini mempunyai ciri yaitu
namanya diakhiri dengan ekstensi .h.
Bentuk umum #include:
1.
2.
Bentuk pertama(#include<namafile>)mengisyaratkan bahwa pencarian file
dilakukan pada direktori khusus, yaitu direktori file include. Sedangkan bentuk kedua
#include <namafile>
#include “namafile”
(#include “namafile”)menyatakan bahwa pencarian file dilakukan pertama kali pada
direktori aktif tempat program sumber dan seandainya tidak ditemukan pencarian
akan dilanjutkan pada direktori lainnya yang sesuai dengan perintah pada sistem
operasi.
Komentar Dalam Program
Untuk keperluan dokumentasi dengan maksud agar program mudah dipahami
di saat lain, biasanya pada program disertakan komentar atau keterangan mengenai
program. Dalam C, suatu komentar dapat ditulis dengan dua cara:
1. Ditulis dengan diawali dengan tanda /* ….*/.
Untuk penulisan dengan tanda ini, penulisan dapat lebih dari satu baris. Awal
komentar diberi tanda /* dan akhir komentar diberi tanda */
2. Ditulis dengan tanda //.
Penulisan dengan tanda ini hanya untuk satu baris komentar. Tanda //
diberikan diawal komentar saja.
Contoh :
// Tanda ini adalah komentar satu baris #include <stdio.h> main()
{ printf(“Coba\n”); /* Ini adalah program pertama,
komentar lebih dari satu baris */ }
Variabel
Suatu variabel digunakan dalam program untuk menyimpan suatu nilai dan
nilai yang ada padanya dapat berubah selama proses program berlangsung.
Namadari suatuvariabeldapatditentukansendiriolehpemrogramdenganaturan
sebagai berikut:
1. Karakter pertama berupa huruf (A-Z) atau (a-z) atau underscore (_)
2. Tidak boleh mengandung simbol khusus kecuali underscore ( _ )
3. Nama variabel tidak boleh sama dengan kata kunci C++
4. Nama variabel boleh terdiri dari kata kunci C++ yang digabungdengan kata lain .
5. Huruf besar dan kecil dari nama variabel akan dibedakan oleh bahasa C++
6. Nama variabel tidak boleh menggunakan operator aritmetika (+ - / * %)
7. Nama variabel tidak boleh mengandung spasi
Deklarasi Variabel
Bentuk umum deklarasi variabel:
Contoh:
int n1; // deklarasi variabel integer n1
int n1,n2; // deklarasi dua variabel n1, n2
DeklarasiKonstanta
Berbedadenganvariabel,konstantatidakdapatdiubah jikatelah diinisialisasi.
Berikut beberapa cara untuk mendeklarasikan konstanta
a. Menggunakankeywordconst
Contoh:
void main() { const float phi = 3.141592; // deklarasi konstanta
float jari_jari, keliling, luas; jari_jari = 7.2; luas = phi * jari_jari * jari_jari; keliling = 2 * phi * jari_jari;
cout<<"Luas lingkaran adalah " << luas<<endl; cout<<"Keliling lingkaran adalah " << keliling;
}
b. Menggunakan#define
Keuntungan menggunakan #define apabila dibandingkan dengan const adalah
kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama
kalimencarisimbol #define.
Contoh :
#define phi 3.14152965 //deklarasi konstanta
void main() {
float jari_jari, keliling, luas; jari_jari = 7.2;
luas = phi * jari_jari * jari_jari; keliling = 2 * phi * jari_jari; cout<<"Luas lingkaran adalah " << luas<<endl; cout<<"Keliling lingkaran adalah " << keliling;
}
Nama_tipenama_variabel;
Inisialisasi Variabel
Inisialisasi variabel adalah pemberian nilai awal variabel saat program dijalankan.
Inisialisasi dapat dilakukan saat deklarasi variabel atau setelah deklarasi. Contoh:
1. Deklarasi dan inisialisasi variabel dalam satu perintah
int n = 1;
2. Deklarasi dan inisialisasi dalam perintah berbeda.
int a; a = 10;
TipeData TipeDasar Ukuran Memori
(byte) JangkauanNilai JumlahDigitPresisi
Char 1 -128hingga+127 -
Short 2 -32768hingga+32767 -
Int/Long 4 -2.147.438.648hingga2.147.438.647 -
Float 4 3,4E-38hingga3,4E38 6- 7
Double 8 1.7E-308hingga1.7E308 15-16
longdouble 10 3.4E-4932hingga1.1E4932 19
C. TUGAS PENDAHULUAN
1. Pilihlah nama-nama variabel yang benar dan yang salah, mengapa ?
2. Buatlah flowchart untuk mengkonversikan ukuran panjang dalam centimeter
menjadi meter dan kelebihannya dalam centimeter (misalnya panjang 165 cm,
maka hasil konversi adalah 1 m 65 cm).
3. Dari soal no 2, buatlah deklarasi variable yang diperlukan jika akan dibuat
program dalam bahasa C++.
D. PRAKTIKUM
1. Carilah kesalahan dalam program di bawah ini :
main () { INT jumlah;
int char 6_05 floating _1312 calloc Xx A$ ReInitialize alpha_beta_routine xxx z
/* PERHITUNGAN HASIL jumlah = 25 + 37 - 19;
/* TAMPILKAN HASIL printf("Berapa hasil perhitungan 25 + 37 - 19 ?\n); printf("Jawabannya adalah %d\n" jumlah); }
2. Program di bawah ini seharusnya menampilkan output satu baris sbb :
c * c = 25,000000
Namun, belum berhasil karena masih ada beberapa kesalahan. Temukan
minimal 3 kesalahan dalam program tersebut.
#include <Studio.h> main () { float a, b, c; a = 3; b = 4.0; c = a * a + b * b printf("c * c = %d", c); }
3. Berapakah nilai jawaban yang ditampilkan oleh program di bawah ini :
#include <stdio.h> main() { int jawab, hasil; jawab = 100; hasil = jawab - 10; printf("Jawabannya adalah %d\n", hasil + 6); }
E. TUGAS PRAKTIKUM
Tuliskan kesalahan program, perbaikan dan hasil yang dikeluarkan oleh program
dari praktikum yang sudah anda lakukan..
PRAKTIKUM 2
OPERATOR & I/O
A. TUJUAN
1. Memahami operator pada bahasa C++.
2. Memahami berbagai fungsi perintah Input/Output pada bahasa C++.
3. Mengetahui aturan penggunaan operator dan fungsi-fungsi input/output
4. Dapat membuat program menggunakan operator dan fungsi input/output untuk
menyelesaikan suatu masalah
B. DASAR TEORI
Operator
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam
program untuk melakukan sesuatu operasi atau manipulasi, seperti menjumlahkan
dua buah nilai, memberikan nilai ke suatu variabel, membandingkan kesamaan dua
buah nilai.
Operator Aritmatika
Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah :
* perkalian
/ pembagian
% sisa pembagian
+ penjumlahan
- pengurangan
Sedang operator berikut tergolong sebagai operator unary.
- tanda minus
+ tanda plus
contoh operator sisa pembagian seperti berikut:
Sisa pembagian bilangan 7 dengan 2 adalah 1 (7 % 2 1)
Sisa pembagian bilangan 6 dengan 2 adalah 0 (6 % 2 0)
Sisa pembagian bilangan 8 dengan 3 adalah 1 (8 % 3 2)
Operator Penurunan dan Kenaikan
Masih berkaitan dengan operasi aritmatika, C menyediakan operator yang
disebut sebagai operator kenaikan dan operator penurunan, yaitu :
++ operator kenaikan
-- operator penurunan
Operator kenaikan digunakan untuk menaikkan nilai variabel sebesar satu.
Penempatan operator terhadap variabel dapat dilakukan di muka atau di
belakangnya, contohnya :
x = x+1; y = y-1; Dapat ditulis menjadi :
++x; --y;
atau :
x++; y--;
Prioritas Operator Aritmatika
Tabel di bawah ini memberikan penjelasan mengenai prioritas dari masing-masing
operator. Operator yang mempunyai prioritas tinggi akan diutamakan dalam hal
pengerjaan dibandingkan dengan operator yang memiliki prioritas lebih rendah.
Tabel Prioritas operator aritmatika dan urutan pengerjaannya
PRIORITAS OPERATOR URUTAN
Tertinggi
Terendah
( )
! ++ -- + -
* / %
+ -
= += -= *= /= %=
dari kiri ke kanan
dari kanan ke kiri *)
dari kiri ke kanan
dari kiri ke kanan *)
dari kanan ke kiri
*) Bentuk unary + dan unary – memiliki prioritas yang lebih tinggi daripada bentuk
binary + dan binary -
Operator Penugasan
Operator penugasan (assignment operator) digunakan untuk memindahkan
nilai dari suatu ungkapan (expression) ke suatu pengenal. Operator pengerjaan yang
umum digunakan dalam bahasa pemrograman, termasuk bahasa C adalah operator
sama dengan (=). Contoh:
fahrenheit = celcius * 1.8 + 32;
Maka ‘=’ adalah operator penugasan yang akan memberikan nilai dari ungkapan :
celcius * 1.8 + 32 kepada variabel fahrenheit.
a = b = 15;
maka nilai variabel ‘a ‘ akan sama dengan nilai variabel ‘b‘ akan sama dengan 15.
Operator Kombinasi
C menyediakan operator untuk memendekkan penulisan operasi
penugasan.
Tabel Operator kombinasi dan padanannya
Fungsi Output
Fungsi printf()
Fungsi yang paling umum adalah digunakan dalam menampilkan data.
Berbagai jenis data dapat ditampilkan ke layar dengan memakai fungsi ini.
Format :
printf(“string kontrol”, daftar argumen);
String control terdiri dari 2 bentuk informasi
1. Karakter yang akan di cetak secara literal.
2. Data identifier = conversion specification.
Argumen1, argumen2 dll adl sesuatu yg akan mensubstitusi identifier bisa berupa.
x += 2; kependekan dari x = x + 2; x -= 2; kependekan dari x = x - 2; x *= 2; kependekan dari x = x * 2; x /= 2; kependekan dari x = x / 2; x %= 2; kependekan dari x = x % 2; x <<= 2; kependekan dari x = x << 2; x >>= 2; kependekan dari x = x >> 2; x &= 2; kependekan dari x = x & 2; x |= 2; kependekan dari x = x | 2; x ^= 2; kependekan dari x = x ^ 2;
1. variabel, atau
2. konstanta, atau
3. ekspresi / ungkapan yang dievaluasi dahulu sebelum nilainya dicetak.
Contoh :
main() { printf ("saya belajar C"); string printf ('a'); character printf ("dua ditambah dua sama dengan %d",4); variabel }
Desimal dan panjang field yang diberikan dapat diatur. Cara mengatur lebar
field dan jumlah desimal yang ingin dicetak cukup dengan memberikan format
tambahan pada %f .
Contoh program:
main() { float bil = 2.5, nomor = 30.756; printf ("bilangan = %10.2f \n",bil); printf ("nomor = %10.2f, nomor); } Output :
bilangan = ------ 2.50
nomor = ----- 30.76
Fungsi puts()
Digunakan khusus untuk menampilkan data string ke layar. Sifat fungsi ini
adalah string yang ditampilkan secara otomatis akan diakhiri dengan \n (pindah
baris)
Contoh :
#include <stdio.h> main() {
puts("UNIVERSITAS NEGERI SURABAYA"); }
Output :
UNIVERSITAS NEGERI SURABAYA
Fungsi putchar()
Fungsi putchar() digunakan khusus untuk menampilkan sebuah karakter ke
layar. Penampilan karakter tidak diakhiri dengan perpindahan baris.
Contoh :
putchar('A');
menghasilkan output yang sama dengan
printf("%c", 'A');
Fungsi output cout
Digunakan untuk menampilkan kelayar tanpa menggunakan string kontrol,
baik untuk string maupun identifier.Bentuk umum:
Argumen dapat berupa string, variabel atau suatu konstanta. Untuk menggunakan
fungsi cout diperlukan include iostream.h. Contoh: penggunaan fungsi cout :
void main() { int a=10; float b=78.9; char c='a'; cout<<a<<b<<c<<endl; cout<<"a = "<<a<<" b = "<<b<<" c = "<<c<<"\n"; cout<<20; cout<<endl; cout<<40.4; cout<<endl; cout<<'D';}
Fungsi Input
Fungsi scanf()
Fungsi scanf() merupakan fungsi yang dapat digunakan untuk membaca
data dari keyboard dan memasukkan ke dalam program. Daftar argumen dapat
berupa satu atau beberapa argumen dan harus berupa alamat. Untuk
menyatakan suatu alamat dari variabel di depan dapat ditambahkan tanda & ( tanda
& dinamakan sebagai operator alamat ). Contoh :
printf("masukkan bil. pertama : "); scanf() ("%10.2f",&bil);
scanf() menggunakan pointer ke variabel
1. Jika variabelnya bertipe data dasar, maka gunakan &
2. Jika variabelnya adalah string, tidak menggunakan &
cout<<argumen1<<argumen2<<…;
contoh program dengan scanf:
#include <stdio.h> main() { float dolar,rupiah; printf ("berapa dollar uang anda ?\n"); scanf ("%f", &dolar); rupiah = dolar * 12000.00; printf ("uang anda setara dengan "); printf ("%2.2f rupiah \n",rupiah); }
Output :
berapa dollar uang anda ?
1.2
uang anda setara dengan 2400.00 rupiah.
Fungsi gets()
Fungsi input khusus untuk string.
Contoh :
#include <stdio.h> main() { char nama[20]; clrscr(); printf("Masukkan nama : "); gets(nama); printf("\n Nama anda %s",nama); }
Fungsi getch(), getche(), getchar()
Fungsi getch, getche dan getchar adalah input khusus untuk karakter.
getch() = input 1 karakter dan tidak ditampilkan
getche() = input 1 karakter, ditampilkan & tidak perlu Enter
getchar() = input 1 karakter, ditampilkan dan perlu Enter
Fungsi input cin
Bentuk umum :
cin>>argumen1>>argumen2>>…;
Argumen berupa variable. Untuk menggunakan fungsi cin diperlukan include
iostream.h
Ada beberapa cara memasukkan data kedalam fungsi input cin yang mempunyai
beberapa argument:
1. Setiap argument dipisahkan dengan spasi
2. Setiap argument dipisahkan dengan enter
3. Pemisahan argument berdasar masukan sesuai dengan tipe data
argument masing-masing. Jika argumennya mempunyai tipe data
sama, cara ini tidak dapat digunakan.
Contoh:
#include <iostream> using namespace std; int main() {
int a = 10, b = 20,c = 30, d = 40; cout << "Enter four integers: "; cin >> a >> b >> c >> d; cout << "The numbers you entered are:"<< endl; cout<<"a = "<<a<<", b = "<<b<<", c = " << c <<", d = " << d; return 0;
}
C. TUGAS PENDAHULUAN
1. Buatlah flowchart untuk mengkonversi suhu dari Celcius ke Fahrenheit dengan
rumus
F = C * 1.8 + 32
2. Buat flowchart untuk menginputkan data berupa Nama, Umur dan Alamat.
Selanjutnya cetaklah data yang sudah diinputkan tadi
D. PRAKTIKUM
1. Buatlah program untuk tugas pendahuluan no 2 dengan menggunakan fungsi
input:
cin()
gets()
Cobalah dengan memasukkan nama lengkap saudara. Apakah ada perbedaan
hasilnya? Jelaskan.
2. Cobalah program berikut:
#include <iostream> main() {
int fahrenheit; int celsius; cout << "Enter temperature in Fahrenheit: "; cin >> fahrenheit; cout << endl; celsius = 5 / 9 * (fahrenheit - 32); cout<< fahrenheit << " degree F = "<< celsius << " degree C.";
}
Cobalah dengan memasukkan nilai Fahrenheit 32 dan 110. Bagaimanakan
hasilnya? Apakah sesuai dengan perhitungan manual? Jika tidak sesuai
perbaikilah program tersebut.
E. TUGAS PRAKTIKUM
Sebuah toko mengambil keuntungan 30% dari sebuah barang yang akan dijualnya.
Buatlah program, untuk menentukan berapa keuntungan yang didapat toko tersebut
ketika seorang pembeli membeli sejumlah tertentu barang tersebut.
Sebelum membuat program , analisa masalah tersebut dengan menentukan input,
proses dan outputnya serta buatlah flowchartnya.
PRAKTIKUM 3
KONDISIONAL
A. TUJUAN
1. Memahami konsep struktur dasar seleksi kondisi
2. Memahami aturan penulisan struktur kondisi
3. Dapat menerapkan struktur kondisi dalam algoritma penyelesain masalah
4. Dapat membuat program dengan struktur kondisi
B. DASAR TEORI
Struktur Kondisi If
Kondisi if memeriksa apakah suatu kondisi dinyatakan benar (true). Kondisi
merupakan suatu operasi logika. Jika kondisi bernilai true maka program akan
melakukan suatu pernyataan yang telah ditentukan untuk kondisi tersebut. Bentuk
umum dari kodisi if adalah:
Contoh program dengan kondisi if :
void main() { int Num1, Num2; cout<<“masukkan nilai 1:”; cin>>Num1; cout<<“masukkan nilai 2:”; cin>>Num2; if(Num1>Num2) cout<<Num1<<” + “<<Num2<<” = “<<Num1+Num2; }
Dalam contoh program diatas, diminta memasukkan 2 buah nilai integer,
kemudian dua buah nilai tersebut dibandingkan. Jika kondisi nilai pertama lebih
besar dari nilai kedua maka akan ditampilkan dilayar kedua nilai tersebut dan hasil
penjumlahan dari kedua nilai tersebut. Jika kondisi tersebut tidak terpenuhi tidak ada
yang dilakukan program.
Selain perbandingan dilakukan dengan angka, dapat juga dilakukan
perbandingan variabel dengan suatu konstanta. Berikut adalah contoh program
perbandingan yang dilakukan antara variabel dengan kostanta:
If (kondisi) pernyataan
void main() { char c; cout<<“ketikkan sebuah huruf:”; cin>>c; if(c==’a’||c=’e’||c==’i’ ||c=’o’||c==’u’) cout<<“anda mengetik huruf vokal”; }
Dalam contoh diatas, program akan mencetak hasil dilayar hanya jika
masukan berupa karakter vokal. Masukan dibandingkan dengan karakter vokal ‘a’,
‘i’, ‘u’, ‘e’, ‘o’. Karena perbandingan dilakukan terhadap banyak nilai dan akan
bernilai benar jika masukan merupakan salah satu vokal, maka digunakan operator
or (||).
Struktur Kondisi if-else
Kondisi if melakukan operasi hanya berdasar satu kondisi, selain kondisi
tersebut akan diabaikan. Pada pernyataan kondisi if-else , jika kondisi yang
diinginkan tidak terpenuhi maka akan dilakukan suatu operasi lain. Bentuk umum:
Ketika dieksekusi, pertama yang dilakukan adalah memeriksa kondisi. Jika kondisi
bernilai true, sistem mengeksekusi pernyataan 1. Jika kondisi bernilai false sistem
akan mengeksekusi pernyataan 2 (sesudah else) dan kemudan melanjutkan dengan
sisa program.
Contoh program dengan struktur kondisi if-else:
void main() { int Num1, Num2; cout<<“masukkan nilai 1:”; cin>>Num1; cout<< “masukkan nilai 2:”; cin>>Num2; if(Num1>Num2) cout<<Num1<<” - “<<Num2<<” = “<<Num1-Num2; else cout<<Num2<<” – “<<Num1<<” = “<<Num2-Num1; }
if(kondisi) pernyataan1 else pernyataan 2
Dalam contoh program diatas, diminta memasukkan 2 buah nilai integer, kemudian
dua buah nilai tersebut dibandingkan. Jika kondisi nilai pertama lebih besar dari nilai
kedua maka akan ditampilkan dilayar kedua nilai tersebut dan hasil pengurangan
nilai pertama di kurangi nilai kedua. Jika kondisi tersebut tidak terpenuhi maka akan
ditampilkan dilayar kedua nilai tersebut dan hasil pengurangan nilai kedua di kurangi
nilai pertama.
Selain dari if … else , juga dikenal bentuk if … else if . Contoh
penggunaan if .else if untuk mengimplementasikan program kalkulator sederhana
#include <stdio.h> main() { int valid_operator = 1;
char operator; float number1, number2, result; cout<<"Masukkan 2 buah bilangan dan sebuah operator"<<endl; cout<<"dengan format : number1 operator number2"<<endl; cin>>number1>>operator>>number2;
if(operator == '*') result = number1 * number2; else if(operator == '/') result = number1 / number2; else if(operator == '+') result = number1 + number2; else if(operator == '-')
result = number1 - number2; else valid_operator = 0; if(valid_operator) cout<<endl<<number1<<” “<<operator<<” “<<number2 <<” = ”<<result;
else cout<<"Invalid operator!"; }
Pernyataanswitch
Pernyataanswich adalahpernyataanyangdigunakanuntukmenjalankansalah
satupernyataan daribeberapakemungkinanpernyataan,berdasarkannilaidarisebuah
ungkapandannilaipenyeleksian.Pernyataanif…elseif jamakdapatdibangundenganp
ernyataanswitch .BentukUmumnya:
Hal–halyangperludiperhatikanadalah:
1. Dibelakangkeywordcaseharus diikutiolehsebuahkonstanta, tidakbolehdiikuti
olehekspresiataupunvariable.
2. Konstanta yang digunakan bertipe int atau char
3. keyword break digunakan untuk keluar dari switch..case
4. default dieksekusi jika konstanta1 sampai konstanta N tidak ada yang
memenuhiekspresi.
Contoh penggunaan pernyataan switch untuk mengimplementasikan kalkulator
sederhana
#include <stdio.h>
main() { int valid_operator = 1; char operator; float number1, number2, result;
cou<<"Masukkan 2 buah bilangan dan sebuah operator\n";
switch(ekspresi) {
case konstanta1: pernyataan1; break;
case konstanta2: pernyataan2; break;
casekonstanta3: pernyataan3; break; : :
casekonstantaN:pernyataanN; break;
default: pernyataanlain;
}
cou<<"dengan format : number1 operator number2\n\n"; cin>>number1>>operator>>number2; switch(operator) {
case '*' : result = number1 * number2; break; case '/' : result = number1 / number2; break; case '+' : result = number1 + number2; break; case '-' : result = number1 - number2; break; default : valid_operator = 0;
}
if(valid_operator) cout<< number1<<operator<< number2<<result; else cout<<”Invalid operator!\n"; } C. TUGAS PENDAHULUAN
Buatlah analisa dari ketiga tugas praktikum dibawah, tentukan input, output dan
prosesnya. Selanjutnya buat flowchart dari 3 tugas praktikum dibawah!
D. PRAKTIKUM
1. Perbaikilah program berikut sehingga memberikan hasil w = 21
const int SECRET = 5 main () {
int x, y, w, z; z = 9; if z > 10 x = 12; y = 5, w = x + y + SECRET; else x = 12; y = 4, w = x + y + SECRET; cout << "w = " << w << endl;
}
2. Apakah kesalahan dari program berikut? Perbaikilah sehingga program dapat
dijalankan.Apakah hasilnya?
main () {
int a, b; bool found; cout << "Enter two integers: ; cin >> a >> b;
if a > a *b && 10 < b found = 2 * a > b; else { found = 2 * a < b; if found a = 3; c = 15; if b { b = 0; a = 1; }
}
3. int main() {
int testScore; cout << "Enter the test score: "; cin >> testScore; cout << endl; switch (testScore / 10) {
case 0: case 1: case 2: case 3: case 4: case 5: cout << "The grade is F." << endl; case 6: cout << "The grade is D." << endl; case 7: cout << "The grade is C." << endl; case 8: cout << "The grade is B." << endl; case 9: case 10:cout << "The grade is A." << endl; default:cout << "Invalid test score." << endl;
} return 0;
} Pada program ini jika dijalankan :
1. Enter the test score: 110 Invalid test score.
2. Enter the test score: -70 Invalid test score.
3. Enter the test score: 75 The grade is C. The grade is B. The grade is A. Invalid test score
Dari ketiga hasil running program, untuk input diluar 1 sampai 100
memberikan hasil yang benar. Tetapi untuk input 1 sampai 100 hasilnya
salah. Untuk input 75 harusnya tercetakThe grade is C .
Apakah kesalahan dari program tersebut? Cobalah perbaiki sehingga
mendapatkan hasil yang benar.
E. TUGAS PRAKTIKUM
1. Sebuah supermarket membuat prrogram promo, dimana jika seorang pembeli
mempunyai total pembelanjaan Rp. 100.000,- keatas maka akan mendapat
potongan sebesar 10 %. Tulislah sebuah program untuk menentukan harga yang
harus dibayar oleh seorang pembeli dimana total pembelanjaan diinputkan dari
keyboard.
2. Buatlah program untuk menghitung diskriminan dan mencari akar-akar dari
persamaan kuadrat : ax2 + bx + c = 0, dengan ketentuan sbb :
D = b2 - 4ac
Jika D = 0 , maka terdapat 2 akar real yang kembar, yaitu : x1 = x2 = -b /
2a
Jika D > 0 , maka terdapat 2 akar real yang berlainan, yaitu :
x1 = (-b + sqrt(D)) / 2a
x2 = (-b - sqrt(D)) / 2a
Jika D < 0 , maka terdapat 2 akar imaginair yang berlainan, yaitu :
x1 = -b / 2a + (sqrt(-D) / 2a) i
x2 = -b / 2a - (sqrt(-D) / 2a) i
Input : a, b, c (float)
Output : Nilai Diskriminan serta nilai akar-akar persamaan tsb (x1& x2).
3. Buatlah program menggunakan switch-case untuk menampilkan menu dan
melakukan proses sbb :
Menu : 1. Menghitung volume kubus
2. Menghitung luas lingkaran
3. Menghitung volume silinder.
Jika pilihan selain 1, 2 & 3 (default) : Tampilkan pesan kesalahan.
PRAKTIKUM 4
PERULANGAN
A. TUJUAN
1. Memahami kapan keadaan pengulangan digunakan.
2. Mengenal beberapa perintah pengulangan dalam C
3. Mengerti masing-masing format perintah pengulangan dalam C.
4. Dapat menerapkan perintah pengulangan dalam algoritma penyelesaian
suatu masalah
5. Dapat membuat program dengan perintah pengulangan.
B. DASAR TEORI
Struktur Pengulangan while
Pengulangan while digunakan untuk mengeksekusi beberapa instruksi jika
kondisinya bernilai true. Sehingga jika kondisi awal bernilai falsemaka perintah-
perintah dalam while tidak akan pernah dieksekusi.
Bentuk umum:
Ketika dieksekusi, instruksi while pertama memeriksa kondisi. Jika kondisi
memberikan nilai true , sistem akan mengeksekusi instruksi. Kemudian mengulangi
tes kondisi dan mengerjakan instruksi jika hasilnya masih true. Hal ini diulangi
sampai kondisi mengembalikan nilai false.
Contoh penggunaaan pengulangan dengan ‘while’ dalam program untuk
menjumlahkan 10 angka yang dimasukan:
void main() { int number, sum = 0, count = 0; while (count < 10) { cout<<"Masukkan angka"; cin>>number; sum += number; count++; } cout<<"jumlah: "<<sum; }
while (kondisi)
instruksi
Dalam contoh program diatas, perulangan dilakukan 10 kali dengan instruksi while
(count < 10) , count < 10 adalah tes kondisi. Dalam hal ini tes
adalah:“apakahcount lebih kecil dari 10 ? “. Jika jawabannya “ya” maka instruksi di
pengulangan ‘while’ dieksekusi. Jika “tidak” maka perulangan tidak dilakukan lagi
dan menuju perintah selanjutnya yaitucout<<"jumlah: "<<sum;
Struktur Pengulangan do while
Pengulangan ‘do while ’ juga mengeksekusi beberapa instruksi berulang jika kondisi yang
telah ditentukan dipenuhi. Dalam perulangan ‘do while ’ tes kondisi dilakukan pada
akhir pengulangan. Bentuk umum pengulangan ‘do while ’ :
Berikut ini adalah contoh program untuk menghitung nilai count dimulai
dengan 0, dengan penambahan 2 dan akan berhenti pada 15
main() {
int Count = 0; do { cout<< Count * 2; Count++; } while( Count <= 15 );
} Pada contoh program diatas, pertama kali akan dicetak Count * 2 , kemudian
Count ditambahkan satu sebagai perubahan tes kondisi untuk menghitung berapa
kali pengulangan sudah dilakukan pengulangan. Tes kondisi dilakukan setelah
instruksi dalam pengulangan dilakukan dengan instruksi sebagai berikut ( Count
<= 15 ) , jika hasil tes kondisi bernilai true maka pengulangan dikerjakan jika
bernilai false maka pengulangan berhenti.
Struktur Pengulangan For
Struktur pengulangan ketiga adalah pengulangan ‘for’. Pengulangan ‘for’
dapat mengeksekusi instruksi berulang sejumlah yang sudah ditentukan. Bentuk
umumnya adalah sebagai berikut:
do { Instruksi instruksi } while (kondisi)
Inisialisasi merupakan pemberian nilai awal pada variabel yang akan dilakukan tes
kondisi. Tes kondisi digunakan untuk menentukan apakah pengulangan bisa
dikerjakan. Dan yang terakhir perubahan nilai yaitu perubahan nilai untuk tes kondisi
sehingga pengulangan bisa mencapai batas untuk berhenti.
Berikut adalah contoh pengulangan ‘for’ untuk menghitung dari 1 sampai 10:
for (int count = 1; count <= 10; count++) { printf(“%d\n”, count); } Tes kondisi mungkin tidak berhubungan dengan variabel yang diinisialisi dan
diperbaharui. Pada contoh ini pengulangan menghitung sampai pemakai
memberikan respon untuk menghentikan pengulangan. Contoh seperti berikut:
for (count = 1; response != 'T'; count++) { printf(“%d\n”, count); printf("Lanjut (Y/T): "); scanf(“%c”,&response); }
Perulangan Bersarang (Nested Loop)
Pada sebuah perulangan didalamnya dapat terjadi perulangan juga, yang
dikenal dengan nested loop. Perulangan yang berada didalam (inner loop) harus
dieksekusi sejumlah perulangan yang berada diluarnya(outer loop).
Misalnya pada table perkalian berikut:
Pada baris 0 perkalian akan berulang dari kolom 0 sampai 9. Proses perkalian akan
diulang kembali untuk baris 1 dan seterusnya. Untuk permasalahan tersebut maka
diperlukan dua perulangan, perulangan yang berada didalam untuk mengulang
kolom dan perulangan diluar untuk mengulang baris. Berikut contoh programnya:
for(inisialisasi;tes kondisi;perubahan nilai) { instruksi; }
void main() { int row; // Outer loop counter int col; // Inner loop counter for(row=1; row<=10; row++){ { for(col=1; col<=10; col++) cout << row*col << " "; cout << endl; } }
C. TUGAS PENDAHULUAN
Buatlah analisa dari ketiga tugas praktikum dibawah, tentukan input, output dan
prosesnya. Selanjutnya buat flowchart dari 3 tugas praktikum dibawah!
D. PRAKTIKUM
1. Program berikut mempunyai kesalahan dalam perulangan. Temukan
kesalahan tersebut dan perbaiki. Selanjutnya jalankan program yang sudah
diperbaiki, apakah hasil dari program tersebut?
void main()
( int i = 0, value = 0; while (i <= 20) {
if (i % 2 == 0 && i <= 10) value = value + i * i;
else if (i % 2 == 0 && i > 10) value = value + i;
else value = value - i;
} cout << "value = " << value << endl;
}
2. Rubahlah program no 1 menjadi bentuk for loop!
3. Rubahlah program berikut menjadi bentuk do while loop
int main() { int counter,sum,N; cout << "Enter the number of positive integers :”; cin >> N; sum = 0; for (counter = 1; counter <= N; counter++) sum = sum + counter;
cout << "The sum of the first " << N << " positive integers is " << sum << endl; return 0; }
4. Program dibawah ini seharusnya menjumlahkan sejumlah bilangan integer
yang dimasukkan dan berhenti ketika bilangan yang dimasukkan adalah -1.
Kemudian menampilkan banyaknya data yang dimasukkan kecuali -1 dan
hasil penjumlahan semua data tersebut kecuali -1. Perbaikilah program
tersebut sehingga memberikan hasil yang benar. Cobalah dengan
memasukkan data 1 2 3 4 5 -1, jumlah data yang ditampilkan harusnya 5 dan
hasil penjumlahan adalah 15. apakah hasilnya sudah benar?
int main() {
int total = 0,count = 0,number; do{
cin >> number; total = total + number; count++;
}while (number != -1); cout<<"The number of data read is "<< count << endl; cout<<"The sum of the numbers entered is " << total; return 0;
}
E. TUGAS PRAKTIKUM
1. Buatlah program untuk menampilkan semua bilangan genap yang terletak antara
20 sampai dengan 120, dengan menggunakan perulangan while .
2. Buat program untuk menampilkan seperti contoh berikut dengan perulangan for :
jika n = 5 hasil: 55555
4444
333
22
1
n diinputkan
3. Buat program untuk membuat deret 11 sampai nn dimana n diinputkan. Contoh
jika n =3, maka output : 1 4 27. Gunakan fungsi looping do while .
PRAKTIKUM 5
ARRAY
A. TUJUAN
1. Memahami pengertian array.
2. Memahami format penggunaan array dalam C..
3. Membuat program dengan menggunakan array.
B. DASAR TEORI
Array adalah sekelompok data yang mendeskripsikan sesuatu yang sejenis
dan disimpan ke dalam variabel dengan nama yang sama. Ada dua macam array
yaitu array satu dimensi dan array multi-dimensi.
Array Satu Dimensi
Deklarasi Arrray Satu Dimensi
Seperti variabel lain, bentuk umum pendeklarasian array adalah sebagai
berikut:
Identifer adalah tipe dari array. Kemudian diikuti dengan nama yang sesuai aturan C.
Tanda ‘[ ]’, berisi ukuran maksimal yang dapat ditampung array.
Contoh deklarasi array satu dimensi seperti berikut:
char Nama[12];
float Grade[100];
double Angle[360];
Inisialisasi Array Satu Dimensi
Seperti variabel lain, array dapat diinisialisasi. Bentuk umum inisialisasi array
satu dimensi adalah sebagai berikut:
Elemen1 menggambarkan elemen pertama dari array. Elemen dihitung dari 0
kemudian 1 dan seterusnya. Contoh inisialisasi array satu dimensi seperti berikut:
int angka[6] = { 0, 1, 2, 3, 4, 5 }; char Warna[5] = { 'H', 'I', 'T', 'A', 'M' };
identifier nama[ukuran]
identifier name[dimension] = { element1, element2, …, elementn};
Pemrosesan Array Satu Dimensi
Pada Bahasa C++ indeks dimulai dari 0. Untuk menelusuri array, harus
diketahui index yang dimiliki array. Untuk memproses array satu dimensi dapat
digunakan perulangan. Seperti dalam contoh berikut
void main() { float Distance[]= { 44.14, 720.52, 96.08, 468.78 }; cout<<"Anggota array"<<endl; for(int i = 0; i < 4; ++i) cout<<”Distance [“<<i<”] = "<<Distance[i]; }
Array Dua Dimensi
Array berdimensi dua adalah array dari array berdimensi satu. Dengan kata
lain array dua dimensi adalah array dimana masing-masing anggotanya juga array.
Deklarasi Array Dua Dimensi
Array dua dimensi terdiri dari baris dan kolom. Masing-masing baris
menggambarkan suatu kategori dimana datanya mempunyai kategori lain yang
digambarkan pada kolom.
Karena array dua dimensi terdiri dari baris dan kolom maka, digunakan dua
tanda ‘[ ]’. Bentuk umum array dua dimensi:
Identifer adalah tipe dari array. Kemudian diikuti dengan nama berdasar aturan C.
Nama diikuti dengan dua tanda ‘[ ]’, dimana didalamnya terdapat dua ukuran tempat
yang dipesan untuk array tersebut. Ukuran1 menunjukkan ukuran baris yang
dipesan, sedang ukuran2 merupakan ukuran kolom dari array tersebut.
Contoh deklarasi array dua dimensi seperti berikut:
int MHSAngkProdi[4][5];
Deklarasi di atas menggambarkan jumlah mahasiswa dalam sebuah prodi pada
setiap angkatan. Ukuran 4 menggambarkan jumlah angkatan dan setiap angkatan
mempunyai 5 prodi.
identifier nama[ukuran1][ukuran2]
Inisialisasi Array Dua Dimensi
Inisialisasi dilakukan sama seperti pada array satu dimensi. Karena array dua
dimesni digambarkan sebagai baris dan kolom maka jumlah elemen yang dimiliki
array dua dimensi dapat ditentukan dari hasil perkalian jumlah baris * jumlah kolom..
Bentuk umum inisialisasi array dua dimensi adalah sebagai berikut:
Contoh inisialisasi array berdimensi dua seperti berikut:
float bil[2] [3] = { 1,2,3, 4,5,6}
Dari contoh inisialisasi tersebut maka berarti bahwa elemen bil [0] [0] = 1, elemen bil
[0] [1] = 2, elemen bil [0] [2] = 3, elemen bil [1] [0] = 4, elemen bil [1] [1] = 5, elemen
bil [1] [2] = 6. Berikut adalah contoh program dimana terdapat inisialisasi array dua
dimensi:
#include <iostream> int main() {
float Distance[2][4] = {44.14, 720.52, 96.08, 468.78, 6.28, 68.04, 364.55, 6234.12};
printf("Anggota array"; printf( "\nDistance [0][0] %f: " , Distance[0][0]); printf("\nDistance [0][1] %f: " , Distance[0][1]); printf("\nDistance [0][2] %f: " ,Distance[0][2]); printf( "\nDistance [0][3] %f : " ,Distance[0][3]); printf( "\nDistance [1][0] %f : " , Distance[1][0]); printf( "\nDistance [1][1] %f : " , Distance[1][1]); printf("\nDistance [1][2] %f : " ,Distance[1][2]); printf( "\nDistance [1][3] %f : " ,Distance[1][3]); return 0; } Agar elemen array pada contoh di atas mudah dibaca ketika inisialisasi, maka nilai
dapat dapat diberi tanda ‘{ }’ untuk membedakan setiap barisnya, seperti berikut
float Distance[2][4] = { {44.14, 720.52, 96.08, 468.78,} //baris 1 {6.28, 68.04, 364.55, 6234.12 }}; //baris2
identifier nama[ukuran1][ukuran2] = { elemen1, elemen2, …, elemenn};
Pemrosesan Array Dua Dimensi
Untuk menelusuri array, harus diketahui berapa kolom dan baris yang dimiliki
array. Untuk memproses array dua dimensi dapat digunakan dua perulangan for.
Seperti dalam contoh berikut
int main() { float Dist[][4] =
{ { 44.14, 720.52, 96.08, 468.78 }, { 6.28, 68.04, 364.55, 6234.12 } };
Cout<<"Anggota array"<<endl; for(int i = 0; i < 2; ++i) for(int j = 0; j < 4; ++j)
cout<<”Distance [“<<i<<”][“<<j<<”]:"<<Dist[i][j]; return 0; }
C. TUGAS PENDAHULUAN
Buatlah analisa dari ketiga tugas praktikum dibawah, tentukan input, output dan
prosesnya. Selanjutnya buat flowchart dari 3 tugas praktikum dibawah!
D. PRAKTIKUM
1. Cobalah program untuk mengisi dan menampilkan beberapa variabel
arrayberikut
main() { int nilai[10]; int indeks; /* menginisialisasi array supaya berisi 0 */ for(indeks=0; indeks<10; indeks++) nilai[indeks] = 0; nilai[0] = 197; nilai[2] = -100; nilai[5] = 350; nilai[3] = nilai[0] + nilai[5]; nilai[9] = nilai[5] / 10; --nilai[2]; for(indeks = 0; indeks < 10; indeks++) printf("nilai[%d] = %d\n", indeks, nilai[indeks]); }
a. Pada program diatas, jika kondisi pada for diganti menjadi
indeks = 1; indeks <= 10; indeks++
apakah yang terjadi? Mengapa?
b. Rubahlah program diatas sehingga menampilkan nilai secara terbalik dari
indeks terbesar ke indeks terkecil.
2. Cobalah program untuk menjumlahkan dua buah array berikut:
main() { int jml,total = 0, kolom, baris; int bil[][5] = { {1, 2, 35, 7, 10}, {6, 7, 4, 1, 0} }; for(baris = 0; baris <2; baris++ ) for(kolom = 0; kolom < 5; kolom++ ) total += data[baris][kolom]; cout<<"Hasil penjumlahan 2 array tsb adalah = "<<total; }
a. Rubahlah program diatas dimana nilai array bil diinputkan.
b. Selanjutnya rubahlah program dengan jumlah baris dan jumlah kolom
diinputkan. (buat maks baris dan kolom = 10)
3. Cobalah Array dua dimensi untuk membentuk transpose matrik berikut:
main() { float X[2][2], swap; cout<<"Masukkan elemen matriks X"<<endl; cout<<"X[0][0] : X[0][1] = "; cin>>X[0][0]>>X[0][1]); cout<<"X[1][0] : X[1][1] = "; cin>>X[1][0]>>X[1][1]; swap = X[0][1]; X[0][1] = X[1][0]; X[1][0] = swap; cout<<endl<<”Transpose dari matriks X adalah:"; cout<<X[0][0]<<” “<<X[0][1]<<endl; cout<<X[1][0]<<” “<< X[1][1]; }
Rubahlah program diatas dengan jumlah kolom dan baris matriks diinputkan. Data
dari setiap item matriks diinputkan juga. Selanjutnya cari transposenya.
E. TUGAS PRAKTIKUM
1. Buat program untuk menampilkan deret Fibonacci sbb :
Contoh : jumlah deret = 10
0 1 1 2 3 5 8 13 21 34
2. Buat program untuk menginputkan n bilangan Kemudian cetaklah semua
bilangan dimana bilangan yang sama cukup dicetak satu kali. Contoh, jika
diinputkan : 1 2 3 1 3 4, maka output : 1 2 3 4.
3. Buat program daftar rapor siswa, dimana pada rapor setiap siswa terdapat daftar
nilai semua pelajaran, nilai rata-rata kelas setiap pelajaran. Jumlah mata
pelajaran pada sejumlah 5. Jumlah siswa diinputkan.
Contoh, jika data siswa :
Siswa Nilai Pelajaran 1 80 70 90 100 60 2 70 60 70 80 90
Maka output:
Rapor siswa 1: Rapor siswa 2 Pelajaran 1: 80 Rata-rata kelas : 75 Pelajaran 1: 80 Rata-rata kelas : 75 Pelajaran 2: 70 Rata-rata kelas : 65 Pelajaran 2: 70 Rata-rata kelas : 65 Pelajaran 3: 90 Rata-rata kelas : 80 Pelajaran 3: 90 Rata-rata kelas : 80 Pelajaran 4: 100 Rata-rata kelas : 90 Pelajaran 4: 100 Rata-rata kelas : 90 Pelajaran 5: 65 Rata-rata kelas : 75 Pelajaran 5: 65 Rata-rata kelas : 75
PRAKTIKUM 6
STRING
A. TUJUAN
1. Memahami tentang konsep string
2. Mengetahui cara mengakses elemen string
3. Mengetahui berbagai fungsi mengenai string dan dapat menerapkan dalam
program
4. Dapat membuat program dengan menggunakan string
B. DASAR TEORI
Untuk membuat suatu string diperlukan array karena C hanya mempunyai tipe
char.. Contoh deklarasi string:
char Name[20]; char BookTitle[40];
char WebReference[80]; char WeekDay[4];
Untuk inisialisasi variable string sama seperti inisialisasi data array. Contoh
inisialisasi string:
char Name[6] = { ‘F', 'a', ‘r', ‘i', 's' };
atau dapat dilakukan seperti berikut:
char Name[12] = “Faris";
Seperti array yang lain, masing-masing anggota array karakter dapat diakses
berdasar indeksnya.
Jika diperlukan daftar string lebih dari satu, maka digunakan array 2 dimensi,
dimana dimensi pertama merupakan jumlah string pada variabel tersebut dan
dimensi kedua menunjukkan banyaknya karakter untuk masing-masing string.
Contoh:
char NamaMhs[4][10] = { “Aditya", “Budi", “Charles", “Doni" };
NamaMhs adalah array dengan 4 string, dan tiap string mempunyai maksimal 9
karakter (+1 untuk karakter null-terminated).
Fungsi-fungsi untuk string
Fungsi strlen().
Untuk mengetahui banyaknya karakter pada suatu string.
syntax : int strlen(const char* Value);
Fungsi strcat()
Untuk menambahkan dua string
syntax : char *strcat(char *Destination, const char *Source);
Fungsi strncat()
Untuk menambahkan sejumlah karakter pada satu string kesuatu string yang lain.
Syntax: char* strncat(char* Destination, const char* Source, int Number);
Fungsi strcpy()
Untuk menyalin satu string ke string yang lain.
syntax : char* strcpy(char* Destination, const char* Source);
Fungsi strncpy()
Untuk menyalin sejumlah karakter dari string yang lain.
syntax: char* strncpy(char* Destination, const char* Source, int Number);
Fungsi strcmp
Membandingkan 2 string
syntax: int strcmp(const char* S1, const char* S2);
Fungsi stricmp()
Membandingkan dua string tanpa memandang huruf besar atau huruf kecil
syntax : int stricmp(const char* S1, const char* S2);
Hasil perbandingan: negative jika S1 < S2
0 jika S1 dan S2 sama
positive jika S1 > S2
Fungsi strlwr()
Digunakan untuk mengkonversikan string ke huruf kecil
syntax : char *strlwr(const char *S);
Fungsi strupr()
Untuk mengkonversikan string ke huruf besar.
syntax : char *strupr(const char *S);
Fungsi strchr()
Memeriksa apakah huruf pertama pada string sesuai dengan karakter tertentu.
syntax : char* strchr(const char* S, char c);
Fungsi strrchr()
Memeriksa apakah huruf terakhir pada string sesuai dengan karakter tertentu
syntax : char* strrchr(const char* S, char c);
C. TUGAS PENDAHULUAN
Buatlah analisa dari kedua tugas praktikum dibawah, tentukan input, output dan
prosesnya. Selanjutnya buat flowchart dari 2 tugas praktikum dibawah!
C. PRAKTIKUM
Cobalah program program dibawah ini :
1. Memasukkan data string dari keyboard #define MAKS 15 main() { char nama[MAKS]; printf("Masukkan nama Anda : "); gets(nama); printf("\nHalo, %s. Selamat belajar string.\n", nama); }
2. Variasi dalam menginisialisasi string.
main() { char kompiler_c[] = {'V','i','s','u','a','l',' ','C','+','+','\0'}; char kompiler_C[] = "Visual C++"; puts(kompiler_c); printf("%s\n", kompiler_C); }
3. Menyalin isi string1 ke string2 menggunakan fungsi strcpy().
main() { char str1[80]; char str2[]="ABCDE"; strcpy(str1, str2); //menyalin isi str2 ke str1 printf("String pertama adalah : %s\n", str1); printf("String kedua adalah : %s\n", str2); }
4. Menghitung suatu string masukan menggunakan fungsi strlen().
#define MAKS 256 main() { char kal[MAKS]; printf("Masukkan kalimat yang akan dihitung panjangnya :\n"); fgets(kal, sizeof kal, stdin); printf("\nPanjang string tsb = %d karakter\n", strlen(kal)); }
5. Menggabungkan isi string1 dengan string2 menggunakan fungsi strcat().
#define PJG 15 main() { char str1[PJG], str2[PJG]; strcpy(str1, "sala"); //str1 diisi "sala" strcpy(str2, "tiga"); //str2 diisi "tiga" strcat(str1, str2); //tambahkan str2 ke akhir st1 printf("str1 --> %s str2 --> %s\n", str1, str2); }
6. Membandingkan isi string1 dengan string2 menggunakan fungsi strcmp().
main() { char str1[]="HALO"; char str2[]="Halo"; char str3[]="HALO"; printf("Hasil pembandingan %s dengan %s --> %d\n", str1, str2, strcmp(str1, str2)); printf("Hasil pembandingan %s dengan %s --> %d\n", str2, str1, strcmp(str2, str1)); printf("Hasil pembandingan %s dengan %s --> %d\n", str1, str3, strcmp(str1, str3)); }
7. Mencari karakter dalam sebuah string menggunakan fungsi strchr().
main() { char str[]="ABcde"; char *hasil1; char *hasil2; hasil1 = strchr(str, 'B'); hasil2 = strchr(str, 'X'); printf("Dari string ABcde\n"); printf("Mencari karakter B = %s\n", hasil1); printf("Mencari karakter X = %s\n", hasil2); }
E. TUGAS PRAKTIKUM
1. Buat program untuk membalik string masukan. (Petunjuk : gunakan fungsi
strlen() untuk mendapatkan panjang kalimat)
Contoh :
Kalimat yang mau dibalik : Saya sedang belajar C
Hasil pembalikan kalimat : C rajaleb gnades ayaS
2. Buat program untuk memasukkan data nama mahasiswa dalam satu kelas.
Kemudian cetaklah daftar nama mahasiswa yang mempunyai huruf pertama
sesuai masukan.
ReturnValue NamaFungsi(Argumen);
void NamaFungsi(Argumen);
PRAKTIKUM 7
FUNGSI
A. TUJUAN
1. Memahami konsep dasar dan definisi fungsi
2. Mengerti dan memahami cara deklarasi dan pemanggilan fungsi
3. Membuat algoritma yang memuat fungsi
4. Membuat program dengan mengaplikasikan fungsi untuk menyelesaikan suatu
masalah
D. DASAR TEORI
Deklarasi Fungsi
Bentuk umum deklarasi fungsi adalah sebagai berikut:
Jika diinginkan melakukan suatu permintaan fungsi tanpa menginginkan
suatu hasil, maka fungsi dikualifikasikan sebagai ‘void’ dan tidak mempunyai return
value. Deklarasinya seperti berikut:
Tetapi jika suatu fungsi diharapkan akan memberikan nilai tertentu maka return
value berupa tipe data tertentu, seperti int, float, double, atau char. Berikut adalah
contoh deklarasi fungsi yang mempunyai return value :
char NamaFungsi(Argumen);
float NamaFungsi(Argumen);
Nama sebuah fungsi mengikuti aturan penamaan variable dalam C.
Fungsi yang tidak membutuhkan sesuatu maka dalam ‘()’ kosong. Fungsi
dapat memerlukan lebih dari satu kebutuhan. Kebutuhan fungsi ini dinamakan
argumen. Argumen didefinisikan dengan tipe data dan nama argumen.
Mendefinisikan Fungsi
Bentuk umum pendefinisian fungsi :
Contoh sebuah fungsi sederhana:
void Message() {printf(¨contoh Fungsi dalam C¨);
PEMANGGILAN FUNGSI
Untuk memanggil satu fungsi dari fungsi lain, dituliskan nama dari fungsi
tersebut serta dicantumkan argument jika diperlukan.
Contoh:
void main()
{ message(); //pemanggilan fungsi message()
}
PENEMPATAN FUNGSI DALAM PROGRAM
Ada dua cara untuk menempatkan definisi fungsi dalam program :
1. Definisi fungsi diletakkan setelah fungsi yang memanggil.
Untuk kondisi ini fungsi harus dideklarasikan terlebih dahulu sebelum dilakukan
pemanggilan. Bentuknya sebagai berikut:
ReturnValue NamaFungsi(Argumen) {Badan fungsi};
ReturnValue FungsiC();
main() { FungsiC(); }
ReturnValue FungsiC()
{
Badan FungsiC
}
2. Deklarasi dan definisi fungsi dilakukan sebelum dilakukan pemanggilan.
Teknik Pengembalian Nilai
void
Fungsi yang tidak mempunyai return value dideklarasikan dan didefinisikan
sebagai ‘void’. Sebuah fungsi dapat bertipe void jika tidak diharapkan akan
memberikan nilai tertentu.
Return Value
Jika sebuah fungsi dideklarasikan untuk mengembalikan suatu nilai tertentu,
maka kompiler harus mengetahui nilai apa yang akan dihasilkan fungsi. Nilai yang
dihasilkan harus sesuai dengan tipe yang dideklarasikan. Bentuk umum dari fungsi
dengan pengembalian nilai tertentu adalah sebagai berikut:
ReturnValue FungsiC()
{
Badan FungsiC
}
main() { FungsiC(); }
ReturnValue FungsiC()
{
Pernyataan-pernyataan;
return Nilai;
}
void main() { variabel = FungsiC(); }
Nilai yang merupakan pengembalian nilai dalam suatu fungsi dapat berupa :
1. Konstanta
2. Variabel
3. Ekspresi
Teknik Pengiriman Argumen
Untuk melakukan pekerjaannya, terdapat fungsi yang memerlukan argumen.
Pengiriman Argumen berdasarkan Nilai
Untuk menggunakan fungsi didalam fungsi lain maka harus dilakukan
pemanggilan fungsi dengan memanggil nama fungsi dan memberikan argumen yang
diperlukan. Hanya nama dari argumen yang diperlukan tanpa tipe datanya.
Contoh program sebagai berikut:
float jumlah(float, float); main() { float a, b,c; printf("Masukkan nilai a : "); scanf("%f", &a); printf("Masukkan nilai b : "); scanf("%f", &b); c = jumlah(a, b); printf("\nHasil penjumlahan a + b = %g\n", c); } float jumlah(float x, float y) / * definisi fungsi * / { return(x + y); }
Pengiriman Argumen dengan Referensi
C mengijinkan fungsi yang dipanggil untuk memodifikasi nilai argumen yang
dikirimkan jika diperlukan. Jika diperlukan fungsi yang dipanggil untuk merubah nilai
dari argumen yang dikirimkan dan memberikan hasil nilai yang sudah dirubah maka
argumen harus dikirimkan menggunakan referensinya.
Untuk mengirimkan argumen sebagai referensi, ketika mendeklarasikan
fungsi, nama argumen diawali dengan ´&´. Argumen yang dikirimkan sebagai
referensi biasa 0, satu, atau lebih atau bisa juga semua argumen.
Berikut adalah contoh program untuk menukar nilai dengan argumen
berdasar referensi::
void tukar (&int, &int); main() { int a,b; a = 88; b = 77; printf("Nilai sebelum pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); tukar(a,b); printf("\nNilai setelah pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); } void tukar(int &x, int &y) { int z; z = x; x = y; y = z; printf("\nNilai di akhir fungsi tukar()\n"); printf("x = %d y = %d\n", x, y); }
C. TUGAS PENDAHULUAN
Buat Flowchart untuk tugas praktikum dibawah.
E. PRAKTIKUM
1. Cobalah program untuk memanggil fungsi berulang-ulang berikut :
void cetak_pesan(void); main() { int i; for(i=1; i<=5; i++) cetak_pesan(); printf("\n"); } void cetak_pesan() { printf("Cetak pesan ini\n");}
Rubahlah program diatas dengan banyaknya perulangan berdasar input.
2. Perbaikilah program untuk menghitung nilai bilangan kuadrat berikut.
void square(float); //prototype function main() { printf("%f, %f, %f\n", square(1.), square(2.),square(3.)); } void square(float x) { cout<<x * x; } 3. Perbaikilah program untuk mengkonversi besaran sudut dari derajat ke radian
berikut.
#define PI 3.14159f float radian(float); //Prototype main() //Main function { float derajat; printf("Masukkan besar sudut dlm derajat : "); scanf("%f", &derajat); printf("%g derajat=%g radian\n", derajat, radian(derajat)); } float radian(float x) //The function { float hasil; hasil = x / 180.0f * PI; }
4. Cobalah program untuk menampilkan bilangan kuadrat secara random berikut.
Apakah kegunaan perintah srand() dan rand() ?
#include <stdio.h> #include <stdlib.h> #include <time.h> squareInt(int); randomInt(int);
main() { int rs;
srand(time(NULL)); rs = squareInt(randomInt(10)); printf("Random Square = %d\n", rs); } randomInt(int y) { return 1 + rand() % y; } squareInt(int x) { return x * x; }
5. Perbaikilah program untuk mencari bilangan terkecil berikut.
float minimum (float); main() { float a, b, kecil; printf("Masukkan nilai a : "); scanf("%f", &a); printf("Masukkan nilai b : "); scanf("%f", &b); kecil = minimum(a); printf("\nBilangan terkecil antara %g dan %g adalah %g\n\n", a, b, kecil); } float minimum(float x, y) { if (x < y) return(x); else return(y); }
6. Cobalah dua program dibawah. Apakah perbedaannya? Apakah pengaruh
penggunaan tanda & (alamat) pada parameter fungsi untuk penukaran dua
bilangan ? Jelaskan
a.
void tukar (int, int); main() { int a = 88, b = 77; printf("Nilai sebelum pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); tukar(a,b); printf("\nNilai setelah pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); } void tukar(int x, int y) { int z; z = x; x = y; y = z; printf("\nNilai di akhir fungsi tukar()\n"); printf("x = %d y = %d\n", x, y); }
b.
void tukar (int *, int *); /* prototype fungsi */ main() { int a,b; a = 88; b = 77; printf("Nilai sebelum pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); tukar(&a,&b); /* alamat a dan alamat b */ printf("\nNilai setelah pemanggilan fungsi\n"); printf("a = %d b = %d\n", a, b); } void tukar(int *px, int *py) {
int z; z = *px; *px = *py; *py = z; printf("\nNilai di akhir fungsi tukar()\n"); printf("x = %d y = %d\n", *px, *py); }
7. Cobalah program berikut. Mengapa variabel a pada main program dan pada
fungsi mempunyai nilai berbeda?
int OddEvenTest(int); main() { int a, hasil; a = 5; hasil = OddEvenTest(a); printf(“\n Dalam main program :\n); printf("a = %d; hasil = %d\n", a, hasil); } OddEvenTest(int b) { int a; a = b % 2; printf("nilai a dalam fungsi= %d\n", a); return a; }
F. TUGAS PRAKTIKUM
1. Buatlah fungsi untuk menghitung jumlah dan rata-rata dari tiga bilangan riil.
Tulislah sebuah program untuk menghitung jumlah luas dua bujursangkar. Rumus
bujursangkar terletak didalam fungsi.
2. Buatlah suatu fungsi ganjil() yang mengembalikan nilai 1 jika argumen yang
diberikan adalah bilangan ganjil dan mengembalikan nilai 0 jika argumen tsb bukan
bilangan ganjil.
PRAKTIKUM 8
POINTER
A. TUJUAN
1. Memahami tentang konsep dari variabel pointer
2. Memahami tentang pointer dalam fungsi
3. Dapat menerapkan komputer dalam menyelesaikan masalah
4. Dapat membuat program dengan variabel pointer.
B. DASAR TEORI
Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke obyek
lain. Pada kenyataan yang sebenarnya, variabel pointer berisi alamat dari suatu
obyek lain (yaitu obyek yang dikatakan ditunjuk oleh pointer). Sebagai contoh, px
adalah variabel pointer dan x adalah variabel yang ditunjuk oleh px. Kalau x berada
pada alamat memori (alamat awal) 1000, maka px akan berisi 1000.
Mendeklarasikan Variabel Pointer
Suatu variabel pointer dideklarasikan dengan bentuk sebagai berikut :
Sebagai contoh :
int px; / *contoh 1 */ char *pch1, *pch2; / *contoh 2 */
Contoh pertama menyatakan bahwa px adalah variabel pointer yang menunjuk ke
suatu data bertipe int, sedangkan contoh kedua masing pch1 dan pch2 adalah
variabel pointer yang menunjuk ke data bertipe char .
Mengatur Pointer agar Menunjuk ke Variabel Lain
Agar suatu pointer menunjuk ke variabel lain, mula-mula pointer harus diisi
dengan alamat dari variabel yang akan ditunjuk. Untuk menyatakan alamat dari
suatu variabel, operator & (operator alamat, bersifat unary) bisa dipergunakan,
tipe *nama_variabel
dengan menempatkannya di depan nama variabel. Sebagai contoh, bila x
dideklarasikan sebagai variabel bertipe int , maka&xberarti “alamat dari variabel x ”.
Adapun contoh pemberian alamat x ke suatu variabel pointer px (yang
dideklarasikan sebagai pointer yang menunjuk ke data bertipe int ) yaitu :
Pernyataan di atas berarti bahwa px diberi nilai berupa alamat dari variabel x.
Setelah pernyataan tersebut dieksekusi barulah dapat dikatakan bahwa px
menunjuk ke variabel x .
Mengakses Isi Suatu Variabel Melalui Pointer
Jika suatu variabel sudah ditunjuk oleh pointer, variabel yang ditunjuk oleh
pointer tersebut dapat diakses melalui variabel itu sendiri (pengaksesan langsung)
ataupun melalui pointer (pengaksesan tak langsung). Pengaksesan tak langsung
dilakukan dengan menggunakan operator indirection (tak langsung) berupa simbol *
(bersifat unary). Contoh penerapan operator * yaitu :
*px yang menyatakan “isi atau nilai variabel/data yang ditunjuk oleh pointer px ” .
Contoh:
main() { int y, x = 87; /* x & y bertipe int */
int *px; /* var pointer yang menunjuk ke data yang bertipe int */
x = 87; px = &x; /* px diisi dengan alamat dari variabel x */ y = *px; /* y diisi dengan nilai yg ditunjuk oleh px */
printf("Alamat x = %p\n", &x); printf("Isi px = %p\n", px); printf("Isi x = %d\n", x); printf("Nilai yang ditunjuk oleh px = %d\n", *px); printf("Nilai y = %d\n", y);
}
px = &x;
Contoh eksekusi :
Alamat x = 0012FF78 Isi px = 0012FF78 Isi x = 87 Nilai yang ditunjuk oleh px = 87 Nilai y = 87
Mengakses dan Mengubah isi Suatu Variabel Pointer
Contoh berikut memberikan gambaran tentang pengubahan isi suatu variabel
secara tak langsung (yaitu melalui pointer).
main() { float d = 54.5, *pd; printf("Isi d mula-mula = %g\n", d); pd = &d; // memberikan alamat dari d ke pd *pd += 10; printf("Isi d sekarang = %g\n", d); } hasil eksekusi : Isi d mula-mula = 54.5 Isi d sekarang = 64.5
Adapunpd = &d; berarti pd menunjukke variabeld.Sedangkan pernyataan berikutnya *pd = *pd + 10; berarti “jumlahkan yang ditunjuk pd dengan 10 kemudian berikan ke yang ditunjuk oleh pd”, atau identik dengan pernyataan d = d + 10;
Pointer dan Array
Hubungan antara pointer dan array pada C sangatlah erat. Sebab
sesungguhnya array secara internal akan diterjemahkan dalam bentuk pointer.
Pembahasan berikut akan memberikan gambaran hubungan antara pointer dan
array. Misalnya dideklarasikan di dalam suatu fungsi
int jumlah[3] = { 40, 45, 64 }; int *ptJml;
Kemudian diberikan instruksi
ptJml = &jumlah[0];
maka ptJml akan berisi alamat dari elemen array jumlah yang berindeks nol.
Instruksi di atas bisa juga ditulis menjadi
ptJml = jumlah;
sebab nama array tanpa tanda kurung menyatakan alamat awal dari array.
Pointer sering digunakan untuk variable string karena string merupakan array,seperti
pada contoh berikut
main() { /* pkota menunjuk konstanta string “SURABAYA” */ char *pkota = “SURABAYA”;
printf(“String yang ditunjuk oleh pkota = ”); puts(pkota); }
Contoh eksekusi :
String yang ditunjuk oleh pkota = SURABAYA
Pointer Sebagai Parameter Fungsi
Jika parameter fungsi bertipe pointer, maka parameter tersebut merupakan
parameter pass by reference. Sehingga nilai suatu variabel internal dapat diubah
oleh fungsi yang dipanggil. Sebagai contoh dapat dilihat pada program berikut.
void naikkan_nilai(int *x, int *y); main() {
int a = 3; int b = 7; printf("SEMULA : a = %d b = %d\n", a, b); naikkan_nilai(&a, &b); printf("KINI : a = %d b = %d\n", a, b);
}
void naikkan_nilai(int *x, int *y) { *x = *x + 2; *y = *y + 2;
}
Contoh hasil :
Semula : a = 3 b = 7 Kini : a = 5 b = 9
Dynamic Allocation
Kompailer dapat menyediakan memori ketika program dieksekusi, dengan
mendefinisikan identifier baru ke variable pointer sbb:
NamaPointer = new identifier;
Contoh:
ptrNum = new int;
jika tidak diperlukan lagi dapat dihapus dengan perintah delete .
delete NamaPointer;
Contoh:
delete ptrNum;
Variabel dinamik dibuat dan dihancurkan saat program berjalan. Berikut contoh
potongan program pembentukan variable dinamik.
int *p ; // deklarasi variable pointer integer p = new int ; // pointer p menunjuk ke suatutempat di
// memori yang akan berisi data integer *p = 25 ; // tempat yang ditunjuk pointer p diisi 25
Gambaran perintah diatas seperti berikut:
Jika sudah tidak diperlukan, isi memori perlu dihapus agar dapat digunakan untuk
yang lain. Dapat digunakan operator delete seperti berikut:
delete p ; //Menghapus variabel dinamik yang ditunjuk p
Setelah dihapus, variable pointer p kembali menjadi variabel pointer yang menunjuk
ke NULL. Pointer dapat digunakan lagidengan mendefinisikan kembali
menggunakan perintah new.
Berikut contoh program dengan variable dinamik
void main() { int Umur; int *Age; Age = & Umur; *Age = 15;
cout<<"Umur = “<< Umur; cout<<"*Age =" <<*Age; Age = new int; *Age = 17; cout<<"Umur = “<< Umur; cout<<"*Age = “<< *Age ; delete Age; }
Dynamic array
Array dapat dibentuk saat program dijalankan, hal ini dinamakan dynamic
array. Untuk membuat dynamic arraydigunakan operator new. Contoh seperti berikut
:
int *p; //mendeklarasikan variable pointer int p
p = new int [10]; // p menunjuk ke suatu tempat di memori
//yang berisi 10 tempat yang berurutan
Operator new diatas membuat array bertipe int dan berukuran 10 dan p menunjuk
ke alamat array tersebut. Contoh perintah selanjutnya :
*p = 25; // nilai 25 akan disimpan pada array indeks pertama. p++; // p akan bergeser ke indeks selanjutnya
*p = 35; // nilai 35 disimpan ke lokasi array indeks kedua
Dengan perintah incerement dan decrement, pointer dapat bergeser naik atau turun
pada indeks array.
Saat dynamic array tidak digunakan lagi dapat dihapus dengan perintah delete .
Contoh
Delete [] p;
Dynamic array dapat juga diisi tanpa menggeser letak pointer. Untuk itu dapat
diisi dengan menggunakan indeks pada pointer sama seperti pada aray biasa.
Contoh:
p[0] = 25; p[1] = 35;
C. TUGAS PENDAHULUAN
1. Misalkan terdapat deklarasi variable seperti berikut :
int *num; int N;
Tuliskan perintah untuk mengisi variable N melalui variable pointer num
2. Misalkan terdapat deklarasi variable seperti berikut : int *num;
a. Tuliskan perintah C++ untuk membuat dynamic array berukuran 10
b. Buatlah perintah untuk memasukkan data pada dynamic array tersebut
c. Tuliskan perintah untuk menghapus dynamic array tersebut.
D. PRAKTIKUM
1. Cobalah program untukmengakses isi suatu variabel melalui pointer berikut.
Perbaikilah jika terdapat kesalahan.
main() { int *pu;
int nu; int u = 1234; pu = &u; nu = *pu; cout<<”Alamat dari u = "<< *u<<endl; cout<<”Isi pu = "<< pu<<endl;
cout<<”Isi u = “<< u<<endl; cout<<”Nilai yang ditunjuk oleh pu = "<< *pu<<endl; cout<<”Nilai nu = "<< nu;
}
2. Cobalah program untuk mengubah isi suatu variabel melalui pointerberikut.
Perbaikilah jika terdapat kesalahan.
main() { float d = 54.5; int *pd; cout<<"Isi d mula-mula = "<<d<<endl; pd = &d; *pd += 10; cout<<"Isi d sekarang = “<<d; }
3. Dimanakah letak kesalahan program berikut? Mengapa? Coba perbaiki sehingga
bisa dijalankan.
void main()
{ int *p; int *q; p = new int[5]; *p = 2; for (int i = 1; i < 5; i++) p[i] = p[i - 1] + i; q = p; delete [] p; for (int j = 0; j < 5; j++) cout << q[j] << " "; cout << endl;
}
4. Cobalah program di bawah. Bagaimana nilai a dan b sebelum dan sesudah
pemanggilan fungsi? jelaskan.
void naikkan_nilai(int *x, int *y); main() { int a = 3; int b = 7;
printf("SEMULA : a = %d b = %d\n", a, b); naikkan_nilai(&a, &b); printf("KINI : a = %d b = %d\n", a, b); }
void naikkan_nilai(int *x, int *y) { *x = *x + 2;
*y = *y + 2; }
E. TUGAS PRAKTIKUM 1. Buat program untuk menampilkan sebaris string seperti contoh berikut ;
“Unesa Surabaya“
menggunakan variable pointer (pointer to string).
2. Buat program untuk mencetak huruf keempat ( V ) dari kata :
“UNIVERSITAS “ dengan menggunakan variabel pointer .
3. Buat program untuk memasukkan dan mencetak nilai sejumlah mahasiswa.
Gunakan variable pointer untuk menyimpan nilai tersebut. Jumlah mahasiswa
tergantung dari input