Selasa, 05 April 2011

BAHASA PASCAL

Sejarah singkat PASCAL

Nama PASCAL berasal dari nama seorang ilmuan Perancis Blaise pascal yang kemudian diberikan kepada bahasa program yang diciptakan oleh Niklaus Wirth sekitar tahun 70-an.

PASCAL kemudian menjadi bahasa popular dalam dunia pendidikan computer, menjadi bahasa standar dalam mengajarkan struktur dan disiplin program.
Pada computer mikro, versi yang popular adalah Turbo PASCAL , dan tahun 2000-an versi visual dari PASCAL muncul dengan nama DELPHI.

Algoritma dan PASCAL

Perbandingan antara Algoritma dan PASCAL disajikan sbb:
1. Seperti pada Algoritma, bahasa PASCAL memiliki suatu struktur utama sbb

PROGRAM nama_program

USES modul input-output, pustaka fungsi

VAR

{defenisi variabel yang sama dengan Deklarasi}

BEGIN
….intruksi pemograman
…sama dengan Deskripsi
END


2. Ada beberapa tipe data yang dikenal dalan PASCAL, adalah suatu keharusan untuk
mendefenisikan setiap variabel sebelum digunakan.
Tipe data utama yang dikenal dalan PASCAL adalah sbb:
a. integer: angka bulat antara -32768 s/d 32767
b. longint: bilngan bulat dengan nilai sangat besar
c. word: bilangan bulat positif antara 0 s/d 65535
d. byte: bilangan bulat positif antara 0 s/d 256
e. shortint: bilangan bulat kecil antara -128 s/d 127
f. real: bilangan biasa antara -2.9x10-39 s/d 1.7x10+38
g. single: bilangan biasa hampir sama dengan real
h. double: bilangan biasa yang jauh lebih besar dari real
i. extended: bilangan biasa yang sangat besar lebih dari double
j. char: karakter tunggal dalam tanda kutip (single quote)
k. string: deretan karakter dalam tanda kutip (double quote)

3. Semua variabel harus didefenisikan dalam VAR sebelum digunakan, misalnya sbb:

VAR umur: integer;
Gaji: real;
Nama: string;
Pemberin nilai pada variabel menggunakn tanda assignment “:= “,
Misalnya sbb:

Umur:=32;
Gaji:=350000.50;
Nama:= “Sultan Mahmud”;

4. Intruksi Input-Output adalah sebagai berikut:

Algoritma
Read(variabel);

Write(“teks…”,variabel)

Contoh:

Algoritma Hitung_Rata
{menghitung rata dari tiga angka}
Deklarasi
Real Num1,Num2,Num3,Rata;
String nama;

Deskripsi
Write(“Masukkan Nama anda:”);
Read(Nama);

Write(“Masukkan Angka 1:”);
Read(Num1);
Write(“Masukkan angka 2:”);
Read(Num2);
Write(“Masukkan angka 3:”);
Read(Num#);

Rata=(Num1+Num2+Num3)/3;
Write(“Rata-rata= “,Rata);
Write(“Terima kasih”,Nama);

BAHASA C / C++


SEJARAH SINGKAT BAHASA C/C++

Pada tahun 1969, pembuat computer PDP meminta Dennis Ritchie untuk membuat sebuah system operasi yang sesuai dengan versi baru computer PDP  pada masa itu. Bahasa assembly yang digunakan masa itu untuk membuat system operasi dirasakan kurang sesuai, sehingga dia membuat bahasa baru yang nantinya sangat fleksibel untuk membuat system operasi.

Bahasa C kemudian melahirkan system operasi UNIX, diumumkan oleh Brian Kernighan dan Dennis Ritchie sebagai bahasa pemograman baru pada tahun 1972. Sekitar tahun1983 lahirlah C++. Akibatnya, banyak software yang ditulis dengan C kemudian dikembangkan menjadi program C++ sehingga menjadi lebih efisien dan efektif.

Pada zaman visual ini, versi dari C dan C++  muncul dengan nama visual C atau visual C++, dan C builder.

Algoritma dan C/C++

Perbandingan antara algoritma dan bahasa C/C++ sebagai berikut:
  1. Konsep pemograman berstruktur yang telah diperkenalkan oleh Niklaus Wirth padaPASCAL dilanjutkan oleh C dan C++ sehingga bahasa ini memiliki struktur yang jelas sebagai berikut;
    /*Processor Directive */
    #include
    #defide
    /*Deklarasi Global*
    /*Fungsi Utama */
    Main()
    {
    …intruksi-intruksi
    }
    /*deskripsi fungsi yang didefenisikan*/
    ……
    ……
    File header adalah file yang memuat defenisi fungsi-fungsi yang telah disediakan, misalnya fungsi input-output dari bahasa C ada dalam file: dan pada bahasa C++ ada dalam file , sehingga file ini harus dimasukkan (include) di awal program yang menggunakan fungsi input-output.

    2. Beberapa tipe data yang dikenal dalam C/C++ adalah sbb:
    3. int: untuk bilangan bulat -32768 s/d 32767
    4. long int: untuk bilangan bulat yang jauh lebih besar
    5. char: untuk karakter tunggal, string dibentuk dari array karakter
    6. float: untuk bilangan real
    7. double: untuk bilangan real
    8. Cara mendeklarasikan variable-variabel sbb:

    Int umur;
    Float gaji;
    Char nama[20]]

    Pemberian nilai kepada variabel dilakukan sebagai berikut:
             
