Anda di halaman 1dari 68

MODUL PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN I

Bahasa
: C++
Software : Turbo C++ 4.5

LABORATORIUM KOMPUTER
PROGRAM TEKNIK INFORMATIKA
UNIVERSITAS TEKNOLOGI YOGYAKARTA
2009

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

1.
PENDAHULUAN
Istilah-Istilah Umum
Sebelum mempelajari lebih lanjut, perlu diketahui beberapa istilah umum yang sering
digunakan dalam hubungannya dengan Algoritma dan pemrograman.
Program, merupakan kata, ekspresi, pernyataan atau kombinasinya yang disusun dan
dirangkai menjadi satu kesatuan prosedur yang berisi urutan langkah untuk
menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa
pemrograman, sehingga dapat dieksekusi oleh komputer. Pemrograman
Bahasa Pemrograman, merupakan prosedur/tata cara penulisan program. Pada
bahasa pemrograman, terdapat 2 hal penting, yaitu sintax dan sematik. Sintax
merupakan aturan aturan gramatikal yang mengatur tata cara penulisan kata, ekpresi
dan pernyataan. Sematik merupakan anturan untuk menyatakan suatu arti.
Pemrograman merupakan suatu proses mengimplementasikan urutan langkah untuk
menyelesaikan suatu masalah dengan menggunakan bahasa pemrrograman.
Beberapa Standar dalam penulisan program yang baik:
a. Kebenaran logika dan penulisan
b. Waktu minimum untuk penulisan program
c. Kecepatan maksimum untuk mengeksekusi program
d. Ekpresi penggunaan memori yang sesuai
e. Kemudahan merawat dan mengembangkan program
f. User friendly
g. Portabilias Program, bisa berjalan di berbagai sistem operasi
h. Pemrograman Modular/Pemecahan program dalam beberapa modul
Selain standar penulisan program, terdapat pula Standar perawatan dan
pengembangan program, sebagai berikut:
a. Dokumentasi yang baik
b. Penlisan Intruksi
- Penulisan progrm yang baik/teratur
Contoh penulisan yang kurang baik:
{
printf(Terima kasih\n);Tekan enter);}
- Pemisahan antar modul dengan spasi

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Penggunaan hurus besar dan huruf kecil dalam penulisan variabel dan
komentar
- Pemberian tabulasi yang berbeda dalam penulisan program
c. Penggunaan prosedur-prosedur standar yang sudah dikenal oleh umum.
Algoritma merupakan suatu metode khusus yang tepat dan terdiri dari sereangkaian
langkah yang terstruktur dan ditulis secara sistematis, yang akan dikerjakan untuk
menyelesaikan suatu masalah. Proses dari maslaah hingga menjadi suatu algoritma
disebut dengan tahap pemecahan masalah, sedangkan tahap dari algoritma hingga
menjadi sautu program yang siap diimplementasi disebut dengan tahap implementasi.
masalah

Tahap pemecahan
masalah

algoritma

Tahap
implementasi

solusi

Algoritma pemrograman yang baik memiliki beberapa ciri, yaitu:


a. tepat, benar, sederhana, standar dan efektif
b. logis, terstruktur, dan sistematis
c. semua operasi terdefinisi
d. semua proses harus berakhir setelah sejumlah langkah dilakukan
e. ditulis dengan bahasa yang standar dengan format pemrograman agar mudah
untuk diimplejmentasikan dan tidak menimbulkan arti ganda.
Contoh Algoritma:
Perhatikan gambar di bawah ini:

Terdapat 2 gelas, A dan B. Gelas A diisi dengan Air Teh. Sedangkan gelas B diisi
dengan Air Kopi. Bagimana cara menukar, sehingga hasil akhirnya Gelas A menjadi
berisi Air Kopi dan gelas B berisi Air Teh?
Mungkin sebagian kita membuat langkah-langkah (Algoritma) sebagai berikut:
1. Masukkan air Teh dari Gelas A ke Gelas B
2. Masukkan air Kopi dari Gelas B ke Gelas A
Algoritma dan Pemrograman I dengan bahasa C++
Universitas Teknologi Yogyakarta

Tetapi perlu diperhatikan, bahwa Algoritma di atas merupakan sebuah algoritma yang
tidak logis. Bagaimana mungkin Air Teh dari gelas A dimasukkan ke gelas B
sementara gelas B masih ada isinya?
Agar dapat melakukan pertukaran dengan benar, tentunya diperlukan satu buah gelas
kosong, sebagai perantara. Anggap saja Gelas C., sehingga Algoritmanya adalah:
1. Sediakan Gelas C
2. Masukkan air Teh dari Gelas A ke Gelas C
3. Masukkan air Kopi dari Gelas B ke Gelas A
4. Masukkan air Teh dari Gelas C ke Gelas B

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Contoh lain, penggunaan algoritma dapat dijumpai pada :


-

langkah-langkah pembuatan kue

langkah-langkah merakit komputer

langkah-langkah mengisi pulsa telepon

dll

Pemrogram atau Programmer adalah orang yang bekerja menyusun sautu program.
Untuk menghasilkan program yang baik dibutuhkan pemrogram yang baik dan
berkualitas. Adapun beberapa cirinya adalah:
-

mampu menyusun algoritma dengan baik

menguasai bahasa dan teknik penulisan program dengan baik

dapat bekerja sama dalam sautu tim kerja

dapat bekerja secara efisien dan tepat wktu.

Bahasa C dan C++


Berbicara dengan c++, tidak terlepas dari C yang merupakan bahasa pendahulunya. C
pertama kali dimunculkan oleh Brian W. Kerninghan dan Dennis M. Rithche pada
tahun (sekitar) 1972. sekitar 1 dekade setelahnya muncullah C++ oleh Bjarne
Stroustrup dari Laboratorium Bell, AT&T, tahun 1983. Nama C++ diberikan oleh
Rick Mascitti . Salah satu Keistimewaan dari C++ adalah dukungannya pada program
berorientasi obyek (Object Oriented Programming/OOP)
Interpreter adalah suatu jenis penterjemah yang menterjemahkan perbaris instruksi untuk
setiap saat. Keuntungannya adalah penyusunan program relatif lebih cepat dan bisa langsung
diuji sekalipun masih ada beberapa kesalahan. Kelemahannya adalah kecepatannya menjadi
lambat sebab sebelum suatu instruksi dijalankan selalu diterjemahkan terlebih dahulu.
Disamping itu saat memori dieksekusi, interpreter juga harus ada dalam memori selain itu
source program tidak dapat dirahasiakan karena dapat dilihat oleh orang lain.
Kompiler menterjemahkan seluruh instruksi dalam program sekaligus. Proses
pengkompilasian cukup dilakukan sekali saja dan hasil terjemahan bisa dijalankan secara
langsung tanpa tergantung lagi oleh program sumber maupun kompilernya. Keuntungannya
adalah proses eksekusi berjalan cepat, program sumber dapat dirahasiakan sebab yang
dieksekusi adalah program dalam bahasa mesin. Kelemahannya adalah proses pembuatan dan
pengujian relatif lebih lama sebab ada waktu untuk kompilasi dan adapula waktu untuk
proses linking
Jenis-jenis File yang Dimiliki Turbo C
Beberapa jenis file yang penting :

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

File HEADER
Merupakan file-file teks yang berisi fungsi-fungsi khusus yang digabungkan dengan
program dengan perintah include. File-file header biasanya berektensi .h.
Contoh : stdio.h dan conio.h

File LIBRARY
Merupakan file-file yang di dalamnya terdapat fungsi-fungsi dasar dari Turbo C yang
digabungkan dengan program utama dengan perintah link. File-file library ini bertipe
.lib

File RUN TIME


Merupakan file yang akan digabungkan dengan program pada saat proses LINK. File Run
Time disesuaikan dengan model memory-nya

MATH Library
File ini digunakan untuk hal-hal yang berhubungan dengan operasi bilangan. File yang
kegunaannya hampir sama dengan file ini adalah emu.lib

File Editor, File Object dan File Eksekusi


File editor merupakan program yang disusun dalam Turbo C. File ini adalah file teks dan
mempunyai ekstensi .c
File Object merupakan file hasil proses COMPILE dari File Editor. nama File Object
sama dengan nama file editor dengan ekstensi .obj
File Eksekusi, merupakan file hasil proses LINK. File ini bernama sama dengan file-file
sebelumnya dan dapat dijalankan dari prompt DOS. Ekstensi file eksekusi adalah .exe

Kebanyakan versi C yang beredar adalah kompiler. Proses Kompilasi Linking dari program
C dapat digambarkan sebagai berikut :

Editor

Editor

File Include
(File Judul)

File Program
Sumber

Kompiler

File Pustaka

File Obyek

Linker

File Executable
Algoritma dan Pemrograman I dengan bahasa C++
Universitas Teknologi Yogyakarta

File Obyek Lain

Software Pembantu

Untuk memudahkan pembuatan program, pada panduan ini menggunakan


software Turbo C 4.5

Turbo C merupakan salah satu kompiler C yang sangat terkenal. Kompiler ini juga
menyediakanlingkungan program terpadu yang disebut IDE (Integrated Development
Environment) yang bisa dipakai untuk :
Menulis program
Mengkompilasi program
Melakukan pencarian kesalahan (debugging)
Mengkaitkan berbagai objek dan pustaka (linking)
Menjalankan program

PENGENALAN C++
Pada umumnya, program C++ mempunyai susunan umum sbb:
#preprocessor directive
void main()
{
//isi program
}
Keterangan:

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

1. Preprocessor directive yang tersedia paa bahasa C++ akan dijalankan terlebih
dahulu sebelum program utama c dijalankan. bentuk umum penulisan
preprocessor directive:
2. #include <nama_file>
beberapa file preprocessor yang sering digunakan di antaranya adalah:
iostream.h
conio.h
math.h
graphic.h

