Logika&Algoritma
Logika dan algoritma pemrograman
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 memecahkan masalah
, berarti algoritma harus mengikutisuatu
è
urutan tertentu, tidak boleh melompat-lompat.
tan langkah
logis
Alur pemikiran dalam menyelesaikan suatu pekerjaan yang
dituangkan secara tertulis.
seseorang dapat berbeda dari
Alur pikiran yang artinya algoritma
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
Note:
proses pemrograman akan menjadi salah, rusak, atau lambat dan
tidak efisien.
memerintah computer mengambil langkah-
Algoritma Di butuhkan untuk
langkah tertentu untuk menyelesaikan masalah
lgoritma à Pemrograman à Program
Agar algoritma dapat memerintah (diproses) komputer, maka dirubah
menjadi bentuk program (melalui proses pemrograman).
1.
Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris)
Penulisan Algoritma :
masih
sering membingungkan (ambigu) / sulit
Kelemahannya
2.
dipahami.
Menggunakan Flowchart
- 1
Logika dan Algoritma Pemrograman
Fak. Saintek Universitas Ibrahimy
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,
Bagaimana menyatakan suatu algoritma (menulis algoritma) Dengan flowchart / diagram alir
Program Flowchart
Yaitu bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
1. Simbol yang digunakan :
2. menunjukkan awal dan akhir dari program
3. memberikan niai awal pada suatu variabel atau counter
4. menunjukkan pengolahan aritmatika dan pemindahan data
5. menunjukkan proses input
atau output
6. untuk mewakili operasi perbandingan logika
7. proses yang ditulis sebagai sub program, yaitu prosedur/ fungsi
8. penghubung pada halaman
yang sama
9. p enghubung pada halaman
yang berbeda
Logika dan Algoritma Pemrograman - 2 Fak. Saintek Universitas Ibrahimy
Contoh :
Atau flowchart yang dibuat dengan program raptor
Dengan psudocode
Logika dan Algoritma Pemrograman - 3 Fak. Saintek Universitas Ibrahimy
suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman pemrograman tertentu.
Dengan statement program /penggalan program :
StatDariemenalgoritamaprogramyangC++telahsebagaidibutaberikutdapat: diterjemahkan ke dalam
1 #include
2
3 using namespace std;
4
5 int main()
6 {
7 float phi = 3.14;
8 float Diameter, Radius, Luas_Lingkaran;
9 cout << "Masukkan Nilai Diameter : ";
10 cin >> Diameter;
11 Radius = Diameter / 2;
12 Luas_Lingkaran = phi * Radius * Radius;
13 cout << "Luas Lingkaran adalah : " <<
14 Luas_Lingkaran;
15 return 0;
}
3. Bagaimana validitas suatu algoritma
4. Bagaimana menganalisa suatu algoritma
5. Bagaimana menguji program dari suatu algoritma
BuatlahStudiKasusAlgoritma: untuk memilih bilangan terbesar dari 3 buah bilangan
?
§ Dengan1.MemasukkanBahasaNaturalbilangan pertama
2. Memasukkan bilangan kedua
3. Memasukkan bilangan ketiga
4. Ambil bilangan pertama dan set maks sama dengan bilangan pertama
5. Ambil bilangan kedua dan bandingkan dengan maks
Logika dan Algoritma Pemrograman - 4 Fak. Saintek Universitas Ibrahimy
6. Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua
7. Ambil blangan ketiga dan bandingan dengan maks
8. Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga
9. Variabel maks berisi bilangan terbesar
10. Tampilkan hasil bilangan terbesar
11. Selesai
§ Dengan Flowchart
§ Dengan Pseudo-code
Input (Bilangan_pertama)
Logika dan Algoritma Pemrograman - 5 Fak. Saintek Universitas Ibrahimy
Input (Bilangan_kedua)
Input (Bilangan_ketiga)
maks ß bilangan_pertama
if (maks < bilangan_kedua) then
maks ß bilangan_kedua
if (maks < bilangan_ketiga) then
maks ß bilangan_ketiga
output (maks)
End.
§ Dengan Bahasa Pemrogaraman C++
1 #include
2
3 using namespace std;
4
5 int main()
6 {
7 int Bilangan_pertama, Bilangan_kedua,
8 Bilangan_ketiga, maks;
9
10 cout << "Masukkan bilangan yang pertama : ";
11 cin >> Bilangan_pertama;
12 cout << "Masukkan bilangan yang kedua : ";
13 cin >> Bilangan_kedua;
14 cout << "Masukkan bilangan ketiga : ";
15 cin >> Bilangan_ketiga;
16
17 maks = Bilangan_pertama;
18 if (maks < Bilangan_kedua) {
19 maks = Bilangan_kedua;
20 }
21 if (maks < Bilangan_ketiga) {
22 maks = Bilangan_ketiga;
23 }
24 cout << "Bilangan terbesar adalah : " << maks;
25 return 0;
}
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
Logika dan Algoritma Pemrograman - 6 Fak. Saintek Universitas Ibrahimy
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
2.
langkah terbatas
Definite
à
setiap langkah didefinisikan secara tepat, tidak boleh
membingungkan (ambigu)
3.
Input
à
sebuah
algoritma
memiliki nol/lebih input sebelum
4.
dijalankan
algoritma memiliki satu/lebih output, yang biasanya
Output
à
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
1.
Sequence Process
à
instruksi dikerjakan secara berurutan satu
menjadi 3 k lompok proses:
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
3.
instruksi dari 2 alternatif instruksi.
Iteration Process
suatu instruksi yang dikerjakan berulang-ulang
Tugas 1 :selama beberapa kali selama masih memenuhi suatu kondisi.
Buatlah algoritma (dengan bahasa natural, Flowchart, pseudocode, dan
program C++):
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.
Logika dan Algoritma Pemrograman
- 7
Fak. Saintek Universitas Ibrahimy
KONSEP ALGORITMA
Studi Kasus:
BAB 2
Konsep Algoritma
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 ?
ApaApakahhasilhasilyangyangdidapatdidapat? sesuai dengan penyelesaian masalah?
benarLangkah. di atas tidak logis, hasil pertukaran yang terjadi adalah percampuran kedua larutan tersebut.
Penyelesaian :
Logika dan Algoritma Pemrograman - 8 Fak. Saintek Universitas Ibrahimy
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.
TUGAS 2 :
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 sungai dengan memperhatikan bahwa kambing makan rumput, anjing makan kambing ?.
Buatlah Algoritma Dengan Bahasa Natural dan flowchart dokumen Dari Cerita di atas!
2. Bagaimana caranya untuk menyeberangkan tiga orang missionaris 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.
Buatlah Algoritma Dengan Bahasa Natural dan flowchart dokumen Dari Cerita di atas!
3. Seorang siswa menyelesaikan untuk pindah
mendaftar santri baru pada bagian registrasi, setelah penulisan biodata santri, siswa tersebut di diperkenankan ke bagian seleksi untuk diuji baca alQur’an, jika ujian
Logika dan Algoritma Pemrograman - 9 Fak. Saintek Universitas Ibrahimy
alQur’an lulus maka siswa tersebut melanjutkan ke bagian asrama untuk menentukan asrama, jika ujian alqur’an tidak lulus maka siswa tersebut berstatus waiting list (daftar tunggu ) dan bisa kembali 1 minggu setelahnya.
a.DariFlowchartceritadiProsesataslakukan analisa dan buatlah :
b. Flowchart Dokumen
d.c. FlowchartProgramdengandenganbahasaprogramC++Raptor!
Konsep Tipe Data
Bahasa Pemrograman C++
IPE DATA
Tipe data yang umum digunakan dalam bahasa pemrograman C++ diataranya
1.
Tipe d ta Sederhana
adalah :
a.
Tipe data angka
Untuk tipe data data angka memiliki nilai dan panjang field yang berbeda
Integer (int) : “merupakan tipe data yang digunakan untk meyimpan
-
nilai dengan bilangan bulat positif tanpa titik decimal pada bilangan
tersebut, misalnya 1, 2, 3 ... dst”
1.
Dengan nilai konstata misalnya
2.
Int x = 5;
Dengan data inputan
-
int x ;
Floating point : “Merupakan tipe data yang digunakan untuk
menyimpan data angka dengan nilai pecahan misalnya 27.72; 54.36
dst” namun pada floating point kita dapat mengenal macam-
macamnya dan mengetahui panjang field yang tersimpan pada
-
masing-masing tipe datanya
Tpe data floating point terbagi atas :
1.
Float : “merupakan tipe data yang menyimpan nilai pecahan
2.
penyimpanan data 4-8 bytes”
Double dan long : “merupakan tipe data yang menyimpan nilai 8
byte”.
Cara mendeklarasikannya yaitu :
1.
Dengan nilai konstan
float x = 3.12;
2.
double x = 3.122222;
Dengan nilai inputan
float x;
doubel x;
b. Tipe data karakter : “merupakan tipe data yang digunakan untuk
menyimpan nilai karakter (1 buah huruf)”
Cara mendeklarasikannya adalah :
c.
char nilai = ‘A’;
Tipe data string : “merupakan tipe data yang menyimpan nilai dari
gabungan beberapa karakter”
Logika dan Algoritma Pemrograman - 11 Fak. Saintek Universitas Ibrahimy
charCara Kotamendeklarasikannya(10); adalah :
SUPLEMEN
Secara ringkas, struktur bahasaC++ dapat terdiri dari:
MENGENAL PEMROGRAMAN
1.
Header
2.
Program utama
-
deklarasi label
-
definisi konstanta
-
definisi tipe
-
deklarasi variabel
-
-
deklarasi prosedur
3.
deklarasi fungsi
Bagian Pernyataan (statetement program/baris perintah)
#include {header} using namespace std; {standar c++}
int main() { Penanda program utama}
{
Tempat instruksi/perintah
}
a. Deklarasi variabel
Untuk membuat variabel/pengenal/indentifier pada yaitu dengan menuliskan nama variabel dan tipe datanya pada bagian deklarasiFormatvaiabelpenulisan: [tipe_data nama _identifier ; ]
contoh :
int i = 1;
char nama[10];
bool Jenis_kelamin=true;
float Luas,Panjang,Lebar;
double luas;
Logika dan Algoritma Pemrograman - 12 Fak. Saintek Universitas Ibrahimy
b. Operator Aritmatika
Operator aritmatik yang dipakai dalam C++ adalah :
+ tambah
- kurang
* kali
/ bagi
% modulus
Operator-operator di atas dikenal sebagai binary operators artinya operator-operator ini memerlukan dua operan. Operator +, -, * dan / telah jelas artinya, yang perlu dijelaskan adalah operator modulus (%), operator ini dipakai untuk mencari sisa dan pembagian antar bilangan bulat, misalnya 20 % 8 menghasilkan 4 karena sisa pembagian dari 20 dibagi 8 adalah 4. Operator + dan – dapat dipakai sebagai unary operator, artinya operator-operator ini hanya memerlukan satu operan saja. Suatu variabel dapat dinyatakan positip atau negatip dengan unary operator + atau -, misalnya:
a = -25;
b = +25;
Suatuc=-ekpresia+b; dapat. mengandung lebih dari satu jenis operator, C++ mengartikannya berdasar order of precedence dari operator-operator tersebut. Order of precedence dari operator menunjukkan hirarki matematis dari suatu operator misalnya:
C++2 akan3* menghitung2; 3*2 dulu karena operator kali (*) hirarkinya lebih tinggi dari operator + sehingga ekpresi di atas hasilnya adalah 8, bukan 10. Untuk operator aritmatik order of precedence-nya yang tinggi adalah kali (*), bagi (/) dan modulus (%) sedang yang rendah adalah tambah (+) dan kurang (-),Jadi C++ selalu melakukan kali, bagi dan modulus lalu
Logika dan Algoritma Pemrograman - 13 Fak. Saintek Universitas Ibrahimy
diikuti tambah dan kurang. Operator -operator dalam C++ terdistribusi dalam 15 hirarki precedence yang dapat dilihat pada tabel di bawah ini. Tabel Precedence dari Operator dalam C++
dalam hal ini assosiativitasnya adalah dari kanan ke kin, jadi 100 dipasangkan di variabel e, lalu dari variabel e ke variabel d demikian seterusnya sampai akhirnya n, sehingga setelah selesai dieksekusi variabel -variabel a, b, c, d, e mempunyai nilai 100. Bahkan kita dapat menulis ekpresi sebagai berikut :
x = 5 + (y = 9 – z);
Order of precedence dari operator dapat di bypass dengan tanda kurung,karena tingkatan precedence dari tanda kurung adalah di atas operator kali, bagi dan modulus sehingga ekpresi tadijika ditulis (2+3)*2 akan menghasilkan 10. Contoh lain adalah :
Contoh program berikut ini menjelaskan pemakaian tanda kurung untuk mencari rata-rata:
1 //C1_2.CPP
2 #include
3 #include
4 Using namespace std;
5
6 main()
7 {
8 float nilai_1, nilai_2, nilai_3, rata2;
Logika dan Algoritma Pemrograman - 16 Fak. Saintek Universitas Ibrahimy
9 nilai_1 = 85.0;
10nilai_2 = 80.0;
11nilai_3 = 75.0;
12
13 3.0;
// rata2 = nilai_1 + nilai_2 + nilai_3 /
/* Perhatikan tanda kurung diperlukan untuk 14 mengubah
order of precedence supaya rata-ratanya 15 benar */
16 rata2 = (nilai_1 + nilai_2 + nilai_3) / 3.0; cout << “Rata-rata nilai adalah : ” <<
17 setprecision(2) << rata2;
18
return 0;
19
}
Operator-operator aritmatik ini dapat digabungkan untuk membentuk
operator gabungan (compound operator). Dari tabel of precedence
tampak bahwa tingkatan precedence dari operator gabungan ini rendah
sehingga pada suatu ekpresi yang mengandung banyak operator,
operator gabungan ini pada umumnya dievaluasi pada saat-saat akhir.
Contoh pemakaian operator gabungan:
Operator
Contoh
Ekivalen
Contoh program berikut ini akan memperjelas pengertian mengenai operator gabungan dan tingkatan precedence nya.
1 // C2_2.CPP
2 #include
Logika dan Algoritma Pemrograman - 17 Fak. Saintek Universitas Ibrahimy
3 using namespace std;
4
5 main()
6 {
7 int i = 4;
8 int j = 8;
9 int k = 12;
10 int jwb;
11 jwb = i + j;
12
cout << jwb << " n ";
//12
13
jwb += k;
14
cout << jwb << " n ";
//24
15
jwb /= 3;
16
cout << jwb << " n ";
//8
17
jwb -= 5;
18
cout << jwb << " n ";
//3
19
jwb *= 2;
20
cout << jwb << " n ";
//6
21
jwb %= 4;
22
cout << jwb << " n ";
//2
23
24
jwb *= 5+3;
25
cout << jwb << " n ";
//16
26
jwb += 4-2;
27
cout << jwb << " n ";
//18
28 return 0;
29 }
Pada suatu ekpresi dalam C++ tipe data tidak harus sama. Kalau suatu bilangan bulat ditambah dengan suatu bilangan pecahan maka C++ akan mengkonversi tipe yang lebih kecil ke tipe yang lebih besar. Konversi ini, yang hanya bersifat sementara pada saat ekpresi dievalusi saja, pada umumnya akan memberikan hasil yang lebih teliti. Jika konversi dilakukan sebaliknya maka terjadi pemotongan pada tipe data yang lebih besar sehingga mengurangi
Logika dan Algoritma Pemrograman - 18 Fak. Saintek Universitas Ibrahimy
ketelitian. Konversi yang bersifat otomatis ini dapat di bypass dengan type casting, yaitu kita memaksa compiler untuk mengkonversi menjadi tipe data yang kita inginkan. Tipe data yang di type cast ini berubah menjadi tipe baru hanya pada saat ekpresi dievaluasi, jadi sifatnya sementara. Format dari suatu type cast adalah:
(tipe data) ekspresi
dalam hal ini tipe data adalah tipe data yang ada di C++, dan ekspresi dapat berupa variabel, konstanta atau kombinasinya. Program berikut ini memakai suatu type cast untuk menghitung bunga pinjaman.
1 #include
2 #include
3
4 using namespace std;
5
6 main ()
7 {
8
int
jml_hari =45;
9
float
jml_pinjaman =
2000000.00;
10
float
bunga_tahunan
= 0.155;
11
float
bunga_harian, bunga_pinjaman;
12
// Type cast jumlah hari dalam 1 tahun 13 menjadi tipe float
14bunga_harian = bunga_tahunan / (float)365;
//Karena jml_hari adalah integer, 15 konversikan menjadi float
bunga_pinjaman =jml_pinjaman * bunga_harian
16 * (float)jml_hari;
17 jml_pinjaman += bunga_pinjaman;
cout << "Total piutang anda adalah "<<
18 setiosflags(ios::fixed) << setprecision(2) << jml_pinjaman;
19
20 return 0;
Logika dan Algoritma Pemrograman - 19 Fak. Saintek Universitas Ibrahimy
21 }
c. Operator pemberi nilai (assignment operator)
Menggunakan sintax : “ = “ (dua sama dengan) contoh:
LUAS = PANJANG * LEBAR
(hasil perkalian PANJANG * LEBAR dimasukan kedalam variabel LUAS)
d. Pernyataan masukan dan keluaran
CIN
Digunakan untuk meminta masukan dari papan ketik untuk diolah computer.
CIN >> nama; à memasukan nilai ke variabel
COUT
Digunakan untuk menampilkan data ke layar.
COUT << “Halo”; COUT << nama;
menampilkan string halo menampilkan isi variable nama.
Untuk pindah baris dibawahnya dapat digunakan “\n”
Contoh Program :
1 #include
2
3 using namespace std;
4
5 int main()
6 {
7 char x;
8 char i[20],j[20],k[20],l[20];
9 float nilai1, nilai2;
10 int hasil;
11 double hasil1;
12 float hasil2;
13
14 cout << "Inputkan nilai 1 : ";
15 cin >> nilai1;
16 cout << "Inputkan Nilai 2 : ";
Logika dan Algoritma Pemrograman - 20 Fak. Saintek Universitas Ibrahimy
17 cin >> nilai2;
18 cout << "Inputkan sebuah huruf : ";
19 cin >> x;
20 cout << "Inputkan Nama Anda : ";
21 cin >> i;
22 cout << "Masukkan Kelas anda : ";
23 cin >> j;
24 cout << "Masukkan No.Telp/HP Anda : ";
25 cin >> k;
26 cout << " Masukkan Alamat Anda : ";
27 cin >> l;
28 //memproses perkalian, penjumlahan dan pengurangan
29 hasil = nilai1 * nilai2;
30 hasil1 = nilai1 + nilai2;
31 hasil2 = nilai1-nilai2;
32 //mencetak hasil operator matematika
33 cout << "Hasil perkalian adalah : " << hasil << "\n";
34 cout << "Hasil penjumlahan adalah : " << hasil1 << "\n";
35 cout << "Hasil Pengurangan adalah : " << hasil2 << "\n";
36 return 0;
37 }
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
Logika dan Algoritma Pemrograman - 22 Fak. Saintek Universitas Ibrahimy
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
Logika dan Algoritma Pemrograman - 23 Fak. Saintek Universitas Ibrahimy
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
Logika dan Algoritma Pemrograman - 24 Fak. Saintek Universitas Ibrahimy
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.
Logika dan Algoritma Pemrograman - 25 Fak. Saintek Universitas Ibrahimy
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 untuk masalah menghitung temperatur dalam derajat Fahrenhait yang diubah ke dalam derajat Celcius & Reamur.
Logika dan Algoritma Pemrograman - 26 Fak. Saintek Universitas Ibrahimy
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.
mulai
F
C = 5/9*(F-32)
R = 4/9 *(F-32) C,R selesai
Logika dan Algoritma Pemrograman - 27 Fak. Saintek Universitas Ibrahimy
A. Soal Latihan :
1. Buatlah Algoritma untuk konversi jam ke menit dengan masukannya jam .
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,-
B. Soal Latihan
Tersedia potongan Program berikut ini :
If (A>B) {
Perintah 1
}
Else If ((A< B) or (C>B)) {
Perintah 2
}
Else {
perintah 3
}
Buatlah bentuk Flowchart dari potongan Program diatas.
Looping (Perulangan)
Suatu algoritma memiliki struktur
sequence/berurutan
branching/percabangan
looping/perulangan.
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.
Logika dan Algoritma Pemrograman - 29 Fak. Saintek Universitas Ibrahimy
1. while [ kondisi ] { [……….] }
2. for (kondisi) { [……….] }
è for (int i=1;i<5;i++) {statemen} -> [nilai awal] to [nilai akhir]
è for (int i=5;i=1;i--) {statemen} -> [nilai akhir] to [nilai awal]
è Nested for (perulangan for bersarang)
Perulangan
Statement dan contoh program
while do:
while (kondisi) {
Evaluasi
kondisi
(statement)
Logika dan Algoritma Pemrograman - 30 Fak. Saintek Universitas Ibrahimy
dilakukan di bagian awal
for..loop:
Perulangan dengan
increment nilai
Nested Loop for
}
Contoh:
i = 1;
while (i<=10) { cout << i << “ ”;;
i++;
}
hasil : 1 2 3 4 5 6 7 8 9 10
for (kondisi) {
[Statement]
}
Contoh:
for (int i=1;i<=10;i++) { cout << i << “ ”;
}
hasil : 1 2 3 4 5 6 7 8 9 10
for (int i=1; i<=10; i++) {
cout << "\n" << i << "
";
for (int j=11; j<=15;
j++) {
cout << j << " ";
}
}
0 komentar:
Posting Komentar