Umur=32
Gaji=456000.50;
trcpy(nama,”abdulsalam”);                                           

Pemberian nilai secara langsung kepada string seperti: nama= “Abdul Salam”; tidak
    diperkenankan, tetapi harus melalui fungsi “strcpy” yang ada dalam pustaka.

4. Intruksi Input-Output

Terdapat perbedaan besar dalam intruksi input-output pada bahasa C dan C++. Bahasa C cederung membuat proses input-output menjadi lebih mudah.




      Algoritma
Read(variabel);
           
Write(“teks…”,variabel)

Contoh:
Algoritma hitung_Rata
{menhitung rata dari tiga angka}
Deklarasi
     Real Num 1,Num2, Num3, Rata;
     String Nama;

Deskripsi
     Write(“masukkan nama anda:”);
     Read (Nama);

     Write(“Masukkan angka 1:”);
     Read(Num 1);
     Write(“Masukkan angka 2:”):
     Read(Num2);
     Write(“Masukkan angka 3:”);
     Read(Num3);

     Rata=(Num1 +Num2 +Num3)/3;
     Write(“Rata-rata=”,Rata);
     Write(“Terima kasih”,Nama);

PEMROGRAMAN TERSTRUKTUR

INSTRUKSI UTAMA

Intruksi Runtuhan (sequential)
Intruksi runtuhan adalah intruksi yang dikerjakan secara beruntun atau berurutan baris per baris mulai dari pertama hingga baris terakhir, tanpa ada loncatan atau perulangan.

1 Tiap intruksi dikerjakan satu per satu sebanyak satu kali
2 Urutan pelaksanaan intruksi sama dengan urutan penulisan algoritma
3 Intruksi terakhir merupakan akhir algoritma
4 Urutan penulisan intruksi bisa menjadi penting; bila diubah dapat menyebabkan hasil yang berbeda

Contoh algoritma yang menggambarkan intruksi runtuhan:
Deklarasi
Integer A,B;

Deskripsi
A__10
A__2*A;
B__A;
Write(B);
Algorima menghasilkan 20

Algoritma runtuhan_2
{menunjukkan urutan yang berbeda memberi hasil yang berbeda}
Deklarasi
Integer A,B;
Deskripsi
A__10;
B__A;
A__2*A;
Dengan urutan yang diubah maka algoritma diberi hasil : 10


INTRUKSI PEMILIHAN

Intruksi pemilihan adalah intruksi yang dipakai untuk memilih satu aksi dari beberapa kemungkinan aksi berdasarkan suatu persyaratan. Ada 2 bentuk intruksi pemilihan yang sering digunakan, yaitu if, then,else dan case.


Intruksi If/Then/else
Digunakan untuk memilih alternative apabila suatu syarat atau kondisi dipenuhi (1 kasus), atau memilih satu alternative dari dua kemungkinan berdasarkan apakah syarat terpenuhi atau tidak (2 kasus).

Bentuk 1 kasus:
if (syarat)
then aksi
endif

contoh: if (x >100)
then x___x+5
endif

Bentuk 2kasus
If (syarat)
Then aksi -1
Else aksi -2
Endif.

Contoh: if(a>0)
Then write (“bilangan ini positif”)
Else write (“bilangan ini negative”)
Endif.


INTRUKSI CASE

Digunakan sebagai intruksi pemilihan dimana aksi yang akan dilakukan hanya bergantung pada nilai dari satu macam variable.

Bentuk intruksi case:

Case (variable)
Nilai-1 : aksi-1;
Nilai-2 : aksi-2;
Nilai-3 : aksi-3;
………
Default: aksi-n;
Endcase.


INTRUKSI PERULANGAN (REPETITION)

Intruksi perulangan adalah intruksi yang dapat mengulang pelaksanaan sederetan intruksi lainnya berulana-ulang sesuai persyaratan yang ditetapkan.

