ALGORITMA Diperkenalkan Oleh Ahli Matematika : Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi, seorang ilmuwan Persia yang menulis kitab al jabr w’al muqabala.

Slides:



Advertisements
Presentasi serupa
Pengertian Dasar Logika dan Algoritma
Advertisements

Tipe Data, Variabel & Operator
PERTEMUAN I PENGERTIAN DASAR LOGIKA DAN ALGORITMA ~
Algoritma dan Struktur Data
LOGIKA ALGORITMA Pertemuan 6.
Oleh Nila Feby Puspitasari
ALGORITMA PSEUDOCODE Pertemuan Ke-2 Meilia Nur Indah Susanti, ST.,MKom
2 JAM TEORI dan 1 jam praktek
DIAGRAM ALUR (FLOWCHART)
PROSEDUR.
Algoritma (Struktur, Tipe Data, Input/Output)
Notasi Algoritma.
PERTEMUAN 2 PENGERTIAN DASAR LOGIKA DAN ALGORITMA.
DIAGRAM ALUR (FLOWCHART)
PENGERTIAN DASAR ALGORITMA & FLOWCHART
Algoritma Dan Pemrograman
Elemen Dasar C++ Norma Amalia, ST.,M.Eng.
ALGORITMA PEMROGRAMAN 2A
Struktur Algoritma & Tipe Data
STRUKTUR DASAR ALGORITMA
STMIK Kadiri 2015 D3 – Semester Ganjil
Pengantar Pemrograman Basis Data (PPBD)
Transfer of control (pemindahan langkah)
Notasi Algoritma & Tipe Data
PERTEMUAN 2 Bambang Irawan.
Dasar-Dasar Pemrograman
Tipe, Nama, dan Nilai Anifuddin azis.
Notasi Algoritmik.
Algoritma.
PERTEMUAN 3 KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
Struktur Program Minimal
Pertemuan 4 PROGRAMMING LANGUAGE.
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
Start.
ALGORITMA & LOGIKA PEMROGRAMAN
penyusunan algoritma (flowchart)
Fungsi TEE 2103 Algoritma & Pemrograman Dosen: Abdillah, MIT
NILAI DAN EKSPRESI (TRANSFORMASI NILAI), TIPE DATA DAN TIPE OPERATOR
Pertemuan 1 DATA & STRUKTUR DATA.
Pseudocode – Tipe Data, Variabel, dan Operator
DIAGRAM ALUR (FLOWCHART)
Algoritma dan Pemrograman
PEMROGRAMAN PASCAL ELEMEN PEMROGRAMAN PASCAL.
Tipe Data, Operator dan Ekspresi
Remainder Senin depan mulai UTS Praktikum
Latihan #0 Dengan menggunakan pernyataan looping WHILE dan jumlah instruksi sesedikit mungkin, tuliskan cuplikan program (bukan program lengkap, hanya.
Metode pemecahan masalah
UJIAN TERDIRI ATAS 50 SOAL
ALGORITMA DAN PEMROGRAMAN Tipe Data
STRUKTUR DATA ( Menjelaskan Mengenai Data & Struktur Data )
ALGORITMA DAN PEMROGRAMAN Tipe Data
Struktur Dasar Algoritma dan Runtunan
Algoritma dan Pemrograman Subrutin (Function)
Algoritma dan Pemrograman
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
FUNGSI.
Parameter Ketika procedure atau function dipanggil, kita dapat melewatkan suatu nilai ke dalam function atau procedure tersebut. Nilai yang dilewatkan.
TEL 2112 Dasar Komputer & Pemograman Prosedur
JENIS DAN SIMBOL FLOWCHART PRODI MIK | FAKULTAS ILMU-ILMU KESEHATAN
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
ALGORITMA DAN PEMROGAMAN
DIAGRAM ALUR (FLOWCHART)
UJIAN TERDIRI ATAS 50 SOAL
Pemrogram 1 Agus Darmawan, S.kom.
Pencarian (searching)
Penulisan Teks Algoritma
Algoritma dan Stuktur Data
UJIAN TERDIRI ATAS 50 SOAL
STRUKTUR DASAR ALGORITMA
Transcript presentasi:

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

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

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

b. Dengan diagram alur atau flowchart Contoh : Start Masukan Alas Tinggi Luas = (Alas * Tinggi)/2 Cetak Luas Stop

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

MENYATAKAN ALGORITMA

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.

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.

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

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)

MENYATAKAN ALGORITMA DENGAN KALIMAT 1. Tampilkan kata “Algoritma” Nyatakan nilai r sama dengan 7 Hitung s sama dengan r dibagi 2 Tampilkan nilai s

MENYATAKAN ALGORITMA DENGAN FLOWCHART Start Start r = 7 Tampilkan kata “Algoritma” s = r/2 End Tampilkan nilai s End

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

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.

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

IDENTIFIER 3. Tipe data bentukan Jenis data, tipe baru bisa didefinisikan oleh programer Label Bagian program untuk intruksi lompatan Fungsi/prosedur Sub program

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

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