: diperlukan pada program yang melibatkan obyek cout


: diperlukan bila melibatkan perintah clrscr()/pembersihan layar
: diperlukan pada program yang menggunakan operasi sqrt()/akar
dll.
: diperlukan pada saat akan menggunakan mode grafik. dll

3. fungsi main() merupakan fungsi yang akan dijalankan setelah file-file


preprocessor dieksekusi.
4. untuk mengawali dan mengakhiri suatu blok, digunakan tanda kurung kurawal
{ dan }
5. setiap pernyataan dalam program diakhiri oleh tanda semicolon (;)
6. untuk memberikan komentar-komentar, diawali dengan tanda // atau jika
komentar lebih dari 1 baris, diawali dengan /* dan di akhiri dengan */

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Praktikum 1:
Latihan 1a:
Ketiklah program berikut:
#include <stdio.h>
#include <conio.h>
void main()
{
printf("ALGORITMA DAN PEMROGRAMAN");
printf("MENGGUNAKAN BAHASA C/C++\n");
getch();
}
Simpanlah di folder Anda masing-masing dengan nama yang sesuai dengan cara
memilih menu File>>save.

Untuk mengecek program apakah berjalan atau tidak, pilih menu Debug>>run

Jika ada kesalahan, maka program akan langsung menunjuk pada baris mana
kesalahan tersebut. perbaiki dan jalankan

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Perhatikan perintah-perintah di atas.


- Perintah printf digunakan untuk memerintahkan menampilkan suatu data ke
layar.
- Tanda \ pada string yang dilewatkan sebagai argumen printf() mempunyai
makna khusus. Tanda ini bisa digunakan untuk menyatakan karakter khusus
seperti :
Karakter
Keterangan
\\
menyatakan karakter backslash
\t
menyatakan karakter tab
\n
menyatakan pindah baris
\0
menyatakn karakter ascii null
\a
karakter bell
\b
karaker backspace
\f
karakter ganti halaman (form feed)
\r
karakter carriege return (ke awal baris)
\v
karaker tab vertical
\l
menyatakan karakter petik tunggal
\
menyatakan karakter petik ganda
\?
menyatakan karakter tanda tanya
\ooo
karakter yang nilai iktalnya adlah ooo (3digit)
\xhh
karakter yang nilai heksadesimalnya adalah hh (2 digit
hexadesimal)

perintah getch() memberikan kesempatan kepada pengguna untuk melihat


hasil, yang merupakan singkatan dari get character. komputer akan
melanjutkan jika pengguna sudah menekan suatu karakter
(angka/huruf/karakter lain).
Bentuk umum perintah printf adalah:
printf(string kontrol, daftar argumen)

Contoh:
Perintah
printf("ALGORITMA DAN PEMROGRAMAN");
Dapat diganti menjadi
printf("%s DAN %s", ALGORITMA,PEMROGRAMAN);

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

%s merupakan penentu format untuk data bertipe string. Tentang penentu format
dibahas dalam bab tersendiri.

Ubahlah baris:
printf("ALGORITMA DAN PEMROGRAMAN");
menjadi
printf("ALGORITMA DAN PEMROGRAMAN\n");
kemudian coba jalankan (Debug>>Run)

Simpan ulang File anda dengan memeilih menu file>>save.

Latihan 1b.
Buatlah file baru. Buatpula kode programnya jika diinginkan hasil tampilan saat di
jalankan sbb:
============================================
=
LATIHAN 1.B
=
=
ALGORITMA DAN PEMROGRAMAN II
=
=
OLEH: UM412 (ISI NAMA ANDA)
=
=
FAKULTAS TEKNOLOGI INFORMASI
=
=
TULIS NAMA UNIVERSITAS ANDA
=
============================================
Nb:
Dilarang copy-paste dari latihan sebelumnya

Simpan dan jalankan.

Latihan 1c.
Buatlah file baru. Buatpula kode programnya dengan tampilan bebas.

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

2.
VARIABEL, CONSTANTA, TIPE DATA &
OPERATOR
Variabel & Constanta
Variabel adalah tempat penampung data. Variabel berada di memory komputer. Isi variabel
dapat berubah-ubah. Biasanya setiap variabel mempunyai tipe. Kita dapat memilih sendiri
nama variabel yang disesuaikan dengan tujuan.

Ketentuan penamaan variabel :


