Nama Praktikan
Aditya Setyawan
Nomor
Mahasiswa
Tanggal
Kumpul
Tanda Tangan
Praktikan
1414370123
Nama Penilai
Tanggal
Koreksi
Nilai
Tanda Tangan
Dosen
KATA PENGANTAR
Alhamdulillah, puji syukur penulis haturkan kehadirat Allah SWT. Atas
rahmat-Nya lah Penulis dapat menyelesaikan Praktikum dan Laporan
praktikum ini tepat pada waktunya. Tak lupa Penulis juga menghaturkan terima
kasih yang sebesar-besarnya kepada semua pihak yang telah mendukung dan
membantu Penulis dalam menyelesaikan Laporan Praktikum ini.
Dalam Laporan Praktikum ALGORITMA DAN PEMROGRAMAN ini,
akan dibahas mengenai pengertian Algoritma dan Pemrograman, sejarah
Algoritma itu sendiri, kemudian dasar-dasar pemrograman yang menjelaskan
tentang variabel, tipe data, dan operator yang terdapat dalam bahasa
pemrograman. Selain itu, untuk mempermudah pemahaman juga sebagai bahan
latihan, Penulis juga menyertakan contoh program yang dapat dipraktekkan oleh para
pembaca.
Namun demikian, Penulis merasa masih banyak sekali kekurangan
dalam penyusunanLaporan Praktikum ini, sesuai dengan pepatah yang mengatakan bahwa
tak ada gading yang tak retak. Oleh karena itu, segala saran dan kritik yang membangun dari
yang lebih berkompeten di bidang Algoritma dan Pemrograman, penulis terima
dengan penuh rasa terima kasih.
Akhir kata, Penulis berharap makalah ini dapat bermanfaat bagi para
pembaca, khususnya bagi yang akan mempelajari Algoritma dan Pemrograman.
I
Laporan Praktikum Algoritma
Pemrograman
DAFTAR ISI
KATA PENGANTAR
DAFTAR ISI
II
BAB 1 PENDAHULUAN
1.1.LATAR BELAKANG
1.2.TUJUAN
2.1.1.4. ALGORITMA
9
14
II
Laporan Praktikum Algoritma
Pemrograman
19
19
21
26
30
39
49
49
56
BAB 4 PENUTUP
62
4.1. KESIMPULAN
62
4.2. REFERENSI
62
III
Laporan Praktikum Algoritma
Pemrograman
BAB I
Pendahuluan
1.2. Latar Belakang
Pesatnya teknologi, terutama teknologi komputer sudah tak bisa
dipungkiri lagi, bagi yang mengikuti perkembangannya, ia tidak akan
dipandang sebelah mata. Sebaliknya, bagi yang tidak mengikuti
perkembangannya, bersiaplah untuk mundur secara suka rela dari
panggung kompetisi. Ibarat wabah, teknologi komputer sudah menyusupi
hampir semua bidang kehidupan manusia. Dari pemerintah pusat sampai
tingkat
pemerintah
desa,
perusahaan-perusahaan,
supermarket,
1
Laporan Praktikum Algoritma
Pemrograman
BAB 2
DASAR TEORI
2.1. PENGERTIAN ALGORITMA DAN PEMROGRAMAN
Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai
sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti
proses menghitung dengan angka arab. Anda dikatakan Algorist jika anda
menghitung menggunakan Angka Arab. Para ahli bahasa berusaha
menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya
para ahli sejarah matematika menemukan asal kata tersebut yang berasal
dari nama penulis buku arab yang terkenal yaitu Abu Jafar Muhammad
Ibnu Musa Al-Khuwarizmi.
Al-Khuwarizmi
dibaca
orang
barat
menjadi
Algorism.
Al-
2
Laporan Praktikum Algoritma
Pemrograman
3
Laporan Praktikum Algoritma
Pemrograman
selalu ada urutan langkah-lankah membuat masakan. Bila langkahlangkahnya tidak logis, tidak dapat dihasilkan masakan yang
diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan
membaca satu per satu langkah-langkah pembuatannya lalu ia
mengerjakan proses sesuai yang ia baca. Secara umum, pihak
(benda) yang mengerjakan proses disebut pemroses (processor).
Pemroses tersebut dapat berupa manusia, komputer, robot atau alat
alat elektronik lainnya. Pemroses melakukan suatu proses dengan
melaksanakan atau mengeksekusi algoritma yang menjabarkan
proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di
dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai
dengan algoritma yang diberikan kepadanya. Juru masak membuat
kue
berdasarkan
resep
yang
diberikan
kepadanya,
pianis
2.
tersebut.
4
2.1.1.2. Mekanisme Pelaksanan Algoritma Oleh Pemroses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan
oleh komputer, algoritma hasrus ditulis dalam notasi bahasa
pemrograman sehingga dinamakan program. Jadi program adalah
prwujudan atau implementasi teknis Algoritma yang ditulis dalam
bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh
komputer.
2.1.1.3. Belajar Memprogram Dan Belajar Bahasa Pemrograman
Belajar
memprogram
pemrograman.
Belajar
tidak
sama
dengan
belajar
bahasa
tentang
5
Programming
Language Paradigm
Declarativ
e
Imperative
Prosedural C,
Pascal,
Fortran,
Basic
ObjOriented
Ada, Object
Pascal, C++,
Java,
Smalltalk,
Eiffel
Parallel
Processing :
Ada, Pascal S,
Occam,
CLinda
Logic :
PROLOG
Functional :
LISP, APL,
SCHEME
Database :
SQL
a. Belajar Memprogram
Belajar memprogram belajar bahasa pemrograman
Belajar memprogram : belajar tentang strategi pemecahan
masalah, metodologi dan sistematika pemecahan masalah
kemudian menuliskannya dalam notasi yang disepakati
bersama.
Belajar memprogram : bersifat pemahaman persoalan,
analisis dan sintesis.
Belajar memprogram, titik berat : designer program.
b. Belajar Bahasa Pemrograman
Belajar bahasa pemrograman : belajar memakai suatu bahasa
pemrograman, aturan sintaks, tatacara untuk memanfaatkan
instruksi yang spesifik untuk setiap bahasa.
Belajar bahasa pemrograman, titik berat : coder.
Laporan Praktikum Algoritma
Pemrograman
6
c. Produk yang dihasilkan Pemrogram :
Program
dengan
rancangan
yang
baik
(metodologis,
sistematis).
Dapat dieksekusi oleh mesin.
Berfungsi dengan benar.
Sanggup melayani segala kemungkinan masukan.
Disertai dokumentasi.
Belajar memprogram, titik berat : designer program.
2.1.1.4. Algoritma
a. Aksi :
kejadian yang terjadi pada selang waktu terbatas (dimulai
saat T0 dan berakhir pada saat T1).
Menghasilkan efek netto yang terdefinisi dengan baik dan
direncanakan.
b. Contoh :
Ibu Tati mengupas kentang untuk mempersiapkan makan
malam (luas ruang lingkupnya).
Karena ruang lingkup luas, maka harus didefinisikan keadaan
awal dan efek netto yang direncanakan ( Initial State dan
Final State).
Initial State (keadaan awal) : T0 kentang sudah ada dikantong
kentang, dan ditaruh di rak dapur dimana ibu Tati akan
mengupasnya.
Final State (keadaan akhir) : T1 kentang dalam keadaan
terkupas di panci, siap untuk dimasak dan kantong kertasnya
harus dikembalikan ke rak lagi.
Laporan Praktikum Algoritma
Pemrograman
7
Kejadian : urut-urutan dari beberapa aksi yang terjadi secara
berurutan.
Efek kumulatif dari semua aksi yang terjadi menjadi efek
netto dari kejadian.
Penggolongan suatu kejadian menjadi aksi adalah relatif
tergantung dari sudut pandang. Contoh mengupas kentang
dapat dijelaskan :
- Ambil kantong kentang dari rak
- Ambil panci dari almari
- Kupas kentang
- Kembalikan kantong kentang ke rak
Contoh lain (jika tidak dipandang perlu untuk menjelaskan
kantong kentang diambil dari rak sebelum ambil panci) :
- Ambil kantong kentang dari rak dan ambil panci dari
almari
- Kupas kentang
- Kembalikan kantong kentang ke rak
Jika esok hari ibu Tati mengupas kentang lagi untuk makan
malam juga, dan kita mengamati hal-hal yang sama, apakah hal
tsb bisa disebut sama? Ini tergantung jawabannya bisa sama
bisa tidak.
Tidak karena ibu Tati tidak mungkin mengupas kentang yang
sama dengan kemarin.
Sama karena kemiripan pola yang dilakukan.
8
2.1.1.5.
Notasi
Algoritma
Independen
Terhadap
Bahasa
seperti
operasi
operasi
pembacaan
aritmatika,
dan
data,
operasi
sebagainya.
Perkembangan teknologi komputer tidak mengubah operasioperasi dasar itu, yang berubah hanyalah kecepatan, biaya, atau
tingkat ketelitian. Pada sisi lain setiap program dalam bahasa
tingkat tinggi selalu diterjemahkan kedalam bahasa mesin
sebelum akhirnya dikerjakan oleh CPU. Setiap instruksi dalam
bahasa mesin menyajikan operasi dasar yang sesuai, dan
menghasilkan efek netto yang sama pada setiap komputer.
Pemrograman Prosedural
Algoritma berisi urutan langkah-langkah penyelesaian masalah.
Ini berarti Algoritma adalah proses yang procedural.
Definisi Prosedural menurut Kamus Besar Bahasa Indonesia :
1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
2. Metode langkah demi langkah secara eksak dalam
memecahkan suatu masalah.
Pada pemrograman procedural, program dibedakan antara
bagian data dengan bagian instruksi. Bagian instruksi terdiri
atas runtutan (sequence) instruksi yang dilaksanakan satu per
satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi
dapat berubah karena adanya pencabangan kondisional. Data
yang disimpan di dalam memori dimanipulasi oleh instrusi
secara beruntun atau procedural. Paradigma pemrograman
seperti ini dinamakan pemrograman procedural.
Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal,
Fortran dan C mendukung kegiatan pemrograman procedural,
karena itu mereka dinamakan juga bahasa procedural. Selain
paradigma pemrograman procedural, ada lagi paradigma yang
lain yaitu pemrograman berorientasi objek (Object Oriented
Programming). Paradigma pemrograman ini merupakan trend
baru dan sangat populr akhir-akhir ini.
10
Paradigma pemrograman yang lain adalah pemrograman
fungsional, pemrogramn deklaratif dan pemrograman
konkuren. Pada kesempatan ini penulis hanya menyajikan
paradigma pemrograman procedural saja.
Keuntungan pemakaian algoritma adalah: logika pemecahan
masalah dapat
dibuat bertingkat (mulai dari global menuju terperinci),
algoritma
strategi
pemecahan
maslah,
algoritma
dalam
kehidupan
sehari-hari,
11
12
Notasi II :
Notasi III :
Algoritma Luas_Segiempat
Menghitung luas segiempat dengan memasukkan nilai lebar
dan panjang
segiempat
Deklarasi
Luas,panjang,lebar :integer
Deskripsi
Input(n)
Luas= panjang * lebar
Output(Luas)
13
2.1.2.
langkah tersebut dapat ditulis dalam notasi apapun, asalkan mudah dibaca
dan dimengerti, karena memang tidak ada notasi baku dalam penulisan
algoritma. Tiap orang dapat membuat aturan penulisan dan notasi
algoritma sendiri. Agar notasi algoritma mudah ditranslasi ke dalam notasi
bahasa pemrograman, maka sebaiknya notasi algoritma tersebut
berkorespnden dengan notasi bahasa pemrograman secara umum.
a. Aturan Penulisan Algoritma
Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu :
Judul (Header)
Kamus
Algoritma
Pada setiap bagian tersebut apabila akan dituliskan komentar
mengenai setiap bagian tersebut dituliskan diantara tanda kurung
kurawa contoh { Komentar }. Notasi algoritmis yang dituliskan
diantara tanda ini tidak akan dieksekusi oleh program.
Contoh :
Judul
{ Komentar mengenai Algoritma seperti cara kerja program, Kondisi awal dan
kondisi akhir dari algoritma }
Kamus
{ Pada bagian ini, didefinifikan nama konstanta, nama variable, nama
prosedur dan nama fungsi }
Algoritma
{ Pada bagian ini algoritma dituliskan. Semua teks yang dituliskan tidak
diantara tanda kurung kurawa akan dianggap sebagai notasi algoritma yang
akan berpengaruh terhadap kebenaran algoritma }
14
Judul (Header)
Judul adalah bagian teks algoritma yang digunakan sebagai tempat
mendefinisikan nama dengan menentukan apakah teks tersebut adalah
program, prosedur, fungsi. Setelah judul disarankan untuk menuliskan
spesifikasi singkat dari teks algoritma tersebut. Nama algoritma
sebaiknya singkat namun cukup menggambarkan apa yang akan
dilakukan oleh algoritma tersebut.
Contoh :
Program Luas_Kubus
{Judul Algoritma}
{ Menghitung luas kubus untuk ukuran sisi yang dibaca dari piranti masukan
lalu mencetak hasilnya kepiranti keluaran} {Spesifikasi Algoritma}
Catatan :
Untuk memisahkan antara kata dalam judul algoritma menggunakan
tanda _ bukanlah suatu keharusan. Anda dapat menuliskan
LuasLingkaran atau Luas_Lingkaran. Tetapi sebaiknya anda tidak
menggunakan spasi untuk memisahkan antara kata di dalam nama
algoritma.
Kamus (Deklarasi)
Kamus adalah bagian teks algoritma sebagai tempat untuk
mendefinisikan :
Nama type
Nama konstanta
Nama variable
Nama fungsi
Nama prosedur
Laporan Praktikum Algoritma
Pemrograman
15
Semua nama tersebut baru dapat dipakai di dalam algoritma jika telah
didefinisikan terlebih dahulu didalam kamus. Penulisan sekumpulan
nama dalam kamus sebaiknya dikelompokan menurut jenis nama
tersebut.
Nama
variabel
belum
terdefinisi
nilainya
ketika
Contoh :
Kamus
{Nama type, hanya untuk type yang bukan type dasar}
type jam : <hh,mm,ss :integer> {Type jam terdiri dari 3 masukan
yaitu hh sebagai jam. mm sebagai menit dan ss sebagai detik}
{Nama konstanta, harus menyebutkan type dan nilai }
constant phi : real = 3,14159
constant nama : string = Alex
constant benar : boolean = true
{Nama Informasi, menyebutkan type}
x,y : integer {suatu nilai yang bertype bilangan bulat}
NMax : real {nilai maksimum yang bertype bilangan real}
Nama : string {suatu nilai yang merupakan kumpulan character}
P : point {suatu nilai pada bidang kartesian}
Cari : Boolean {suatu nilai logika}
Laporan Praktikum Algoritma
Pemrograman
16
Algoritma (Deskripsi)
Algoritma adalah bagian inti dari suatu algoritma yang berisi instruksi
atau pemanggilan aksi yang telah didefinisikan. Komponen teks
algoritma dalam pemrograman procedural dapat berupa :
Instruksi dasar seperti input/output, assignment
Sequence (runtutan)
Analisa kasus
Perulangan
Setiap langkah algoritma dibaca dari atas ke bawah. Urutan
deskripsi penulisan menentuan urutan langkah pelaksanaan perintah.
Contoh :
Algoritma
input (c,d) {menerima masukan 2 bilangan c dan d}
if c < d then {operasi kondisional}
e a + b {e di assignment oleh nilai a dan b}
else
e a boutput (e) {hasil keluaran berupa bilangan e}
Catatan :
Untuk kata-kata input, output, if then else, output akan dipelajari lebih
mendalam dalam bab-bab selanjutnya.
Contoh Penyelesaian Masalah Oleh Algoritma
Laporan Praktikum Algoritma
Pemrograman
17
Program Cetak_string
{mencetak string Selamat Belajar Algoritma dan Pemrograman ke piranti
keluaran}
Kamus
{tidak ada}
Algoritma
Output (Selamat Belajar Algoritma dan Pemrograman)
Menentukan nilai terbesar dari bilangan bulat yang dibaca dari piranti
masukan dan menuliskan hasilnya ke piranti keluaran.
Program Nilai_Maksimal
{Menentukan nilai tertinggi yang dibaca dari piranti masukan dan
hasilnya dicetak ke piranti keluaran}
Kamus
hasil,x,y : integer {hasil merupakan variabel untuk menampung nilai
keluaran}
{x,y adalah variabel untuk menampung nilai
masukan}
Algoritma
input (x,y)
if x < y then
hasil x
else
hasil y
output (hasil)
18
2.2
19
1. System Flowchart
menggunakan
simbol-simbol
bagan
alir
sistem,
juga
bagan
alir.
Penggunaan
gambar-gambar
ini
Processing symbols
Menunjukkan jenis operasi pengolahan dalam suatu prosedur
22
Input-output symbols
menyatakan jenis peralatan yang digunakan sebagai media input atau
output.
23
Pedoman Membuat Flowchart
Bila seorang analis dan programmer akan membuat flowchart, ada
beberapa petunjuk yang harus diperhatikan, seperti:
1. Flowchart digambarkan dari halaman atas ke bawah dan dari kiri
kekanan.
2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati
dan definisi ini harus dapat dimengerti oleh pembacanya.
3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara
jelas.
4. Setiap langkah dari aktivitas harus diuraikan dengan
menggunakan deskripsi kata kerja
5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
6. Lingkup dan range dari aktifitas yang sedang digambarkan
harusditelusuri dengan hati-hati. Percabangan-percabangan yang
memotong aktivitas yang sedang digambarkan tidak perlu
digambarkan pada flowchart yang sama. Simbol konektor harus
Laporan Praktikum Algoritma
Pemrograman
24
Contoh Flowchart Program Menentukan Bilangan Ganjil/Genap
Flowchar Sistem untuk predefined process yang diberi nama Check shipment
untuk Flowchart diatas
25
2.3. TIPE DATA
Tipe data merupakan bagian program yang paling penting
karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan
oleh komputer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil
yang berbeda tergantung tipe datanya. Jika 5 dan 2 bertipe integer maka
akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan
menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan
membuat proses operasi data menjadi lebih efisien dan efektif.
Data merupakan suatu nilai yang dapat dinyatakan dalam
bentuk konstanta atau variabel. Konstanta menyatakan nilai yang tetap,
Laporan Praktikum Algoritma
Pemrograman
26
Tipe Data Char
Jenis data karakter digunakan untuk menyajikan karakter.
Masing-masing karakter menempati memori sebesar 1 byte. Satu byte
terdiri dari 8 bit , sehingga dapat menampung 28 = 256 nilai yang
berbeda. Jumlah ini sesuai dengan jumlah karakter ASCII yang
digunakan pada mikrokomputer, dan diberi nomor 0 hingga 255.
Dari 256 karakter ini, sebagian diantaranya adalah karakterkarakter yang tidak dapat dicetak. Untuk dapat mempresentasikan
256 karakter tersebut, variable berjenis char hendaklah dinyatakan
sebagai karakter tak bertanda. Jika tidak dinyatakan demikian,
variabel tersebut akan dipandang sebagai signed char sebagai bentuk
default untuk jenis data char, sehingga hanya dapat menampung
setengah dari keseluruhan karakter ASCII.
Tipe Data Int
27
28
TIPE
Lebar
Jangkauan Nilai
int
16 bit
unsigned int
16 bit
0 s/d 65535
long int
32 bit
32 bit
0 s/d 4294967296
float
32 bit
double
64 bit
char
8 bit
unsigned char
8 bit
s/d 255
29
2.3. Struktur Kondisi
if (kondisi)
pernyataan
30
Penjelasan :
Program diatas menggunakan tipe dasar double karena promgam
tersebut memiliki presisi ganda. Jika anda membeli sebuah barang yang
harga diatas 50.000, maka anda akan mendapatkan diskon 5%.
Output :
Penjelasan
Laporan Praktikum Algoritma
Pemrograman
31
Bentuk umum :
if (kondisi)
Pernyataan -1
else
Pernyataan -2
Contoh Program 2 ( contoh pemakaian if-else)
Penjelasan :
Program ini menggunakan tipe dasar float yaitu nilai. Program ini akan
memeriksa pernyataan yang pertama, jika bernilai benar maka
pernyataan akan dilaksanakan, jika salah maka program akan memeriksa
peryataan yang kedua.
Output
32
Penjelasan :
Sesuai dengan pernyataan yang pertama pada program diatas yaitu jika
pernyataan benar maka akan dilaksanakan, maka ketika kita memasukan
nilai 77 maka pernyataan tersebut benar yaitu >65.
3. Struktur IFBERSARANG (NESTED IF)
Nested if merupakan bentuk dari suatu pernyataan if ( atau if-else)
berada di dalam lingkungan pernyataan if ( atau if-else) yang lainnya.
4. Struktur Kondisi SWITCHCASEDEFAULT.
Kondisi ini digunakan untuk penyeleksian kondisi dengan
kemungkinan yang terjadi cukup banyak. Struktur ini melaksanakan
salah satu dari pernyataan case tergantung nilai kondisi di dalam
switch. Kemudian diteruskan hingga ditemukan pernyataan break.
Jikatidak ada nilai pada case yang sesuai dengan kondisi, maka proses
akan diteruskan kepada pernyataan yang ada dibawah default.
33
Bentuk umum :
switch (kondisi)
{
case konstanta -1:
pernyataan -1;
break:
Laporan Praktikum Algoritma
Pemrograman
case konstanta x:
pernyataan x;
break;
default: pernyataan;
}
34
Penjelasan :
Case digunakan untuk penyeleksian kondisi kemudian diteruskan dengan
pernyataan break. Jika tidak ada nilai pada case yang sesuai dengan
kondisi, maka proses akan dilanjutkan dengan pernyataan yang ada
dibawah.
Output
35
Penjelasan :
Ketika kita memasukan angka 7, maka program akan memeriksa mulai
dari case 1, jika tidak sesuai dengan kondisi maka akan diteruskan lagi
dengan pernyataan berikutnya sampai ditemukan case ke 7 dengan cout
Hari Minggu.
Contoh Program 4
Penjealasan :
36
Program ini menggunakan 2 tipe dasar yaitu int dan char. Program ini
memiliki struktur kondisi if-else. Program ini akan memeriksa
pernyataan yang pertama, jika
bernilai benar maka pernyataan akan dilaksanakan, jika salah maka
program akan memeriksa peryataan yang kedua.
Output
Penjelasan :
Sesuai dengan pernyataan pada program diatas yaitu jika pernyataan
yang pertama bernilai benar maka akan dilaksanakan, maka ketika kita
memasukan nilai 91 maka program akan memeriksa pernyataan yang
pertama dan ternyata kondisi benar maka program akan melaksanakan
dengan menghasilkan output skor A
37
Contoh Program 5
Penjelasan :
Program diatas memiliki struktur if-else dan menggunakan tipe dasar int
dan juga menggunakan symbol (% = mod). Program terlebih dahulu
memeriksa pernyataan pertama jika kondisinya benar maka akan
dilaksanakan tetapi jika tidak maka program akan melanjutkan ke
pernyataan yang berikutnya. Program diatas memiliki 2 penyataan yaitu
bilangan genap dan bilangan ganjil.
Output
38
Penjelasan :
Kita memasukan bilangan 7 maka program akan memeriksa penyataan
yang pertama, ternyata kondisi nya salah dan program akan melanjutkan
ke pernyataan kedua dan memeriksa kondisinya, ternyata pernyataan
kedua kondisinya bernilai benar maka program akan melaksanakannya,
denga menghasilkan tampilan output bilangan ganjil.
2.4. Pengulangan
Struktur pengulangan secara umum terdiri atas dua bagian :
1. kondisi pengulangan, yaitu ekspresi Boolean yang harus dipenuhi untuk
melaksanakan pengulangan. Kondisi ini ada yang dinyatakan secara
eksplisit oleh pemrogram atau dikelola sendiri oleh komputer (implisit);
2. badan (body) pengulangan, yaitu bagian algoritma yang diulang.
39
Inisialisasi dan terminasi tidak selalu harus ada, namun pada berbagai
kasus inisialisasi umumnya diperlukan.
Struktur pengulangan secara umum :
<inisialisasi>
awal pengulangan
badan pengulangan
yang dalam hal ini awal dan akhir pengulangan dinyatakan sebagai kata kunci
yang bergantung pada struktur pengulangan yang digunakan. Selain itu,
<inisialisasi> dan <terminasi> adalah bagian yang opsional.
Di dalam algoritma terdapat beberapa macam struktur pengulangan
yang berbeda. Beberapa struktur dapat dipakai untuk masalah yang sama,
namun ada notasi pengulangan yang hanya cocok dipakai untuk masalah
tertentu. Pemilihan struktur pengulangan untuk masalah tertentu dapat
mempengaruhi kebenaran algoritma. Pemilihan struktur pengulangan yang
tepat bergantung pada masalah yang akan deprogram. Tiga (3) macam notasi
struktur pengulangan, yaitu :
1) struktur FOR
2) struktur WHILE
3) struktur REPEAT
40
Struktur FOR
Struktur pengulangan FOR digunakan untuk menghasilkan
pengulangan sejumlah kali yang dispesifikasikan. Jumlah pengulangan
diketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah sudah
berapa kali pengulangan dilakukan, kita memerlukan sebuah peubah (variable)
pencacah (counter). Peubah ini nilainya selalu bertambah satu setiap kali
pengulangan dilakukan. Jika cacah pengulangan sudah mencapai jumlah yang
dispesifikasikan, maka proses pengulangan berhenti
Bentuk umum struktur FOR ada dua macam : menaik (ascending) atau
menurun (descending).
FOR menaik :
for pencacahnilai_awal to nilai_akhir do
aksi
Keterangan :
i. pencacah haruslah dari tipe data yang memiliki predecessor dan successor,
yaitu integer atau karakter. Tipe riil tidak dapat digunakan sebagai pencacah.
ii. Aksi adalah satu atau lebih instruksi yang diulang.
iii. nilai_awal harus lebih kecil atau sama dengan nilai_akhir. Jika nilai_awal
lebih besar dari nilai_akhir, maka badan pengulangan tidak dimasuki.
iv. Pada awalnya,pencacah diinisialisasi dengan nilai_awal.Nilai pencacah
secara otomatis bertambah satu setiap kali pengulangan dimasuki, sampai
akhirnya nilai pencacah sama dengan nilai_akhir.
v. Jumlah pengulangan yang tejadi adalah nilai_akhir - nilai_awal + 1.
Laporan Praktikum Algoritma
Pemrograman
Contoh analisis :
41
Buatlah algoritma dan program mencetak angka 1, 2, .., N, yang dalam hal ini
nilai N dibaca terlebih dahulu dari piranti masukan
Algoritma CETAK_N_ANGKA
{ mencetak 1, 2, , N ke piranti keluaran }
DEKLARASI
N : integer
k : integer
program CETAK_N_ANGKA;
{ mencetak 1, 2, , N ke piranti keluaran }
uses wincrt;
(* DEKLARASI *)
var
N : integer;
42
Pertanyaan :
Apa yang terjadi bila N=0? N=-1? N=1?
Jawab :
Jika N = 0 atau N = -1, proses pengulangan tidak terjadi, karena nilai akhir
pencacah pengulangan lebih besar dari nilai awalnya (1).
Jika N = 1, pengulangan yang terjadi adalah 1 kali, karena 1 1 + 1 = 1.
For menurun :
for pencacahnilai_akhir downto nilai_awal do
aksi
Keterangan :
Laporan Praktikum Algoritma
Pemrograman
i. Pencacah haruslah dari tipe data yang memiliki predecessor dan successor,
yaitu integer atau karakter. Tipe riil tidak dapat digunakan sebagai
pencacah.
43
ii. Aksi adalah satu atau lebih instruksi yang diulang.
iii. nilai_akhir harus lebih besar atau sama dengan nilai_awal. Jika nilai_akhir
lebih kecil dari nilai_awal, maka badan pengulangan tidak dimasuki.
iv. Pada awalnya, pencacah diinisialisasi dengan nilai_akhir. Nilai pencacah
secara otomatis berkurang satu setiap kali aksi diulang, sampai akhirnya
nilai pencacah sama dengan nilai_awal.
v. Jumlah pengulangan yang terjadi adalah nilai_awal-nilai_akhir+1.
Contoh analisis :
Algorima dan program peluncuran roket dengan hitung mundur, mulai dari 10,
9, 8, , 0.
Algoritma PELUNCURAN_ROKET
{ Hitung mundur peluncuran roket }
DEKLARASI
K : integer
program PELUNCURAN_ROKET;
{ hitung mundur peluncuran roket }
uses wincrt;
(* DEKLARASI *)
var
k : integer;
Pemrograman
44
Struktur WHILE
Bentuk umum :
while kondisi do
aksi
45
iii. misalkan dibaca berturut-turut data : -99
maka jumlah seluruh nilai adalah 0
Algoritma JUMLAH_DATA;
{ menghitung jumlah seluruh nilai bilangan bulat positif
yang dibaca dari piranti masukan. akhir pembacaan data:
-99 }
DEKLARASI
x : integer
jumlah : integer
program JUMLAH_DATA;
{ menghitung jumlah seluruh nilai bilangan bulat positif yang dibaca
dari piranti masukan. akhir pembacaan data: -99 }
uses wincrt;
(* DEKLARASI *)
46
Struktur REPEAT
Bentuk umum :
repeat
aksi
Algoritma PENJUMLAHAN_DERET;
{ menjumlahkan deret
1 + 2 + 3 + ... + N
dengan N adalah bilangan bulat positif yang dibaca dari piranti masukan. jumlah
deret dicetek ke piranti keluaran. }
DEKLARASI
N, k, jumlah : integer;
DESKRIPSI
Pemrograman
program PENJUMLAHAN_DERET;
47
{ menjumlahkan deret
1 + 2 + 3 + ... + N
dengan N adalah bilangan bulat positif yang dibaca dari piranti masukan.
jumlah deret dicetek ke piranti keluaran. }
uses wincrt;
(* DEKLARASI *)
var
N, k, jumlah : integer;
(* DESKRIPSI *)
48
BAB 3
DASAR-DASAR PENGENALAN C++
49
Pendeklarasian tipe data variable.
Tipe data Fungsi atau kegunaan Jangkauan Contoh
Int Dapat menampung nilai positif atau nilai negative. -32768 sampai
32767 125
Float Dapat menampung semua nilai bilangan real, mewakili semua
bilangan,dan bilangan dengan pecahan decimal. -1038 sampai +1038
56.12
Char Mewakili suatu karakter tunggal, sebuah huruf, 1 digit, atau tanda
baca. 1 byte A
Deklarasi & Variabel
Bentuk penulisan
Tipe_data nama_variabel;
Contoh Deklarasi Variabel
char nama_mahasiswa;
char grade;
float rata_rata ;
int nilai;
Perintah Keluaran
Perintah standar output yang disediakan oleh Borland C++, diantaranya
adalah :
printf()
puts()
putchar()
cout()
Laporan Praktikum Algoritma
Pemrograman
printf()
Fungsi printf() merupakan fungsi keluaran yang paling umum digunakan
untuk menampilkan informasi kelayar.
contoh1:
#include
#include
#include
main()
{
50
int a=7;
char b=G';
clrscr();
printf(%c Merupakan Abjad Yang Ke %d, b, a);
getch();
}puts()
Perintah puts() sebenarnya sama dengan printf(), yaitu digunakan untuk
mencetak string ke layar. puts() berasal dari kata PUT STRING.
Perbedaan antara printf() dengan puts() adalah :
Contoh2:
#include
#include
#include
main()
{
char a[4]=BSI;
clrscr();
puts(Saya Kuliah di. ); {put berfungsi untuk mencetak sekaligus
mencipakan baris baru}
puts(a);
getch();
}
putchar()
Perintah putchar() digunakan untuk menampilkan sebuah karakter ke
layar. Penampilan karakter tidak diakhiri dengan pindah baris.
Laporan Praktikum Algoritma
Pemrograman
Contoh3:
#include
#include
main()
{
clrscr();
putchar(B);
putchar(S);
putchar(I);
getch();
}
51
cout()
Penjelasan Fungsi cout() merupakan sebuah objeck didalam C++
digunakan untuk menampilkan suatu data kelayar. Untuk menggunakan
fungsi cout() ini, harus menyertakan file header iostream.h .
Contoh4:
#include
#include
#include
main()
{
float a, b, c;
a=7.5; b=8.4; c=0;
clrscr();
cout<<"Masukan Nilai A : "<<a;
cout<<"Masukan Nilai B : "<<b<<endl;
c = a + b;
cout<<"Masukan Nilai C : "<<c;
getch();
}
Perintah Masukan
Perintah standar input yang disediakan oleh Borland C++, diantaranya
adalah :
scanf()
gets()
Laporan Praktikum Algoritma
Pemrograman
cin()
getch()
getche()
scanf()
Fungsi scanf() digunakan untuk memasukkan berbagai jenis data.
Bentuk Umum dari fungsi ini adalah :
scanf("penentu format", &nama-variabel); format sama dengan format
printf()
52
contoh5:
# include
# include
main()
{
int a, b, c = 0 ;
clrscr();
printf(Masukan Nilai A = ); scanf(%d,&a);
printf(Masukan Nilai B = ); scanf(%d,&b);
c = a + b;
printf(Hasil Penjumlahan = %d,c);
getch();
}
gets()
Fungsi gets() digunakan untuk memasukkan data string.
Bentuk Umum dari fungsi ini adalah :
gets(nama-variabel-array);
Perbedaan scanf dan gets
Contoh6:
# include
# include
main()
{
Laporan Praktikum Algoritma
Pemrograman
char nm1[20];
char nm2[20];
clrscr();
puts(Masukan nama ke 1 = );
gets(nm1);
printf(Masukan nama ke 2 = );
scanf(%s,&nm2);
printf(\n\n);
puts(Senang Berkenalan Dengan Anda ..);
puts(nm1);
printf(Senang Berkenalan Dengan Anda ..%s, nm1);
puts(Senang Berkenalan Dengan Anda ..);
puts(nm1);
printf(\n\n);
53
puts(Senang Berkenalan Dengan Anda ..);
puts(nm2);
printf(Senang Berkenalan Dengan Anda ..%s, nm2)
getch();
}
cin() Fungsi cin() merupakan sebuah objeck didalam C++ digunakan
untuk memasukkan suatu data. Untuk menggunakan fungsi cin() ini, harus
menyertakan file header iostream.h .
contoh7:
# include
# include
# include
main()
{
float a, b, c;
clrscr();
cout<>a;
cout<>b;
c = a + b;
cout<<"Nilai C : "<<c<<endl;
getch();
}
Laporan Praktikum Algoritma
Pemrograman
getch ()
Fungsi getch() (get character and echo) dipakai untuk membaca sebuah
karakter dengan sifat karakter yang dimasukkan tidak perlu diakhiri
dengan menekan tombol ENTER, dan karakter yang dimasukan tidak
akan ditampilkan di layar. File header yang harus disertakan adalah
conio.h.
Contoh8:
# include
# include
main()
{
char kar;
clrscr();
54
printf(Masukan Sebuah Karakter Bebas = );
kar = getch();
printf(\nTadi Anda Memasukan karakter %c, kar);
getch();
}
getche ()
Fungsi getche()dipakai untuk membaca sebuah karakter dengan sifat
karakter yang dimasukkan tidak perlu diakhiri dengan menekan tombol
ENTER, dan karakter yang dimasukan ditampilkan di layar. File header
yang harus disertakan adalah conio.h.
Contoh9:
# include
# include
main()
{
char kar;
clrscr();
printf(Masukan Sebuah Karakter Bebas = );
kar = getche();
printf(\nTadi Anda Memasukan karakter %c, kar);
getch ();
}
Laporan Praktikum Algoritma
Pemrograman
55
Contoh1:
#include
#include
#include
main()
{
int a, b, c = 0, d = 0;
clrscr();
cout<>a;
cout<>b;
c = a % b;
d = a * b;
cout<<" Hasil dari C = A % B = "<<c<<endl;
cout<<" Hasil dari D = A * B = "<<d<<endl;
getch();
}
3.2. Operator Bahasa C++
Operator Penambahan dan Pengurangan
A = A + 1 atau A = A 1;
disederhanakan menjadi :
A += 1 atau A -= 1;
Laporan Praktikum Algoritma
Pemrograman
56
Contoh2:
/* Penggunaan Notasi Didepan Variabel*/
#include
#include
main()
{
int a = 10, b = 5;
clrscr();
printf(Nilai A = %d, a);
printf(\nNilai ++A = %d, ++a);
printf(\nNilai A = %d, a);
printf(\nNilai B = %d, b);
printf(\nNilai B = %d, b);
printf(\nNilai B = %d, b);
getch();
}
Contoh3:
/* Penggunaan Notasi Dibelakang Variabel*/
#include
#include
main()
{
Laporan Praktikum Algoritma
Pemrograman
int a = 10, b = 5;
clrscr();
printf(Nilai A = %d, a);
printf(\nNilai A++ = %d, a++);
printf(\nNilai A = %d, a);
printf(\nNilai B = %d, b);
printf(\nNilai B = %d, b);
printf(\nNilai B = %d, b);
getch();
}
57
Operator Relasi
Operator Keterangan
== Sama dengan (bukan pemberi nilai
!= Tidak sama dengan
> Lebih dari
= Lebih dari sama dengan
<= Kurang dari sama dengan
Contoh4:
#include
#include
#include
main()
{
float a, b, c, d, e, f, x, y;
clrscr();
cout<>x;
cout<>y;
a = x == y;
b = x != y;
c = x > y;
Laporan Praktikum Algoritma
Pemrograman
d = x = y;
f = x <= y;
cout<<endl;
cout<<"Hasil dari "<<x<<" == "<<y<<" = "<<a<<endl;
cout<<"Hasil dari "<<x<<" != "<<y<<" = "<<b<<endl;
cout<<"Hasil dari "<<x< <<y<<" = "<<c<<endl;
cout<<"Hasil dari "<<x<<" < "<<y<<" = "<<d<<endl;
cout<<"Hasil dari "<<x<= <<y<<" = "<<e<<endl;
cout<<"Hasil dari "<<x<<" <= "<<y<<" = "<<f<<endl;
getch();
}
58
Operator Logika
Operator Relasi digunakan untuk menghubungkan dua buah operasi relasi
menjadi sebuah ungkapan kondisi. Hasil dari operator logika ini
menghasilkan nilai numerik 1 (True) atau 0 (False).
Operator Keterangan
&& Operator Logika AND
|| Operator Logika OR
! Operator Logika NOT
Operator And
digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan
dianggap BENAR, bila semua ekspresi relasi yang dihubungkan bernilai
BENAR.
Contoh :
A + 4 A + 5Ekspresi Relasi-1
C 3Ekspresi Relasi-3 >= 4
Laporan Praktikum Algoritma
Pemrograman
Contoh5:
/* Penggunaan Operasi Logika AND */
#include
#include
#include
main()
{
float a, b, c, d, e, f, g, h;
clrscr();
cout<>a;
cout<>b;
cout<>c;
// Proses
d = a + 4 a + 5;
f = c 3 >= 4;
g = d && e && f;
59
cout<<endl<<endl;
cout<<"Program Ekspresi AND"<<endl<<endl;
cout<<"Hasil dari d = a + 4 < 10 adalah " <<d<<endl;
cout< a + 5 adalah <<e<<endl;
cout<= 4 adalah <<f;
cout<<endl<<endl;
cout<<"Hasil dari g = d && e && f adalah " <<g;
cout<<endl;
getch();
}
Operator OR
digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan
dianggap BENAR, bila salah satu ekspresi relasi yang dihubungkan
bernilai BENAR.
Contoh :
A + 4 A + 5Ekspresi Relasi-1
C 3Ekspresi Relasi-3 > 4
Contoh6:
/* Penggunaan Operasi Logika OR */
#include
#include
#include
main()
{
float a, b, c, d, e, f, g, h;
clrscr();
cout<>a;
cout<>b;
cout<>c;
d = a + 5 > 10;
e=b>5+a;
f = c 4 <= 7;
g = d || e || f;
60
cout<<endl<<endl;
cout<<"Program Ekspresi OR"<<endl<<endl;
cout< 10 adalah <<d<<endl;
cout< 5 + a adalah <<e<<endl;
cout<<"Hasil dari f = c 4 <= 7 adalah " <<f;
cout<<endl<<endl;
cout<<"Hasil dari g = d || e || f adalah " <<g;
cout<<endl;
getch();
}
Operator NOT
Operator logika NOT akan memberikan nilai kebalikkan dari ekspresi
yang disebutkan. Jika nilai yang disebutkan bernilai BENAR maka
akan menghasilkan nilai SALAH, begitu pula sebaliknya.
Contoh:
A + 4Ekspresi Relasi < 10
Laporan Praktikum Algoritma
Pemrograman
Contoh7:
/* Penggunaan Operasi Logika NOT */
#include
#include
#include
main()
{
int a, b, c;
clrscr();
cout<>a;
/* Proses */
b = (a + 4 < 10);
c = !(b);
cout<<endl<<"Program Ekspresi NOT "<<endl;
cout<<"Nilai A = "<<a<<endl;
cout<<"Nilai b = (a + 4 < 10) = "<<b<<endl;
cout<<"Nilai c = !(b) = "<<c;
getch();
}
Operasi Penyeleksian Kondisi
Pernyataan Percabangan digunakan untuk memecahkan persoalan untuk
mengambil suatu keputusan diantara sekian pernyataan yang ada.
61
BAB 4
PENUTUP
4.1. Kesimpulan
Imperative program beranalogi dibawah bahasa pemograman yang memacu
atau berorientasi pada objek objek system informasi yang mengarah pada system
informasi. Pembuatan program program komputer dengan penguasaan data yang ada
pada bahasa pemograman untuk dikuasai agar menjadi seorang programmer handal.
Beberapa sub dari bidang pemograman imperative diantaranya adalah variable dan
penugasan ; perintah tidak struktur ; perintah tidak terstruktur ; subprogram, prosedur
dan fungsi; dan penanganan eksepsi. Mengenali dan memberi contoh variable dan
penguasaaanya, mengenali bentuk perintah tidak terstruktur, mengenali bentuk
4.2.Refferensi
http://hannan.h08.alumni.ipb.ac.id/2010/06/12/pengertianpemrograman/
http://ikc.dinus.ac.id/berseri/alex-algoritma/index.php
tugaskuliah.googlecode.com/files/a980b55869178243a3cca38490ce97
11.pdf
62