Tugas Membuat Blog
Rabu, 10 Oktober 2012
Minggu, 07 Oktober 2012
Teknik Sorting (Buble Sort)
Metode sorting termudah, diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang tepat, seperti gelembung yang keluar dari sebuah gelas bersoda.
Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya.
Tehnik Sorting yang bekerja dengan menggunakan prinsip gelembung (bubble) udara yg akan bergerak naik ke atas secara satuper satu.
Prinsip Kerja dari Bubble Sort adalah :
1. Pengecekan mulai dari data ke-1 sampai data ke-n
2. Bandingkan data ke-n dengan data sebelumnya (n-1)
3. Jika lebih kecil maka pindahkan bilangan tersebut dengan bilangan yg ada didepannya (sebelumnya) satu persatu (n-1,n-2,n-3,....dst)
4. Jika lebih besar maka tidak terjadi pemindahan
5. Ulangi langkah 2 dan 3 s/d sort optimal.
Pengurutan Ascending :Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar. Pengurutan Descending: Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar.
Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya, asc atau desc.
Ketika satu proses telah selesai, maka bubble sort akan mengulangi proses, demikian seterusnya sampai dengan iterasi sebanyak n-1. Kapan berhentinya? Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah diinginkan.
Article by : Nama : Bagus Try Yulistianto
NIM : 12124533
Logika & Algoritma ( Pertemuan 4 )
Pertemuan 4
Diagram Alur / Flowchart
Flowchart
Flowchart adalah representasi grafik dari langkah-langkah yang harus diikuti dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing simbol merepresentasikan suatu kegiatan tertentu.
Flowchart diawali dengan penerimaan input, pemrosesan input, dan diakhiri dengan penampilan output.
bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
suatu diagram yang menggambarkan susunan logika suatu program
Simbol yang digunakan :
menunjukkan awal dan akhir dari program
memberikan niai awal pada suatu variabel atau counter
menunjukkan pengolahan aritmatika dan pemindahan data
menunjukkan proses input atau output
untuk mewakili operasi perbandingan logika
proses yang ditulis sebagai sub program, yaitu prosedur/ fungsi
penghubung pada halaman yang sama
penghubung pada halaman yang berbeda
Simbol Flowchart dan fungsinya :
Flowchart terdiri dari 3 struktur :
1. Struktur Squence /sederhana
Diagram yang alurnya mengalir secara berurutan dari ataske bawah atau dengan kata lain tidak adanya percabangan atau pengulangan
Flowchart dengan struktur yang beurutan alirannya dari atas kebawah secara berurutan.
Contoh : flowchart dari algoritma mencari luas persegi panjang, Luas Lingkaran.
2. Struktur Branching
Diagram yg alurnya terjadi/terdapat alih kontrol berupa percabangan.
Flowchart dengan stuktur percabangan digunakan untuk meyeleksi kondisi dan menentukan pilihan proses selanjutnya.
contoH : flowchart dari algoritma menentukan apakah bilangan yang dimasukan ganjil atau genap.
3. Struktur looping
Flowchart dengan Struktur perulangan digunakan untuk mengulangi langkah-langkah sebelumnya sampai suatu kondisi terpenuhi.
Contoh:
flowchart dari algoritma untuk menampilkan bilangan ganjil dibawah nilai 10. sehingga proses mencetak bilangan tersebut akan dilakukan sampai kondisi terpenuhi yaitu 10.
Catatan: Flowchart yang dibuat bisa juga merupakan gabungan dari ketiga struktur diatas.
VARIABEL
Variabel, sebagai tempat untuk menyimpan suatu nilai yang sejenis. Terdiri dari nama dari variable itu sendiri dan nilai yang disimpan.
variabel / Peubah suatu nilai yg dapat berubah harganya.
Contoh pemberian nilai ke variabel :
A = 5 variabel A diberi nilai 5.
A = B variabel A diberi nilai sama dengan nilai variabel B.
variabel B sudah memiliki nilai sebelumnya
A = A +1 variabel A dirubah isinya dengan variabel A yang dijumlahkan dengan 1. (proses increament)
Jenis variabel terbagi atas :
1. Variabel numerik berisi angka numerik /bilangan
2. Variabel String berisi karakter.
STRUKTUR BRANCHING /Percabangan
1. Bersyarat
Diagram yg alurnya ada/banyak terjadi alih kontrol berupa percabangan & terjadi apabila kita dihadapkan pada suatu Kondisi dengan dua pilihan BENAR/ SALAH
Struktur :
If then
If then else
If then elseif
Case of.
2. Tidak Bersyarat
Struktur : GOTO
Studi kasus
Buat diagram alur utk masalah menghitung temperatur dlm derajat Fahrenhait yg diubah kedlm derajat Celcius & Reamur.
Dengan rumus :
C = 5 (F-32) R = 4 (F-32)
9 9
Derajat Celsius (°C) adalah suatu satuan ukur suhu yang mendapatkan namanya dari ahli astronomi Anders Celsius (1701–1744), yang pertama kali mengusulkannya pada tahun 1742. Skala suhu celsius didesain supaya titik beku air berada pada 0 derajat dan titik didih pada 100 derajat di tekanan atmosferik standar.
Fahreheit adalah salah satu skala temperatur selain Celsius dan kelvin. Nama Fahrenheit diambil dari ilmuwan Jerman yang bernama Gabriel Fahrenheit (1686-1736). Dalam skala ini, titik beku air adalah 32 derajat Fahrenheit (ditulis 32°F) dan titik didih air adalah 212 derajat Fahrenheit. Negatif 40 derajat Fahreheit sama dengan negatif 40 derajat Celsius.
Soal Latihan :
1. Algoritma konversi jam ke menit. Dengan masukannya jam dan menit.
2. Algoritma untuk menghitung jumlah yang harus dibayar oleh pembeli dari sejumlah barang yang dibeli, setelah mendapatkan diskon 10% dengan syarat jumlah total pembelian > Rp.1.500.000,-
Jawaban Tugas 1 dan 2 (Pertemuan 1)
1. Algoritma untuk menampilkan bilangan Ganjil dari 1 sampai dengan 10
model 1:
1. Mulai
2. Tetapkan nilai Bilangan = 1 dan Batas_Bilangan = 10
3. Jika sisa pembagian (Bilangan/2) tidak sama dengan 0 (bilangan mod 2 <> 0) maka Cetak “Bilangan”, dan kelangkah 5.
4. Jika (Bilangan = Batas_Bilangan) maka ke-langkah 6
5. Nilai Bilangan ditambah 1 (Bilangan=Bilangan+1) dan kembali kelangkah 3
6. Selesai.
2. Menghitung jumlah deret dari 1+2+3+ ….+ N.
1. Mulai
2. Masukan Nilai N
3. Tetapkan Bilangan = 1, Deret = 0
4. Hitung Deret = Deret + Bilangan
5. Jika Bilangan = N maka cetak Deret dan stop
6. Jika tidak, Bilangan ditambah 1 (Bilangan = Bilangan + 1) dan kembali kelangkah 4.
Soal Latihan
A = 10 A= 20
B = 20 B= 10
C = 100 C= 100
Perintah yang dijalankan :
Perintah yang dijalankan :
Tersedia potongan Program berikut ini :
If (A>B) then
begin
Perintah 1
If ((A< B) or (C>B)) then Perintah 2
Else perintah 3
end
Else
If C > A then
begin
perintah 4
if (A<B and A<C) then perintah 5
else perintah 6
end;
perintah 8
Buatlah bentuk Flowchart dari potongan Program diatas.
Pertemuan 5
LOOPING (Perulangan)
Suatu algoritma memiliki struktur
sequence/berurutan
branching/percabangan
looping/berurutan.
Struktur looping digunakan untuk mengulangi langkah-langkah sebelumnya yang telah dikerjakan, kondisi perulangan dilakukan sampai suatu kondisi berhenti terpenuhi.
proses Perulangan digunakan contohnya untuk membuat algortima :
“menampilkan bilangan berurutan dari 1 sampai dengan 10”
“menampilkan deret : 3, 7, 11, 15 …… N, sampai sejumlah N”
“menampilkan bilangan dari 10 sampai dengan 1 “
Dari algoritma diatas dipilih algortima pertama.
Proses perulangan akan dilakukan yaitu :
mencetak bilangan dari 1 -10
melakukan proses increament (penambahan bilangan dengan 1)
proses perulangan ini akan dilakukan sampai kondisi terakhir yaitu mencetak bilangan 10.
Buat Flowchart algoritma diatas ?
Bentuk umum proses perulangan:
1. while [ kondisi ] do [……….] end_while
2. repeat until [ kondisi ]
3. for [……….] end_for
for [nilai awal] to [nilai akhir] do
for [nilai akhir] to [nilai awal] do
Nested for (perulangan for bersarang)
Perulangan Statement dan contoh program
while do:
Evaluasi kondisi dilakukan di bagian awal while (kondisi) do
(statement)
Contoh:
i := 1;
while (i<10) do
begin
i := i + 2;
writeln(i);
end;
hasil : 3 5 7 9 12
Repeat loop:
Evaluasi kondisi dilakukan di bagian akhir. repeat
(statement);
...
(statement);
until (kondisi);
Contoh:
i := 1;
repeat
i := i + 2;
write(i);
until i >=10;
Hasil = 3 5 7 9 12
for..loop:
Perulangan dengan
increment nilai for counter := lower to upper do
(statement)
Atau
for counter := upper downto lower do
(statement)
Contoh:
for i := 1 to 10 do
write(i);
hasil : 1 2 3 4 5 6 7 8 9 10
Nested Loop for for i := 1 to 10 do
begin
write(i);
for j := 10 downto i do
write(j);
writeln;
end;
Dari soal berikut Buatlah Flowchart nya :
1. Menentukan suatu bil. bulat positif merupakan bil.genap/ganjil.
2. Mencetak 10 suku pertama dr barisan geometri dgn suku pertama 3 dan rasio = 6
3. Mencetak suku barisan aritmatika dgn suku pertama 3 dan beda 4, s/d suku yg harganya tdk melebihi nilai 100.
4. Mencetak suku deret aritmatika dgn hasilnya adalah 3, 7, 11 ............ sampai 12 suku
5. Mencetak deret bergoyang 1, -2, 4, -8 ........ sampai dengan 10 suku.
Barisan dan Deret Geometri
Barisan geometri adalah suatu barisan yang suku selanjutnya diperoleh dengan mengalikan suatu bilangan tertentu kepada suku sebelumnya.
Bilangan tetap tersebut dinamakan pembanding/rasio.
Bentuk umum barisan geometri : a,ar,ar,….ar
a = suku awal, r = rasio,
Deret geometri adalah jumlah semua suku-suku barisan geometri. (disebut juga deret ukur).
BEntuk umum : a+ar+ar+ ….+ ar
Pertemuan 6
Struktur Rekursif
Rekursif adalah suatu proses yang bisa memenggil dirinya sendiri .
Perulangan Rekursif dan Perulangan Iteratif.
Perulangan rekursif merupakan salah satu metode didalam pemrograman yang mana dalam sebuah fungsi terdapat intruksi yang memanggil fungsi itu sendri, atau lebih sering disebut memanggil dirinya sendiri.
Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok intruksi. Perulangan dilakukan dalam batasan syarat tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka perulangan aka terhenti.
Persamaan :
1. Iteratif dan rekursif merupakan metode atau teknik didalam perulangan(looping)
2. Sama-sama memiliki bagian yang berfungsi sebagai batas dalam sebuah perulangan
Perbedaan :
Iteratif dalam melakukan perulangan membutuhkan suatu instruksi program seperti for, repeat until dan while do, sedangkan rekursi tidak memakai instruksi program seperti itu. Cukup dengan fungsi tersebut.
Procedure Rekursif; nama fungsi: rekursif.
Begin
Write(‘AMIK BSI ’);
Rekursif; fungsi bernama rekursif ini dikatakan
Sebagai fungsi rekursi karena dia memanggil
Dirinya sendiri
End;
Begin
Rekursif;
End.
Pada contoh diatas: sebuah fungsi/prosedur adalah sebuah proses.
Contoh fungsi rekursif diatas adalah sebuah proses, dan didalam fungsi rekursif tersebut terdapat perintah/proses yang mengerjakan/memanggil proses rekursif (memanggil dirinya sendiri),sehingga fungsi/prosedur rekursif ini dinamakan fungsi rekursi.
Pada contoh diatas proses rekursi ini tidak memiliki batas berhenti.
Untuk mengetahui contoh fungsi rekursif ini silahkan melihat pada slide perkuliahan.
Catatan: Fungsi/prosedur dalam sebuah bahasa pemrograman disebut juga subrutin/sub program.
Subprogram ini berisi perintah –perintah khusus yang sering digunakan untuk proses pemrograman. Sehingga untuk menghindari penulisan kode program yang sering digunakan maka dibuatlah fungsi (subprogram).
Cara untuk menggunakan subprogram yaitu dengan memanggil nama_fungsi tersebut melalui blok program utama.
Contoh pemanggilan terdapat pada program faktorial.
FUNGSI FAKTORIAL
0! = 1
N! = N x (N-1)! Untuk N > 0
function faktorial(N:integer):integer;
var i:integer;
begin
if N = 0 then
begin
faktorial :=1;
exit;
end
else
faktorial := n * faktorial(n-1);
end;
begin
write('Masukan Bilangan = '); readln(Bil);
write('jumlah faktorial = ',faktorial(Bil));
readln;
end.
HASIL:
Masukan Bilangan = 5
jumlah faktorial = 120
MENARA HANOI
Tujuan permainan ini adalah memindahkan n buah piringan dari tonggak asal A melalui tonggak bantu B menuju tonggak tujuan C. dengan aturan piring yang lebuh kecil tidak boleh berada dipiringan yang lebih besar.
A B C
Bayangkan keadaan berikut:
Ada 3 tiang (a, b, c) tempat piringan dengan ukuran yang bervariasi dapat ditumpuk. Pada mulanya semua piringan ada di “a”. Tugasnya adalah Memindah semua piringan ke “c” dengan aturan sbb:
• pada satu saat hanya boleh memindah 1 piringan
• setiap perpindahan berupa pengambilan piringan teratas dari satu tiang dan memasukannya ketiang lain, diatas piringan lain yang mungkin sudah ada pada tiang tersebut.
• Tidak boleh meletakan piringan diatas piringan lain yang lebih kecil. (piringan yang lebih besar tidak boleh berada di atas piringan yang lebih kecil).
• pada setiap akhir pemindahan semua piringan harus berada di tiang
Untuk Penyelesaian masalah kita daftarkan terlebih dahulu langkah-langkah penyelesaiannya:
a. ketika kondisi piringan N= 1
Piringan 1 dipindahkan dari A ke C.
b. N =2
Pindahkan piringan 1 dari A ke B
Pindahkan piringan 2 dari A ke C
Pindahkan piringan 1 dari B ke C
Dari langkah – langkah penyelesaian diatas, maka dapat disimpulkan :
Untuk memindahkan piringan dari tonggak asal (A) ke tonggak tujuan (C) maka piringan ke N harus berada di tonggak tujuan (C).
Sedangkan piringan ke 1 sampai dengan (N-1) harus berada ditonggak bantu(B).
Setelah piringan ke 1 s/d N-1 berada di B, Kemudian pindahkan piringan ke 1 sampai dengan N-1 dari tonggak bantu (B) ke tonggak tujuan (C).
Untuk menyelesaikan masalah tersebut dapat digunakan algoritma Rekursif :
uses crt;
procedure Hanoi(n:integer;asal,bantu,tujuan:char);
begin
if n=0 then exit;
hanoi(n-1,asal,tujuan,bantu);
writeln('. Pindahkan piringan ke ',n,' dari ',asal,' ke ',tujuan);
hanoi(n-1,bantu,asal,tujuan);
end;
var N : integer;
begin
clrscr;
write('Jumlah Piringan = ');
readln(N);
hanoi(N,'A','B','C');
readln;
end.
Hasil :
Jumlah Piringan = 4
. Pindahkan piringan ke 1 dari A ke B
. Pindahkan piringan ke 2 dari A ke C
. Pindahkan piringan ke 1 dari B ke C
. Pindahkan piringan ke 3 dari A ke B
. Pindahkan piringan ke 1 dari C ke A
. Pindahkan piringan ke 2 dari C ke B
. Pindahkan piringan ke 1 dari A ke B
. Pindahkan piringan ke 4 dari A ke C
. Pindahkan piringan ke 1 dari B ke C
. Pindahkan piringan ke 2 dari B ke A
. Pindahkan piringan ke 1 dari C ke A
. Pindahkan piringan ke 3 dari B ke C
. Pindahkan piringan ke 1 dari A ke B
. Pindahkan piringan ke 2 dari A ke C
. Pindahkan piringan ke 1 dari B ke C
Hasil 2 :
Jumlah Piringan = 3
. Pindahkan piringan ke 1 dari A ke C
. Pindahkan piringan ke 2 dari A ke B
. Pindahkan piringan ke 1 dari C ke B
. Pindahkan piringan ke 3 dari A ke C
. Pindahkan piringan ke 1 dari B ke A
. Pindahkan piringan ke 2 dari B ke C
. Pindahkan piringan ke 1 dari A ke C
Article by : Nama : M Rian Prawira K
NIM : 12124541
Diagram Alur / Flowchart
Flowchart
Flowchart adalah representasi grafik dari langkah-langkah yang harus diikuti dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing simbol merepresentasikan suatu kegiatan tertentu.
Flowchart diawali dengan penerimaan input, pemrosesan input, dan diakhiri dengan penampilan output.
bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
suatu diagram yang menggambarkan susunan logika suatu program
Simbol yang digunakan :
menunjukkan awal dan akhir dari program
memberikan niai awal pada suatu variabel atau counter
menunjukkan pengolahan aritmatika dan pemindahan data
menunjukkan proses input atau output
untuk mewakili operasi perbandingan logika
proses yang ditulis sebagai sub program, yaitu prosedur/ fungsi
penghubung pada halaman yang sama
penghubung pada halaman yang berbeda
Simbol Flowchart dan fungsinya :
Flowchart terdiri dari 3 struktur :
1. Struktur Squence /sederhana
Diagram yang alurnya mengalir secara berurutan dari ataske bawah atau dengan kata lain tidak adanya percabangan atau pengulangan
Flowchart dengan struktur yang beurutan alirannya dari atas kebawah secara berurutan.
Contoh : flowchart dari algoritma mencari luas persegi panjang, Luas Lingkaran.
2. Struktur Branching
Diagram yg alurnya terjadi/terdapat alih kontrol berupa percabangan.
Flowchart dengan stuktur percabangan digunakan untuk meyeleksi kondisi dan menentukan pilihan proses selanjutnya.
contoH : flowchart dari algoritma menentukan apakah bilangan yang dimasukan ganjil atau genap.
3. Struktur looping
Flowchart dengan Struktur perulangan digunakan untuk mengulangi langkah-langkah sebelumnya sampai suatu kondisi terpenuhi.
Contoh:
flowchart dari algoritma untuk menampilkan bilangan ganjil dibawah nilai 10. sehingga proses mencetak bilangan tersebut akan dilakukan sampai kondisi terpenuhi yaitu 10.
Catatan: Flowchart yang dibuat bisa juga merupakan gabungan dari ketiga struktur diatas.
VARIABEL
Variabel, sebagai tempat untuk menyimpan suatu nilai yang sejenis. Terdiri dari nama dari variable itu sendiri dan nilai yang disimpan.
variabel / Peubah suatu nilai yg dapat berubah harganya.
Contoh pemberian nilai ke variabel :
A = 5 variabel A diberi nilai 5.
A = B variabel A diberi nilai sama dengan nilai variabel B.
variabel B sudah memiliki nilai sebelumnya
A = A +1 variabel A dirubah isinya dengan variabel A yang dijumlahkan dengan 1. (proses increament)
Jenis variabel terbagi atas :
1. Variabel numerik berisi angka numerik /bilangan
2. Variabel String berisi karakter.
STRUKTUR BRANCHING /Percabangan
1. Bersyarat
Diagram yg alurnya ada/banyak terjadi alih kontrol berupa percabangan & terjadi apabila kita dihadapkan pada suatu Kondisi dengan dua pilihan BENAR/ SALAH
Struktur :
If then
If then else
If then elseif
Case of.
2. Tidak Bersyarat
Struktur : GOTO
Studi kasus
Buat diagram alur utk masalah menghitung temperatur dlm derajat Fahrenhait yg diubah kedlm derajat Celcius & Reamur.
Dengan rumus :
C = 5 (F-32) R = 4 (F-32)
9 9
Derajat Celsius (°C) adalah suatu satuan ukur suhu yang mendapatkan namanya dari ahli astronomi Anders Celsius (1701–1744), yang pertama kali mengusulkannya pada tahun 1742. Skala suhu celsius didesain supaya titik beku air berada pada 0 derajat dan titik didih pada 100 derajat di tekanan atmosferik standar.
Fahreheit adalah salah satu skala temperatur selain Celsius dan kelvin. Nama Fahrenheit diambil dari ilmuwan Jerman yang bernama Gabriel Fahrenheit (1686-1736). Dalam skala ini, titik beku air adalah 32 derajat Fahrenheit (ditulis 32°F) dan titik didih air adalah 212 derajat Fahrenheit. Negatif 40 derajat Fahreheit sama dengan negatif 40 derajat Celsius.
Soal Latihan :
1. Algoritma konversi jam ke menit. Dengan masukannya jam dan menit.
2. Algoritma untuk menghitung jumlah yang harus dibayar oleh pembeli dari sejumlah barang yang dibeli, setelah mendapatkan diskon 10% dengan syarat jumlah total pembelian > Rp.1.500.000,-
Jawaban Tugas 1 dan 2 (Pertemuan 1)
1. Algoritma untuk menampilkan bilangan Ganjil dari 1 sampai dengan 10
model 1:
1. Mulai
2. Tetapkan nilai Bilangan = 1 dan Batas_Bilangan = 10
3. Jika sisa pembagian (Bilangan/2) tidak sama dengan 0 (bilangan mod 2 <> 0) maka Cetak “Bilangan”, dan kelangkah 5.
4. Jika (Bilangan = Batas_Bilangan) maka ke-langkah 6
5. Nilai Bilangan ditambah 1 (Bilangan=Bilangan+1) dan kembali kelangkah 3
6. Selesai.
2. Menghitung jumlah deret dari 1+2+3+ ….+ N.
1. Mulai
2. Masukan Nilai N
3. Tetapkan Bilangan = 1, Deret = 0
4. Hitung Deret = Deret + Bilangan
5. Jika Bilangan = N maka cetak Deret dan stop
6. Jika tidak, Bilangan ditambah 1 (Bilangan = Bilangan + 1) dan kembali kelangkah 4.
Soal Latihan
A = 10 A= 20
B = 20 B= 10
C = 100 C= 100
Perintah yang dijalankan :
Perintah yang dijalankan :
Tersedia potongan Program berikut ini :
If (A>B) then
begin
Perintah 1
If ((A< B) or (C>B)) then Perintah 2
Else perintah 3
end
Else
If C > A then
begin
perintah 4
if (A<B and A<C) then perintah 5
else perintah 6
end;
perintah 8
Buatlah bentuk Flowchart dari potongan Program diatas.
Pertemuan 5
LOOPING (Perulangan)
Suatu algoritma memiliki struktur
sequence/berurutan
branching/percabangan
looping/berurutan.
Struktur looping digunakan untuk mengulangi langkah-langkah sebelumnya yang telah dikerjakan, kondisi perulangan dilakukan sampai suatu kondisi berhenti terpenuhi.
proses Perulangan digunakan contohnya untuk membuat algortima :
“menampilkan bilangan berurutan dari 1 sampai dengan 10”
“menampilkan deret : 3, 7, 11, 15 …… N, sampai sejumlah N”
“menampilkan bilangan dari 10 sampai dengan 1 “
Dari algoritma diatas dipilih algortima pertama.
Proses perulangan akan dilakukan yaitu :
mencetak bilangan dari 1 -10
melakukan proses increament (penambahan bilangan dengan 1)
proses perulangan ini akan dilakukan sampai kondisi terakhir yaitu mencetak bilangan 10.
Buat Flowchart algoritma diatas ?
Bentuk umum proses perulangan:
1. while [ kondisi ] do [……….] end_while
2. repeat until [ kondisi ]
3. for [……….] end_for
for [nilai awal] to [nilai akhir] do
for [nilai akhir] to [nilai awal] do
Nested for (perulangan for bersarang)
Perulangan Statement dan contoh program
while do:
Evaluasi kondisi dilakukan di bagian awal while (kondisi) do
(statement)
Contoh:
i := 1;
while (i<10) do
begin
i := i + 2;
writeln(i);
end;
hasil : 3 5 7 9 12
Repeat loop:
Evaluasi kondisi dilakukan di bagian akhir. repeat
(statement);
...
(statement);
until (kondisi);
Contoh:
i := 1;
repeat
i := i + 2;
write(i);
until i >=10;
Hasil = 3 5 7 9 12
for..loop:
Perulangan dengan
increment nilai for counter := lower to upper do
(statement)
Atau
for counter := upper downto lower do
(statement)
Contoh:
for i := 1 to 10 do
write(i);
hasil : 1 2 3 4 5 6 7 8 9 10
Nested Loop for for i := 1 to 10 do
begin
write(i);
for j := 10 downto i do
write(j);
writeln;
end;
Dari soal berikut Buatlah Flowchart nya :
1. Menentukan suatu bil. bulat positif merupakan bil.genap/ganjil.
2. Mencetak 10 suku pertama dr barisan geometri dgn suku pertama 3 dan rasio = 6
3. Mencetak suku barisan aritmatika dgn suku pertama 3 dan beda 4, s/d suku yg harganya tdk melebihi nilai 100.
4. Mencetak suku deret aritmatika dgn hasilnya adalah 3, 7, 11 ............ sampai 12 suku
5. Mencetak deret bergoyang 1, -2, 4, -8 ........ sampai dengan 10 suku.
Barisan dan Deret Geometri
Barisan geometri adalah suatu barisan yang suku selanjutnya diperoleh dengan mengalikan suatu bilangan tertentu kepada suku sebelumnya.
Bilangan tetap tersebut dinamakan pembanding/rasio.
Bentuk umum barisan geometri : a,ar,ar,….ar
a = suku awal, r = rasio,
Deret geometri adalah jumlah semua suku-suku barisan geometri. (disebut juga deret ukur).
BEntuk umum : a+ar+ar+ ….+ ar
Pertemuan 6
Struktur Rekursif
Rekursif adalah suatu proses yang bisa memenggil dirinya sendiri .
Perulangan Rekursif dan Perulangan Iteratif.
Perulangan rekursif merupakan salah satu metode didalam pemrograman yang mana dalam sebuah fungsi terdapat intruksi yang memanggil fungsi itu sendri, atau lebih sering disebut memanggil dirinya sendiri.
Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok intruksi. Perulangan dilakukan dalam batasan syarat tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka perulangan aka terhenti.
Persamaan :
1. Iteratif dan rekursif merupakan metode atau teknik didalam perulangan(looping)
2. Sama-sama memiliki bagian yang berfungsi sebagai batas dalam sebuah perulangan
Perbedaan :
Iteratif dalam melakukan perulangan membutuhkan suatu instruksi program seperti for, repeat until dan while do, sedangkan rekursi tidak memakai instruksi program seperti itu. Cukup dengan fungsi tersebut.
Procedure Rekursif; nama fungsi: rekursif.
Begin
Write(‘AMIK BSI ’);
Rekursif; fungsi bernama rekursif ini dikatakan
Sebagai fungsi rekursi karena dia memanggil
Dirinya sendiri
End;
Begin
Rekursif;
End.
Pada contoh diatas: sebuah fungsi/prosedur adalah sebuah proses.
Contoh fungsi rekursif diatas adalah sebuah proses, dan didalam fungsi rekursif tersebut terdapat perintah/proses yang mengerjakan/memanggil proses rekursif (memanggil dirinya sendiri),sehingga fungsi/prosedur rekursif ini dinamakan fungsi rekursi.
Pada contoh diatas proses rekursi ini tidak memiliki batas berhenti.
Untuk mengetahui contoh fungsi rekursif ini silahkan melihat pada slide perkuliahan.
Catatan: Fungsi/prosedur dalam sebuah bahasa pemrograman disebut juga subrutin/sub program.
Subprogram ini berisi perintah –perintah khusus yang sering digunakan untuk proses pemrograman. Sehingga untuk menghindari penulisan kode program yang sering digunakan maka dibuatlah fungsi (subprogram).
Cara untuk menggunakan subprogram yaitu dengan memanggil nama_fungsi tersebut melalui blok program utama.
Contoh pemanggilan terdapat pada program faktorial.
FUNGSI FAKTORIAL
0! = 1
N! = N x (N-1)! Untuk N > 0
function faktorial(N:integer):integer;
var i:integer;
begin
if N = 0 then
begin
faktorial :=1;
exit;
end
else
faktorial := n * faktorial(n-1);
end;
begin
write('Masukan Bilangan = '); readln(Bil);
write('jumlah faktorial = ',faktorial(Bil));
readln;
end.
HASIL:
Masukan Bilangan = 5
jumlah faktorial = 120
MENARA HANOI
Tujuan permainan ini adalah memindahkan n buah piringan dari tonggak asal A melalui tonggak bantu B menuju tonggak tujuan C. dengan aturan piring yang lebuh kecil tidak boleh berada dipiringan yang lebih besar.
A B C
Bayangkan keadaan berikut:
Ada 3 tiang (a, b, c) tempat piringan dengan ukuran yang bervariasi dapat ditumpuk. Pada mulanya semua piringan ada di “a”. Tugasnya adalah Memindah semua piringan ke “c” dengan aturan sbb:
• pada satu saat hanya boleh memindah 1 piringan
• setiap perpindahan berupa pengambilan piringan teratas dari satu tiang dan memasukannya ketiang lain, diatas piringan lain yang mungkin sudah ada pada tiang tersebut.
• Tidak boleh meletakan piringan diatas piringan lain yang lebih kecil. (piringan yang lebih besar tidak boleh berada di atas piringan yang lebih kecil).
• pada setiap akhir pemindahan semua piringan harus berada di tiang
Untuk Penyelesaian masalah kita daftarkan terlebih dahulu langkah-langkah penyelesaiannya:
a. ketika kondisi piringan N= 1
Piringan 1 dipindahkan dari A ke C.
b. N =2
Pindahkan piringan 1 dari A ke B
Pindahkan piringan 2 dari A ke C
Pindahkan piringan 1 dari B ke C
Dari langkah – langkah penyelesaian diatas, maka dapat disimpulkan :
Untuk memindahkan piringan dari tonggak asal (A) ke tonggak tujuan (C) maka piringan ke N harus berada di tonggak tujuan (C).
Sedangkan piringan ke 1 sampai dengan (N-1) harus berada ditonggak bantu(B).
Setelah piringan ke 1 s/d N-1 berada di B, Kemudian pindahkan piringan ke 1 sampai dengan N-1 dari tonggak bantu (B) ke tonggak tujuan (C).
Untuk menyelesaikan masalah tersebut dapat digunakan algoritma Rekursif :
uses crt;
procedure Hanoi(n:integer;asal,bantu,tujuan:char);
begin
if n=0 then exit;
hanoi(n-1,asal,tujuan,bantu);
writeln('. Pindahkan piringan ke ',n,' dari ',asal,' ke ',tujuan);
hanoi(n-1,bantu,asal,tujuan);
end;
var N : integer;
begin
clrscr;
write('Jumlah Piringan = ');
readln(N);
hanoi(N,'A','B','C');
readln;
end.
Hasil :
Jumlah Piringan = 4
. Pindahkan piringan ke 1 dari A ke B
. Pindahkan piringan ke 2 dari A ke C
. Pindahkan piringan ke 1 dari B ke C
. Pindahkan piringan ke 3 dari A ke B
. Pindahkan piringan ke 1 dari C ke A
. Pindahkan piringan ke 2 dari C ke B
. Pindahkan piringan ke 1 dari A ke B
. Pindahkan piringan ke 4 dari A ke C
. Pindahkan piringan ke 1 dari B ke C
. Pindahkan piringan ke 2 dari B ke A
. Pindahkan piringan ke 1 dari C ke A
. Pindahkan piringan ke 3 dari B ke C
. Pindahkan piringan ke 1 dari A ke B
. Pindahkan piringan ke 2 dari A ke C
. Pindahkan piringan ke 1 dari B ke C
Hasil 2 :
Jumlah Piringan = 3
. Pindahkan piringan ke 1 dari A ke C
. Pindahkan piringan ke 2 dari A ke B
. Pindahkan piringan ke 1 dari C ke B
. Pindahkan piringan ke 3 dari A ke C
. Pindahkan piringan ke 1 dari B ke A
. Pindahkan piringan ke 2 dari B ke C
. Pindahkan piringan ke 1 dari A ke C
Article by : Nama : M Rian Prawira K
NIM : 12124541
Logika & Algoritma (Pertemuan 3)
Pertemuan 3
KONSEP TIPE DATA
Bahasa Pemrograman PASCAL
Pascal , merupakan bahasa pemrograman tingkat tinggi.
Pascal dirancang oleh Prof. Niklaus Writh (Technical University di Zurich, Switzerland) pada tahun 1971
Nama Pascal diambil sebagai penghargaan kepada Blaise Pascal (ahli matematika dan philosopi dari Peancis).
TIPE DATA
1. Tipe data Sederhana
1. Tipe Ordinal (berurutan)
Yang termasuk tipe data ordinal :
a. Integer tipe data untuk bilangan bulat (short int,word, byte dll).
b. Boolean tipe data yang memiliki nilai TRUE dan FALSE
c. Char tipe data yang berisi 1 buah karakter.
d. Terbilang
e. Sub Jangkauan
2. Real tipe data untuk menampung bilangan pecahan.
2. Tipe data String
tipe data yang terdiri dari sekumpulan karakter.
3. Tipe data Terstruktur
Array, Record, Set, File, objek
1. Tipe data Sederhana
TIPE ORDINAL
tipe data yang merupakan subset dari tipe data sederhana, tipe sederhana adalah semua tipe data sederhana kecuali tipe data numerik real.
Macam tipe data ordinal :
a. Integer tipe data yang digunakan untuk menyimpan bilangan bulat.
Tipe Jangkauan Ukuran
Shortint 128…127 Signed 8 bit
Integer -32768…32767 Signed 16 bit
Longint -2147483648…2147483647 Signed 32 bit
Byte 0…255 UnSigned 8 bit
Word 0…65535 UnSigned 16 bit
b. Boolean yang hanya dapat bernilai benar atau salah (TRUE or FALSE).
c. Char tipe data yang digunakan untuk menyimpan data alfanumeris, seperti ‘A’,’Z’,’@’,’$’,’1’,’9’ dsb.
d. Terbilang digunakan untuk memberi nama pada beberapa nilai tertentu.(tipe data yang didefinisikan sendiri oleh pembuatnya dikenal juga tipe data enumerated)
contoh :
Type
Hari = (Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu ) ;
e. Sub Jangkauan digunakan untuk mendeklarasikan tipe yang berada pada jangkauan tertentu. Pada dasarnya tipe subjangkuan hampir sama dengan tipe bilangan bulat, bedanya kita bebas menentukan jangkauan dari tipe ini, misalnya dari 1 sampai 100.
Contoh :
Type
Nilai = 0..100;
Karakteristik tipe Ordinal adalah
• Merupakan Himpunan Berurutan (ordered set). nilai dari tipe data ordinal memiliki nilai yang berurutan
• Memiliki Fungsi standard ORD/Ordinalitas (digunakan untuk menghasilkan nilai urutannya.)
• Memiliki Fungsi standard PRED/Predecessor (digunakan untuk menghasilkan nilai urutan sebelumnya.).
• Memiliki Fungsi standard SUCC/Successor(digunakan untuk menghasilkan nilai urutan sesudahnya)
Contoh Program :
uses crt;
type
Colors = (MERAH,BIRU,HIJAU);
begin
clrscr;
Writeln('BIRU mempunyai nilai ordinal ',Ord(BIRU));
Writeln('kode ASCII dari "c" adalah ', Ord('c'), ' desimal');
writeln;
Writeln('predecessor dari 5 adalah ',Pred(5));
Writeln('successor dari 10 adalah ',Succ(10));
if Succ(MERAH) = BIRU then
Writeln('DALAM TIPE Colors ,MERAH merupakan ',
'predecessor dari BIRU.');
readln;
end.
HASIL :
BIRU mempunyai nilai ordinal 1
kode ASCII dari "c" adalah 99 desimal
predecessor dari 5 adalah 4
successor dari 10 adalah 11
DALAM TIPE Colors ,MERAH merupakan predecessor dari BIRU.
Note ! Fungsi (seperti: ord,pred,succ,chr,length,concat dsb )adalah sebuah perintah / instruksi program yang digunakan untuk keperluan pemrograman yang disediakan oleh bahasa pemrograman PASCAL
TIPE REAL
Tipe data yang digunakan untuk menyimpan bilangan real/pecahan.
Tipe data Jangkauan Digit penting Ukuran
Real 2.9 * 10-39 … 1.7 * 1038 11-12 6 byte
Single 1.5 * 10-45 … 3.4 * 1038 7-8 4 byte
Double 5.0 * 10-324 … 1.7 * 10308 15-16 8 byte
Extented 3.4 * 10-39 … 1.1 * 104932 19-20 10 byte
Comp -263+1 … 1063-1 19-20 8byte
2. TIPE STRING
Tipe string digunakan untuk menyimpan data yang berupa untaian karakter, seperti ‘ Pascal ’ , ’Algoritma ‘
Var
Kalimat : string;
# ConCat[fungsi].
Untuk menggabungkan 2 atau beberapa variabel string.
Sintaks: ConCat (s1 [,s2,...,sn]: String) : String;
contoh: ConCat ('ABC','DEF') { ABCDEF }
# Copy [fungsi].
Mengambil satu atau beberapa karakter dari sebuah string.
Sintaks: Copy (S,Index,Count) : String;
Keterangan :
S = sebuah string (string).
Index = posisi awal kita akan mengambil beberapa
karakter (integer)
Count = banyaknya karakter yang akan diambil (integer).
# Delete [prosedur].
Menghapus sebagian karakter dari sebuah string.
Sintaks: Delete (S,Index,Count);
Keterangan : sama dengan statemen Copy.
# Insert [prosedur].
Menyisipkan satu atau beberapa karakter ke dalam sebuah string.
Sintaks: Insert (Source,var S,Index);
Keterangan : Source = sumber string untuk disisipi (string)
var S = string tujuan yang akan disisipi oleh string Source (string)
Index = posisi mulai (integer).
# Length [fungsi].
Memberikan nilai panjang dari suatu string (jumlah karakter
dalam string).
Sintaks: Length (S);
Keterangan : S = string
Length(S) menghasilkan nilai integer.
# Pos [fungsi].
Mencari posisi sebuah bagian string (substring) didalam
sebuah string.
Sintaks: Pos (Substr,S); {menghasilkan nilai Byte}
Keterangan : Substr = substring yang akan dicari posisinya di dalam sebuah string S.
Bila bernilai 0 berarti nilai string yang dicari tidak ada.
# Str [prosedur].
Merubah nilai numerik ke dalam nilai string.
Sintaks: Str (N,S);
Keterangan :
N = data tipe integer,
S = data tipe string.
# Val [prosedur].
Merubah nilai string ke dalam nilai numerik.
Sintaks: Val (S,N,P);
Keterangan :
S = nilai string,
N = nilai real,
P = posisi salah.
Nilai string harus berisi angka, plus atau minus, bila tidak
berarti kesalahan dan letak kesalahannya ditunjukkan oleh va-
riabel posisi salah. Jika benar, maka nilai variabel tsb = 0
(nol).
# UpCase [fungsi].
Memberikan huruf kapital dari argumen.
Sintaks: UpCase (S);
Keterangan :
S = variabel bertipe karakter.
3. TIPE TERSTRUKTUR
a. ARRAY / larik
yaitu tipe data berindeks yang terdiri dari satu atau lebih elemen/komponen yang memiliki tipe data yang sama. (mendeklarasikan kumpulan variabel yang bertipe sama)
penulisan :
Var
Nama_larik : array [batas_bawah..batas_atas] of tipe larik;
Var
a: array[1..8] of longint;
Sama artinya dengan :
a1, a2, a3, a4, a5, a6, a7, a8 : longint;
b. RECORD / Rekaman
Tipe data ini digunakan untuk merepresentasikan kumpulan elemen/komponen yang memiliki satu jenis atau lebih tipe data. Tiap element disebut juga field atau property atau attribute.
Type
TKaryawan = record;
Nama : string;
Alamat : string;
Gaji : longint;
End;
c. SET / Himpunan
digunakan untuk menyimpan kumpulan nilai ( disebut juga anggota himpunan) yang bertipe sama.
Type
HimpunanKarakter = set of char;
d. FILE
tipe data untuk mengakses file.
Type
Nomorfile = file of integer;
SUPLEMEN
MENGENAL PEMROGRAMAN PASCAL
Secara ringkas, struktur bahasa PASCAL dapat terdiri dari:
1. Judul Program
2. Blok Program
- deklarasi label
- definisi konstanta
- definisi tipe
- deklarasi variabel
- deklarasi prosedur
- deklarasi fungsi
3. Bagian Pernyataan (statetement program/baris perintah)
PROGRAM nama_program; {judul Program}
USES nama_unit; {deklarasi unit yang dipakai}
VAR { Deklarasi Variabel }
BEGIN
Blok Program Utama
END.
a. Deklarasi variabel
Untuk membuat variabel/pengenal/indentifier pada pascal yaitu dengan menuliskan nama variabel dan tipe datanya pada bagian deklarasi variabel
Format penulisan: [ nama_identifier : tipe_data; ]
contoh :
Var
I : integer;
nama : string;
Jenis_kelamin : boolean;
Luas,Panjang,Lebar : integer;
b. Operator Aritmatika
Operator Operasi Tipe Operand Tipe Hasil
* Perkalian real, real
integer, integer
real, integer real
integer
real
DIV Pembagian bulat integer, integer Integer
/ Pembagian real real, real
integer, integer
real, integer real
real
real
MOD Sisa pembagian integer, integer integer
+ Penambahan real, real
integer, integer
real, integer real
integer
real
- Pengurangan real, real
integer, integer
real, integer real
integer
real
Contoh :
operasi perkalian antara variabel PANJANG dan LEBAR di masukan kedalam variabel LUAS
LUAS := PANJANG * LEBAR;
c. Operator pemberi nilai (assignment operator)
Menggunakan sintax : “ := “ (titik dua sama dengan)
contoh:
LUAS := PANJANG * LEBAR
(hasil perkalian PANJANG * LEBAR dimasukan kedalam variabel LUAS)
d. Pernyataan masukan dan keluaran
READ dan READLN
Digunakan untuk meminta masukan dari papan ketik untuk diolah computer.
READ (nama); memasukan nilai ke variabel
WRITE dan WRITELN
Digunakan untuk menampilkan data kelayar.
WRITE (‘Halo ’); menampilkan string halo
WRITE (nama); menampilkan isi variable nama.
Perbedaan WRITE dengan WRITELN yaitu ketika perintah write ini dikerjakan kursor tidak akan ganti baris (tetap diposisi semula) sedangkan ketika perintah writeln ini dikerjakan kursor akan pindah baris.
Article by : Nama : Dadan Supriatna
NIM : 12124537
KONSEP TIPE DATA
Bahasa Pemrograman PASCAL
Pascal , merupakan bahasa pemrograman tingkat tinggi.
Pascal dirancang oleh Prof. Niklaus Writh (Technical University di Zurich, Switzerland) pada tahun 1971
Nama Pascal diambil sebagai penghargaan kepada Blaise Pascal (ahli matematika dan philosopi dari Peancis).
TIPE DATA
1. Tipe data Sederhana
1. Tipe Ordinal (berurutan)
Yang termasuk tipe data ordinal :
a. Integer tipe data untuk bilangan bulat (short int,word, byte dll).
b. Boolean tipe data yang memiliki nilai TRUE dan FALSE
c. Char tipe data yang berisi 1 buah karakter.
d. Terbilang
e. Sub Jangkauan
2. Real tipe data untuk menampung bilangan pecahan.
2. Tipe data String
tipe data yang terdiri dari sekumpulan karakter.
3. Tipe data Terstruktur
Array, Record, Set, File, objek
1. Tipe data Sederhana
TIPE ORDINAL
tipe data yang merupakan subset dari tipe data sederhana, tipe sederhana adalah semua tipe data sederhana kecuali tipe data numerik real.
Macam tipe data ordinal :
a. Integer tipe data yang digunakan untuk menyimpan bilangan bulat.
Tipe Jangkauan Ukuran
Shortint 128…127 Signed 8 bit
Integer -32768…32767 Signed 16 bit
Longint -2147483648…2147483647 Signed 32 bit
Byte 0…255 UnSigned 8 bit
Word 0…65535 UnSigned 16 bit
b. Boolean yang hanya dapat bernilai benar atau salah (TRUE or FALSE).
c. Char tipe data yang digunakan untuk menyimpan data alfanumeris, seperti ‘A’,’Z’,’@’,’$’,’1’,’9’ dsb.
d. Terbilang digunakan untuk memberi nama pada beberapa nilai tertentu.(tipe data yang didefinisikan sendiri oleh pembuatnya dikenal juga tipe data enumerated)
contoh :
Type
Hari = (Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu ) ;
e. Sub Jangkauan digunakan untuk mendeklarasikan tipe yang berada pada jangkauan tertentu. Pada dasarnya tipe subjangkuan hampir sama dengan tipe bilangan bulat, bedanya kita bebas menentukan jangkauan dari tipe ini, misalnya dari 1 sampai 100.
Contoh :
Type
Nilai = 0..100;
Karakteristik tipe Ordinal adalah
• Merupakan Himpunan Berurutan (ordered set). nilai dari tipe data ordinal memiliki nilai yang berurutan
• Memiliki Fungsi standard ORD/Ordinalitas (digunakan untuk menghasilkan nilai urutannya.)
• Memiliki Fungsi standard PRED/Predecessor (digunakan untuk menghasilkan nilai urutan sebelumnya.).
• Memiliki Fungsi standard SUCC/Successor(digunakan untuk menghasilkan nilai urutan sesudahnya)
Contoh Program :
uses crt;
type
Colors = (MERAH,BIRU,HIJAU);
begin
clrscr;
Writeln('BIRU mempunyai nilai ordinal ',Ord(BIRU));
Writeln('kode ASCII dari "c" adalah ', Ord('c'), ' desimal');
writeln;
Writeln('predecessor dari 5 adalah ',Pred(5));
Writeln('successor dari 10 adalah ',Succ(10));
if Succ(MERAH) = BIRU then
Writeln('DALAM TIPE Colors ,MERAH merupakan ',
'predecessor dari BIRU.');
readln;
end.
HASIL :
BIRU mempunyai nilai ordinal 1
kode ASCII dari "c" adalah 99 desimal
predecessor dari 5 adalah 4
successor dari 10 adalah 11
DALAM TIPE Colors ,MERAH merupakan predecessor dari BIRU.
Note ! Fungsi (seperti: ord,pred,succ,chr,length,concat dsb )adalah sebuah perintah / instruksi program yang digunakan untuk keperluan pemrograman yang disediakan oleh bahasa pemrograman PASCAL
TIPE REAL
Tipe data yang digunakan untuk menyimpan bilangan real/pecahan.
Tipe data Jangkauan Digit penting Ukuran
Real 2.9 * 10-39 … 1.7 * 1038 11-12 6 byte
Single 1.5 * 10-45 … 3.4 * 1038 7-8 4 byte
Double 5.0 * 10-324 … 1.7 * 10308 15-16 8 byte
Extented 3.4 * 10-39 … 1.1 * 104932 19-20 10 byte
Comp -263+1 … 1063-1 19-20 8byte
2. TIPE STRING
Tipe string digunakan untuk menyimpan data yang berupa untaian karakter, seperti ‘ Pascal ’ , ’Algoritma ‘
Var
Kalimat : string;
# ConCat[fungsi].
Untuk menggabungkan 2 atau beberapa variabel string.
Sintaks: ConCat (s1 [,s2,...,sn]: String) : String;
contoh: ConCat ('ABC','DEF') { ABCDEF }
# Copy [fungsi].
Mengambil satu atau beberapa karakter dari sebuah string.
Sintaks: Copy (S,Index,Count) : String;
Keterangan :
S = sebuah string (string).
Index = posisi awal kita akan mengambil beberapa
karakter (integer)
Count = banyaknya karakter yang akan diambil (integer).
# Delete [prosedur].
Menghapus sebagian karakter dari sebuah string.
Sintaks: Delete (S,Index,Count);
Keterangan : sama dengan statemen Copy.
# Insert [prosedur].
Menyisipkan satu atau beberapa karakter ke dalam sebuah string.
Sintaks: Insert (Source,var S,Index);
Keterangan : Source = sumber string untuk disisipi (string)
var S = string tujuan yang akan disisipi oleh string Source (string)
Index = posisi mulai (integer).
# Length [fungsi].
Memberikan nilai panjang dari suatu string (jumlah karakter
dalam string).
Sintaks: Length (S);
Keterangan : S = string
Length(S) menghasilkan nilai integer.
# Pos [fungsi].
Mencari posisi sebuah bagian string (substring) didalam
sebuah string.
Sintaks: Pos (Substr,S); {menghasilkan nilai Byte}
Keterangan : Substr = substring yang akan dicari posisinya di dalam sebuah string S.
Bila bernilai 0 berarti nilai string yang dicari tidak ada.
# Str [prosedur].
Merubah nilai numerik ke dalam nilai string.
Sintaks: Str (N,S);
Keterangan :
N = data tipe integer,
S = data tipe string.
# Val [prosedur].
Merubah nilai string ke dalam nilai numerik.
Sintaks: Val (S,N,P);
Keterangan :
S = nilai string,
N = nilai real,
P = posisi salah.
Nilai string harus berisi angka, plus atau minus, bila tidak
berarti kesalahan dan letak kesalahannya ditunjukkan oleh va-
riabel posisi salah. Jika benar, maka nilai variabel tsb = 0
(nol).
# UpCase [fungsi].
Memberikan huruf kapital dari argumen.
Sintaks: UpCase (S);
Keterangan :
S = variabel bertipe karakter.
3. TIPE TERSTRUKTUR
a. ARRAY / larik
yaitu tipe data berindeks yang terdiri dari satu atau lebih elemen/komponen yang memiliki tipe data yang sama. (mendeklarasikan kumpulan variabel yang bertipe sama)
penulisan :
Var
Nama_larik : array [batas_bawah..batas_atas] of tipe larik;
Var
a: array[1..8] of longint;
Sama artinya dengan :
a1, a2, a3, a4, a5, a6, a7, a8 : longint;
b. RECORD / Rekaman
Tipe data ini digunakan untuk merepresentasikan kumpulan elemen/komponen yang memiliki satu jenis atau lebih tipe data. Tiap element disebut juga field atau property atau attribute.
Type
TKaryawan = record;
Nama : string;
Alamat : string;
Gaji : longint;
End;
c. SET / Himpunan
digunakan untuk menyimpan kumpulan nilai ( disebut juga anggota himpunan) yang bertipe sama.
Type
HimpunanKarakter = set of char;
d. FILE
tipe data untuk mengakses file.
Type
Nomorfile = file of integer;
SUPLEMEN
MENGENAL PEMROGRAMAN PASCAL
Secara ringkas, struktur bahasa PASCAL dapat terdiri dari:
1. Judul Program
2. Blok Program
- deklarasi label
- definisi konstanta
- definisi tipe
- deklarasi variabel
- deklarasi prosedur
- deklarasi fungsi
3. Bagian Pernyataan (statetement program/baris perintah)
PROGRAM nama_program; {judul Program}
USES nama_unit; {deklarasi unit yang dipakai}
VAR { Deklarasi Variabel }
BEGIN
Blok Program Utama
END.
a. Deklarasi variabel
Untuk membuat variabel/pengenal/indentifier pada pascal yaitu dengan menuliskan nama variabel dan tipe datanya pada bagian deklarasi variabel
Format penulisan: [ nama_identifier : tipe_data; ]
contoh :
Var
I : integer;
nama : string;
Jenis_kelamin : boolean;
Luas,Panjang,Lebar : integer;
b. Operator Aritmatika
Operator Operasi Tipe Operand Tipe Hasil
* Perkalian real, real
integer, integer
real, integer real
integer
real
DIV Pembagian bulat integer, integer Integer
/ Pembagian real real, real
integer, integer
real, integer real
real
real
MOD Sisa pembagian integer, integer integer
+ Penambahan real, real
integer, integer
real, integer real
integer
real
- Pengurangan real, real
integer, integer
real, integer real
integer
real
Contoh :
operasi perkalian antara variabel PANJANG dan LEBAR di masukan kedalam variabel LUAS
LUAS := PANJANG * LEBAR;
c. Operator pemberi nilai (assignment operator)
Menggunakan sintax : “ := “ (titik dua sama dengan)
contoh:
LUAS := PANJANG * LEBAR
(hasil perkalian PANJANG * LEBAR dimasukan kedalam variabel LUAS)
d. Pernyataan masukan dan keluaran
READ dan READLN
Digunakan untuk meminta masukan dari papan ketik untuk diolah computer.
READ (nama); memasukan nilai ke variabel
WRITE dan WRITELN
Digunakan untuk menampilkan data kelayar.
WRITE (‘Halo ’); menampilkan string halo
WRITE (nama); menampilkan isi variable nama.
Perbedaan WRITE dengan WRITELN yaitu ketika perintah write ini dikerjakan kursor tidak akan ganti baris (tetap diposisi semula) sedangkan ketika perintah writeln ini dikerjakan kursor akan pindah baris.
Article by : Nama : Dadan Supriatna
NIM : 12124537
Logika & Algoritma (Pertemuan 2)
Pertemuan 2
KONSEP ALGORITMA
KONSEP ALGORITMA
Contoh Soal :
3. Diketahui 3 variabel peubah P,Q dan R. Agar isi Q ditaruh di P, isi R ditaruh di Q dan isi P ditaruh di R, maka Algoritma yang dapat ditulis adalah : ……….
Buatlah Algortimanya?
Setelah selesai cek lah algoritma nya, misalkan dengan P=10, Q=20, R=30.
Sehingga hasil akhir menjadi : P=20, Q=30 dan R=10.
4. Diketahui 2 peubah K = 10 dan L = 20. Buat Algoritma untuk mempertukarkan isi K dan L. :
Studi Kasus:
Algoritma TUKAR ISI BEJANA
A B
Diberikan dua buah bejana A dan B,
bejana A berisi larutan berwarna merah,
bejana B berisi larutan berwarna biru.
Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
algoritma :
Tuangkan larutan dari bejana A ke dalam bejana B
Tuangkan larutan dari bejana B ke dalam bejana A.
Apakah cara di atas BENAR ?
Apakah hasil yang didapat sesuai dengan penyelesaian masalah?
Apa hasil yang didapat ?
Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang benar.
Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah percampuran kedua larutan tersebut.
Penyelesaian :
Untuk mempertukarkan isi duah bejana, diperlukan sebuah bejana tambahan sebagai tempat penampungan sementara, misalnya bejana C.
A B C
Algoritma yang menghasikan pertukaran yang benar sebagai berikut:
1. Tuangkan larutan dari bejana A ke dalam bejana C.
2. Tuangkan larutan dari bejana B ke dalam bejana A.
3. Tuangkan larutan dari bejana C ke dalam bejana B.
SOAL MEMBUAT ALGORITMA
1. Seorang Petani akan berpergian ke kota dengan membawa seekor kambing, Anjing dan Rumput Yang ketiganya memliki berat yang tidak jauh berbeda, ditengah jalan petani harus menyebrangi sungai dengan menggunakan perahu dan untuk melaluinya petani tersebut tidak diperbolehkan membawa sekaligus bawaannya mengingat kapasitas kekuatan perahu tersebut, dan untuk melaluinya petani harus membawa satu persatu bawaannya . Ditanya: berapa kali petani tersebut harus melalui jembatan dengan memperhatikan bahwa kambing makan rumput, anjing makan kambing ?
2. Bagaimana caranya untuk menyebrangkan tiga orang rahib yang sedang dikejar oleh Tiga orang kanibal ke sisi pulau yang ada diseberangnya
Dengan catatan :
Bila misionarisnya Lebih sedikit dari dari kanibal, maka misionaris tersebut akan dimakannya.
Jawaban:
1. Algoritmanya
a. petani ke pulau B, membawa kambing
b. petani ke pulau A,
c. petani kepulau B, membawa rumput
d. petani kepulau A, membawa kambing
e. petani kepulau B, membawa anjing dan meninggalkan kambing
f. petani kepulau A
g. petani kepulau B, membawa kambing
2. Algoritmanya adalah :
1. Dari Pulau A, 2 orang kanibal naik perahu dan sebrangkan
2. Dipulau B, 1 orang kanibal ditempatkan di pulau B
3. 1 kanibal balik menuju pulau A dan turunkan
4. Dari Pulau A, 2 orang kanibal naik perahu dan sebrangkan
5. Dipulau B, 1 orang kanibal ditempatkan di pulau B
6. 1 kanibal balik menuju pulau A dan turunkan
7. Dari pulau A, 2 orang rahib naik perahu dan sebrangkan
8. Dipulau B, 1 orang rahib ditempatkan di pulau B
9. 1 orang rahib dan 1 orang kanibal balik menuju pulau A dan turunkan kanibal dari perahu
10. Dipulau A, 2 orang rahib naik perahu dan sebrangkan.
11. Dipulau B turunkan 2 orang rahib.
12. Selesai.
No Pulau B Perahu Pulau A Arah Perahu
0. Kosong Kosong 3 kanibal
3 Rahib
1 2 kanibal 1 kanibal
3 rahib
2 1 kanibal 1 kanibal 1 kanibal
3 rahib
3 1 kanibal 2 kanibal 3 rahib
4 2 kanibal 1 kanibal 3 rahib
5 2 kanibal 2 rahib 1 rahib
1 kanibal
6 1 kanibal
1 rahib 1 kanibal
1 rahib 1 rahib
1 kanibal
7 1 kanibal
1 rahib 2 rahib 2 kanibal
8 3 rahib 1 kanibal 2 kanibal
9 3 rahib 3 kanibal
Article by : Nama : Pegy.Hary.Hermanda
NIM : 12124561
KONSEP ALGORITMA
KONSEP ALGORITMA
Contoh Soal :
3. Diketahui 3 variabel peubah P,Q dan R. Agar isi Q ditaruh di P, isi R ditaruh di Q dan isi P ditaruh di R, maka Algoritma yang dapat ditulis adalah : ……….
Buatlah Algortimanya?
Setelah selesai cek lah algoritma nya, misalkan dengan P=10, Q=20, R=30.
Sehingga hasil akhir menjadi : P=20, Q=30 dan R=10.
4. Diketahui 2 peubah K = 10 dan L = 20. Buat Algoritma untuk mempertukarkan isi K dan L. :
Studi Kasus:
Algoritma TUKAR ISI BEJANA
A B
Diberikan dua buah bejana A dan B,
bejana A berisi larutan berwarna merah,
bejana B berisi larutan berwarna biru.
Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
algoritma :
Tuangkan larutan dari bejana A ke dalam bejana B
Tuangkan larutan dari bejana B ke dalam bejana A.
Apakah cara di atas BENAR ?
Apakah hasil yang didapat sesuai dengan penyelesaian masalah?
Apa hasil yang didapat ?
Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang benar.
Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah percampuran kedua larutan tersebut.
Penyelesaian :
Untuk mempertukarkan isi duah bejana, diperlukan sebuah bejana tambahan sebagai tempat penampungan sementara, misalnya bejana C.
A B C
Algoritma yang menghasikan pertukaran yang benar sebagai berikut:
1. Tuangkan larutan dari bejana A ke dalam bejana C.
2. Tuangkan larutan dari bejana B ke dalam bejana A.
3. Tuangkan larutan dari bejana C ke dalam bejana B.
SOAL MEMBUAT ALGORITMA
1. Seorang Petani akan berpergian ke kota dengan membawa seekor kambing, Anjing dan Rumput Yang ketiganya memliki berat yang tidak jauh berbeda, ditengah jalan petani harus menyebrangi sungai dengan menggunakan perahu dan untuk melaluinya petani tersebut tidak diperbolehkan membawa sekaligus bawaannya mengingat kapasitas kekuatan perahu tersebut, dan untuk melaluinya petani harus membawa satu persatu bawaannya . Ditanya: berapa kali petani tersebut harus melalui jembatan dengan memperhatikan bahwa kambing makan rumput, anjing makan kambing ?
2. Bagaimana caranya untuk menyebrangkan tiga orang rahib yang sedang dikejar oleh Tiga orang kanibal ke sisi pulau yang ada diseberangnya
Dengan catatan :
Bila misionarisnya Lebih sedikit dari dari kanibal, maka misionaris tersebut akan dimakannya.
Jawaban:
1. Algoritmanya
a. petani ke pulau B, membawa kambing
b. petani ke pulau A,
c. petani kepulau B, membawa rumput
d. petani kepulau A, membawa kambing
e. petani kepulau B, membawa anjing dan meninggalkan kambing
f. petani kepulau A
g. petani kepulau B, membawa kambing
2. Algoritmanya adalah :
1. Dari Pulau A, 2 orang kanibal naik perahu dan sebrangkan
2. Dipulau B, 1 orang kanibal ditempatkan di pulau B
3. 1 kanibal balik menuju pulau A dan turunkan
4. Dari Pulau A, 2 orang kanibal naik perahu dan sebrangkan
5. Dipulau B, 1 orang kanibal ditempatkan di pulau B
6. 1 kanibal balik menuju pulau A dan turunkan
7. Dari pulau A, 2 orang rahib naik perahu dan sebrangkan
8. Dipulau B, 1 orang rahib ditempatkan di pulau B
9. 1 orang rahib dan 1 orang kanibal balik menuju pulau A dan turunkan kanibal dari perahu
10. Dipulau A, 2 orang rahib naik perahu dan sebrangkan.
11. Dipulau B turunkan 2 orang rahib.
12. Selesai.
No Pulau B Perahu Pulau A Arah Perahu
0. Kosong Kosong 3 kanibal
3 Rahib
1 2 kanibal 1 kanibal
3 rahib
2 1 kanibal 1 kanibal 1 kanibal
3 rahib
3 1 kanibal 2 kanibal 3 rahib
4 2 kanibal 1 kanibal 3 rahib
5 2 kanibal 2 rahib 1 rahib
1 kanibal
6 1 kanibal
1 rahib 1 kanibal
1 rahib 1 rahib
1 kanibal
7 1 kanibal
1 rahib 2 rahib 2 kanibal
8 3 rahib 1 kanibal 2 kanibal
9 3 rahib 3 kanibal
Article by : Nama : Pegy.Hary.Hermanda
NIM : 12124561
Sabtu, 06 Oktober 2012
Logika dan Algoritma (Pertemuan 1)
PERTEMUAN 1
PENGERTIAN DASAR LOGIKA DAN ALGORITMA
Sejarah Algoritma
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
A. Algoritma
Urutan langkah-langkah untuk memecahkan masalah
Urutan logis pengambilan putusan untuk memcahkan masalah
urutan langkah logis, berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat.
Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
Alur pikiran yang artinya algoritma seseorang dapat berbeda dari algoritma orang lain.
tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai
masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang
baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.
Note:
Algoritma Di butuhkan untuk memerintah computer mengambil langkah-langkah tertentu untuk menyelesaikan masalah
Algoritma Pemrograman Program
Agar algoritma dapat memerintah (diproses) komputer, maka dirubah menjadi bentuk program (melalui proses pemrograman).
Penulisan Algoritma :
1. Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris)
Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami.
2. Menggunakan Flowchart
Baik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika algoritma panjang
3. Menggunakan Pseudocode
Sudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh orang yang belum tahu pemrograman
B. Tahap Analisa Algoritma
1. Bagaimana merencanakan algoritma
Dengan Mendefinisikan masalah.
Contoh : Permasalahan menghitung luas lingkaran,
dengan data yang diketahui adalah diameter lingkaran.
Rumus : ∏ . r2 dengan Phi = 3.14 atau 22/7.
2. Bagaimana menyatakan suatu algoritma (menulis algoritma)
Dengan psudocode
suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman pemrograman tertentu.
Dengan flowchart / diagram alir
Program Flowchart
Yaitu bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
Simbol yang digunakan :
: menunjukkan awal dan akhir dari program
: memberikan niai awal pada suatu variabel atau counter
: menunjukkan pengolahan aritmatika dan pemindahan data
: menunjukkan proses input atau output
: untuk mewakili operasi perbandingan logika
: proses yang ditulis sebagai sub program, yaitu prosedur/ fungsi
: penghubung pada halaman yang sama
: penghubung pada halaman yang berbeda
Contoh :
Dengan statement program /penggalan program
3. Bagaimana validitas suatu algoritma
4. Bagaimana menganalisa suatu algoritma
5. Bagaimana menguji program dari suatu algoritma
Studi Kasus :
Buatlah Algoritma untuk memilih bilangan terbesar dari 3 buah bilangan ?
Dengan Bahasa Natural
1. Ambil bilangan pertama dan set maks sama dengan bilangan pertama
2. Ambil bilangan kedua dan bandingkan dengan maks
3. Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua
4. Ambil blangan ketiga dan bandingan dengan maks
5. Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga
6. Variabel maks berisi bilangan terbesar. Tampilkan hasilnya
Dengan Flowchart
Dengan Pseudo-code
Maks ←bilangan pertama
if (maks < bilangan kedua)
maks←bilangan kedua
if (maks < bilangan ketiga)
maks ← bilangan ketiga
C. Tahap Proses Uji Algoritma
1. Pengujian Tahap Debuging
Untuk mengecek kesalahan program, Baik sintaksis maupun logika.
2. Pengujian tahap profiling.
Untuk menentukan waktu tempuh dan banyak nya memori program yang digunakan.
D. Analisis Algoritma
Untuk melihat effisiensi dan efektifitas dari suatu algoritma, dapat dilihat dari:
1. Waktu Tempuh dari Suatu Algoritma
2. Jumlah memori yang digunakan
E. Sifat-sifat Algoritma
Aspek Penting Algoritma :
1. Finite algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas
2. Definite setiap langkah didefinisikan secara tepat, tidak boleh membingungkan (ambigu)
3. Input sebuah algoritma memiliki nol/lebh input sebelum dijalankan
4. Output algoritma memiliki satu/lebih output, yanng biasanya bergantung kepada input
5. Effective setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus sederhana
dan sehingga dapat dikerjakan dalam waktu yang masuk akal)
Langkah-langkah yang membentuk suatu algoritma dapat dibagi menjadi 3 kelompok proses:
1. Sequence Process instruksi dikerjakan secara berurutan satu persatu dimulai dari langkah pertama sampai terakhir.
2. Selection Process instruksi pemilihan proses (percabangan), sehingga apabila memenuhi persyaratan tertentu maka instruksi akan dikerjakan.
Contoh : jika pembayaran tunai diberi diskon 10%
Jika dilakukan secara redit maka diskon 0 %.
(dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi.
3. Iteration Process suatu instruksi yang dikerjakan berulang-ulang selama beberapa kali selama masih memenuhi suatu kondisi.
Tugas :
Buatlah algoritma (dengan bahasa natural):
1. Menampilkan bilangan ganjil dari 1 sampai dengan 10.
2. Menghitung jumlah deret : 1 + 2 + 3 + 4 + .... + N
N = jumlah maksimum suatu nilai yang dimasukkan.
Referensi :
1. Materi Kuliah Algoritma : Budi Rahardjo (ITB)
2. Anoname
article by : -Nama :Deni
-NIM : 12124532
PENGERTIAN DASAR LOGIKA DAN ALGORITMA
Sejarah Algoritma
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
A. Algoritma
Urutan langkah-langkah untuk memecahkan masalah
Urutan logis pengambilan putusan untuk memcahkan masalah
urutan langkah logis, berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat.
Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
Alur pikiran yang artinya algoritma seseorang dapat berbeda dari algoritma orang lain.
tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai
masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang
baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.
Note:
Algoritma Di butuhkan untuk memerintah computer mengambil langkah-langkah tertentu untuk menyelesaikan masalah
Algoritma Pemrograman Program
Agar algoritma dapat memerintah (diproses) komputer, maka dirubah menjadi bentuk program (melalui proses pemrograman).
Penulisan Algoritma :
1. Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris)
Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami.
2. Menggunakan Flowchart
Baik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika algoritma panjang
3. Menggunakan Pseudocode
Sudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh orang yang belum tahu pemrograman
B. Tahap Analisa Algoritma
1. Bagaimana merencanakan algoritma
Dengan Mendefinisikan masalah.
Contoh : Permasalahan menghitung luas lingkaran,
dengan data yang diketahui adalah diameter lingkaran.
Rumus : ∏ . r2 dengan Phi = 3.14 atau 22/7.
2. Bagaimana menyatakan suatu algoritma (menulis algoritma)
Dengan psudocode
suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman pemrograman tertentu.
Dengan flowchart / diagram alir
Program Flowchart
Yaitu bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
Simbol yang digunakan :
: menunjukkan awal dan akhir dari program
: memberikan niai awal pada suatu variabel atau counter
: menunjukkan pengolahan aritmatika dan pemindahan data
: menunjukkan proses input atau output
: untuk mewakili operasi perbandingan logika
: proses yang ditulis sebagai sub program, yaitu prosedur/ fungsi
: penghubung pada halaman yang sama
: penghubung pada halaman yang berbeda
Contoh :
Dengan statement program /penggalan program
3. Bagaimana validitas suatu algoritma
4. Bagaimana menganalisa suatu algoritma
5. Bagaimana menguji program dari suatu algoritma
Studi Kasus :
Buatlah Algoritma untuk memilih bilangan terbesar dari 3 buah bilangan ?
Dengan Bahasa Natural
1. Ambil bilangan pertama dan set maks sama dengan bilangan pertama
2. Ambil bilangan kedua dan bandingkan dengan maks
3. Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua
4. Ambil blangan ketiga dan bandingan dengan maks
5. Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga
6. Variabel maks berisi bilangan terbesar. Tampilkan hasilnya
Dengan Flowchart
Dengan Pseudo-code
Maks ←bilangan pertama
if (maks < bilangan kedua)
maks←bilangan kedua
if (maks < bilangan ketiga)
maks ← bilangan ketiga
C. Tahap Proses Uji Algoritma
1. Pengujian Tahap Debuging
Untuk mengecek kesalahan program, Baik sintaksis maupun logika.
2. Pengujian tahap profiling.
Untuk menentukan waktu tempuh dan banyak nya memori program yang digunakan.
D. Analisis Algoritma
Untuk melihat effisiensi dan efektifitas dari suatu algoritma, dapat dilihat dari:
1. Waktu Tempuh dari Suatu Algoritma
2. Jumlah memori yang digunakan
E. Sifat-sifat Algoritma
Aspek Penting Algoritma :
1. Finite algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas
2. Definite setiap langkah didefinisikan secara tepat, tidak boleh membingungkan (ambigu)
3. Input sebuah algoritma memiliki nol/lebh input sebelum dijalankan
4. Output algoritma memiliki satu/lebih output, yanng biasanya bergantung kepada input
5. Effective setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus sederhana
dan sehingga dapat dikerjakan dalam waktu yang masuk akal)
Langkah-langkah yang membentuk suatu algoritma dapat dibagi menjadi 3 kelompok proses:
1. Sequence Process instruksi dikerjakan secara berurutan satu persatu dimulai dari langkah pertama sampai terakhir.
2. Selection Process instruksi pemilihan proses (percabangan), sehingga apabila memenuhi persyaratan tertentu maka instruksi akan dikerjakan.
Contoh : jika pembayaran tunai diberi diskon 10%
Jika dilakukan secara redit maka diskon 0 %.
(dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi.
3. Iteration Process suatu instruksi yang dikerjakan berulang-ulang selama beberapa kali selama masih memenuhi suatu kondisi.
Tugas :
Buatlah algoritma (dengan bahasa natural):
1. Menampilkan bilangan ganjil dari 1 sampai dengan 10.
2. Menghitung jumlah deret : 1 + 2 + 3 + 4 + .... + N
N = jumlah maksimum suatu nilai yang dimasukkan.
Referensi :
1. Materi Kuliah Algoritma : Budi Rahardjo (ITB)
2. Anoname
article by : -Nama :Deni
-NIM : 12124532
Langganan:
Postingan (Atom)