Selasa, 22 Maret 2011

flowchart dan prosesnya





1. baris pertama masukan nilai ke variabel n.
2. baris 2 dan 3 nilai i adalah 1 dan j adalah 0.
3. baris 4 program membaca selama i<=n maka program mengerjakan baris 4 sampai dengan 7, jika tidak maka program langsung ke baris 8 dan membaca rata adalah nilai dari j/n.
4. baris terakhir menuliskan nilai rata yang didapat dari baris 8.

macam-macam operator

Macam-macam operator:

Operator Aritmatika (Arithmetic Operator):
Operator Fungsi Jenjang
* Perkalian 3
/ Pembagian 3
% Modulo 3
+ Penjumlahan 4
- Pengurangan 4

Operator aritmatika melibatkan 2 buah operand, terkadang operand yang digunakan berbeda tipenya. Untuk menghindari hal-hal yang tidak diinginkan maka kompiler C mempunyai pedoman untuk operand yang berbeda tipe :
1. Tipe char akan dikonversikan ke tipe int
2. Tipe float akan dikonversikan ke tipe double
3. Jenjang tertinggi adalah mulai dari long double, double, long int, unsigned int, dan int. Berarti, tipe double dioperasikan dengan tipe int akan menghasilkan tipe double.

Operator Unary (Unary Operator)
Operator unary merupakan operator yang hanya menggunakan sebuah operand saja. Operator-operator unary mempunyai jenjang 2.
Operator Fungsi
- Unary minus
++ Increase dgn penambahan nilai 1
-- Decrease dengan pengurangan nilai 1
(tipe) Cast
sizeof Ukuran operand dalam byte
! unary NOT
~ Komplemen 1 (bitwise NOT)
& Menghasilkan alamat memori operand(operator pointer)
* Menghasilkan nilai pengenal dialamatnya(operator pointer)

Algoritma dan Pemrograman 3 – Operators
Operator Pengerjaan Aritmatika (Assigment Operator)
Operator pengejaan digunakan untuk memindahkan nilai dari suatu ungkapan ke suatu pengenal (Identifier). Operator pengerjaan mempunyai jenjang 14.
Operator Contoh Ekuivalen dengan
= A = B + C Mengerjakan B + C ke A
+= A += 1 A = A + 1
-= A -= B A = A – B
*= A *= B A = A * B
/= A /= B A = A / B
%= A %= B A = A % B


Operator Hubungan (Relational Operator)
Operator hubungan digunakan untuk menunjukkan hubungan antara 2 buah operand. Banyak digunakan untuk penyeleksian kondisi dengan statement:
 if,
 do-while, atau
 while.

Operator Fungsi Jenjang
< Lebih kecil dari 6 <= Lebih kecil atau sama dengan 6 > Lebih besar dari 6
>= Lebih besar atau sama dengan 6
== Sama dengan 7
!= Tidak sama dengan 7

Operator Logika (Logical Operator)

Operator logika digunakan untuk membandingkan logika hasil dari operator-operator hubungan.
Operator Fungsi Jenjang
&& Logika DAN (AND) 11
|| Logika ATAU (OR) 12

Operator Koma (Comma Operator)
Operator koma digunakan untuk menggabungkan beberapa ungkapan dengan proses yang berurutan dari ungkapan sebelah kiri koma ke ungkapan sebelah kanan koma. Operator koma mempunyai jenjang 16.



p_sarjono.staff.gunadarma.ac.id

macam-macam tipe data

