LAPORAN PRAKTIKUM
SEMESTER GASAL 2012 / 2013
KELAS : 1 – D
NURUL AZIZAH 12.1.03.02.0134
Program Studi Teknik Informatika
Fakultas Teknik
Universitas Nusantara PGRI Kediri
2012
KATA PENGANTAR
Puji syukur kehadirat
Tuhan Yang Maha Esa yang telah memberikan rahmat serta hidayah-Nya kepada
penulis sehingga dapat menyelasaikan makalah praktikum algoritma dapat
diselesaikan sesuai rencana. Tujuan makalah ini adalah untuk memenuhi tugas
makalah praktikum algoritma sebagai syarat UAS semester gasal.
Penyusun menyadari
bahwa makalah ini tidak terlepas dan bantuan dan dorongan dari beberapa pihak,
maka pada kesempatan ini penyusun mengucapkan terima kasih kepada:
1. Bu Patmi Kasih, S.Kom. selaku dosen Algoritma
Pemrograman I
2. Kedua orang tua kami, serta semua pihak yang
telah memberikan semangat, ide dan bantuannya sehingga penyusun dapat
menyelesaikan makalah ini.
Akhirnya penyusun
berharap semoga makalah ini bermanfaat bagi pennyusun dan mata kuliah Algoritma
Pemrograman I pada umumnya.
Oleh karena itu, saran
dari pembaca sangat diharapkan .
Atas saran dan
kritiknya penyusun ucapkan terima kasih.
Kediri, Januari 2013
Penyusun
Nurul Azizah
HALAMAN PENGESAHAN
Karya
tulis yang berbentuk laporan ini telah diperiksa dan disetuji pada:
Hari
:
Tanggal :
Oleh :
Pembimbing,
PATMI
KASIH, S.Kom
NIDN.
DAFTAR
ISI
Personalia Laporan Praktikum
Mahasiswa
Nama : NURUL AZIZAH
NPM : 12.1.03.02.0134
Kelas : 1 - D
Email : wacapa.waccapa@gmail.com
HP : 0858 5448 5810
Program
Studi : Teknik Informatika
Fakultas : Teknik
Dosen
Pembimbing Praktikum
Nama : PATMI KASIH, S.Kom.
NIDN :
Kritik, Saran dan Masukkan yang
Bermanfaat
Untuk
Dosen Pembimbing
...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
|
Untuk
Puskom / Ka. Laboratorium
...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
|
Untuk
Program Studi
...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
|
BAB
I
PENDAHULUAN
a. LATAR BELAKANG
Algoritma merupakan sebuah
bahasa atau metode yang diaplikasikan menggunakan computer, biasa dikenal
dengan istilah bahasa pemograman, dengan algoritma kita bisa membuat sebuah
program yang dapat digunakan menyelesaikan sebuah masalah yang sederhana
hingga yang kompleks sekalipun.
Sebagai contoh kecil, tentunya anda pernah datang ke minimarket, yang
mana penghitungan pembelian dilakukan menggunakan computer, tidak menggunakan
sebuah kalkulator biasa, nah itulah salah satu program yang di hasilkan dengan
menyusun algoritma (bahasa pemograman).
Begitu juga dengan
seorang guru atau dosen yang mengajar banyak murid, maka dengan adanya
algoritma kita bisa membuat sebuah program yang dipergunakan untuk menghitung
nilai-nilai atau grade yang dihasilkan murid secara cepat dan otomatis, kita
hanya menginputkan data, maka program yang telah dibuat itu lah yang akan
mengeksekusi.
Tujuan dari belajar algoritma & pemrograman
adalah agar dapat membiasakan diri melakukan suatu perencanaan apabila
menyelesaikan suatu masalah, karena suatu permasalahan yang diselesaikan dengan
suatu perencanaan yang matang maka akan mendapatkan solusi yang lebih optimal
dibandingkan menyelesaikan masalah tanpa menggunakan suatu perencanaan. oleh
karena itu, penyusun mencoba untk memaparkan masalah tentang konsep dasar
pemrograman.
b.
RUMUSAN
MASALAH
Makalah ini merumuskan beberapa permasalahan sebagai berikut :
- Apa pengertian program,pemrograman dan algoritma ?
- Syarat-syarat apa yang ada pada elemen dasar suatu file ?
- Type apa saja yang ada pada data ?
- Apa pengertian model komputasi ?
- Bagaimana perkembangan bahasa pemrograman ?
- Bagaiman langka-langkah dalam pemrograman komputer ?
c.
RUANG
LINGKUP
Dalam makalah ini, penulis membatasi
masalah yang akan dibahas pada materi kuliah pemrograman terstruktur. pembahasa
lebih dikhususkan pada konsep dasar pemrograman. hal tersebut dimaksudkan untuk
mempertegas pembahasan sehingga dapat terfokus pada masalah yang akan dibahas
serta dapat memberikan gambaran umum tentang isi makalah sehingga pembaca lebih
mudah mempelajarinya.
d.
TUJUAN
Maksud dari penyusunan tugas ini
adalah untuk memenuhi dan melengkapi salah satu tugas mata kuliah pemrograman
terstruktur di bina sarana informasi. sedangkan tujuan dari penulisan tugas ini
adalah :
- Menerapkan teori yang didapat selama belajar di bina sarana informasi.
- Mengembangkan kreativitas dan wawasan penulis.
- Memberikan uraian konsep dasar pemrograman secara lebih terperinci.
e. METODE PENGUMPULAN DATA
Untuk memperoleh data yang diperlukan dalam penyusunan tugas ini, penulis
menggunakan metode browsing internet, yaitu metode yang dilakukan dengan
browsing atau membaca atau mencari referensi-referensi yang berkaitan
dengan masalah yang dibahas dalam tugas ini di internet.
BAB II
PEMBAHASAN
1.1
Konsep
Dasar Pemrograman
1.
Pengertian Program, Pemrograman dan Algoritma
Program adalah kata, ekspresi, pernyataan atau kombinasi yang disusun dan
dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk
menyelesaikan masalah dan diimplementasikan dengan menggunakan bahasa
pemrograman sehingga dapat dieksekusi oleh komputer.
Pemrograman adalah proses mengimplementasikan urutan langkah untuk
menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemrograman.
sedangkan pemrograman terstruktur adalah metode yang mengorganisasikan dan
membuat kode-kode program supaya mudah untuk dimengerti, mudah di test dan di
modifikasi.
Algoritma berasal dari kata algoris dan ritmis yang pertama
kali ditemukan oleh Abu Jafar Mohammad Ibn Musa al Khowaritzmi (825 M) dari
buku Al Jabr Wa al Muqabla. dalam bidang pemrograman algoritma didefinisikan
sebagai suatu meode khusus yang tepat dan terdiri dari serangkaian langkah yang
terstruktur dan dituliskan secara sistematis yang akan dikerjakan untuk
menyelesaikan masalah dengan bantuan komputer.
Algoritma adalah urutan
langkah-langkah logis yang disusun secara sistematis untuk menyelesaikan suatu
masalah. Kata logis (logika) merupakan kunci dalam algoritma.
Langkah-langkah dalam
algoritma harus logis, hasil algoritma harus dapat ditentukan bernilai benar
atau salah. Langkah yang salah akan memberikan hasil yang salah.
Proses
dari algoritma hingga terbentuk suatu solusi disebut dengan tahap implementasi.
solusi yang dimaksud adalah suatu program yang merupakan implementasi
dari algoritma yang disusun.
Contoh
: Algoritma ketika ingin mengirimkan surat kepada teman, yaitu :
1.
Tulis surat pada secarik kertas surat
2.
Ambil sampul surat
3.
Masukkan surat ke dalam sampul
4.
Tutup sampul surat menggunakan perekat
5.
Tempel perangko pada surat
6.
Bawa surat ke kantor pos untuk di poskan
1.1.1
Data
Tipe data merupakan suatu kelas dari objek data dengan kumpulan operasi
untuk membentuk dan memanipulasinya
Elemen dasar suatu file data mempunyai syarat-syarat sebagai berikut:
a. Atribut : membedakan
objek-objek data dari tipe tersebut, misalnya nama objek data
b. Nilai : dimiliki oleh objek data dari tipe tersebut dipengaruhi oleh
hardware komputer, contoh : int, short, long (dalam bahasa C)
c. Operasi : mendefinisikan manipulasi-manipulasi yang memungkinkan oleh
objek data dari tipe tersebut
1.
Biasanya merupakan operasi secara matematika
2.
Suatu operasi yang mempunyai dua argumen dan
menghasilkan satu hasil disebut operasi binary, atau argumen disebut unary
3.
Jumlah argumen : arity
1. Tipe data
dasar
Merupakan tipe data dasar primitif yang tidak terstruktur yang
didefinisikan oleh bahasa pemrograman.
Tipe data dasar di bagi menjadi lima bagian yaitu :
1.
Tipe
Data Numerik
Disetiap bahasa pemrograman dapat dipastikan ada tipe data numerik
yaitu menyimpan data berupa angka.
1.
Integer : merupakan bilangan bulat dan negatif
2.
Subrange : merupakan sebuah subype dari tipe data
integer dan terdiri dari urutan nilai-nilai integer dalam range yang terbatas
3.
Floating-print Real : biasa disingkat dan disebut
tipe data riil.
4.
Fixed-point Real : bilangan fixwd-pont
direpresentasikan dengan urutan digit.
5.
Lain-lain :tipe data lainnya adalah bagian kompleks
dan bilangan rational
2.
Enumerasi
Enumerasi adalah suatu urutan list dari
nilai-nilai yang berbeda
3.
Boolean
Tipe data
untuk merepresentasikan Treu dan False.
4.
Character
Tipe data untuk menyimpan rangkaian karakter.
2. Tipe Data
Terstruktur
Merupakan tipe data campuran dari berbagai tipe data dasar, contohnya
array, record, string, list dan file.
3. Tipe Data
didefinisikan oleh Pemakai
Tipe data ini biasanya disebut Enumerasi.
4. Tipe Data
Penunjuk
Contoh tipe data penunjuk adalah pointer.
1.2
Kontrol Alir Keputusan
Pseudocode
merupakan suatu bahasa programmer terhadap permasalahan yang akan
diselesaikan tanpa memikirkan tatabahasa (sintaks) dari bahasa pemrograman tertentu.
Kegunaan psedocode adalah sebagai berikut
- Menjembatani antara bahasa ibu programmer dengan bahasa komputer.
- Menggambarkan logika urutan program tanpa memperhatikan bagaimana bahasa
pemrogramannya.
Setelah kode program bentuk pseudocode ini dirancang dan telah diperiksa dengan teliti
kebenarannya, langkah selanjutnya adalah membuat program yang sebenarnya.
Walaupun dalam penulisan pseudocode tidak ada aturan yang resmi, namun telah
ditetapkan suatu aturan untuk menulis pseudocode, khususnya untuk kata-kata kunci
(keywords) dan kata-kata cadangan (reserved word), yaitu harus dicetak dengan huruf
tebal.
diselesaikan tanpa memikirkan tatabahasa (sintaks) dari bahasa pemrograman tertentu.
Kegunaan psedocode adalah sebagai berikut
- Menjembatani antara bahasa ibu programmer dengan bahasa komputer.
- Menggambarkan logika urutan program tanpa memperhatikan bagaimana bahasa
pemrogramannya.
Setelah kode program bentuk pseudocode ini dirancang dan telah diperiksa dengan teliti
kebenarannya, langkah selanjutnya adalah membuat program yang sebenarnya.
Walaupun dalam penulisan pseudocode tidak ada aturan yang resmi, namun telah
ditetapkan suatu aturan untuk menulis pseudocode, khususnya untuk kata-kata kunci
(keywords) dan kata-kata cadangan (reserved word), yaitu harus dicetak dengan huruf
tebal.
Mulai
tinggi r x sin(sudut)
L ½ x alas x tinggi
r alas / cos(sudut)
Selesai
Tampilkan
L
baca sudut, alas
Dalam pseudocode terdapat tiga bentuk dasar, yaitu
1. Urutan penamaan
Urutan adalah suatu koleksi dari berbagai statemen instruksi masukan / keluaran.
Secara eksplisit masukan / keluaran dalam psedocode dituliskan sebagai berikut
Read data from source
dan
Write data to destination
2. Struktur seleksi
Struktur seleksi merupakan dasar logika kontrol alir keputusan. Artinya bahwa
blok statemen dilaksanakan jika kondisi bernilai boolean true.
- Seleksi bentuk If
Bentuk umum penulisan pseudocode untuk struktur seleksi If atau kontrol alir
keputusan sebagai berikut
If <condition>
Then perform block_1
Then perform block_2
Endif
Artinya bahwa blok seleksi dimulai dari bagian “If” dan diakhiri dengan “Endif”
- Seleksi bentuk CASE
Bentuk umum pseudocode struktur seleksi CASE adalah sebagai berikut:
Selected_variabel
CASE(value_1) block_1
CASE(value_2) block_2
:
:
DEFAULT CASE block_n
Endselect
3. Struktur iterasi
Struktur iterasi merupakan dasar logika kontrol alir pengulangan. Artinya bahwa
blok statemen dilaksanakan berulang-ulang samapi suatu keadaan akhirnya
terpenuhi.
- Iterasi bentuk DO WHILE
Bentuk umum pseudocode iterasi DO WHILE adalah sebagai berikut
While <condition> do
perform block
Endwhile
- Iterasi bentuk DO
Bentuk umum pseudocode iterasi DO adalah sebagai berikut
Do index = initial to limit
perform block
Enddo
- Iterasi FOR
Bentuk umum pseudocode iterasi FOR adalah sebagai berikut
For index = initial to limit
perform block
Endfor
Contoh Berikut ini adalah contoh penyajian algoritma dengna menggunakan pseudocode untuk
masalah penetapan nilai lebih besar atau lebih kecil dari dua bilangan A dan B.
Begin
Read data nilai A dan nilai B
If nilai A > nilai B
Write “bilangan A lebih besar dari bilangan B”
Else
Write “bilangan A lebih kecil dari bilangan B”
Endif
End
2
Perulangan
for dimulai dengan kata kunci for, diikuti
oleh tanda kurung buka, aksi-awal, kondisi-kelanjutan-loop,
aksi-setelah-tiap-iterasi, kurung penutup, opening brace,
pernyataan atau blok pernyataan dan closing brace. Secara umum, sintak
penulisan perulangan for adalah sebagai berikut:
3
for
(aksi-awal, kondisi-kelanjutan-loop, aksi-setelah-tiap-iterasi) {
// loop body
pernyataan atau blok pernyataan;
}
// loop body
pernyataan atau blok pernyataan;
}
4
Perulangan
for menggunakan sebuah variabel untuk mengontrol berapa kali
pernyataan atau blok pernyataan akan dieksekusi dan kapan perulangan tersebut
akan berakhir. Variabel ini disebut dengan variabel kontrol (control variable).
Berikut ini adalah bagan alir dari perulangan for:
Gambar
01. Bagian alir perulangan “for”
5
Variabel
kontrol harus dideklarasikan di dalam struktur kontrol perulangan for
atau sebelum perulangan for. Apabila variabel kontrol dari
perulangan for digunakan hanya di dalam perulangan dan tidak
digunakan di tempat lain, maka variabel kontrol tersebut sebaiknya
dideklarasikan di aksi-awal dari perulangan for.
Untuk variabel kontrol yang dideklarasikan dengan cara demikian, tidak dapat
diacu (digunakan untuk maksud lain) diluar perulangan for.
6
Contoh
berikut ini adalah program membentuk gambar segitiga siku-siku dari karakter asterisk
(*). Gambar segitiga siku-siku dibuat dengan menggunakan
perulangan for tersarang dan hasilnya ditampilkan di kotak
dialok pesan.
5.1.
//
Nama file : SegitigaSiku2.java
5.2.
//
Membentuk gambar segitiga siku-siku dari tanda asterik
5.3.
5.4.
//
Mengimpor Java predifined class
5.5.
import
javax.swing.JOptionPane;
5.6.
5.7.
//
Deklarasi kelas segitigaSiku2
5.8.
public
class SegitigaSiku2 {
5.9.
5.10.
public static void main(String[] args) {
5.11.
5.12.
String asterik = "";
5.13.
5.14. for (int x
= 1; x <= 7; x++) {
5.15.
5.16.
// pernyataan perulangan for tersarang
5.17.
for (int y = 0; y < x; y++) {
5.18.
asterik += "* ";
5.19.
}
5.20.
5.21.
asterik += "\n";
5.22.
}
5.23.
5.24.
JOptionPane.showMessageDialog(null,
asterik, "Gambar Segitiga Siku-Siku",
5.25.
JOptionPane.INFORMATION_MESSAGE);
5.26.
5.27.
System.exit(0);
5.28.
}
5.29.
}
Gambar 02. Kotak dialog “for
bersarang / nested for”
Gambar 03. Output kotak dialog for
bersarang / nested for
2.3.
Kontrol Alir Perulangan
1. Struktur if, fungsinya:
Memutuskan untuk mengeksekusi statement atau blok
statement jika dan hanya jika ekspresi bernilai true.
Alur
Gambar 04.
Alur struktur if
Bentuk Umum
1
2
3
4
5
6
7
|
if(ekspresi_boolean)
{
statement...
...
}
|
Contoh
1
2
3
4
5
|
int nilai
= 90;
if(nilai
> 80) {
cout<<“Lulus”;
}
|
2. Struktur if else, fungsinya:
Memutuskan untuk mengeksekusi statement atau blok
statement bila kondisi bernilai true, atau mengeksekusi statement atau blok
statement lain bila kondisi bernilai false
Alur
Gambar 05.
Alur struktur if else
Bentuk Umum
1
2
3
4
5
|
if(ekspresi
logika) {
statement...
} else {
statement...
}
|
Contoh
1
2
3
4
5
6
|
int nilai
= 78;
if(nilai
> 80) {
cout<<“Lulus”;
} else {
cout<<“Gagal”;
}
|
Panduan Penulisan
2.
Untuk menghindari kesalahan letakkan statement –
statement dalam blok if atau if-else dalam tanda kurung { }
3.
Dapat dibuat blok if atau if-else bersarang. Contoh:
C++
1
2
3
4
5
6
7
8
9
|
if(ekspresi_boolean)
{
if(ekspresi_boolean)
{
statement...
...
}
} else {
statement...
...
}
|
3. Struktur if – else if , fungsinya:
blok default bersifat opsional).
Contoh
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
int nilai
= 7;
switch(nilai)
{
case 10:
case 9 :
cout<<“Sangat
Bagus”;
break;
case 8 :
case 7 :
case 6 :
cout<<“Bagus”;
break;
default:
cout<<“Gagal”;
}
|
2.4.
Fungsi ( Method)
Sebuah
fungsi berisi sejumlah pernyataan yang dikemas dalam sebuah nama.
Selanjutnya
nama ini dapat dipanggil beberapa kali di beberapa tempat dalam program.
Fungsi
memudahkan dalam mengembangkan program dan menghemat ukuran program.
gambar 06. Script program fungsi
Gambar 07. Output program fungsi
Pada
contoh diatas. Fungsi garis() digunakan untuk menampilkan 49 buah karakter
minus(-). Fungsi ini dipanggil tiga kali di pada fungsi main()
Umumnya
fungsi menerima masukkan (disebut argumen atau parameter). Masukkan ini
selanjutnya diproses oleh fungsi. Hasil akhir berupa sebuah nilai yang disebut
nilai balik (return value)
Contoh:
kap=toupper(huruf);
Maka:
1.
Huruf adalah argumen
bagi fungsi toupper()
2.
toupper() memberikan nilai balik (berupa huruf kapital dari huruf) ke variabel kap.
PROTOTIPE FUNGSI
- Deklarasi fungsi dikenal dengan sebutan prototipe fungsi. Prototipe ini berupa:
- Nama fungsi
- Tipe nilai balik fungsi
- Jumlah dan tipe argumen
Dan diakhiri dengan titik koma(;), sebagaimana pada pendeklarasian
variabel.
Contoh:
- long kuadrat(long l);
- int maks3(int a, int b, int c);
- double maks(double x, double y);
- void garis();
Manfaat dari prototipe fungsi
adalah menjamin tipe argumen yang dilewatkan pada pemanggilan fungsi benar-benar
sesuai.
Definisi Fungsi
- Setiap fungsi yang dipanggil di dalam program harus didefinisikan.
- Letaknya dapat dimana saja.
- Khusus untuk fungsi yang disediakan sistem, definisinya sebenarnya ada dalam pustaka, yang akan digabungkan dengan program sewaktu proses linking.
- Contoh definisi fungsi kuadrat() yang dibuat oleh pemrogram (seperti yang telah disinggung pada prototipe fungsi di depan:
- //prototipe fungsi
long kuadrat (long l);
----------------------------
//definisi fungsi
long kuadrat (long l)
{
return(l*l);
}
- Pada pendefinisian fungsi, setelah:
long kuadrat (long l)
tidak terdapat titikkoma berbeda
dengan prototipe fungsi yang diakhiri dengan titikkoma
- Return didalam fungsi digunakan untuk memberikan nilai balik fungsi,pada contoh fungsi kuadrat() memberikan nilai balik berupa nilai kuadrat dari argumen
Contoh pembuatan
fungsi dengan argumen bertipe long dan nilai balik juga bertipe long:
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
long kuadrat(long l);//prototipe fungsi
void main()
{
Clrscr();
For (long bil=200;bil>2000;bil+=200)
Cout<<setw(8)<<bil<<setw(8)<<kuadrat(bil)<<endl;
}
//Definisi fungsi
Long kuadrat(long l)
{
return(l*l);
}
Parameter dan Nilai
Balik
Fungsi dengan Nilai
Balik
Gambar 08. Script
fungsi dengan nilai balik
Fungsi Tanpa Nilai
Balik
- Adakalanya suatu fungsi tidak perlu nilai balik.
- Misal fungsi yang hanya dimaksudkan untuk menampilkan suatu keterangan saja.
- Tipe nilai balik fungsi yang diperlukan adalah void
Contoh :
void tampilkan_judul()
{
cout<<“PT. Aria
Perkasa”<<endl;
cout<<“Jl. Kertadipura 27
A”<<endl;
cout<<“Kudus”<<endl;
}
Pada contoh diatas tidak ada pernyataan return, mengingat fungsi tidak memiliki
nilai balik.
Namun penggunaan pernyataan return secara eksplisit juga diperkenankan.
Dalam hal ini, pernyataan return yang digunakan berbentuk:
return
saja.
void tampilkan_judul()
{
cout<<“PT. Aria
Perkasa”<<endl;
cout<<“Jl. Kertadipura 27
A”<<endl;
cout<<“Kudus”<<endl;
return;//ada return disini
}
Gambar 09. Script
fungsi tanpa nilai balik
Nilai Bawaan Argumen
Fungsi
- Pada C++ argumen fungsi dapat memiliki nilai bawaan (nilai default).
Contoh:
Gambar 10. Nilai
default fungsi
Gambar 11. Nilai
default fungsi
Referensi
- Pada C++ referensi digunakan untuk memberikan nama alias dari variabel. Bentuk pendeklarasiannya :
- Setelah pendeklarasian seperti diatas, ref menjadi nama alias dari nama_variabel.
- Pengubahan nilai terhadap nama_variabel dapat dilakukan melalui nama_variabel itu sendiri ataupun melalui referensi ref.
Gambar 12. Referensi pada fungsi
- Dengan menggunakan referensi, suatu argumen fungsi dapat diubah nilainya dari dalam fungsi.
- Sebelumnya, perhatikan contoh berikut ini :
Gambar 13. Referensi pada fungsi
- Pada program di depan, walaupun nilai a dan b sudah ditukar di dalam fungsi tukar(), namun sebenarnya nilai a dan b pada fungsi main() belum ditukar.
- Dengan menggunakan referensi, nilai a dan b pada fungsi main() dapat ikut ditukarkan dari dalam fungsi tukar.
- Perubahan perlu dilakukan pada prototipe fungsi dan definisi fungsi.
Gambar 14.
Referensi pada fungsi
Lingkup Variabel
- Lingkup variabel didalam penulisan fungsi sangat penting, agar tidak salah dalam menggunakan suatu variabel.
- Lingkup variabel menentukan keberadaan suatu variabel tertentu didalam fungsi.
- Ada variabel yang dikenal disuatu fungsi dan tidak dikenal pada fungsi lain
- Namun ada variabel yang diakses oleh semua fungsi
Jenis variabel berdasarkan kelas penyimpanannya, yang berkaitan dg
lingkup variabel, yaitu:
Variabel otomatis
Variabel yang didefinisikan di dalam suatu fungsi berlaku sebagai
variabel lokal bagi fungsi. Artinya, variabel tersebut hanya dikenal didalam
fungsi tempat variabel didefinisikan. Sebagai contoh, suatu fungsi
didefinisikan sebagai berikut:
void alpha()
{
int x=20; //variabel lokal pada alpha()
double y=3.14; //begitu juga
variabel ini
cout<<"Pada
alpha():x="<<x<<"y="<<y<<endl;
getch();
}
Pada contoh ini, x
dan y berlaku sebagai variabel lokal dalam fungsi alpha ()
#include<iostream.h>
#include<conio.h>
void alpha(); //prototipe fungsi
void main()
{
int x=22; //variabel lokal pada main()
double y=2.22; //begitu juga
variabel ini
clrscr(); //hapus layar
cout<<"Pada
main():x="<<x<<"y="<<y<<endl;
alpha(); //panggil fungsi alpha
cout<<"Pada
main():x="<<x<<"y="<<y<<endl;
}
//Definisi fungsi alpha()
void alpha()
{
int x=20; //variabel lokal pada alpha()
double y=3.14; //begitu juga variabel ini
cout<<"Pada
alpha():x="<<x<<"y="<<y<<endl;
getch();
}
Gambar 15. Output
script program variabel otomatis
Output:
Tampak bahwa perubahan x dan y pada alpha() tidak mempengaruhi variabel
bernama sama pada main(). Ini membuktikan bahwa variabel-variabel tersebut
bersifat lokal bagi masing-masing fungsi yang mendefinisikan.
Variabel seperti x dan y pada fungsi alpha() biasa disebut sbg variabel
otomatis(begitu juga pada main()).
Sifatnya:
- Variabel hanya akan diciptakan pada saat fungsi dipanggil (dan akan diletakkan ke stack)
- Pada saat fungsi berakhir (selesai dieksekusi), variabel otomatis menjadi sirna
- Tidak ada inisialisasi secara otomatis (saat variabel diciptakan). Inisialisasi oleh pemrogram akan dikerjakan setiap kali fungsi dipanggil
- Hanya dapat diakses di dalam fungsi yang didefinisikannya.
Variabel eksternal
Kebalikan dari variabel otomatis
Variabel eksternal adalah variabel yang didefinisikan diluar fungsi
manapun.
Variabel ini dikenal dengan variabel global, sebab variabel ini dikenal
di semua fungsi.
#include<iostream.h>
#include<conio.h>
int oblada=550; // variabel
eksternal
void tambah(); //prototipe
fungsi
void main()
{
clrscr(); //hapus layar
cout<<oblada<<endl;
tambah();
cout<<oblada<<endl;
tambah();
cout<<oblada<<endl;
tambah();
}
//Definisi fungsi alpha()
void tambah()
{
oblada++; // variabel eksternal dinaikkan
}
Gambar 16. Output
script program variabel eksternal
1.
Penggunaan variabel
eksternal sesedikit mungkin tidak usah digunakan. Tidak lain adalah karena
variabel ini mudah sekali terubah oleh pernyataan penugasan yang letaknya bisa
dimana saja. Ini bisa menimbulkan efek samping yang sulit untuk melacaknya,
terutama untuk program yang besar.
2.
Variabel eksternal
mempunyai durasi selama program dieksekusi. Dengan kata lain, memori yang
digunakan untuk variabel ini tetap dipertahankan selama program belum berakhir.
Variabel statis
Baik variabel eksternal maupun otomatis dapat berkedudukan sebagai
variabel statis. Suatu variabel statis mempunyai sifat:
1.
Jika variabel lokal
berdiri sebagai variabel statis, maka:
2.
Variabel tetap hanya
dapat diakses pada fungsi yang mendefinisikannya.
3.
Variabel tidak hilang
saat eksekusi fungsi berakhir. Nilainya akan tetap dipertahankan, sehingga akan
dikenali pada pemanggilan fungsi untuk tahap berikutnya.
4.
Inisialisasi oleh
pemrogram akan dilakukan sekali saja selama program dijalankan. Jika tidak ada
inisialisasi secara eksplisit, variabel diisi dengan nol
2. . Jika variabel eksternal dijadikan sebagai variabel ini dapat diakses
oleh semua file yang didefinisikan pada file yang sama dengan variabel
eksternal tersebut (hal ini bermanfaat pada pemrogram file berganda atau kode
program ditaruh pada beberapa file) Variabel statis diperoleh dengan menambahkan kata
kunci static didepan tipe variabel pada pernyataan pendefinisian.
Sebagai contoh:
static int waterloo;
void abba()
{
static mamamia;
…
}
Pada contoh di atas:
Waterloo adalah variabel eksternal yang bersifat statis
Mamamia adalah variabel otomatis (lokal) yang bersifat statis bagi fungsi
abba()
Gambar 17. Script dan output variabel statis
2. Berdasarkan hasil diatas, terlihat bahwa variabel statis mamamia pada fungsi
saya_ingat() hanya diinisialisasi (bernilai 77) sekali saja.
3. Kemudian setiap kali fungsi saya_ingat() dipanggil nilai variabel
tersebut dinaikkan sebesar 1(berkat perintah: mamamia++;)
4. Tampak pula bahwa variabel bernama sama yang didefinisikan pada fungsi
main() tidak ada kaitannya dengan variabel yang tidak menyertakan kata kunci static
Gambar 18. Script dan output variabel statis
Hasil diatas menunjukkan bahwa apabila variabel mamamia pada fungsi
saya_ingat() tidak didefinisikansebagai variabel statis,maka variabel tersebut
selalu diinisialisasikan sama dengan 77.Oleh karena itu,hasil yangditampilkan
selalu berupa 78(akibat dinaikkan oleh mamamia++;)
2.1.
Array
dan String
2.1.1.
Array
Array adalah kumpulan data bertipe sama yang menggunakan nama sama.
Dengan mengggunakan array, sejumlah variabel dapat memakai nama yang
sama.
Antara satu variabel dengan variabel lain di dalam array dibedakan
berdasarkan subscript.
Sebuah subscript berupa bilangan di dalam kurung siku.
Melalui subscript inilah masing-masing elemen array dapat diakses.
Macam-macam Array :
2. Array dapat dibedakan menjadi :
2.2.Array berdimensi satu
2.3.Array berdimensi dua
2.4.Array berdimensi banyak
2.1.1.1.
Array berdimensi satu
Misalkan kita ingin membuat program untuk mencari nilai rata-rata dari 5
buah data nilai yang diinputkan oleh user.
Tanpa menggunakan array, maka programnya adalah sebagai berikut :
Gambar 19. Script array
- Pada program di depan kita memerlukan 5 buah variabel yang berbeda-beda untuk menyimpan 5 buah nilai.
- Bisa dibayangkan kesulitan yang dihadapi jika kita harus memproses data yang lebih banyak.
- Untuk lebih mudah kita dapat menggunakan array, seperti pada program berikut :
Gambar 20. Script array
Mendefinisikan Array:
- Mendefinisikan array meliputi :
- Tipe data elemen array
- Nama array
- Jumlah elemen array
- Misal :
- Subscript array (index array) dimulai dari nol.
Contoh :
Memberikan Nilai Awal Array
Contoh:
Atau
2. Untuk memberikan nilai awal yang sama pada array :
Gambar 21. Contoh program array
2.1.1.2.
Array berdimensi Dua
C++ menyediakan array berdimensi dua dan dapat digunakan untuk berbagai
keperluan.
Misalnya untuk menyimpan data seperti berikut :
Jurusan / Tahun
|
1992
|
1993
|
1994
|
1995
|
Teknik Informatika
|
35
|
45
|
80
|
120
|
Manajemen Informatika
|
100
|
110
|
70
|
101
|
Teknik Komputer
|
10
|
15
|
20
|
17
|
}
Bentuk tabel diatas
dapat dituangkan dalam bentuk array berdimensi dua dengan pendefinisian sebagai
berikut :
}
Pada pendefinisian
diatas :
}
3 menyatakan jumlah
baris (mewakili jurusan)
}
4 menyatakan jumlah
kolom (mewakili tahun kelulusan)
}
Masing-masing elemen
dalam array berdimensi dua dapat diakses dengan bentuk :
Contoh pengaksesan:
Artinya, memberikan nilai 5
ke baris 1 kolom 2 (baris dan kolom dimulai dari 0).
Artinya, menampilkan elemen
data_lulus dengan subscript pertama (baris) berupa 1 dan subscript kedua
(kolom) berupa 2.
Gambar 22. Contoh
program
}
Berikut ini merupakan
contoh pengunnaan array berdimensi 2 untuk program pertambahan matrik ukuran
3x3.
Gambar 23. Contoh
program
- Operasi yang umumnya dilakukan menggunakan array adalah :
- Mencari bilangan terbesar / terkecil.
- Mencari suatu data pada array.
- Mengurutkan data.
Mengurutkan data pada array
}
Ada berbagai teknik
untuk mengurutkan data, salah satunya adalah metode bubble sort.
}
Pengurutan dilakukan
dengan membandingkan setiap elemen array dengan seluruh elemen yang terletak
sesudah posisinya.
Gambar 23. Contoh
program
2.1.2.
String
String sangat memudahkan
pemrogram.
Dengan string kita dapat
menampilkan prompt, pesan kesalahan dan berbagai informasi lainnya.
Seperti halnya tipe data
lain, string juga dapat berupa konstanta atau variabel.
Variabel string sebenarnya
merupakan array karakter.
Memasukkan data string dari keyboard
Gambar 24. Contoh
program
- Program di depan dapat berjalan dengan normal jika diinputkan sebuah kata.
- Namun jika terdapat spasi (lebih dari satu kata) maka kata sesudah spasi tidak ditampung dalam variabel string.
- Ini disebabkan karena operator >> pada cin hanya bisa membaca masukan hingga terdapat spasi, tab atau enter.
- Untuk mengatasi hal tersebut kita dapat menggunakan fungsi anggot getline().
Fungsi anggota getline()
Gambar 25. Contoh
program
Menyalin string menggunakan strcpy()
Gambar 25. Contoh
program
Fungsi untuk operasi string
}
Kompiler Borland C++
maupun Turbo C++ menyediakan sejumlah fungsi yang berkaitan dengan operasi
string. Beberapa diantaranya : strlen(), strcat(), strcmp(),
stricmp(), strncmp(), strlwr(), strupr(), strstr(),
strrev()
}
Semua fungsi diatas
mempunyai prototipe string.h
2.2.
Rekursi
Fungsi dalam C++ dapat dipakai secara rekursi.
Artinya suatu fungsi dapat memanggil fungsi yang
merupakan dirinya sendiri.
Contoh penerapan adalah untuk menghitung nilai
perpangkatan : xn
Dimana n adalah bilangan bulat positif.
}
Solusi untuk permasalahan di depan adalah :
Jika
n = 1 à xn = x
Jika
tidak à xn = x *
xn-1
}
Solusi untuk permasalahan di depan adalah :
Jika
n = 1 à xn = x
Jika
tidak à xn = x *
xn-1
gambar 26. Contoh
program
BAB III
PENUTUP
1.
Kesimpulan
Konsep dasar pemrograman meliputi proses
bagaimana mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah.
Proses dari masalah hingga terbentuk suatu algoritma disebut tahap pemecahan
masalah, sedangkan tahap dari algoritma hingga terbentuk suatu solusi disebut
dengan tahap implementasi. Solusi yang dimaksud adalah suatu program merupakan
proses impelementasi dari algoritma yang disusun.
Untuk menciptakan suatu program yang
baik yang memiliki portabilitas yang tinggi, sehingga memudahkan dalam
merancang dan merawat program serta meningkatkan efektifitas penggunaan
peralatan komputer dibutuhkan suatu standar program. Standar-standar tersebut
sering dilihat oleh pemrogram sebagai batasan kreatifitas dan kemampuan untuk
menuangkan berbagai ide ke dalam bentuk program. Namun dengan adanya standar
akan membuat program menjadi konsisten dan mudah untuk dikembangkan.
2.
Saran
Untuk menciptakan suatu program yang
baik harus memenuhi beberapa kriteria yaitu :
}
Mudah dikembangkan di masa mendatang
}
Dalam menyusun program sebaiknya pemrogram membuat
persiapan dan rancangan arsitektur program dengan matang, sehingga tidak
menimbulkan masalah pada tahap coding dan testing
}
Sintaks dan semantik bahasa pemrograman yang baik
haruslah konsisten dan tidak bermakna ganda
}
Bahasa programmer yang baik haruslah berkemampuan
untuk mendukung berbagai tipe data(integer, real, pointer,dsb) dan terstruktur
dalam array, record ataupun object
}
Bahasa pemrograman yang baik haruslah dapat
mendukung berbagai jenis model file seperti sequential, random access, index,
multiple index dan lain sebagainya.
}
Bahasa pemrograman yang baik haruslah dapat dipakai
pada berbagai tipe mesin komputer yang berbeda, jadi bersifat machine
independent.
}
Bahasa pemrograman yang baik haruslah efisien.
}
Bahasa pemrograman tersebut harus mudah dipelajari
maupun diajarkan.
}
Bahasa pemrograman tersebut harus memiliki jangkauan
luas pada berbagai aplikasi pemrograman sehingga dapat disebut bahasa yang
serbaguna.
DAFTAR PUSTAKA
A.MATERI ALPRO 2012,
PATMI KASIH, S.om
Array Part I-II, I Gusti Agung Made
Wirautama, S.Kom
http://www.google.com/
http://ruly.blogdetik.com/2009/10/04/pengertian-dasar-logika-dan-algoritma/http://yusriel.wordpress.com/2008/09/24/pertemuan-1-pengertian-dasar-logika-dan-algoritma.
Tidak ada komentar:
Posting Komentar