Kamis, 28 April 2011

PENGENALAN PASCAL

Pengenalan Pascal

Sejarah Pascal

§ Berakar dari Bahasa Algol dan PL/1 pada tahun 60-an di benua Eropa

§ Pascal disusun oleh Prof.Niklaus Wirth pada tahun 70 dan dipublikasikan tahun 71

§ Diujicoba pada Komputer CDC 6000

§ Turbo Pascal bersifat Compiler dan termasuk bahasa tingkat tinggi

Struktur Bahasa Pascal

§ Judul

Program ;

Uses ;

§ Bagian Deklarasi

Label ;

Const ;

Type ;

Var ;

Procedure ;

Function ;

§ Bagian Pernyataan

Begin

;

End.

Perintah Dasar/Sederhana Pascal

§ Write ( ‘Text/tulisan’,Variabel);

Perintah untuk menampilkan atau cetak dilayar monitor tanpa pindah baris

§ WriteLn( Text/Tulisan,Variabel);

Perintah untuk menampilkan/cetak dilayar monitor lalu pindah baris kebawah

§ Read(Variabel);

Perintah untuk menginput/mengisi data tanpa pindah baris

§ ReadLn(Variabel);

Perintah untuk menginput/mengisi data lalu pindah baris

Identifier/Pengenal Data

Digunakan untuk penamaan elemen-elemen deklarasi seperti Label, Constanta, type, variabel, procedure, function

Text Box: Contoh : Luas_Segi_Tiga LuasSegiTiga LuasS3 LS3Syarat Identifier

§ Diawali huruf

§ Tidak boleh ada spasi/blank

§ Tidak boleh menggunakan reserved word

§ Tidak boleh menggunakan simbol khusus,

kecuali underscore(tanda bawah)

§ Panjang maximal 63 character

STRUKTUR PERCABANGAN

Struktur Percabangan

If…Else

Pernyataan if-else mempunyai sintaks:
if (kondisi)
pernyataan-1
else
pernyataan-2;

Maksud dari pernyataan if-else adalah:
Jika kondisi benar, maka pernyataan-1 dijalankan, Sedangkan jika kondisi bernilai salah, maka pernyataan-2 yang akan dijalankan. Masing-masing pernyataan-1 dan pernyataan-2 dapat berupa sebuah pernyataan tunggal maupun pernyataan majemuk. If… Else berfungsi melibatkan pernyataan majemuk yaitu pernyataan A dan B. Jika pernyataan bukan merupakan pernyataan A, maka yang akan dijalankan merupakan pernyataan B.

If…Else If
Pernyataan untuk if else if hamper sama dengan if else namun disini hanya menambahkan suatu kondisi lagi setelah kondisi yang pertama yaitu pada if pertama

Case
Hampir sama dengan struktur percabangan IF, tetapi lebih cocok digunakan jika kondisi yang diperiksa sangat banyak. Kondisi yang diperiksa harus berupa data ordinal (bertipe integer atau char), dan tidak boleh bertipe real. Menggunakan operator relasional = (sama dengan) untuk melakukan pemeriksaan kondisi.

Referensi :
http://zenkychan.blogspot.com/

STRUKTUR PENGULANGAN

STRUKTUR PENGULANGAN


STRUKTUR PENGULANGAN
Struktur pengulangan secara umum terdiri dari 2 bagian:
1. Body pengulangan, merupakan bagian algoritma yang diulang.
2. Kondisi pengulangan, merupakan ekspresi Boolean yang wajib dipenuhi untuk melaksanakan pengulangan. Kondisi pengulangan ini dapat dinyatakan secara eksplisit ( pemrogram ) atau inplisit ( dikelola computer itu sendiri ).
Dalam struktur pengulangan biasanya disertai dengan bagian:
· Inisialisasi, maksudnya aksi yang dilakukan sebelum pengulangan pertama kali dilakukan.
· Terminasi, maksudnya aksi yang dilakukan setelah pengulangan selesai dilakukan.