Macam-macam tipe data
Di setiap bahasa pemrograman telah disediakan berbagai tipe data dan sebagai programer dipersilakan untuk memilihnya. Tentu saja kita akan memilih tipe data yang sesuai dengan karakteristik data yang akan kita olah.
Pada intinya simbol-simbol yang digunakan di komputer terdiri atas huruf, angka, dan tanda baca lainnya. Simbol-simbol tersebut merupakan elemen dari data dan memiliki tipe data. Umumnya tipe data terdiri atas karakter, teks atau string, dan numerik. Namun sesuai dengan kebutuhan pengguna yang terus bertambah, maka tipe data terus berkembang. Banyak bahasa pemrograman menambahkan tipe data dengan boolean (logical), binary, float, date, memo dan sebagainya.
a. Tipe Data Numerik
Besar angka yang bisa diterima komputer sangat tergantung dengan jumlah bit (N) prosesor komputernya. Umumnya batasan angka yang bisa diterima adalah –(2^(N-1)) sampai dengan 2^(N-1)-1. Untuk komputer 32 bit batasannya adalah -2.147.483.648 sampai dengan 2.147.483.647.
Untuk menampung nilai data ke variabel dalam suatu bahasa pemrograman tertentu, maka kita harus memahami fasilitas apa saja (statements dan jenis variabelnya) yang disediakan oleh bahasa pemrograman yang kita gunakan. Juga kita perhatikan fasilitas operasi untuk tipe data numeriknya, misalnya apakah ada MOD, DIV, AVERAGE, MAX, MIN dan sebagainya.
Adapun jenis numerik (bilangan) yang biasa digunakan terdiri atas :
- bilangan kompleks
- bilangan real
- bilangan rasional
- bilangan irasional
- bilangan bulat
- dan sebagainya
Bilangan real adalah bilangan yang menggunakan nilai pecahan. Bilangan bulat adalah bilangan tanpa pecahan (integer), baik positif maupun negatif. Di luar bilangan-bilangan itu ada juga yang merupakan bagian dari bilangan-bilangan di atas seperti bilangan prima, bilangan cacah, bilangan ganjil, bilangan genap, dan lain-lain.
Untuk keperluan penempatan berapa banyak jumlah digit yang bisa digunakan oleh bilangan-bilangan di dalam variabel dapat menggunakan variabel berpresisi tunggal maupun berpresisi ganda. Misalnya di suatu bahasa pemrograman, untuk bilangan integer single precision (presisi tunggal) disediakan panjang 8 digit, dan untuk double precision (presisi ganda) disediakan panjang 16 digit. Untuk bilangan real sigle precision disediakan 16 digit, dan untuk real double disediakan 32 digit.
Operasi terhadap tipe data numerik sama halnya melakukan perhitungan matematis. Ada penjumlahan, pengurangan, perkalian, perpangkatan, dan sebagainya. Berikut macam-macam operasi (operator) yang ada sesuai urutan pengerjaannya :
^ : perpangkatan
* : perkalian
/ : pembagian
+ : penjumlahan
- : pengurangan
Urutan pengerjaan akan berubah jika terdapat tanda kurung. Tanda kurung menjadi prioritas utama yang dikerjakan.
Contoh :
2 ^ 3 * 4 – 6 / 2 + 5 = ((2 ^ 3 )* 4) – (6 / 2) + 5
= (8 * 4) – (3) + 5
= 32 – 3 + 5
= 34
2 ^ 3 * (4 – 6) / 2 + 5 = (2 ^ 3 )* ((4 – 6) / 2) + 5
= 8 * (-2) / 2 + 5
= -16 / 2 + 5
= -8 + 5
= -3
Ada pula operasi tambahan yang biasanya disediakan bahasa pemrograman, seperti :
Operator Kegunaan
MOD Sisa hasil pembagian, misalnya MOD(10/3) = 1
DIV Pembagian yang menghasilkan bilangan integer (bulat), misalnya DIV(10/3) = 3
ABS Mempositifkan bilangan negatif,
misalnya ABS(-45)=45
INT Membulatkan bilangan real,
misalnya INT(34.67) = 34
VAL Menumerikkan bilangan yang disimpan dalam string, misalnya VAL(‘27’) = 27
SQR Menghitung nilai akar dari, misalnya SQR(25) = 5
TRUNC Membulatkan ke atas bilangan real, misalnya TRUNC(34,67) = 35
Kondisi (disebut juga dengan operator relasional) yang biasa mengikutinya adalah :
= sama dengan
> lebih besar dari
< lebih kecil dari <> tidak sama dengan
>= lebih besar atau sama dengan
<= lebih kecil atau sama dengan
b. Tipe Data Logika
Operator logikal (boolean) biasa digunakan untuk melakukan pengecekan suatu kondisi suatu program. Kondisi yang dicek bisa berhubungan dengan variabel numerik maupun variabel string. Nilai data dari variabel boolean adalah kondisi benar atau salah (true or false). Operator logika dasar terdiri atas AND, OR dan NOT.
1. AND
AND adalah operasi yang melakukan pengecekan atas 2 kondisi atau variabel yang ada. Jika kedua kondisi bernilai true, maka hasil operasi AND adalah true, selain itu false. Berikut tabelnya :
Kondisi (Variabel 1) Kondisi (Variabel 2) AND
True (terpenuhi) True (terpenuhi) True
True (terpenuhi) False (tidak terpenuhi) False
False (tidak terpenuhi) True (terpenuhi) False
False (tidak terpenuhi) False (tidak terpenuhi) False
1. OR
OR adalah operasi yang melakukan pengecekan atas 2 kondisi atau variabel yang ada. Jika salah satu kondisi bernilai true, maka hasil operasi OR adalah true, selain itu false. Berikut tabelnya :
Kondisi (Variabel 1) Kondisi (Variabel 2) OR
True (terpenuhi) True (terpenuhi) True
True (terpenuhi) False (tidak terpenuhi) True
False (tidak terpenuhi) True (terpenuhi) True
False (tidak terpenuhi) False (tidak terpenuhi) False
1. NOT
NOT adalah operasi yang melakukan pengecekan atas 1 kondisi atau variabel yang ada. Jika kondisi bernilai true, maka hasil operasi NOT adalah false, dan sebaliknya. Berikut tabelnya :
Kondisi (variabel) NOT
True (terpenuhi) False
False (tidak terpenuhi) True
Tipe data logikal adalah variabel atau record yang bernilai logikal (true atau false).
Operasi AND, OR dan NOT dapat digabung-gabungkan untuk mendapatkan suatu kondisi yang diinginkan. Berikut contoh dalam salah satu bahasa pemrograman :
c. Tipe Data String
String merupakan salah satu tipe data di komputer, dan merupakan kumpulan dari karakter. Nilai data string tentunya harus ditampung di variabel atau field yang berjenis string pula.
String umumnya digunakan untuk menyimpan data yang tidak perlu diproses secara matematis, namun banyak pula orang yang lebih suka menyimpan data numerik ke dalam tipe data string. Umumnya bahasa pemrograman menyediakan fasilitas untuk mengubah nilai data numerik yang disimpan dalam tipe data string menjadi tipe data numerik. Sehingga nilai data tersebut dapat diproses secara matematis kembali.
Nomor Pokok Mahasiswa (NRP) adalah sebuah contoh yang nilai datanya merupakan kode-kode yang dapat dijabarkan. Misalnya NRP = ‘5198100084’. Nilai tersebut dapat dijabarkan menjadi : karakter pertama menunjukkan fakultas, karakter kedua menunjukkan jurusan, karakter ketiga dan keempat menunjukkan tahun masuk dan sebagainya. Penjabaran kode seperti di atas lebih sulit dilakukan jika menggunakan tipe data numerik.
Bagian dari string disebut dengan substring, seperti pada contoh NRP di atas, tahun masuk (karakter ketiga dan keempat) merupakan substring dari NRP. Macam-macam operasi string adalah: pemenggalan, penggabungan, pencarian posisi, perhitungan banyak karakter, dan kombinasi dari semua operasi.
http://riyanwae.wordpress.com/2008/10/24/tipe-data-dan-struktur-data/