Stuktur intruksi perulangan pada dasarnya terdiri atas:
- Kondisi perulangan: suatu kondisi yang harus dipenuhi agar perulangan dapat terjadi
- Badan(body) perulangan: deretan intruksi yang akan diulang-ulang pelaksanaannya
- Pencacah(counter) perulangan: suatu variable yang nilainya harus berubah dapat terjadi dan pada akhirnya membatasi jumlah perulangan yang dapat dilaksanakan

3 macam bentuk intruksi perulangan dalam program:
- while
- do,repeat
- until
- for


PERULANGAN WHILE-DO

Bentuk umum

While (kondisi) do
……..
Intruksi-intruksi
……..
Endwhile.

Algoritma Perulangan
{mencetak angka 1 hingga 100}

Deklarasi
Integer angka;
Deskripsi
Angka__1;
While(angka<101)do Write(angka); Angka__angka+1; Endwhile. PERULANGAN REPEAT – UNTIL Bentuk umum Repeat ………. Intruksi-intruksi …………. Until (kondisi). Contoh Algoritma Perulangan dengan menggunakan repeat-until untuk menhitung jumlah angka 1+2+3+….+N, dimana N adalah bilangan bulat yang dimasukkan lewat keyboard. Algoritma Perulangan {menhitung jumlah =1+2+3+….N,N dimasukkan lewat keyboard} Deklarasi Integer cacah,N,Jumlah; Deskripsi Write (“Masukkan nilai N :”); Read (N); Cacah__1; Jumlah__0; Repeat Jumlah__Jumlah + cacah; Cacah__cacah + 1; Until (cacah>N).
Write (“jumlahnya=”,jumlah);






PERULANGAN FOR

Bentuk umum

For (var=awal to akhir step n)
…………..
Intruksi-intruksi
…………..
Endfor.


Makna dari bentuk intruksi tersebut adalah ulangi intruksi-intruksi tersebut berdasarkan variabel perulangan mulai nilai awal hingga nilai akhir dengan perulangan nilai sebesar n.

Perhatikan:

1. Variabel perulangan (var) harus bertipe dasar (integer,real,atau char).
2. Nilai awal harus lebih kecil dari akhir bila n>0 (positif)
3. Nilai awal harus lebih besar dari akhir bila n<0 (negative)
4. Mula-mula variabel var bernilai awal, kemudian setiap satu kali putaran maka nilai var bertambah sebesar n.
5. Perulangan akan berhenti apabila nilai var sudah mencapai akhir

Contoh algoritma menampilkan “Halo...” sebanyak 10 kali dengan intruksi for

Algoritma perulangan
{menampilkan Halo…memakai intruksi for}

Deklarasi
Integer cacah;

Deskripsi
For (cacah=1 to 10 step 1)
Write (“halo….”);
Endfor.
ALGORITMA EUCLIDEAN

{Diberikan dua buah bilangan bulat tak-negatif m dan n (m>=n). Algoritma Euclidean mencari pembagi bersama terbesar, gcd, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.}
1. Jika n= 0 maka
m adalah jawabannya;
stop.
tetapi jika n#0,
lanjutkan ke langkah 2.
2. Bagilah m dengan n dan misalkan r adalah sisanya.
3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1.

Dengan menggunakan algoritma Euclidean ini, kita dapat menhitung gcd dari dua buah bilangan bulat sembarang secara sistematis.

Contoh-contohalgoritma yang sudah dijelaskan di atas memberi dua pesan penting. Pertama, sebuah algoritma harus benar. Kedua, algoritma harus berhenti, dan setelah berhenti, algoritma memberi hasil yang benar.