a. Pernyataan FOR
Merupakan konstruksi pengulangan tanpa kondisi ( unconditional looping ), artinya perintah-perintah yang ada di dalam badan pengulangan diulangi sejumlah kali yang dispesifikasikan oleh pemrogram. Jadi, jumlah pengulangan sudah diketahui/ dapat dtentukan sebelum konstruksi pengulangan eksekusi.
Pernyataan dengan to adalah suatu pernyataan yang menjalankan program dengan urut/ semestinya/ dari kecil sampai ke yang besar, misalnya: dari angka 1 sampai angka 5. Example:
Example 1.
uses wincrt;

var a : integer :
begin
for a := 1 to 5 do
writeln(a);
end.
Output:
1
2
3
4
5
b. Pernyataan for bersarang
Perulangan yang berada didalam perulangan yang lainnya. Perulangan yang lebih dalam akan diproses lebih dulu sampai habis, kemudian perulangan yang lebih luar baru akan bertambah, mengerjakan perulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya.
Contoh program :

Var
I, J : integer ;
Begin
For I : = 1 to 5 do
Begin
For J : = 1 to 3 do
Write ( I : 8, J : 3);
Writeln ;
End ;
End.
c. Pernyataan WHILE
Merupakan pengulangan dengan kondisi ( conditional looping ), maksudnya perintah-perintah yang ada di dalam badan pengulangan diulangi sampai kondisi berhenti terpenuhi yaitu dengan menentukan kondisi berhenti pengulangan. Tetapi jumlah pengulangan tidak diketahui sebelum eksekusi.
Struktur umum pernyataan While:
1
2
3
while kondisi do
pernyataan
endwhile
Jadi, pernyataan while akan berjalan berulang terus apabila belum menemukan nilai false, tetapi kalau kondisi bernilai true maka pengulangan akan terus berjalan.
Sedangkan, apabila pengulangan berjalan terus tanpa henti berarti pengulangan tersebut pada logika algoritma algoritma yang salah.
Example:
1
2
3
4
5
6
7
8
9
10
uses wincrt:

var c : integer ;
begin
c := 1;
while(c<5) do begin
writeln(’tidak’, c);
a := a + 1;
end;
end.
d. Pernyataan REPEAT-until
Merupakan pengulangan dengan kondisi ( conditional looping ), maksudnya perintah-perintah yang ada di dalam badan pengulangan diulangi sampai kondisi berhenti terpenuhi yaitu dengan menentukan kondisi berhenti pengulangan. Tetapi jumlah pengulangan tidak diketahui sebelum eksekusi.
Struktur umum pernyataan Repeat:
1
2
3
repeat
pernyataan
until kondisi
Jadi, bisa diartikan bahwa apabila program itu dijalankan dengan kondisi bernilai false dan masih saja bernilai false, maka proses akan terus berlangsung. Tetapi apabila kondisi sudah menemukan nilai true maka proses akan berhenti. Karena nilai true yang dicari. Disamping itu, apabila pengulangan tidak berhenti/ berjalan terus tanpa henti maka terdapat logikaalgoritma yang salah.
Example:
1
2
3
4
5
6
7
8
uses wincrt;

var a : integer ;
begin
repeat
writeln(’tidak’, a);
until(a=5);
end.
Output:
tidak 0
tidak 1
tidak 2
tidak 3
tidak 4

SUBRUTIN

SUBRUTIN

Ada dua macam subrutin pada Pascal, yaitu prosedur dan fungsi.

Prosedur adalah bagian dari program yang dibuat terpisah untuk melaksanakan sebagian dari tugas yang harus diselesaikan oleh suatu program. Sedangkan fungsi adalah bagian dari program yang dibuat terpisah untuk melakukan fungsi tertentu yang menghasilkan suatu nilai untuk dikembalikan ke program utama.

Keduanya mempunyai kegunaan yang sama, yaitu melakukan tugas tertentu. Perbedaannya kalau fungsi selalu mengembalikan suatu nilai setelah dipanggil sedangkan prosedur tidak.

Manfaat pembuatan SUBRUTIN:

  • modularisasi: suatu program yang besar dan kompleks dapat dibagi ke dalam beberpa prosedur sehingga setiap prosedur merupakan bagian yang mudah dikerjakan. dengan demikian, program besar tersebut menjadi mungkin diselesaikan.
  • simplifikasi: dalam suatu program, sering diperlakukan suatu tugas yang harus dikerjakan berulang-ulang dengan nilai-nilai variabel yang berbeda. Agar tidak merepotkan maka tugas ini cukup ditulis sekali saja dalam bentuk subrutin yang kemudian dipanggil berulang-ulang sesuai kebutuhan.