Struktur dasar algoritma


STRUKTUR SEKUENSIAL (Runtunan)
·   Pada struktur sekuensial instruksi dikerjakan secara berurutan baris perbaris mulai dari baris pertama hingga baris terakhir, tanpa ada loncatan atau perulangan.
·   Tiap instruksi dikerjakan satu per satu.
·   Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang.
·   Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagai tertulis di dalam teks algoritma.
·   Akhir dari instruksi terakhir merupakan akhir algoritma.

STRUKTUR SELEKSI (PEMILIHAN)
Struktur seleksi adalah instruksi yang dipakai untuk memilih satu aksi dari beberapa kemungkinan aksi berdasarkan suatu syarat.
Bentuk ke-1 dari pemilihan : Suatu aksi hanya dilakukan bila persyaratan atau kondisi tertentu dipenuhi. jika kondisi bernilai benar kerjakan aksi jika salah, tidak ada aksi apapun yang dikerjakan.

Notasi algoritmik :
if Syarat then
Aksi {True}
endif {False

Bentuk ke-2 dari pemilihan :Apabila syarat dipenuhi maka aksi-1 dilaksanakan bila syarat tidak dipenuhi maka aksi- 2 yang dilaksanakan

Notasi Algoritmik :
IF syarat THEN
aksi-1 {true}
ELSE
aksi-2 {false}
ENDIF

STRUKTUR REPETITION (PERULANGAN)
Perulangan adalah instruksi yang dapat mengulang sederetan Instruksi secara berulang-ulang sesuai persyaratan yang ditetapkan.

Struktur instruksi perulangan pada dasarnya terdiri atas :
• Kondisi perulangan; suatu kondisi yang harus dipenuhi agar
perulangan dapat terjadi.
• Badan (body) perulangan; deretan instruksi yang akan
diulang-ulang pelaksanaannya.
• Pencacah (counter) perulangan; suatu variabel yang
nilainya harus berubah agar perulangan dapat terjadi dan
pada akhirnya membatasi jumlah perulangan yang dapat
dilaksanakan


http://hariyanto.staff.jak-stik.ac.id

Hal-hal yang diperhatikan dalam pembuatan algoritma dan syarat 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. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu:
a. Pendeklarasian variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila tidak semua bahasa pemrograman membutuhkannya.
b. Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.
c. Pemakaian instruksi-instruksi

Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-
masing memiliki kelebihan dan kekurangan yang berbeda.

d. Aturan sintaksis
Pada saat menuliskan program kita terikat dengan aturan sintaksis
dalam bahasa pemrograman yang akan digunakan.

e. Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.
f. Cara pengoperasiancompiler atau interpreter.
   Bahasa pemrograman yang digunakan termasuk dalam kelompok Compiler atau interpreter.
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.
Contoh : Tambahkan 1 atau 2 pada x.
Instruksi di atas terdapat keraguan.
• 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.
Contoh :  Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah.
Misal: Hitung akar 2 sampai lima digit di belakang koma.
• Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
• Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.

http://www.scribd.com/doc/17252937/Algoritma-Dan-Pemrograman

http://blog.ub.ac.id/supardipunya/2010/09/pengantar-algoritma-dan-pemrograman-bag-4/