Rabu, 26 Desember 2012

LAPORAN PRAKTIKUM
SEMESTER GASAL 2012 / 2013


Rounded Rectangle: LAPORAN PRAKTIKUM
<< ALGORITMA PEMROGRAMAN I >>
 







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 :
  1. Apa pengertian program,pemrograman dan algoritma ?
  2. Syarat-syarat apa yang ada pada elemen dasar suatu file ?
  3. Type apa saja yang ada pada data ?
  4. Apa pengertian model komputasi ? 
  5. Bagaimana perkembangan bahasa pemrograman ? 
  6. 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 :
  1. Menerapkan teori yang didapat selama belajar di bina sarana informasi.
  2. Mengembangkan kreativitas dan wawasan penulis.
  3. 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.

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;
}
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:

http://termasmedia.com/images/java/javaperulanganfor.png
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”




http://termasmedia.com/images/java/javaperulanganfor2.png
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
http://khoiruddin.com/wp-content/uploads/2011/07/AlurStrukturIf.png
Gambar 04. Alur struktur if
Bentuk Umum
C++
1
2
3
4
5
6
7
if(ekspresi_boolean) {

statement...

...

}
Contoh
C++
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
http://khoiruddin.com/wp-content/uploads/2011/07/AlurStrukturifelse.png
Gambar 05. Alur struktur if else
Bentuk Umum
C++
1
2
3
4
5
if(ekspresi logika) {
statement...
} else {
statement...
}
Contoh
C++
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
prak1.jpg
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:
  1. Nama fungsi
  2. Tipe nilai balik fungsi
  3. 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.
prak2.jpg
Gambar 23. Contoh program
  1. Operasi yang umumnya dilakukan menggunakan array adalah :
    1. Mencari bilangan terbesar / terkecil.
    2. Mencari suatu data pada array.
    3. 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.
prak3.jpg
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
  1. Program di depan dapat berjalan dengan normal jika diinputkan sebuah kata.
  2. Namun jika terdapat spasi (lebih dari satu kata) maka kata sesudah spasi tidak ditampung dalam variabel string.
  3. Ini disebabkan karena operator >> pada cin hanya bisa membaca masukan hingga terdapat spasi, tab atau enter.
  4. 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