Selain itu, bila terjadi kesalahan dalam suatu program yang besar maka kita hanya cukup bekerja/memperbaiki program-program kecil (subrutin) tadi saja.

Prosedur dan fungsi merupakan sub program yang sangat bermanfaat dalam pemrograman, terutama untuk program atau proyek yang besar. Manfaat penggunaan sub program antara lain adalah :

Prosedur dan fungsi merupakan sub program yang sangat bermanfaat dalam pemrograman, terutama untuk program atau proyek yang besar. Manfaat penggunaan sub program antara lain adalah :


1. meningkatkan readibility, yaitu mempermudah pembacaan program
2. meningkatkan modularity, yaitu memecah sesuatu yang besar menjadi modul-modul atau bagian-bagian yang lebih kecil sesuai dengan fungsinya, sehingga mempermudah pengecekan, testing dan lokalisasi kesalahan.
3. meningkatkan reusability, yaitu suatu sub program dapat dipakai berulang kali dengan hanya memanggil sub program tersebut tanpa menuliskan perintah-perintah yang semestinya diulang-ulang.


Sub Program Rekursif adalah sub program yang memanggil dirinya sendiri selama kondisi pemanggilan dipenuhi.

adalah Dengan melihat sifat sub program rekursif di atas maka sub program rekursif harus memiliki :

1. kondisi yang menyebabkan pemanggilan dirinya berhenti (disebut kondisi khusus atau special condition)
2. pemanggilan diri sub program (yaitu bila kondisi khusus tidak dipenuhi)

Secara umum bentuk dari sub program rekursif memiliki statemen kondisional :

if kondisi khusus tak dipenuhi
then panggil diri-sendiri dengan parameter yang sesuai
else lakukan instruksi yang akan dieksekusi bila kondisi khusus dipenuhi

Sub program rekursif umumnya dipakai untuk permasalahan yang memiliki langkah penyelesaian yang terpola atau langkah-langkah yang teratur. Bila kita memiliki suatu permasalahan dan kita mengetahui algoritma penyelesaiannya, kadang-kadang sub program rekursif menjadi pilihan kita bila memang memungkinkan untuk dipergunakan. Secara algoritmis (dari segi algoritma, yaitu bila kita mempertimbangkan penggunaan memori, waktu eksekusi sub program) sub program rekursif sering bersifat tidak efisien .
Dengan demikian sub program rekursif umumnya memiliki efisiensi dalam penulisan perintah, tetapi kadang tidak efisien secara algoritmis. Meskipun demikian banyak pula permasalahan-permasalahan yang lebih sesuai diselesaikan dengan cara rekursif (misalnya dalam pencarian / searching, yang akan dibahas pada pertemuan-pertemuan yang akan datang).

Referensi:

http://jauharotul.wordpress.com/2010/12/22/subrutin/

http://ftikom-unmul.nstars.org/t403-prosedur-dan-fungsi-rekursif

REKURSI

Rekursi

Rekursi adalah konsep pengulangan yang penting dalam ilmu komputer. Konsep ini dapat digunakan untuk merumuskan solusi sederhana dalam sebuah permasalahan yang sulit untuk diselesaikan secara iteratif dengan menggunakan loop for, while do. Pada saat tertentu konsep ini dapat digunakan untuk mendefinisikan permasalahan dengan konsisten dan sederhana. Pada saat yang lain, rekursi dapat membantu untuk mengekspresikan algoritma dalam sebuah rumusan yang menjadikan tampilan algoritma tersebut mudah untuk dianalisa.
Rekursi adalah cara untuk menetapkan proses dengan dirinya sendiri. Lebih jelasnya (dan untuk menghalaukan penampilan kesirkularan dalam definisi), langkah-langkah "rumit" dari proses dijelaskan dengan langkah-langkah yang lebih "sederhana", dan kejadian yang paling "sederhana" diberi secara gamblang. Dalam bahasa pemrograman, rekursi berarti memanggil suatu fungsi dari dalam fungsi itu sendiri.
Rekursi merupakan teknik pemrograman yang menyebabkan suatu fungsi/prosedur memanggil dirinya sendiri. Pemanggilan diri sendiri ini berlangsung terus menerus sampai batas terkecil yang nilai dari fungsi tersebut disebutkan secara eksplisit. Salah satu contoh dari penerapan rekursi adalah perhitungan faktorial.