Buatlah Flowchartnya dari pseudocode berikut ini: a. Masukan kode barang b. Masukan harga barang Masukan Jumlah barang Hitung bayar = harga * Jumlah barang Jika bayar >= 100.000 maka diberikan discount 10%, selain dari itu tidak mendapat discount Hitung total bayar = bayar - discount Cetak total bayar

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.

VARIABEL, OPERATOR dan TIPE DATA

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

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

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; }

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

OPERATOR Macam operator dasar: Aritmatika (+, -, *, /, %, pow) Relational/perbandingan(<, >, =, <=, >=, <>, ) Logika/Boolean not , notasi dalam C++  ! Or, notasi dalam C++  || And, notasi dalam C++  &&

Dilihat dari jumlah operand yang dibutuhkan: Unary/uner membutuhkan 1 operand contoh operator ! dan - Binary/biner membutuhkan 2 operand

OPERATOR OPERAND HASIL Aritmatika Integer atau float Relational Logika Logika (boolean)

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)

` A B not A A or B A and B T F

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; }

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;

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;

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 =

STRUKTUR KEPUTUSAN (DECISION)

1. SATU KONDISI SATU AKSI Jika seleksi kondisi/syarat terpenuhi (benar) maka aksi dilakukan, jika kondisi tidak terpenuhi (salah) maka selesai y t aksi

Dengan Statement program Menggunakan struktur if If (kondisi) aksi Ekspresi kondisi harus menghasilkan nilai logika (boolean)

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

Dengan Statement program Menggunakan struktur if-else If (kondisi) aksi 1 else aksi 2

3. BANYAK KONDISI BANYAK AKSI Memiliki banyak kondisi dan aksi kondisi1 Aksi 1 kondisi2 kondisi3 Aksi 4 Aksi 3 Aksi 2

Dengan Statement program (if) If (kondisi 1) aksi 1 else if (kondisi 2) aksi 2 else if (kondisi 3) aksi 3 …

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

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”

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”

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

Struktur Perulangan (For) For menaik/positif for (nilai awal; syarat perulangan; naik cacahan) { aksi } For menurun/negatif for (nilai awal; syarat perulangan; turun cacahan)

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"); }

For bersarang (nested for) int i,j; for (i=1;i<=2;i++) { for (j=1;j<=3;j++) printf(”%d \n”, i); }

Struktur Perulangan (while) int i=1; while (i<5) { printf("algoritma\n"); i++; } int i=5; while (i>1) { printf("algoritma\n"); i--; }

Struktur Perulangan (do-while) int i=1; do { printf("algoritma\n"); i++; } while (i<5);

Latihan Menampilkan bilangan mulai dari angka 11 sampai 20 Menampilkan angka 10, 20, 30, 40, 50 Menampilkan 10 bilangan ganjil mulai dari 7

Pertemuan 8 Array

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

Array Berdimensi Satu Bentuk Umum : Tipe_data nama variabel [indeks] Contoh: Var float data [10] jumlah elemen nama variabel tipe data

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

Latihan Diberikan matriks A sebagai berikut : 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 Perintah pokok yg digunakan pd pengisian matriks A adalah : A[i,j] = 1, jika i <=j , A[i,j] = 0, jika i > j

1. Diberikan matriks A sebagai berikut : 1 2 3 4 0 2 3 4 0 0 3 4 0 0 0 4 Perintah pokok yg digunakan pd pengisian matriks A adalah :

2. Diberikan matriks A sebagai berikut : 1 0 0 0 2 2 0 0 3 3 3 0 4 4 4 4 Perintah pokok yg digunakan pd pengisian matriks A adalah .

Pertemuan 9 RECORD

RECORD adalah tipe terstruktur yang terdiri dari sejumlah bidang (field) yang mempunyai tipe yang berbeda (heterogen).

Bentuk Umum : struct { tipedata1 field 1; tipedata2 field 2 ; tipedata3 field 3; … tipedata-n field n; } nama variabel ;

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);

PARAMETER

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());

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));

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

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

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);

REKURSI Rekursi adalah suatu proses yang bisa memanggil dirinya sendiri. Contoh aplikasi rekursi Fungsi pangkat Faktorial Fibonacci Menara Hanoi

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; }

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)); }

SUBPROGRAM FUNCTION

Fungsi yang tidak mengembalikan nilai main () { hitung(); } void hitung() int a,b=10,c=20; a = b + c; printf ("10 + 20 = %d\n", a);

Fungsi yang mengembalikan nilai main () { printf ("10 + 20 = %d\n", hitung()); } int hitung() int b=10,c=20; return b + c;

Latihan Buat program yang terdiri dari fungsi untuk menghitung luas persegi panjang, fungsi untuk keliling persegi panjang, dan fungsi untuk volume balok

Teknik Pengurutan Sorting

Algoritma selection sort Tentukan bilangan terkecil dari data Tukar bilangan dengan terkecil tersebut dengan bilangan pertama dari data Ulangi langkah 2 sampai data terurut

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

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

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

Searching Pencarian

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

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.

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

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