Kamis, 28 April 2011

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

Kamis, 24 Maret 2011

tugas algoritma & pemrg. 2


Awal menjalankan suatu flowchat harus menggunakan tandai mulai seperti di gambar tersebut.

Setelah itu masukkan nilai N

Kemudian terjadilah proses dimana 1 bernilai I dan begitu pula proses d bawahnya dimana 0 bernilai j.

Setelah itu ada pernyataan,jika nilai i <= N maka akan masuk ke flowchat masukkan data,apabila tidak akan memproses ke flowchat rata .

Apabila nilai i <= N maka akan masukkan data,kemudian data itu d proses hingga menuju kembali ke proses 1 bernilai i,proses ini akan berulang-ulang hingga tidak punya data lg sehinnga akan menuju ke flowchat yang disebelah kiri,kemudian terjadi proses dan member tulis rata dan berakhirlah flowchat ini.