Referensi :
http://bc-omu.blogspot.com/

Jumat, 01 April 2011

MACAM-MACAM OPERATOR


MACAM-MACAM OPERATOR

Operator
Operator digunakan untuk menyatakan suatu perhitungan/operasi.Operator dapat terbagi atas: Operator penugasan, Operator aritmatika, Operator hubungan (perbandingan), Operator logika, Operator bitwise dan operator unary.

Operator Penugasan
Operator Penugasan (Assignment operator) dalam bahasa C berupa tanda sama dengan (“=”). Contoh operator penugasan: nilai = 50; z = x * y;. Artinya: variabel “nilai” diisi oleh 50 dan variabel “z” diisi oleh hasil perkalian x dan y

Operator Aritmatika
Dalam bahasa C disediakan lima operator aritmatika, yaitu:
• * : untuk perkalian
• / : untuk pembagian
• % : untuk sisa pembagian (modulus)
• + : untuk pertambahan

Operator Hubungan (Perbandingan)
Operator Hubungan digunakan untuk membandingkan hubungan antara dua
buah operand (sebuah nilai atau variabel).
Operator Logika
Jika operator hubungan membandingkan hubungan antara dua buah operand, maka operator logika digunakan untuk membandingkan logika hasil dari operator-operator hubungan. Operator logika ada tiga macam,yaitu :
a) && : Logika AND (dan)
b) || : Logika OR (atau)
c) ! : Logika NOT (ingkaran)

Operator Bitwise
Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memori.Operator bitwise dalam bahasa C :
_ << : Pergeseran bit ke kiri
_ >> : Pergeseran bit ke kanan
_ & : Bitwise AND
_ ^ : Bitwise XOR (exclusive OR)
_ | : Bitwise OR
_ ~ : Bitwise NOT

Operator Unary
Operator Unary merupakan operator yang hanya membutuhkan satu operand saja. Dalam bahasa C terdapat beberapa operator unary yang sering digunakan.

Reference : http://www.scribd.com/doc/29380764/Modul-Algoritma-Pemrograman-Bahasa-C- Tipe-Data-Operator-Kondisi-Dan-Perulangan

Macam-Macam Tipe Data

Macam-Macam Tipe Data

1. Tipe data Integer / Ordinal
Tipe data ini adalah tipe data yang berupa bilangan bulat yang akan digunakan untuk operasi matematika. Ada beberapa tipe data yang termasuk integer, yaitu antara lain:

a. ShortInt : memiliki nilai range -128 sampai 127 (signed 8-bit)
b. SmallInt : memiliki nilai range antara – 32768 sampai dengan 32767 (signed 16-bit)
c. LongInt : memiliki nilai range -2147483648 sampai 2147483647 (signed 32-bit )
d. Int64 : memiliki range -263+1 sampai 263-1 (signed 64-bit)
e. Byte : memiliki nilai range 0 sampai 255 (unsigned 8-bit)
f. Word : memiliki nilai range 0 sampai 65535 (unsigned 16-bit)
g. LongWord : memiliki nilain range 0 sampai 4294967295(unsigned 32-bit )

2. Tipe data Boolean
Tipe data ini hanya terdiri dari nilai logika True dan False. Ada beberapa jenis dari tipe Boolean ini, yaitu:

a. Boolean : berukuran 1 byte (false 0, true 1)
b. ByteBool : berukuran Byte (false 0, true 255 – 8 bit)
c. Bool : berukuran Double (false 0, true -1)
d. WordBool : berukuran Word (false 0, true 65535 – 16 bit)
e. LongBool : berukuran Double (false 0, true -1)

3. Tipe data Floating Point /Real
Tibe data ini meliputi bentuk bilangan desimal. Beberapa bentuk dari tipe data ini adalah:

a. Real : memiliki range 2.9 x 10-39 sampai 1.7 x 1038
b. Single : memiliki range 1.5 x 10-45 sampai 3.4 x 1038
c. Double : memiliki range 5.0 x 10-324 sampai 1.7 x 104392
d. Extended : memiliki range 3.6 x 10-4951 sampai 1.1 x 104392
e. Currency : memiliki range -922337203685477.5808 sampai 922337203685477.5808
f. Comp : memiliki range -263+1 sampai 263-1