Ciri-ciri Algoritma yang baik: Menurut Donald E.Knuth dalam bukunya yang berjudul the Art Of Computer Programming [KNU73], Algoritma mempunyai 5 ciri penting yaitu:
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas Setiap langkah didefenisikan dengan tepat dan tidak berarti dua (ambiguous).
2. Algoritma memiliki nol atau lebih masukan(input). Masukan ialah besaran yang diberikan kepada algoritma untuk diproses.
3. Algoritma mempunyai nol atau lebih keluaran(output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan.
4. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.

Ciri-ciri Algoritma yana baik:
1. Tepat sasaran: memenuhi spesifikasi pekerjaan dan bekerja sesuai tujuan
2. Flexible dan portable:
• Flexible untuk dikembangkan lebih lanjut
• Portable untuk digunakan pada berbagai system dan mesin
3. Bersih dari kesalahan system atau lojik
4. Efektif: setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
5. Murah:
• Efisien dalam pengguna piranti memori dan penyimpanan lainnya
• Cepat waktu pelaksanaanya
6. Didokumentasi dengan baik untuk pengoperasian, pemeliharaan dan Pengembangan
7. Algoritma merupakan pemberian (description) pelaksanaan suatu proses
8. Tidak ambiguous: tidak bermakna ganda
9. Harus berhenti setelah mengerjakan sejumlah langkah terbatas

PENGERTIAN ALGORITMA

ALGORITMA


        I.      PENGERTIAN ALGORITMA

Algoritma adalah dasar dan pondasi untuk membuat suatu program komputer yang baik. Program komputer yang menggunakan algoritma dan flowchart akan menghasilkan program yang tersusun rapi. Tutorial berikut akan menjelaskan dasar dasar algoritma komputer.

Algoritma adalah metode untuk menyelesaikan suatu permasalahan secara bertahap. Contoh sederhana suatu algoritma adalah resep suatu masakan. Pada resep suatu masakan terdapat langkah langkah penyelesaian untuk membuat masakan itu. Misalkan untuk membuat telur rebus, maka diperlukan langkah langkah:

1.      Cuci bersih telur yang akan direbus.
2.      Siapkan air pada panci.
3.      Rebus air hingga mendidih.
4.      Masukkan telur yang sudah dicuci kedalam air yang telah direbus.
5.      Tunggu hingga matang dan sajikan

Komputer adalah suatu mesin. Untuk dapat melakukan pekerjaannya komputer membutuhkan instruksi yang diberikan pada komputer itu. Kumpulan instruksi umum untuk berbagai jenis komputer disebut algoritma.


      II.      KARAKTERISTIK ALGORITMA

Algoritma komputer memiliki beberapa karakteristik yang harus dipenuhi agar menjadi algoritma yang baik. Karakteristik itu antara lain:

  • Presisi. Langkah langkah penyelesaian masalah dalam algoritma haruslah secara presisi (tepat) dinyatakan, tidak mengandung ambiguitas.
  • Keunikan. Hasil pertengahan dalam tiap langkah eksekusi suatu algoritma didefinisikan secara khas dan merupakan pengolahan dari hasil eksekusi langkah sebelumnya.
  • Keterbatasan. Algoritma harus terbatas dan berhenti pada suatu titik setelah semua ekesekusi dilaksanakan.
  • Input. Algoritma menerima input.
  • Output. Algoritma menghasilkan output.
  • General. Algoritma berlaku untuk suatu kumpulan input tertentu.

Contoh algoritma:
Input: n
Output: 1/1 + 1/2+ ... +1/n

  1. jumlah = 0
  2. i= 0
  3. i=i+1
  4. jumlah = jumlah + 1/i
  5. ulangi langkah 3 dan 4 sehingga i==n

Algoritma pada contoh adalah algoritma untuk menghitung algoritma-1.

Pada langkah 1, nilai 0 diisikan pada variabel jumlah. jadi jumlah pada langkah pertama bernilai 0. Tanda = adalah operator penugasan dengan makna “kopikan 0 kepada jumlah” atau ” gantikan nilai tertentu jumlah dengan 0″.Langkah 2 juga menunjukkan hal yang sama namun dengan nama variabel yang berbeda. Langkah 3 menunjukkan instruksi “kopikan jumlah antara isi variabel i dan 1 kepada variabel i”. Langkah 4 menunjukkan instruksi “kopikan jumlah antara isi variabel jumlah dengan 1/isi variabel i pada variabel jumlah”. Langkah 5 menunjukkan instruksi untuk mengulangi langkah langkah 3 dan 4 sehingga terpenuhi syarat i = = n. Operator = = disebut operator equalitas yang bermakna benar dan salah. Jika i sama dengan n maka nilainya benar dan jika i tidak sama dengan n maka nilainya salah.

Algoritma ini dikatakan presisi karena tiap langkahnya didefinisikan secara tepat dan tidak mengandung pemahaman yang ambigu ketika instruksi instruksinya dilaksanakan semua orang atau mesin. Misalkan ada instruksi “jumlahkan i”. Instruksi ini mengandung ambigu karena tidak terdapat keterangan penjumlahnya. Algoritma ini dikatakan unik karena hasil pertengahan dalam tiap langkah eksekusi suatu algoritma didefinisikan secara khas dan merupakan pengolahan dari hasil eksekusi langkah sebelumnya.Misalkan pada langkah 3. Langkah 3 akan menghasilkan nilai tertentu jika nilai i telah diketahui. Pada proses pertama nilai i adalah hasil keluaran dari langkah 2 yaitu bernilai 0 sehingga nilai keluaran i pada proses pertama langkah 3 adalah 1. Algoritma ini dikatakan terbatas karena dimulai dari langkah 1 dan diakhiri jika syarat i = = n bernilai benar. Algoritma ini input berupa nilai yang dimasukkan pada variabel n dan memiliki output yang berupa hasil dari operasi 1/1 + 1/2+ … +1/n. Algoritma ini dikatakan general karena algoritma ini dapat diterapkan untuk setiap nilai real yang dimasukkan pada variabel n.