1. Nama variabel terdiri dari huruf, angka dan garis bawah. Nama variabel boleh didahului
oleh huruf dan garis bawah, tetapi tidak boleh didahului oleh angka.
Contoh : nilai1, nilai_1, _nilai_turbo_c, a123
2. Tidak boleh menggunakan operator hitung ( + - / * % ) dan juga tidak boleh
menggunakan karakter khusus ( : ; , # @ $ & dan titik )
3. Nama variabel tidak boleh berisi spasi
4. Tidak boleh memakai reserved words (kata-kata yang sudah mempunyai arti di dalam
turbo C), secara sendiri. Variabel boleh memakai reserved word jika digabungkan dengan
kata lain.
Contoh variabel yang salah : main, printf, scanf, dan sebagainya
Contoh variabel yang benar : program_main, printf_1
5. Turbo C membedakan huruf besar dan kecil. Variabel gaji, Gaji dan GAJI adalah tiga
variabel yang berbeda.
6. Panjang variabel boleh berapa saja, tetapi hanya 32 karakter pertama yang dikenal.

Tipe Data Dasar


Data berdasarkan jenisnya dapat dibagi menjadi 5 kelompok yang dinamakan sebagai tipe
data dasar, yaitu :
Bilangan bulat (integer)
Bilangan real presisi-tunggal
Bilangan real presisi-ganda
Karakter
Tak-bertipe
TIPE
char
int

TOTAL BIT
8
16

KAWASAN
-128 .. 127
-32768 .. 32767

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

KETERANGAN
Karakter
Bilangan Integer

TIPE
float
double
void

TOTAL BIT
32
64
0

KAWASAN
3.4E-38 .. 3.4E+38
1.7E-308 .. 1.7E+308
Tidak bernilai

KETERANGAN
Bilangan Real presisi-tunggal
Bilangan Real presisi-ganda
Tak-bertipe

Variabel digunakan dalam program untuk menyimpan suatu nilai dan nilai yang ada padanya
dapat diubah-ubah selama eksekusi program berlangsung. Variabel yang digunakan dalam
program haruslah dideklarasikan terlebih untuk dengan tujuan memesan memori dan
menentukan jenis data yang bisa disimpan di dalamnya.

Contoh :
Pendefinisian variable
int jumlahsiswa;
float potongan_harga, hargaKotor, harga;
char jawaban
Pemberian nilai variabel:
jumlahsiswa = 10;
potongan_harga= 0.20;
hargaKotor= jumlah * harga;
jawaban=y;

Pemodifikasi Tipe/Type Modifier


Ada beberapa pemodifikasi tipe (type modifier) yang dapat dikenakan di awal tipe data dasar
(kecuali void). Pemodifikasi tipe tersebut adalah :
Signed
: Long
Unsigned
: Short
Tabel kemungkinan pemakaian pemodifikasi tipe pada tipe dasar :
NAMA TIPE
TOTAL BIT KAWASAN
unsigned char
8
0 .. 255
signed char
8
-128 .. 127
unsigned int
16
0 .. 63535
signed int
16
-32768 .. 32767
short int
16
-32768 .. 32767
unsigned short int
16
0 .. 65535
signed short int
16
-32768 .. 32767
long int
32
-2147483648 .. 2147483647
signed long int
32
-2147483648 .. 2147483647
unsigned long int
32
0 .. 4294967295
long double
80
3.4E-4932 .. 1.1E+4932

Tipe short int bisa cukup ditulis menjadi short

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Tipe long int boleh ditulis menjadi long


Tipe signed int bisa ditulis menjadi signed saja
Tipe unsigned int boleh ditulis dengan unsigned

Penentu Format
Penentu format untuk data tipe lain dapat dilihat pada tabel berikut :
Tipe Data
Penentu
Format
Integer
%d
Floating Point
Bentuk Desimal
%f
Bentuk Berpangkat
%e
Double Precision
%lf
Character
%c
String
%s
Unsigned Integer
%u
Long Integer
%ld
Long Unsigned Integer
%lu
Unsigned Hexadec. Int.
%x
Unsigned Octal Int.
%o

Menggunakan Type Cast


Type Cast merupakan upaya untuk mengkonversikan suatu tipe menjadi tipe yang lain.
Bentuk umum tipe cast adalah :
(tipe) ungkapan
dengan tipe dapat berupa pengenal tipe seperti char atau int. Misalnya jika x dideklarasikan
bertipe int, bila dikehendaki agar ungkapan x/2 menghasilkan nilai pecahan (real) maka
ungkapan x/2 dapat ditulis menjadi (float) x/2.
Contoh :
#include <stdio.h>
Void main()
{
int a=52;
float b;
b=a/3;
printf("Nilai a/3 adalah %f\n", b);
b=(float) a / 2;
printf("Nilai b = (float) a /3 adalah %f\n", b);
getch();
}

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Mendefinisikan Konstanta
Berbeda dengan variabel, yang mana isi bisa berubah/diubah sesuai keinginan, konstanta
merupakan tempat penyimpanan suatu nilai dalam memory yang mana nilai tersebut tidak
akan diubah-ubah/bersifat konstant/tetap. Pendefinisiannya dilakukan dengan menggunakan
pengarah praprocessor #define atau dengan const.
Contoh:
const pi=3.142
#define pi=3.142

Operator
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam program untuk
melakukan suatu operasi atau manipulasi seperti penjumlahan, memberikan nilai,
membandingkan kesamaan dan sebagainya.
Operator yang dikenakan terhadap dua buah nilai (operand) disebut unary, misalnya a + b.
Sedangkan operator yang hanya memiliki sebuah operand disebut unary, misalnya c.
1. Operator Aritmatika
BINARY
*
Perkalian
/
Pembagian
%
Sisa pembagian
+
Penjumlahan
Pengurangan atau negasi
UNARY
+
Tanda minus
Tanda plus
2. Operator Penurunan dan Penaikan
++
--

Operator penaikan
Operator penurunan

Contoh :
x = x + 1 ; dapat ditulis ++x; atau x++ ;
y = y 1 ; dapat ditulis - -y; atau y - - ;
3. Operator Hubungan
>
Lebih besar
<
Lebih kecil
>=
Lebih besar atau samadengan
<=
tidak sama dengan
!=
sama dengan (bukan untuk

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

==

assignmen/pengisian)

4. Operator bitwise
&
|
!

And
Or
not

Prioritas Operator Matematika


Seperti halnya operasi matematika, dalam c, mempunyai prioritas operasi mana yang
akan dikerjakan terlebih dahulu. Adapun urutan prioritas dapat dilihat di dalam tabel
di bawah ini:
Prioritas
Tertinggi
Prioritas
Terendah

++ -- (unary minus)
* / %
+-

Contoh:
x=4+2-5;
x=4-2+5;
x=4-4/2;

//hasil: x=1
//hasil: x=7
//hasil: x=2

Keyword dan Identifier


Dalam bahasa pemrograman, suatu program dibuat dari elemen-elemen sintaks
individual yang disebut dengan token., yang di dalamnya memuat variabel, konstanta,
keyword, operator dan tanda baca. keyword merupakan kata kunci yang sudah
digunakan dalam suatu program. keyword ini tidak boleh digunakan untuk
memberikan nama suatu variabel. beberapa keyword yang dikenal dalam C adalah:
void, int, float, define, if, dan lain-lain.
contoh:
#include <conio.h>
void main()
{
float luas;
luas=28*10;
printf(luasnya adalah %7.0f,luas);
}
pada program di atas

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

{,}
luas
float
*,=

merupakan token tanda baca


merupakan token variabel
merupakan token keyword
merupakan token operator

Praktikum 2:
Latihan 2a:
Ketiklah program berikut:
#include <stdio.h>
#include <conio.h>
void main()
{
int panjang,lebar;
float luas;
printf("\n");
printf("====================================\n");
printf("PROGRAM PENCARI LUAS PERSEGI PANJANG\n");
printf("====================================\n");
printf("Masukkan panjang :");scanf("%d",&panjang);
printf("Masukkan lebar
:");scanf("%d",&lebar);
luas=panjang*lebar;
printf("====================================\n");
printf("Luasnya adalah : %7.2f\n",luas);
printf("====================================\n");
getch();
}
-

Simpan hasil pekerjaan Anda di folder masing-masing, dan jalankan (dengan


memilih menu Debug>>run atau Ctrl+F9)

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Latihan 2b. jika sudah berhasil, buatlah sebuah file baru yang dapat digunakan untuk
mencari luas dari persegi panjang jika tampilan yang di inginkan seperti berikut:

Latihan 2c. simpan hasil yang sudah dibuat sebelumnya. perbaiki program yang yang
sudah dibuat, sehinggap program dapat digunakan untuk mencari garis miring dan
keliling segitiga siku dengan tampilan seperti berikut:

Catatan:
- Untuk menghitung garis miring dihitung dengan rumus
gm=sqrt(alas*alas+tinggi*tinggi)
- untuk dapat menggunakan fungsi sqrt, diperlukan header math.h (tambahan
perintah #include <math.h>)
-

Simpan ulang dengan nama file lain. (File>>Save As)

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

3.
FUNGSI-FUNGSI UMUM
Terdapat beberapa perintah/fungsi yang sering digunakan dalam bahasa c++, di antaranya
adalah :
- fungsi untuk menampilkan : printf,puts, putchar, dll
- fungsi untuk memasukkan: scanf, getch, getche, dll
- fungsi numeric: sqrt, pow, tan, div, ceil, floor, exp, max, min dll.
- fungsi string: strcpy,strcat,strupr,strlwr dll
PRINTF()
Merupakan fungsi yang paling umum digunakan dalam menampilkan data. Berbagai jenis
data dapat ditampilkan ke layar dengan fungsi ini.
Bentuk penulisan :
printf(string kontrol, argumen1, argumen2, );

String kontrol dapat berupa keterangan yang akan ditampilkan pada layar beserta penentu
format seperti %d, %f. Penentu format dipakai untuk memberi tahu kompiler mengenai
jenis data yang akan ditampilkan
Argumen adalah data yang akan ditampilkan ke layar. Argumen ini dapatr berupa
variabel, konstanta atau ungkapan
PUTS()
Fungsi ini digunakan khusus untuk menampilkan data string ke layar. Sifat fungsi ini, string
yang ditampilkan secara otomatis akan diakhiri dengan \n (pindah baris). Dibandingkan
dengan printf(), perintah ini mempunyai kode mesin yang lebih pendek.
PUTCHAR()
Digunakan khusus untuk menampilkan sebuah karakter ke layar. Penampilan karakter tidak
diakhiri dengan perpindahan baris, misalnya :
putchar(A); sama dengan printf(%c, A);
Contoh :
#include <stdio.h>
#include <conio.h>
void main()
{
char A;
int nilai1=20;
float nilai2=2000.0;
clrscr();
printf("Angka %d dapat ditampilkan dalam format %3d \n", nilai1, nilai1);
printf("Angka %f dapat ditampilkan dalam format %8.3f,nilai2,nilai2);

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

printf( dan %-8.0f\n", nilai2);


putchar('T');
puts("ekan sembarang tombol untuk melanjutkan");
getch();
}
Hasil :

SCANF()
Merupakan fungsi yang dapat digunakan untuk memasukkan berbagai jenis data. Bentuk
scanf() sesungguhnya menyerupai fungsi printf() yang melibatkan penentu format. Bentuk
penulisan : scanf(string kontrol, daftar argumen);
contoh:
scanf("%f",&gaji);
scanf("%d-%d-%d",&bil1,&bil2,&bil3);
Hal-hal yang perlu diperhatikan dalam pemakaian scanf yaitu :
1. scanf memberi pergantian baris secara otomatis, artinya Anda tidak perlu memberi \n
untuk berpindah ke baris berikutnya.
2. scanf memakai penentu format, tetapi tidak memerlukan penentu lebar field. Contoh
yang salah : scanf(10.2f,&gaji);
3. Variabel yang dipakai di dalam scanf harus didahului dengan operator alamat (&).
4. jika diinginkan memasukkan lebih dari 1 data, maka dapat dilakukan dengan
memasukkan data-data dalam 1 baris dengan pemisah koma(,), garis hubung (-), titik
koma (,) atau spasi ( )
GETCH() dan GETCHE()
Dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukkan tidak perlu
diakhiri dengan enter. Fungsi getch() merupakan singkatan dari get character artinya baca
karakter tetapi isian data yang dimasukkan tidak akan ditampilkan di layar. Fungsi getche()
sebenarnya adalah singkatan dari get character and echo, artinya baca karakter lalu
tampilkan di layar
Contoh :
getch();
karakter=getch();
getche();
Catatan :
Program yang menggunakan printf(), putchar(), scanf() dan puts() mengandung baris
yang berisi #include <stdio.h>
Program yang melibatkan getche() atau getch() mengandung baris yang berisi
#include <conio.h>

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Fungsi Matematika
Include
: #include<stdlib.h>
Beberapa fungsi matematika yang sering digunakan adalah :
Fungsi Keterangan
Contoh
sqrt
Menghitung akar positif dari sebuah sqrt(x);
bilangan bulat
pow
Menghitung xy
z = pow(10,2);
tan
Menghitung nilai tangent dari sebuah sudut
sin
Menghitung nilai sinus dari sebuah sudut
cos
Menghitung nilai cos dari sebuah sudut
acos
Menghitung nilai arctan dari sebuah sudut
asin
Menghitung nilai arcsin dari sebuah sudut
atan
Menghitung nilai arctan dari sebuah sudut
ceill
membulatkan ke atas
floor
membuatkan ke bawah
exp
mencari nilai exponensial ex
fmod
mencari sisa pembagian
fmod(9,2)

Hasil

Fungsi String
String merupakan bentuk data yang biasa dipakai dalam bahasa pemrograman untuk
keperluan menampung dan memanipulasi data teks
Catatan:
- Variabel string adalah variabel yang dipakai untuk menyimpan string, misalnya : char
nama[20];
- Merupakan instruksi untuk mendeklarasikan variabel string dengan panjang maksimal
mengandung 20 karakter (termasuk karakter NULL).
- Pemasukan data string ke dalam suatu variabel biasa dilakukan dengan memakai gets().
- Bentuk penulisan : gets(nama variabel);
Jika memakai scanf() instruksinya menjadi scanf(%s, nama variabel);
Didepan nama variabel tidak perlu menggunakan operator &
Data string yang dimasukkan tidak dapat mengandung spasi
Prototipe gets() ada pada file stdio.h
Untuk menampilkan isi variabel string, pernyataan yang dapat digunakan berupa :
puts(variabel string);
printf(%s, variabel string);
printf(variabel string);
Fungsi
strlen
strlwr
strupr

Keterangan
Contoh
Menghitung panjang string
strlen(Turbo C);
mengubah string menjadi huruf strwr(Turbo C);
kecil
mengubah string menjadi huruf
besar

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Hasil
3
turbo c

strcpy
strcat
atof

mongkopi string dari variabel satu


ke variabel lain
Menggabungkan beberapa string
mengkonversi
data
dari
alphanumeric menjadi numeric

strcpy(a,b);
srcat(a,b);
atof(100 orang);
atof(1e3);

ab
100.0
1000

Praktikum 3:
Latihan 3.a:
Ketiklah program berikut:
#include <stdio.h>
#include <conio.h>
void main()
{
char A;
int nilai1=20;
float nilai2=2000.0;
clrscr();
printf("Angka %d dapat ditampilkan dalam format %3d \n", nilai1,
nilai1);
printf("Angka %f dapat ditampilkan dalam format
%8.3f",nilai2,nilai2);
printf(" dan %-8.0f\n", nilai2);
putchar('T');
puts("ekan sembarang tombol untuk melanjutkan");
getch();
}

Simpan dan jalankan!

Latihan 3.b
Jika sudah berhasil, buatlah sebuahfile baru, dan ketikkan kode berikut:
#include
#include
#include
#include

<stdio.h>
<conio.h>
<math.h>
<string.h>

void main()

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

{
char A;
int angka1,angka2;
float angka3;
char nama[20];
clrscr();
printf("Masukkan Nama Anda :");
scanf("%s",&nama);
printf("Masukkan 2 angka secara berturut-turut dengan
jarak spasi :");
scanf("%d %d",&angka1, &angka2);
printf("TERIMA KASIH %s \n",strupr(nama));
angka3=sin(angka1);
printf("Nilai sinus dari %d adalah %4.2f\n",angka1,angka3
);
printf("Nilai
cos
dari
%d
adalah
%4.2f\n",angka2,cos(angka2));
getch();
}
Simpan dan jalankan

Latihan 3.c
Buatlah sebuah program jika diiginkan tampilan tampak seperti berikut:

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

4.
STRUKTUR PERCABANGAN

Pernyataan if
Pernyataan if-else
Pernyataan switch

Pernyataan IF
bentuk umum :
if (kondisi)
Pernyataan
Contoh :
Jika pembelian lebih besar dari 500000, maka diskonnya 5% dari pembelian
if (beli >= 500000)
diskon=0.05*beli;
Jika if diikuti oleh pernyataan majemuk, maka diperlukan tanda awal blok dan akhir blogk
berupa kurung kurawal ({ })
Contoh :
Jika pembelian lebih besar dari 500000, maka disktonnya 5% dari pembelian dan
masih ditambah voucher senilai 50000
if (beli >= 500000)
{
diskon=0.05*beli;
bonus=voucher belanja senilai 50000;
}

Pernyataan If-Else dan Kondisi


Bentuk umum :
if (syarat1)
pernyataan 1
else
pernyataan 2;
Contoh :
Jika nilai >=60 maka lulus, dan jika tidak, maka uji ulang

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

if (nilai>=60)
keterangan=lulus
else
keterangan=uji ulang

//tanpa tanda titik koma

atau bisa juga ditulis dengan perintah Kondisi:


keterangan = (nilai>=60)? lulus: uji ulang;
perintah kondisi hanya berlaku jika pernyataan bersifat tunggal
seperti halnya if, jika terdapat pernyataan majemuk, maka diperlukan tanda blok kurung
kurawal ({ })
Pernyataan If - Else If- Else
Bentuk umum :
if (syarat1)
pernyataan 1
else if (syarat2)
pernyataan 2
else if (syarat3)
pernyataan 3
else
pernyataan 4;
Contoh:
Jika nilai>=85, kategori A
Jika nilai>=75, kategori B
jika nilai>=60, kategori C
jika nilai<60, kategori D
if (nilai>=85)
kategori[0]=A
else if (nilai>=75)
kategori[0]=B
else if (nilai>=60)
kategori[0]=C
else
kategori[0]=D;
atau bisa juga ditulis dengan pernyataan kondisi:
kategori[0]= (nilai>=85) ? A : (nilai>=75) ? B : (nilai>=60) ? C: D;
Pernyataan Switch

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Tangga if-else dapat dipakai untuk menguji beberapa syarat. Cara lain untuk menyatakan
bebrapa syatat dapat juga dilakukan dengan perintah switch.
Di dalam pernyataan switch, sebuah variabel secara berturut-turut diuji oleh daftar konstanta
bilangan bulat atau konstanta karakter. Jika sesuai dengan sebuah konstanta, pernyataan yang
mengikuti konstanta akan dikerjakan. jika tidak terdapat konstanta yang sesuai, pernyataan
default akan dikerjakan
Bentuk Umum :
switch (variabel)
{
case konstanta1:
{
pernyataan;
break;
}
case konstanta2:
{
pernyataan;
break;
}
default
{
pernyataan;
}
}
contoh:
jika kategori=A, maka keterangan =Istimewa
jika kategori=B, maka keterangan =Baik
jika kategori=C, maka keterangan =Cukup
switch (kategori[0])
{
case A:
{
printf(Istimewa);
break;
}
case B:
{
printf(Istimewa);
break;
}
case C:
{

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

printf(Istimewa);
break;
}
default
{
printf(Maaf, kategori tidak dikenal);
break;
}
}

Catatan:
1. Switch hanya dapat memeriksa persamaan dengan sebuah konstanta, sedangkan
IF dapat memeriksa syarat-syarat lain (>,<, >=,<=,!= dan sebagainya). contoh:
pernyataan jika nilai >= 85 tidak bisa dilakukan dengan menggunakan
pernyataan switch.
2. Tidak ada dua konstanta yang sama didalam sebuah switch

Praktikum 4:
Latihan 4.a:
Ketikkan perintah berikut:
#include <conio.h>
#include <stdio.h>

int main()
{
char nama[20],
char kategori;
int nilai;

keterangan[30];

printf("Masukkan Nama: ");gets(nama);


printf("Nilai
: ");scanf("%d",&nilai);
if (nilai>=85)
{
printf("\nSelamat..., %s",&nama);
printf("\nAnda Layak dapat Bintang");
kategori =A;
}
else if (nilai>=75)
{

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

printf("\nSelamat..., %s",&nama);
printf("\nSelangkah lagi... Anda layak dapat
bintang...!");
kategori[0] =B;
}
else
{
printf("\nMaaf..., %s",&nama);
printf("\nSebaiknya Anda belajar lagi...!");
kategori[0] =C;
}
printf("\nKategori : %s",&kategori[0] );
getch();
return 0;
}

Latihan 4.b:
Buat program untuk menentukan suatu bilangan GENAP atau GANJIL jika
diinginkan
Input :
Masukkan sebuah bilangan bulat : 6
Output :
Nilai 6 habis dibagi 2
Sehingga termasuk sebagai bilangan GENAP

Latihan 4.c:
Buatlah program dengan tampilan seperti berikut:
Output 1 :
=============================
LATIHAN 4.C
MENCARI LUAS
=============================
1. Luas Persegi Panjang
2. Luas Segi tiga
3. Luas Lingkaran
=============================
Pilihan Anda : 1
=============================
Output 2: jika yang dipilih 1 :
Terima kasih, menu yang anda pilih nomor 1
Masukkan Panjang : 20
Masukkan Lebar
: 10
Luasnya Adalah
: 200

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

5.
STRUKTUR PERULANGAN

for
while
do while

Perulangan FOR
Bentuk umum Loop For :
for (inisialisasi; syarat; penambahan)
pernyataan;
Keterangan :
Inisialisasi adalah pernyataan untuk menyatakan keadaan awal dari variabel kontrol.
Syarat adalah ekspresi relasional yang menyatakan berhentinya pengulangan.
Penambahan menyatakan perubahan variabel kontrol setiap terjadi pengulangan. Setiap
bagian harus dipisahkan oleh tanda titik koma.
Contoh :
int i;
for (i=1; i <=5 ; i++)
printf("%d \n",i);

Pada program tersebut :


Inisialisasi
:i=1
Syarat
: i <= 5
Penambahan : i++ , artinya ditambah 1
Hasil :
1
2
3
4
5
Pengembangan Perulangan For
Dalam praktiknya, perulangkan for dapat dikembangkan.

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

contoh :
int x,y;
for (x=0,y=0; x+y<=20; x++,y++) printf("%5d %5d %5d\n",x,y,x*y);
Hasil:

Variasi lain adalah dengan menghilangkan salah satu bagian dari perintah perulangan
contoh :
#include <stdio.h>
#include <conio.h>
void main()
{
char ulang;
clrscr();
for (ulang=' '; ulang!='t'; )
{
printf("Belajar perulangan Variasi For: \n");
printf("Mengulang lagi? (t untuk menghentikan) : \n");
ulang=getche();
}
}
Jika program di atas dijalankan, maka komputer akan meminta pengguna untuk memasukkan
karakter, dan akan dihentikan jika pengguna memasukkan huruf t
Pengurangan elemen loop dapat juga digunakan pada perlulangan tanpa batas (Loop tak
terhingga)
contoh :
char ch;
for (ch=' '; ; ) ch=getche();
Perulangan lain, juga terkadang digunakan untuk mementukan waktu tunggu.

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Contoh:
int t,x;
x=100;
for (t=0 ; t<x ; t++ ) ;
dalam contoh di atas, lama perlulangan tergantung besar angka yang ada pada variabel x.
Perulangan WHILE
Bentuk umum :
while (syarat) pernyataan;
Pernyataan pada loop while dapat berupa sebuah pernyataan atau blok pernyataan atau
pernyataan kosong. Pernyataan akan diulang selama syarat benar,
contoh :
int i=1;
while (i <= 5)
{
printf("ALGORITMA\n");
i=i++;
}
Hasil :

Loop while menyatakan bahwa pengulangan akan dilakukan terus selama syarat terpenuhi.
Perulangan DO WHILE
Bentuk umum :
do
{
pernyataan;
pernyataan;
} while (syarat)
Berbeda dengan perlulangan while, Perulangan menggunakan do while syarat akan dicek
setelah pernyataan dijalankan 1x. jika memenuhi syarat, maka akan mengulang lagi.
contoh :

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

int pilih;
do
{
printf("=============\n");
printf("1. Kelas Reguler \n");
printf("2. Kelas Intensif\n");
printf("=============\n");
printf("Pilihan Anda:");
scanf("%d",&pilih);
} while ( (pilih!=1) && (pilih!=2));
Jika program di atas dijalankan, komputer akan meminta pengguna untuk memasukkan
pilihan. jika yang dipilih tidak sama dengan 1 dan 2, maka komputer akan mengulang.

Praktikum 5:
Latihan 5.a.
Ketiklah program berikut:
#include <math.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int i, pangkat2, jumlah;
float akar;
char garis[40] = "===============================";
clrscr();
printf("Tabel Kuadrat dan Akar Kuadrat \n");
printf("%s\n",garis);
printf("Bilangan Kuadrat Akar Kuadrat\n");
printf("%s\n",garis);
for (i=1; i<=10; i++)
{
pangkat2 = i * i;
akar = sqrt(i);
printf(" %2d
%3d
%6.4f \n",i,pangkat2,akar);
}
printf("%s\n",garis);
getch();
}

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Simpan dan jalankan

Latihan 5b
Ubahlah program yang sudah dibuat, sehingga menjadi seperti berikut:
#include <math.h>
#include <stdio.h>
#include <conio.h>
main()
{
int i, pangkat2, jumlah;
float akar;
char garis[50] = "========================================";
float jumlah1,jumlah2,jumlah3;
jumlah1=0;jumlah2=0;jumlah3=0;
clrscr();
printf("Tabel Kuadrat dan Akar Kuadrat \n");
printf("%s\n",garis);
printf("Bilangan Kuadrat Akar Kuadrat\n");
printf("%s\n",garis);
for (i=1; i<=10; i++)
{
pangkat2 = i * i;
akar = sqrt(i);
jumlah1+=i;
jumlah2+=pangkat2;
jumlah3+=akar;
printf(" %8d %8d %8.2f \n",i,pangkat2,akar);
}
printf("%s\n",garis);
printf("Jumlah%4.0f %8.0f %8.2f \n",jumlah1,jumlah2,jumlah3);
printf("%s\n",garis);

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

getch();
}

Jika berhasil, maka hasil terlihat seperti berikut:

Keterangan:
- Jumlah 55, merupakan jumlah dari variabel i setelah diulang-ulang sampai 10X
jumlah1+=1, bisa juga ditulis jumlah1=jumlah1+i; yang artinya nilai jumlah yang
baru adalah nilai jumlah sebelumnya ditambah dengan i, sehingga:

Saat
Saat
Saat
Saat
dst

i=1,
i=2,
i=3,
i=4,

maka
maka
maka
maka

jumlah1=jumlah1+i
jumlah1=0+1= 1, dimana
jumlah1=1+2= 3, dimana
jumlah1=3+3= 6, dimana
jumlah1=6+4= 10, dimana

jumlah1
jumlah1
jumlah1
jumlah1

Latihan 5d.
Buatlah program untuk menghitung suatu faktorial
contoh:
5!=5*4*3*2*1 =120
Jika diinginkan tampilan hasinya:

Latihan 5e.
Jika sudah berhasil, simpan dengan nama lain.

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

sebelumya=0
sebelumya=1
sebelumya=3
sebelumya=6

dan
dan
dan
dan

i=1;
i=2;
i=3;
i=4;

Ubahlah program Anda, sehingga jika di jalankan tampak seperti berikut:

Latihan 5f.
Jika sudah berhasil, simpan dengan nama lain.
Buatlah sebuah program jika diinginkan tampil seperti berikut

Latihan 5g.
Jika sudah berhasil, simpan dengan nama lain.
Buatlah sebuah program jika diinginkan menampilkan angka:
012345432101234543210

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Latihan 5h.
Jika sudah berhasil, simpan dengan nama lain.
Buatlah sebuah program jika diinginkan menampilkan angka:
1
2
3
4
5

9
8
7
6
5

Latihan 5i.
Jika sudah berhasil, simpan dengan nama lain.
Buatlah sebuah program jika diinginkan menampilkan angka:
1
12
123
1234
12345

Latihan 5j.
Jika sudah berhasil, simpan dengan nama lain.
Buatlah sebuah program jika diinginkan menampilkan angka:
1
121
12321
1234321
123454321

Latihan 5k.
Jika sudah berhasil, simpan dengan nama lain.
Buatlah sebuah program yang dapat digunakan untuk menampilkan bilangan prima
dari 2 sampai n, dimana n diinputkan oleh user.

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Algoritma Mencari bilangan prima:


0 bukan bilangan prima
1 bukan bilangan prima
2 bilangan prima
jika bukan 0,1,2, Semua bilangan yang habis dibagi 2 bukan bilangan prima
jika tidak (tidak masuk dalam kategori di atas):
o anggap n adalah suatu bilangan dan m adalah nilai integer dari akar n.
jika dari 3 sampai m terdapat terdapat n habis dibagi dengan bilangan
tersebut (bilangan antara 3 sampai akar n), maka bukan bilangan prima
jika tidak masuk dalam kategori di atas, berarti bilangan prima

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

6.
ARRAY
Array merupakan deretan variabel yang berjenis sama dan mempunyai nama sama. Pada
bahasa C, array mempunyai lokasi yang bersebelahan. Alamat terkecil menunjuk ke elemen
pertama dan alamat terbesar menunjuk ke alamat terakhir. Sebuah elemen pada array diakses
melalui indeksnya.
Array 1 dimensi
Bentuk umum:
tipe_array nama_array[ukuran];

//array 1 dimensi

cara pemberian nilai/assignmen


nama_array[index_array]=constant;
nama_array[index_array]=var;
Keterangan:
tipe_array
ukuran
index_array

: menyatakan tipe dasar array


: menyatakan banyaknya elemen pada array
: nomor index dari array yang akan di isi

Contoh :
int nilai[5];
nilai[0]=90;
nilai[1]=80;

hal ini menyatakan array nilai mempunyai 5 elemen, yaitu :


nilai[0] , nilai[1] , nilai[2] , nilai[3] dan nilai [4]
Semakin besar ukuran array, semakin besar pula memori yang digunakan. Total memori yang
digunakan adalah :
byte total = ukuran dari tipe dasar * banyaknya elemen
dalam contoh diatas, jumlah memori yang digunakan sebesar 2*5 byte =10 byte di mana 2
byte merupakan jumlah memori yang digunakan untuk menyimpan 1 buah variabel bertipe
integer. meskipun jumlah elemen yang dideklarasikan 5, tetapi dalam prakteknya, pemrogram
bisa menambah elemen secara otomatis jika nomor index yang bersangkutan di sebutkan,
contoh: nilai[8]=75, padahal pada saat pendefinisian maksimal 5.
Array Multi Dimensi

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Bentuk umum:
tipe_array nama_array[ukuran1][ukuran2];
tipe_array nama_array[ukuran1][ukuran2][ukuran3];
dst.

//array 2 dimensi
//array 3 dimensi

Contoh:
int matrix1[2][2];
char nama[10][20];

matrix1 mempunyai elemen array :


matrix1[1][1], matrix1[1][2], matrix1[2][1], dan matrix1[2][2]
sedangkan contoh cara pengisian data:
matrix1[1][1]=90;
nama[1]=Um
jika diinginkan menampilkan, maka dapat digunakan printf atau untuk string gunatan gets
printf(nilai matrix1[1,1] adalah %d, matrix1[1][1]);
printf(nama anak ke 1 adalah ), gets(nama[1]);

Adapun jumlah memori yang digunakan sebesar


byte total = ukuran dari tipe dasar * banyaknya elemen1 * banyaknya elemen2
sehingga
matrix1[2][2] memerlukan memori sebesar 2*2*2 byte =8 byte.
contoh penggunaan Array:
int i,j;
int m[2][2];
clrscr();
for(i=1; i<=2; i++)
{
for(j=1; j<=2; j++)
{
m[i][j] = i*j;
printf("%3d", m[i][j]);
}
printf("\n");
}
Inisialisasi Array
Seperti halnya variabel biasa, variabel array juga dapat diberikan nilai awal/inisial.

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Bentuk umum :
tipe nama_array [ukuran1, ukuran2, , ukuran n] = {daftar nilai};

Daftar nilai berisi konstanta yang sesuai dengan tipe array. Setiap konstanta dipisahkan oleh
tanda koma. Konstanta pertama akan mengisi elemen pertama, konstanta kedua untuk elemen
kedua dan seterusnya.
contoh:
int nilai[5] = {90,85,75,99,100};
hal ini menunjukkan bahwa
nilai[0]=90, nilai[1]=80 dan seterusnya.

Contoh penulisan dalam program:


main()
{
int nilai[5] = {90,85,75,99,100};
for (int x=0;x<=2;x++) cout<<nilai[x]<<endl;
}
Hasil:
90
85
75

Pointer
Pointer adalah sebuah variabel yang berisi alamat memori komputer di mana suatu variabel
diletakkan.
Perhatikan contoh penggunaan memori di bawah ini:

nilai variable
alamat memori

...

...

varA
255
1456

varB
700
1457

...

...

...

variabel varA di simpan di memori komputer pada alamant 1456 dan , variabel varB
diletakkan di 1457
varA berisi angka 255 dan varB berisi angka 700

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Operator Pointer
Ada 2 operator pointer :
1. Operator &
Bersifat unary (hanya memerlukan satu operan). Operator ini menghasilkan alamat dan
operannya. Contoh : x = &a, jika kita mengacu pada gambar di atas, maka isi variabel x
adalah 1004.
2. Operator *
Operator * dan operator & bersifat saling komplemen. Operator * juga bersifat unary dan
menghasilkan nilai yang berada pada sebuah alamat..
Contoh:
int varA, *alamat1, varB;
varA=5;
alamat1=&varA;
varB=*alamat1;
printf("\n Isi variabel varA adalah %4d", varA);
printf("\n Isi variabel alamat1 adalah %4u", alamat1);
printf("\n Isi variabel varB adalah %4d", varB);
printf("\n Isi variabel alamat1 sekarang adalah %4u",
alamat1++);

Jika dijalankan, maka hasilnya adalah:

Keterangan:
variabel alamat1 berisi alamat memory dari variabel varA.
pada contoh di atas, 8808 merupakan tempat di mana data variabel a di simpan di
memory komputer pada saat program dijalankan. angka tidak mutlak, bisa berubah setiap
saat jika program ini di jalankan di lain waktu.
variabel alamat1 harus bertipe sama dengan varA, yaitu integer.
*x menghasilkan isi dari alamat yang dituju X, sehingah asil dari varB=5, karena alamat
yang dituju alamat1 adalah variabel A.
Alamat dapat dicetak dengan format %u sebab alamat adalah bilangan bulat tanpa tanda
(unsigned integer)
nilai increment alamat1 adalah sama dengan jumlah memory yang digunakan oleh
variabel int (variabel yang dituju), yaitu 2, sehingga ++alamat1 menghasilkan nilai
8808+2=8810;
Contoh 2:
int nilai[5],*alamat1;

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

int hasil;
nilai[0]=95;
nilai[1]=90;
nilai[2]=80;
nilai[3]=75;
alamat1=&nilai[1];
hasil=*(alamat1+2);
//sama dengan hasil=nilai[1+2]
printf("\n Isi variabel nilai[1] adalah %4d", nilai[1]);
printf("\n Isi variabel alamat1 adalah %4u", alamat1);
printf("\n Isi variabel nilai[3] adalah %4d", nilai[3]);
printf("\n Isi variabel Hasil adalah %4u", hasil);
Hasilnya:

Keterangan:
hasil=*(alamat1+2); sama halnya dengan hasil= nilai[3],
yaitu nilai[1+2]
Array dapat ditunjuk dengan index-nya dan dengan alamat. Penunjukan dengan alamat akan
lebih cepat daripada penunjukan dengan index-nya.
Contoh 1:
/* menggunakan index array */
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
void main()
{
char kata[80];
int i;
printf("Masukkan kalimat(huruf besar):\n");gets(kata);
printf("huruf kecilnya adalah : ");
for(i=0; kata[i]; i++) printf("%c",tolower(kata[i]));
getch();
}
/* menggunakan pointer */

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

#include <stdio.h>
#include <ctype.h>
#include <conio.h>
void main()
{
char kata[80], *p;
clrscr();
printf("Masukkan kalimat(huruf besar):\n"); gets(kata);
printf("huruf kecilnya adalah:\n");
p=kata;
while (*p) printf("%c",tolower(*p++));
getch();
}
Hasil:

Contoh 2:
#include <stdio.h>
#include <conio.h>
void main()
{
char kata[80];
char *p;
int i;
clrscr();
printf("Masukkan 2 kalimat: "); gets(kata);
for (i=0; kata[i] && kata[i] != '.'; i++);
p=&kata[i+1];
printf("Kalimat ke-2 adalah : \n");
printf(p);
getch();
}
Hasil:

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Contoh3:
Penggunaan Array dalam Pengurutan Data:
#include<stdio.h>
#include<conio.h>
void InputData(int z[],int x);
void BubbleSort(int z[],int x);
void SelectionSort(int z[],int x);
void Tampil(int z[],int x);
main()
{
int N,data[100];
int ch;
printf("Masukkan banyak data : ");
scanf("%d",&N);
InputData(data,N);
printf("Menu Utama");
printf("Jenis-jenis metode pengurutan \n");
printf("1. Bubble Sort\n");
printf("2. Selection Sort\n");
printf("\nMasukkan jenis pengurutan (1-2) : ");
scanf("%d",&ch);
switch(ch) {
case 1 : BubbleSort(data,N);break;
case 2 : SelectionSort(data,N);break;
}
printf("\n\nData yang telah terurut : \n");
Tampil(data,N);
getch();
}
void InputData(int z[],int x)
{
int i;
for(i=0;i<x;i++)
{
printf("Data ke %d : ",i+1);
scanf("%d",&z[i]);
}
}
void BubbleSort(int z[],int x)
{
int i,j,tmp;
for(i=0;i<x;i++)
for(j=0;j<x;j++)
if(z[i]<z[j]) {
tmp=z[i];
z[i]=z[j];
z[j]=tmp;
}
}
void SelectionSort(int z[],int x)
{
int i,j,tmp;

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

for(i=0;i<x-1;i++)
{
int min=i;
for(j=i;j<x+1;j++)
if(z[min]>z[j]) min=j;
tmp=z[i];
z[i]=z[min];
z[min]=tmp;
}
}
void Tampil(int z[],int x)
{
for(int i=0;i<x;i++)
printf("%d ",z[i]);
}
Hasil:

Array Pointer
Seperti halnya variabel lain, Array pointer bisa juga digunakan.
bentuk umum:
tipe *nama_variable_pointer[ukuran]
contoh
char *y[10]
array pointer ini sering digunakan dalam berbagai operasi string.
Contoh dalam aplikasi:
#include <stdio.h>
#include <ctype.h>

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

#include <conio.h>
void main()
{
char *jurusan[] = {
"Jogja-Semarang",
"Jogja-Solo",
"Jogja-Surabaya",
"Jogja-Malang"
};
int pilih;
clrscr();
printf("Masukkan Pilihan Anda(1-4):"); scanf("%d",&pilih);
printf("\nAngkutan yang Anda pilih adalah : \n");
printf("%s",jurusan[pilih-1]);
getch();
}
Hasil:

Contoh 2:
#include <stdio.h>;
#include <conio.h>;
void main()
{
char *nama1 = "SEBENING EMBUN PAGI";
char *nama2 = "SEJERNIH MATA AIR";
char *nama3;
clrscr();
puts("Awal :");
printf("Nama-1 : %s", nama1);
printf("\nNama-2 : %s", nama2);
nama3=nama1;
nama1=nama2;
nama2=nama3;
puts("\n\nSetelah ditukar :");
printf("Nama-1 : %s", nama1);

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

printf("\nNama-2 : %s", nama2);


}
Hasil:

Pointer banyak dilibatkan dalam program C, misalnya untuk melewatkan string dari
suatu fungsi ke fungsi yang lain. Penerapan pointer yang paling umum yaitu untuk
menciptakan variabel dinamis yang memungkinkan untuk memakai memori bebas
(memori yang belum dipakai) selama eksekusi program.
Agar suatu pointer menunjujk ke variabel lain, mula-mula pointer harus diisi dengan
alamat dari variabel yang akan ditunjuk. Untuk menyatakan alamat dari suatu
variabel, operator & (operator alamat, yang bersifat unary) bisa digunakan dengan
cara menempatkan operator di depan nama variabel.
Jika suatu variabel sudah ditunjuk pointer, variabel tersebut dapat diakses melalui
variabel itu sendiri (dikatakan sebagai pengaksesan langsung) ataupun melalui
pointer (dikatakan sebagai pengaksesan tidak langsung). Pengaksesan tak langsung
dilakukan dengan menggunakan operator indirection berupa simbol * (bersifat
unary).

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Praktikum 6:
Latihan6.a
Ketiklah program di bawah ini:
/* memasukkan data nilai*/
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
void main()
{
char nama[10] [25];
float nilai[10], jumlah, rata;
int jumlahAnak,i;
char garis[40]="\n==================================";
clrscr();
printf("Banyaknya Anak : "); scanf("%d",&jumlahAnak);
jumlah=0;
for (i=1; i<=jumlahAnak; i++)
{
printf("Nama Mahasiswa : "); scanf("%s",&nama[i]);
printf("Nilai : "); scanf("%f",&nilai[i]);
jumlah += nilai[i];
}
clrscr();
printf(garis);
printf("\nDaftar Nilai Ujian Bahasa C");
printf("\nNama Mahasiswa
Nilai");
printf(garis);
for (i=1; i<=jumlahAnak; i++)
printf("\n %-25s
%5.1f", nama[i], nilai[i]);
printf(garis);
rata= jumlah / jumlahAnak;
printf("\nRata-rata adalah %5.2f ", rata);
getch();
}
Simpan dan jalankan
Latihan 6.b
Buatlah program berikut:
/* menghitung penjumlahan matrix */

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

#include <stdio.h>
#include <ctype.h>
#include <conio.h>
void main()
{
int matrix1[5][5], matrix2[5][5], matrix3[5][5];
int baris,kolom,i,j;
int jumlah;
char garis[40]="==================================\n";
clrscr();
printf("%s",garis);
printf("Jumlah baris matrix: "); scanf("%d",&baris);
printf("Jumlah kolom matrix: "); scanf("%d",&kolom);
printf("%s",garis);
printf("Matrix 1:\n");
for (i=1; i<=baris; i++)
for (j=1; j<=kolom; j++)
{
printf("matrix1[%d,%d]:",i,j);
scanf("%d",&matrix1[i][j]);
}
printf("%s",garis);
printf("Matrix 2:\n");
for (i=1; i<=baris; i++)
for (j=1; j<=kolom; j++)
{
printf("matrix2[%d,%d]:",i,j);
scanf("%d",&matrix2[i][j]);
}
//menghitung jumlah matrix1 +matrix2
for (i=1; i<=baris; i++)
for (j=1; j<=kolom; j++)
matrix3[i][j]=matrix1[i][j]+ matrix2[i][j];

//menampilkan hasil
printf("%s",garis);
printf("Hasil :\n");
for (i=1; i<=baris; i++)
{
printf("|");
for (j=1; j<=kolom; j++)

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

printf("%8d

",matrix3[i][j]);

printf(" |\n");
}
printf("%s",garis);
getch();
}

Simpan dan jalankan. jika berhasil, maka akan tampak seperti berikut:

Latihan 6.c
Buatlah program untuk menghitung perkalian matrix di bawah ini:

8 2

1
X

7 4

12
=

15

Latihan 6.d
Buatlah program untuk mengurutkan data dengan metode selection sort.

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

7.
FUNGSI
Fungsi merupakan sub program. fungsi yang pasti ada di dalam program adalah fungsi main()
seperti program-program yang sudah dibuat sebelumnya.
Contoh fungsi yang sering digunakan: clrsrc(); merupakan fungsi yang digunakan untuk
membersihkan layar. fungsi clrscr ini terdapat dalam file header conio.h. sehingga untuk
memanggil perintah clrscr() sebelumnya harus mengikutkan file conio.h dengan perintah
#include <conio.h>. karena fungsi untuk membersihkan layar sudah dibuatkan oleh C dalam
file conio.h, maka pemrogram tidak perlu susah-susah membuat sebuah fungsi sendiri. fungsi
lain adalah printf(), puts(), gets() dan lain-lain.
adapun fungsi-fungsi yang tidak dibuatkan oleh C, maka pemrogram bisa membuat sendiri
fungsi-fungsi sesuai dengan keinginan pemrogram
beberapat tujuan dibuatnya fungsi:
- agar perintah lebih terstruktur
- mengurangi banyaknya perintah akibat perintah yang sama di ulang-ulang
- efektifitas memori dll
Bentuk umum :
tipe_fungsi nama_fungsi (deklarasi parameter)
{
pernyataan;
pernyataan;
return var
}
cara pemanggilan fungsi
var=namafungsi(parameter);
Keterangan:
- tipe_fungsi merupakan tipe dari hasil kembalian yang diinginkan. adapun nilai yang akan
dikembalikan digunakan perintah return var. jika tidak menginginkan kembalian, cukup
diberikan perintar return; dan tipe_fungsi diisi dengan void.
- perintah return berfungsi untuk mengembalikan nilai, keluar dari fungsi dan kembali ke
program yang memanggil.
- deklarasi parameter merupakan parameter-parameter yang dilewatkan. jika tidak
memerlukan parameter, maka cukup dikosongkan
tipe_fungsi nama_fungsi ()

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Contoh 1:
//Menggunakan fungsi
#include <math.h>
#include <stdio.h>
#include <conio.h>
void tampilkanGaris()
{
printf("========================================\n");
}
void main()
{
tampilkanGaris();
printf("Belajar Fungsi\n");
tampilkanGaris();
getch();
}
hasil:

Keterangan:
- Pada contoh1 di atas, fungsi tampilkanGaris berisi perintah untuk menampilkan tanda =
berulang kali.
- karena fungsi tampilkanGaris tidak mengembalikan nilai, maka dibeikan tipe void dan
perintah return tidak harus dituliskan
- fungsi tampilkanGaris dipanggil 2 kali, sehingga tampak hasil garis sebanyak 2 kali pula.
Contoh 2:
//Penggunaan fungsi dan parameter
#include <stdio.h>
#include <conio.h>
void tampilkanGaris(int panjang)
{
int i;
for (i=1;i<=panjang;i++) printf("=");
printf("\n");
}
void main()

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

{
tampilkanGaris(20);
printf("Belajar Fungsi\n");
tampilkanGaris(30);
getch();
}
Hasil:

Contoh 3a:
//penggunaan fungsi, parameter dan return
#include <stdio.h>
#include <conio.h>
void tambah1(int angka1,int angka2)
{
int hasil;
hasil=angka1+angka2;
printf("%d ditambah %d sama dengan %d\n", angka1, angka2,
hasil);
}
int tambah2(int angka1,int angka2)
{
int hasil;
hasil=angka1+angka2;
return hasil;
}
void main()
{
int h;
tambah1(2,3);
h=tambah2(33,20);
printf("Hasil 33 ditambah 20 sama dengan %d\n",h);
getch();
}
hasil:
2 ditambah 3 sama dengan 5
Hasil 33 ditambah 20 sama dengan 53

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Keterangan:
- Pada contoh 3 di atas, fungsi tambah1 tidak mengembalikan nilai, meskipun bisa
menampilkan hasil, sehingga menggunakan tipe void
- fungsi tambah2 mengembalikan nilai bertipe integer yang dimasukkan dalam variabel
hasil. karena nilai yang dikembalikan bertipe integer, maka fungsi yang dipanggil pun
harus pertipe integer, yaitu: int tambah2(...)
- untuk memanggil fungsi tambah1, cukup dengan perintah tambah1(2,3) di mana angka 2
bertipe integer dan angka 3 juga bertipe integer. angka 2 dan tidak bisa diganti-ganti
sesuai dengan keinginan.
- untuk memanggil fungsi tambah2 menggunakan h=tambah2(33,20); yang mana variabel
h harus bertipe integer, sesuai dengan tipe dari fungsi tambah2.
Contoh 3b:
//penggabungan fungsi dan pointer
#include <stdio.h>
#include <string.h>
#include <conio.h>
void bulan(int bl)
{
static char *namaBulan[]=
{ "-", "Januari", "Feburari", "Maret",
"April", "Mei", "Juni", "Juli", "Agustus", "September",
"Oktober", "November", "Desember" };
printf("%s", namaBulan[bl]);
}
void main()
{
printf("Bulan ke-1 adalah bulan ");bulan(1);
};
Hasil:
Bulan ke-1 adalah bulan Januari

Scope Variabel
Jika diperhatikan, dari contoh 3 di atas, terdapat 2 kali inisial variabel hasil, pada fungsi
tambah1 dan pada fungsi tambah2.
Pada fungsi tambah1 terdapat inisial variabel int hasil;
Pada fungsi tambah2 juga terdapat inisial variabel int hasil;

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Hal ini menunjukkan bahwa inisial variabel pada suatu fungsi tidak dikenali di fungsi yang
lain. Variabel ini disebut dengan variabel local. Adapun variabel jenis lain adalah variabel
public, dimana semua fungsi mengenali variabel tersebut. Variabel public ini biasanya
diinisialisasi pada sebelum penulisan fungsi-fungsi. Ruang lingkup variabel ini disebut
dengan scope variabel
.
Perhatikan contoh di bawah ini:
Contoh 4a:
//penggunaan fungsi, parameter dan return
#include <stdio.h>
#include <conio.h>
void tambah1(int angka1,int angka2)
{
int hasil;
hasil=angka1+angka2;
printf("%d ditambah %d sama dengan %d\n", angka1, angka2,
hasil);
}
int tambah2(int angka1,int angka2)
{
int hasil;
hasil=angka1+angka2;
return hasil;
}
void main()
{
int h;
tambah1(2,3);
h=tambah2(33,20);
printf("Hasil 33 ditambah 20 sama dengan %d\n",h);
getch();
}
Variabel hasil masih bersifat local. Agar menjadi variabel yang bersifat public, maka
program dapat diubah menjadi:
//penggunaan fungsi, parameter dan return
#include <stdio.h>
#include <conio.h>
int hasil;
void tambah1(int angka1,int angka2)

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

{
hasil=angka1+angka2;
printf("%d ditambah %d sama dengan %d\n", angka1, angka2,
hasil);
}
int tambah2(int angka1,int angka2)
{
hasil=angka1+angka2;
return hasil;
}
void main()
{
int h;
tambah1(2,3);
h=tambah2(33,20);
printf("Hasil 33 ditambah 20 sama dengan %d\n",h);
getch();
}
Variabel yang sudah diinisialisasi secara public, tidak perlu diinsialisasikan di dalam fungsi
lagi. Sehingga inisial int hasil pada fungsi tambah1 dan tambah2 dihilangkan dan
dipindahkan ke luar fungsi.
Contoh 5:
//penggunaan fungsi,variabel local dan variable public
#include <stdio.h>
#include <conio.h>
#include <math.h>
int angka1;
void test1()
{
angka1=100;
}
void test2()
{
int angka1;
angka1=200;
}
void main()
{
clrscr();
angka1=25;

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

printf("\nNilai variabel angka1 adalah %d",angka1);


test1();
printf("\nNilai variabel angka1 ");
printf("\nsetelah menjalankan fungsi test1 adalah %d",angka1);
test2();
printf("\nNilai variabel angka1 ");
printf("\nsetelah menjalankan fungsi test2 adalah %d",angka1);
getch();
}
Hasil:

Keterangan:
terdapat 2 kali inisialisais variabel angka1 (int angka1), inisial variabel angka1 yang
diletakkan di luar fungsi bersifat public, tetapi inisial variabel yang diletakkan pada
fungsi test2 bersifat local. Karena variabel angka1 yang ada di fungsi test2 bersifat
local, maka pengubahan nilai variabel angka1 yang ada fungsi tersebut tidak mengubah
nilai yang ada pada variabel nilai1 yang bersifat public. Pada fungsi main, angka1
diberi nilai 25, sehingga saat ditampilkan, bernilai 25. setelah menjalankan fungsi test1,
nilai angka1 berubah menjadi 100. hal ini dikarenakan pada fungsi test1 terdapat
perintah mengubah angka1 (angka1=100), yang mana pada fungsi test1 tidak terdapat
inisialisasi variabel angka1 yang menunjukkan bahwa angka1 yang diubah adalah
angka1 yang bersifat public. Setelah menjalankan fungsi test2, angka1 tidak berubah.
Padahal pada fungsi test2 terdapat pengubahan angka1 (angka1=200). Hal ini
dikarenakan variabel angka1 yang diubah oleh test2 adalah variabel angka1 local.

Fungsi Recursi
Fungsi recursi merupakan sebuah fungsi yang di dalamnya terdapat perintah untuk
memanggil fungsi itu sendiri.
Contoh 1:
//fungsi recursi
#include <stdio.h>
#include <conio.h>
int validasi(int x)
{
if (x>=100)
{
scanf("%d",&x);

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

validasi(x);
}
else
return x;
}
void main()
{
clrscr();
int y=125;
printf("\nMasukkan angka kurang dari 100 :");
validasi(y);
printf("\nTerima kasih");
getch();
}
Hasil:
Masukkan angka kurang dari 100: 252
254
25
Terima kasih
Keterangan:
Pada fungsi validasi di atas, terdapat perintah untuk memanggil diri sendiri, yaitu
perintah validasi(x). perintah ini akan dijalankan jika nilai x yang sebelumnya kurang
dari 100. jika nilai lebih dari 100, maka akan langsung dikembalikan dengan perintah
return x.
Contoh 2:
//fungsi faktorial dengan menggunakan recursi
#include <stdio.h>
#include <conio.h>
int faktorial(int x)
{
int hasil;
if ((x==0) || (x==1))
{
return 1;
}
else
return x*faktorial(x-1);
}
void main()

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

{
clrscr();
int y,z;
printf("\nMasukkan angka : ");scanf("%d",&y);
z=faktorial(y);
printf("\n%d! adalah %d",y,z);
getch();
}
Hasil:
Masukkan angka: 5
5! adalah 120
Contoh 3:
//fungsi ini akan diulang sampai ditekan tombol y
#include <iostream.h>
#include <conio.h>
char tunggusampaiditekantombol(char tb)
{
char t=getch();
if (tb==t)
return '0';
else
return tunggusampaiditekantombol(tb);
}
main()
{
cout<<"tekan huruf y ya..";
tunggusampaiditekantombol('y');
cout<<"\nterima kasih";
}
Hasil:
tekan huruf y ya..
terima kasih

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Praktikum 7
Latihan 7.a
Ketiklah program berikut:
#include <conio.h>
#include <math.h>
float akar(float r)
{
float s;
if (r>=0)
{
s=sqrt(r);
return s;
}
else
{
printf("\nMaaf, Anda memasukkan data yang salah");
return 0;
}
}
void main()
{
float a,b;
clrscr();
printf("Masukkan bilangan >= 0 : "); scanf("%f",&a);
b=akar(a);
printf("\nAkar dari %8.2f adalah %8.2f",a,b);
getch();
}

Simpan dan jalankan

Latihan 7.b
CV TRUST merupakan sebuah lembaga yang bergerak dalam bidang IT. Untuk menghitung
gaji karyawan menggunakan sistem perjam dan per golongan dengan ketentuan sebagai
berikut:
Golongan
1
2
3

Gaji Perjam Normal


50000
40000
30000

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Jika Lembur, maka gaji perjamnya adalah gaji perjam normal ditambah 5000.
Buatlah programnya jika diinginkan:
Input: nama, jumlah jam kerja normal,golongan, jumlah jam kerja lembur
Fungsi yang digunakan:
- fungsi hitunggaji dengan parameter:gol,jamnormal,jamlembur bertipe float
output: total gaji yang diterima
contoh kerangka program:
#.include ..
float hitunggaji(int gol, int jamlembur, int jamlembur)
{
.
}
void main()
{
.
}
contoh hasil yang diinginkan:

Latihan 7.c
Dari soal 7b,
- tambahkan input untuk jumlah karyawan
- gunakan perulangan untuk memasukkan data-data karyawan
- buatlah fungsi tersendiri untuk memasukkan data karyawan,
contoh pemanggilan: inputKaryawan(x) dimana x adalan nomor karyawan
- buat pula fungsi tersendiri untuk menampilkan hasilnya
contoh: tampilkanHasil;
Contoh kerangka program:
float hitunggaji(int gol, int jamlembur, int jamlembur)
{

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

.
}
void inputKaryawan(int x)
{

}
void tampilkanHasil()
{

}
void main()
{
.
For (x=1;x<=jlhkaryawan;x++) inputKaryawan(x);
tampilkanHasil();
}

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

8.
STRUKTUR
Struktur adalah koleksi dari variabel yang dinyatakan dengan sebuah nama dengan sifat
setiap variabel dapat memiliki tipe yang berlainan. Struktur biasa dipakai untuk
mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan. Struktur ini
sering digunakan untum mencatat berkas data, seperti database mahasiswa, database
penjualan dll.
bentuk umum:
struct nama_tipe_struktur
{ tipe field-1;
tipe field-2;
tipe field-n;
} var_struk1, var_struk2,..., var_strukn;
atau
struct nama_tipe_struktur
{ tipe field-1;
tipe field-2;
tipe field-n;
}
nama_tipe_struk var_struk1, var_struk2,..., var_strukn;
contoh :
struct dataMahasiswa
{ char nama[30];
char kelas[10];
int nilai;
};
dataMahasiswa mahasiswa1;
atau
struct dataMahasiswa
{ char nama[30];
int nilai;
} mahasiswa1;
untuk mengisi atau mengambil suatu nilai field yang ada di dalam struk digunakan
var_struk1.nama_field

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

contoh:
mahasiswa1.nilai=90;
gets(mahasiswa1.nama);
Struk bertingkat
Dalam prakteknya, suatu struk bisa di definisikan ke dalam struk lain.
contoh:

struct tanggal
{ int tanggal;
int bulan;
int tahun;
};
struct dataMahasiswa
{
char nama[30];
int nilai;
struct tanggal tgl_lahir;
} mahasiwa1;
jika diinginkan mengisi data bulan, maka dapat dilakukan dengan cara:
mahasiswa1.tgl_lahir.bulan=9
sedangkan untuk mengambil data nama atau data nilai,
puts(mahasiswa1.nama);
n=mahasiswa1.nilai;
Contoh:
#include <stdio.h>
#include <string.h>
#include <conio.h>
void main()
{
struct tanggal
{ int tanggal;
int bulan;
int tahun;
};
struct dataMahasiswa
{

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

char nama[30];
struct tanggal tgl_lahir;
};
struct dataMahasiswa dataku;
char tombol;
int i, jumlah = 0;
puts("DATA MAHASISWA : \n");
clrscr();
printf("Nama : "); gets(dataku.nama);
printf("Tanggal Lahir (tgl-bulan-tahun) : ");
scanf("%d-%d-%d", &dataku.tgl_lahir.tanggal,
&dataku.tgl_lahir.bulan,
&dataku.tgl_lahir.tahun);
printf("\nData MAHASISWA\n");
printf("NAMA
TANGGAL LAHIR");
printf("\n%-21s %d-%d-%d", dataku.nama,
dataku.tgl_lahir.tanggal, dataku.tgl_lahir.bulan,
dataku.tgl_lahir.tahun);
getch();
}
Hasil:

Array Struktur
Penggabungan struktur dengan array sering kali dilakukan.
Contoh :
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#define maks 20
void main()
{

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

struct tanggal
{ int tanggal;
int bulan;
int tahun;
};
struct dataMahasiswa
{
char nama[30];
struct tanggal tgl_lahir;
};
struct dataMahasiswa dataku[maks];
char tombol;
int i, jumlah = 0;
puts("DATA MAHASISWA : \n");
clrscr();
do
{
printf("Nama : "); gets(dataku[jumlah].nama);
printf("Tanggal Lahir (tgl-bulan-tahun) : ");
scanf("%d-%d-%d",
&dataku[jumlah].tgl_lahir.tanggal,
&dataku[jumlah].tgl_lahir.bulan,
&dataku[jumlah].tgl_lahir.tahun);
fflush(stdin); //hapus sisa data dalam penampung
keyboard
jumlah ++;
printf("\nMasih ada data lagi [y/t] ? ");
tombol = toupper(getch());
while ( !(tombol == 'T' || tombol == 'Y'))
tombol = toupper(getch());
printf("%c\n\n", tombol);
}
while (tombol== 'Y');
printf("\nData MAHASISWA\n");
printf("NAMA
TANGGAL LAHIR");
for(i=0; i<jumlah; i++)
printf("\n%-21s %d-%d-%d", dataku[i].nama,
dataku[i].tgl_lahir.tanggal,

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

dataku[i].tgl_lahir.bulan,
dataku[i].tgl_lahir.tahun);
getch();
}
Hasil :

Praktikum 8
Latihan 8.a
Buatlah sebuah program dengan menggunakan tipe struk untuk memasukkan data
buku perpustakaan, jika diketahui field-field bukunya: judul,penerbit,pengarang,tahun
terbit.
Algoritma dan Pemrograman II dengan bahasa C++
Universitas Teknologi Yogyakarta
Umar, S.Kom
um412(c)III-2009

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Referensi
Sutejo Budi S, Algoritma & Teknik Pemrograman, Andi Offset, 2004
Munir Rinaldi, Algoritma dan Pemrograman Dalam Bahasa Pascal dan C
Edisi 3, Penerbit Informatika, 2005
http://stimkijakarta.ac.id

Algoritma dan Pemrograman I dengan bahasa C++


Universitas Teknologi Yogyakarta

Anda mungkin juga menyukai