4. Tipe Data Enumerated
Tipe data ini adalah berupa nilai urutan dari data yang telah dibuat.

5. Tipe data Sub Range
Tipe data ini memungkinkan kita membuat range sendiri.

6. Tipe data String dan Character
Tipe data String adalah tipe data yang merupakan rangkaian dari huruf, angka atau symbol yang tidak mengandung harga (nilai).

Beberapa tipe data string adalah sebagai berikut:
a. ShortString : Dapat menampung 255 karakter (ANSIChar)
b. AnsiString : Dapat menampung ~231 karakter (ANSIChar)
c. WideString : Dapat menampung ~230 karakter (WideChar)
d. String : Dapat menampung 255 karakter (ANSIChar)

Tipe data Character adalah tipe data yang berkaitan dengan karakter ( huruf, angka, symbol). Ada beberapa tipe data dari Character yaitu:

a. ANSIChar : Satu karakter ANSI
b. WideChar : Satu karakter Unicode
c. Char : Sama dengan ANSIChar


Referensi :

http://wartawarga.gunadarma.ac.id/2010/03/macam-tipe-data/

Struktur Data Algoritma


Struktur Data Algoritma

Struktur data adalah sebuah skema organisasi yang diterapkan pada data
sehingga data dapat diinterprestasikan dan sehingga operasi-operasi spesifik dapat dilaksanakan pada data tersebut .Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:

1. Struktur Runtunan
Digunakan untuk program yang pernyataannya sequential atau urutan. Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan. Urutan instruksi menentukan keadaan akhir algoritma. Bila urutannya diubah, maka hasilkahirnya mungkin juga berubah.
2. Struktur Pemilihan
Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi. struktur pemilihan if-then hanya memberikan satu pilihan aksi bila kondisi (persyaratan dipenuhi (bernilai benar) dan tidak memberi pilihan aksi lain bila kondisi bernilai salah. Bentuk pemilihan yang lebih umum ialah memilih satu dari dua buah aksi bergantung pada nilai kondisinya. Kelebihan struktur pemilihan terletak pada kemampuannya yang memungkinkan pemroses mengikuti jalur aksi yang berbeda berdasarkan kondisi yang ada. Tanpa struktur pemilihan, kita tidak mungkin menulis algoritma untuk permaslahan praktis yang demikian kompleks.
3. Struktur Perulangan
Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.
a. Perulangan FOR
Digunakan untuk mengulang statemen berulang kali sejumlah yang ditentukan.
b.Perulangan Positif
Dengan penghitung / counter dari kecil ke besar (penambahan positif).
c.Perulangan Negatif
Dengan penghitung / counter dari besar ke kecil ( pertambahannya negatif).
d.Perulangan Tersarang
Perulangan yang berada didalam perulangan yang lainnya. Perulangan yang lebih dalam akan diproses lebih dulu sampai habis, kemudian perulangan yang lebih luar baru akan bertambah, mengerjakan perulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya.
e. Perulangan WHILE DO
WHILE ungkapan logika DO statemen Digunakan untuk melakukan proses perulangan suatu statemen terus menerus selama kondisi ungkapan logika pada while masih bernilai logika benar.
f. Perulangan REPEAT UNTIL
Digunakan untuk mengulang statemen sampai kondisi yang diseleksi di Until tidak terpenuhi.

Hal Yang Diperhatikan Dalam Pembuatan Algoritma dan Syarat Untuk Menjadi Algoritma Yang Baik


Beberapa hal yang perlu diperhatikan dalam membuat algoritma:

  1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  3. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
  4. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.
  5. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
  6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman.

Beberapa persyaratan untuk menjadi algoritma yang baik adalah:

• Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.

• Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.

• Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.

• Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.

• Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).

• Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.

Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti.

• Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.

• Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya.

• Harus terminate. Jalannya algoritma harus ada kriteria berhenti.

Output yang dihasilkan tepat..

Referensi :

http://www.sampara.com/det_art.php?art_id=664&cat_id=8&judul=Makalah+Logika+Dan+Algoritma