Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehFarida Lesmono Telah diubah "6 tahun yang lalu
1
ALGORITMA Diperkenalkan Oleh Ahli Matematika : Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi, seorang ilmuwan Persia yang menulis kitab al jabr w’al muqabala (rules of restoration and reduction) sekitar tahun 825 M Suatu prosedur untuk menyelesaikan masalah yang berisi urutan langkah-langkah yg berintegrasi
2
KRITERIA ALGORITMA Ada Output, Efektifitas dan Efesiensi,
Jumlah Langkahnya Berhingga, Berakhir, Terstruktur Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan diperoleh suatu solusi ataupun tdk ada solusinya
3
MENYATAKAN ALGORITMA Dengan bahasa semu (pseudocode)
Contoh algoritma menghitung Luas Segi tiga : Masukan Nilai Alas Masukan Nilai Tinggi Hitung Luas =( Alas * Tinggi ) / 2 Cetak Luas
4
b. Dengan diagram alur atau flowchart Contoh :
Start Masukan Alas Tinggi Luas = (Alas * Tinggi)/2 Cetak Luas Stop
5
c. Dengan Statement program / penggalan Program
Contoh (menggunakan c++): cin>>alas; untuk input data cin>> tinggi; luas = (alas * tinggi)/2 ; proses cout>>luas; untuk output data
6
MENYATAKAN ALGORITMA
7
DIAGRAM ALUR (FLOWCHART)
Flowchart adalah suatu diagram yang menggambarkan susunan logika suatu program. Simbol : Proses/prosessing, satu atau beberapa himpunan penugasan yang akan dilaksanakan secara berurutan. Input / Output data yg akan dibaca & dimasukan ke dalam memori komputer dari suatu alat input Terminal, berfungsi sebagai awal dan akhir dari suatu proses alur.
8
Decision (kotak keputusan) berfungsi utk memutuskan arah/percabangan yg diambil sesuai dgn kondisi yg dipenuhi, yaitu Benar/Salah. (dibahas dalam struktur branching). Subroutine digunakan untuk menjalankan proses suatu bagian (sub program) atau prosedur. Preparation digunakan untuk pemberian harga awal.
9
Connector/penghubung, digunakan untuk menghubungkan diagram alur yang terputus dimana bagian tersebut masih berada pada halaman yang sama. On page Connector, Untuk menghubungkan sambungan dari bagian flowchart yang terputus dimana sambungannya berada pada halaman lain. Flowline, menunjukkan bagian arah instruksi dijalankan
10
Sruktur Dasar Algoritma
Sequence/urutan/runtunan instruksi dikerjakan dari atas ke bawah secara berurutan Condition/Decision/selection/branching/keputusan/pemilihan/percabangan/bersyarat ada 2 macam: 1. Bersyarat (if dan case) 2. Tidak bersyarat (goto) Looping/repetition/iteration/perulangan (for dan while)
11
MENYATAKAN ALGORITMA DENGAN KALIMAT
1. Tampilkan kata “Algoritma” Nyatakan nilai r sama dengan 7 Hitung s sama dengan r dibagi 2 Tampilkan nilai s
12
MENYATAKAN ALGORITMA DENGAN FLOWCHART
Start Start r = 7 Tampilkan kata “Algoritma” s = r/2 End Tampilkan nilai s End
13
MENYATAKAN ALGORITMA DENGAN STATEMENT PROGRAM
Judul Algoritma Deklarasi Berisi pendefinisian nama/identifier yang digunakan pada bagian deskripsi 3. Deskripsi/statement Berisi penyelesaian masalah berupa deretan intruksi
14
Contoh Pendeklarasian
Tidak ada deklarasi Dengan deklarasi Algoritma tampilan begin Write(“Algoritma”); end. Algoritma hitung r : integer s : real begin r ←7 s ← r/2 write (s) end.
15
IDENTIFIER Identifier adalah nama yang didefinisikan oleh programmer
Identifier dalam program: Variabel Tempat menyimpan nilai yang isinya relative berubah sesuai dengan kondisi terkini 2. Konstanta Tempat menyimpan nilai yang isinya tetap selama program dijalankan
16
IDENTIFIER 3. Tipe data bentukan
Jenis data, tipe baru bisa didefinisikan oleh programer Label Bagian program untuk intruksi lompatan Fungsi/prosedur Sub program
17
Aturan membuat identifier
Terdiri dari 1 huruf atau lebih maksimal 256 karakter Boleh di gabung dengan angka tapi angka tidak boleh di letakan di depan Tidak boleh menggunakan keyword/reserved word/kata cadangan Tidak boleh ada spasi Tidak boleh menggunakan symbol kecuali underscore (_) Tidak boleh sama
18
Tentukan output flowchart berikut
Latihan Tentukan output flowchart berikut INPUT X X=2*X X=X+10 X=X+7 X=5*X X=X+5 START END INPUT A INPUT B A > B ? START END Y T Cetak ‘A lebih besar’ Cetak ‘B lebih besar’ CETAK X
19
Buatlah Flowchartnya dari pseudocode berikut
ini: a. Masukan kode barang b. Masukan harga barang Masukan Jumlah barang Hitung bayar = harga * Jumlah barang Jika bayar >= maka diberikan discount 10%, selain dari itu tidak mendapat discount Hitung total bayar = bayar - discount Cetak total bayar
20
2. Buatlah Flowchartnya dari pseudocode berikut ini:
a. Diketahui phi=3.14 b. Masukan nilai jari-jari (r) c. Hitung Keliling = 2 * phi * r d. Cetak Keliling e. Ingin menghitung kembali? Jika Ya maka kembali ke proses awal, jika Tidak maka program berhenti.
21
VARIABEL, OPERATOR dan TIPE DATA
22
VARIABEL Tempat menyimpan nilai yang isinya berubah sesuai dengan kondisi terkini Berdasarkan caranya, pengisian nilai ke variabel bisa dilakukan secara: Langsung menuliskan langsung nilainya di algoritma/program Tidak Langsung menggunakan simbol/statement pemasukan nilai
23
Pengisian Nilai ke Variabel
Cara langsung Cara tidak langsung Dengan flowchart Dengan statement program harga = 100 Dengan flowchart Dengan statement program cin>>harga Harga <- 100 Masukan harga
24
Pengisian Nilai ke Variabel
Cara langsung Cara tidak langsung { int r; float s; r = 7; s = r/2 Cout<< s; } { int r; float s; cin>>r; s = r/2 Cout<< s; }
25
Nilai variabel Berupa: 1. Konstanta 2. Nilai dari variable lain
Contoh : A = 100 2. Nilai dari variable lain Contoh: A = 100; B = A; 3. Hasil evaluasi ekspresi Contoh: A = B * C Ekspresi adalah kalimat matematika yang terdiri dari operand dan operator
26
OPERATOR Macam operator dasar: Aritmatika (+, -, *, /, %, pow)
Relational/perbandingan(<, >, =, <=, >=, <>, ) Logika/Boolean not , notasi dalam C++ ! Or, notasi dalam C++ || And, notasi dalam C++ &&
27
Dilihat dari jumlah operand yang dibutuhkan:
Unary/uner membutuhkan 1 operand contoh operator ! dan - Binary/biner membutuhkan 2 operand
28
OPERATOR OPERAND HASIL Aritmatika Integer atau float Relational Logika Logika (boolean)
29
NAMA TIPE NILAI OPERASI Bilangan bulat (integer) Bilangan bulat + dan - Aritmatika Relasional Bilangan desimal (float) Bilangan desimal + dan - Logika (boolean) True dan False Logika Karakter (char) Alfanumerik dan simbol String Kumpulan karakter (string)
30
` A B not A A or B A and B T F
31
Operator logika (boolean)
Not (!): untuk membalik nilai Contoh { typedef enum {false = 0, true = 1} Bool; Bool S, T; S = true; T = !S; maka nilai T = false cout<<S; cout<<T; }
32
Or (||): jika kedua input false maka output false jika salah satu input true maka output true Contoh typedef enum {false = 0, true = 1} Bool; Bool R, S, T; S = true; T = true; R = S || T maka nilai R = true cout<<R;
33
And (&&): jika kedua operand true maka output true jika salah satu operand false maka output false Contoh typedef enum {false = 0, true = 1} Bool; Bool R, S, T; S = true; T = false; R = S && T maka nilai R = false cout<<R;
34
Latihan Buat program untuk menghitung nilai mahasiswa dimana nilai total adalah jumlah hadir, 20% nilai tugas, 35% nilai uts, dan 45% nilai uas, dengan tampilan: NIM = 12345 NAMA = jokowaw MATA KULIAH = algoritma NILAI TUGAS = NILAI UTS = NILAI UAS = NILAI TOTAL =
35
STRUKTUR KEPUTUSAN (DECISION)
36
1. SATU KONDISI SATU AKSI Jika seleksi kondisi/syarat terpenuhi (benar) maka aksi dilakukan, jika kondisi tidak terpenuhi (salah) maka selesai y t aksi
37
Dengan Statement program
Menggunakan struktur if If (kondisi) aksi Ekspresi kondisi harus menghasilkan nilai logika (boolean)
38
2. SATU KONDISI DUA AKSI Jika seleksi kondisi terpenuhi (benar) maka aksi dilakukan, jika kondisi tidak terpenuhi (salah) maka aksi lain dilakukan y t kondisi Aksi 1 aksi 2
39
Dengan Statement program
Menggunakan struktur if-else If (kondisi) aksi 1 else aksi 2
40
3. BANYAK KONDISI BANYAK AKSI
Memiliki banyak kondisi dan aksi kondisi1 Aksi 1 kondisi2 kondisi3 Aksi 4 Aksi 3 Aksi 2
41
Dengan Statement program (if)
If (kondisi 1) aksi 1 else if (kondisi 2) aksi 2 else if (kondisi 3) aksi 3 …
42
Dengan Statement Program (Switch Case)
Switch (nama variabel/ekspresi) { Case nilai konstanta 1 : aksi 1; break; Case nilai konstanta 2: aksi 2; break; Case nilai konstanta 3 : aksi 3; break; Default : aksi n;break; } nilai konstanta harus berupa nilai ordinal
43
Latihan membuat Algoritma
1. Tebak huruf Masukan sebuah huruf Jika huruf sama dengan huruf yang ditebak maka tampikan kata “Tebakan anda benar” Jika huruf tidak sama dengan huruf yang ditebak maka tampikan kata “Tebakan anda salah”
44
Latihan membuat Algoritma
2. Menentukan bilangan GENAP dan GANJIL Masukan sebuah bilangan Jika bilangan habis dibagi 2 maka tampilkan kata “Bilangan genap” Selain itu maka tampilkan kata “Bilangan genap”
45
Sruktur Dasar Algoritma
Sequence/urutan/runtunan instruksi dikerjakan dari atas ke bawah secara berurutan Condition/Decision/selection/branching/keputusan/pemilihan/percabangan/bersyarat Looping/repetition/iteration/perulangan For While Do-while
46
Struktur Perulangan (For)
For menaik/positif for (nilai awal; syarat perulangan; naik cacahan) { aksi } For menurun/negatif for (nilai awal; syarat perulangan; turun cacahan)
47
Contoh penggunaan for dalam C
For menaik/positif For menurun/negatif int i; for (i=1;i<=5;i++) { printf("algoritma\n"); } int i; for (i=5;i>=1;i--) { printf("algoritma\n"); }
48
For bersarang (nested for)
int i,j; for (i=1;i<=2;i++) { for (j=1;j<=3;j++) printf(”%d \n”, i); }
49
Struktur Perulangan (while)
int i=1; while (i<5) { printf("algoritma\n"); i++; } int i=5; while (i>1) { printf("algoritma\n"); i--; }
50
Struktur Perulangan (do-while)
int i=1; do { printf("algoritma\n"); i++; } while (i<5);
51
Latihan Menampilkan bilangan mulai dari angka 11 sampai 20
Menampilkan angka 10, 20, 30, 40, 50 Menampilkan 10 bilangan ganjil mulai dari 7
52
Pertemuan 8 Array
53
LARIK ATAU ARRAY adalah tipe terstruktur yang terdiri dari sejumlah komponen yang mempunyai tipe data yang sama (homogen) Variabel Array terdiri dari : Array Berdimensi Satu Array Berdimensi Banyak
54
Array Berdimensi Satu Bentuk Umum : Tipe_data nama variabel [indeks] Contoh: Var float data [10] jumlah elemen nama variabel tipe data
55
2. Array Berdimensi dua Bentuk Umum : Tipe_data nama variabel [indeks1] [indeks2] Contoh: Var float data [5][6] jumlah elemen baris dan kolom nama variabel tipe data
56
Latihan Diberikan matriks A sebagai berikut : Perintah pokok yg digunakan pd pengisian matriks A adalah : A[i,j] = 1, jika i <=j , A[i,j] = 0, jika i > j
57
1. Diberikan matriks A sebagai berikut :
Perintah pokok yg digunakan pd pengisian matriks A adalah :
58
2. Diberikan matriks A sebagai berikut :
Perintah pokok yg digunakan pd pengisian matriks A adalah .
59
Pertemuan 9 RECORD
60
RECORD adalah tipe terstruktur yang terdiri dari sejumlah bidang (field) yang mempunyai tipe yang berbeda (heterogen).
61
Bentuk Umum : struct { tipedata1 field 1; tipedata2 field 2 ; tipedata3 field 3; … tipedata-n field n; } nama variabel ;
62
Record (Struct) struct { int nim; float nilai; } dt; dt.nim = 123; dt.nilai = 92.8; printf ("%d\n", dt.nim); printf ("%f\n", dt.nilai);
63
PARAMETER
64
Fungsi tanpa parameter
void hitung() { int a=6,b=5,c; c=a*b; printf("%d \n",c); } main() hitung(); } int hitung() { int a=6,b=5; return a*b; } main() printf("%d \n", hitung());
65
Fungsi dengan parameter
void hitung(int a,int b) { int c; c=a*b; printf("%d \n", c); } main() int a=6,b=5; hitung(a,b); int hitung(int a) { int b=6; return a*b; } main() { int a=6; printf("%d \n", hitung(a));
66
Parameter Ketika procedure atau function dipanggil, kita dapat melewatkan suatu nilai ke dalam function atau procedure tersebut. Nilai yang dilewatkan disebut juga argument atau parameter. Ada dua cara melewatkan nilai, yaitu: Passing by Value (Dilewatkan secara nilai) parameter input 2. Passing by Reference parameter input/output
67
Parameter (lanjutan) Variabel dalam subprogram: Variabel lokal
Variabel yang terdapat dalam subprogram yang nilainya hanya berlaku di subprogram itu saja 2. Variabel global Variabel yang terdapat dalam program utama yang nilainya berlaku di seluruh bagian program Parameter berdasarkan lokasi: 1. Parameter formal Parameter yang terdapat pada subprogram Parameter aktual Parameter yang disertakan pada waktu pemanggilan
68
Passing by refference void hitung(int a) { a=a*a; printf("%d\n",a); } main() { int a=5; hitung(a); } void hitung(int a,int c) { int b=5; c=a*b; printf("%d \n",c); } main() int a=6,c; hitung(a,c);
69
REKURSI Rekursi adalah suatu proses yang bisa memanggil dirinya sendiri. Contoh aplikasi rekursi Fungsi pangkat Faktorial Fibonacci Menara Hanoi
70
Fungsi Pangkat int pangkat (int x,int n) {if(n==1) return x; else return(x*pangkat(x,n-1)); } main() { int x,y; cout<<"Menghitung x pangkat y "<<endl; cout<<"X : ";cin >> x; cout<<"Y : ";cin >> y; cout<<x<<" Pangkat "<<y<<" = "<<pangkat(x,y)<<endl; }
71
Faktorial int faktorial(int n) { if (n == 1) return 1; else return n * faktorial (n-1); } main() { int n; printf (“Faktorial = "); scanf ("%d", &n); printf ("hasil = %d\n", faktorial(n)); }
72
SUBPROGRAM FUNCTION
73
Fungsi yang tidak mengembalikan nilai
main () { hitung(); } void hitung() int a,b=10,c=20; a = b + c; printf (" = %d\n", a);
74
Fungsi yang mengembalikan nilai
main () { printf (" = %d\n", hitung()); } int hitung() int b=10,c=20; return b + c;
75
Latihan Buat program yang terdiri dari fungsi untuk menghitung luas persegi panjang, fungsi untuk keliling persegi panjang, dan fungsi untuk volume balok
76
Teknik Pengurutan Sorting
77
Algoritma selection sort
Tentukan bilangan terkecil dari data Tukar bilangan dengan terkecil tersebut dengan bilangan pertama dari data Ulangi langkah 2 sampai data terurut
78
Algoritma insertion sort
Bandingkan data ke-i (i = data ke-2 s/d data ke-n) dengan data sebelumnya (i-1), jika lebih kecil maka data tersebut dapat disisipkan ke data awal sesuai dgn posisi yg seharusnya Lakukan langkah 1 untuk data berikutnya (i = i+1) sampai data terurut
79
Algoritma Bubble sort Bandingkan data ke-n dengan data sebelumnya (n-1), jika data sebelumnya lebih besar, maka tukar. Jika tidak, maka bandingkan data ke n-1 dengan data ke n-2 dan seterusnya ulangi langkah satu untuk data berikutnya (data kedua dengan ketiga, dst) sampai data terakhir Ulangi langkah 1 dan 2 sampai data terurut optimal
80
Algoritma Radix Sort Kelompokkan data secara terurut berdasarkan digit terkanan semua data Ulangi langkah satu untuk digit kedua dari kanan dan seterusnya sampai digit terkiri sehingga diperoleh data yang terurut
81
Searching Pencarian
82
a. Linear/Sequential Search ( Untuk data
a. Linear/Sequential Search ( Untuk data yg belum terurut / yg sudah terurut ) Pencarian yg dimulai dari record-1 diteruskan ke record selanjutnya yaitu record-2, ke-3,..., sampai diperoleh isi record sama dengan informasi yg dicari Algoritma : Tentukan I = 0 X adalah data yang dicari Ketika Nilai (I) <> X Maka Tambahkan I = I +1 Jika i == N Maka Cetak “Pencarian Gagal” ulangi langkah No. 3 sampai Nilai(I) = X
83
b. Binary Search ( Untuk data yg sudah
terurut ) Digunakan mencari sebuah data pd himp.data-data yg tersusun secara urut, yaitu data yg telah diurutkan dr besar ke kecil/sebaliknya. Proses dilaksanakan pertama kali pd bgn tengah dr elemen himpunan, jk data yg dicari ternyata < elemen bagian atasnya, maka pencarian dilakukan dr bagian tengah ke bawah.
84
Algoritma : 1. Kiri = 1 , kanan = N
2. Ketika kiri <= kanan Maka kerjakan langkah No .3, Jika tidak Maka kerjakan langkah No.7 3. Tentukan Nilai Tengah dengan rumus tengah = (kiri+ kanan ) / 2 4. Jika X < Nil. Tengah Maka kanan = tengah – 1 5. Jika X > Nil. Tengah Maka kiri = tengah + 1 6. Jika X == Nil. Tengah Maka Nil. Tengah = Nil. Yg dicari 7. Jika X > Maka Pencarian GAGAL
85
Latihan 1. Buat program dengan linier search untuk menampilkan data [0] = data [1] = data [2] = data [3] = data [4] = Nilai yang dicari: 9 ditemukan, ada 2 di posisi 2 dan 3
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.