Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma & Pemrograman 2

Presentasi serupa


Presentasi berjudul: "Algoritma & Pemrograman 2"— Transcript presentasi:

1 Algoritma & Pemrograman 2

2 Ketentuan Perkuliahan
Setiap perkuliahan datang tepat waktu, waktu toleransi 15 menit Berpakaian rapi dan sopan (Tidak berkaos oblong, tidak menggunakan sandal) Di dalam ruang kelas tidak menggunakan telp/hp Minimal 80% kehadiran untuk dapat mengikuti ujian baik uts maupun uas

3 Algoritma Asal kata Algoritma (algorism -algorithm) berasal dari nama Abu Ja’far Muhammad ibn Musa Al-Khuwarizmi Ilmuan Persia yang menulis kitab “al jabar w’al-muqabala”(rules of restoration and reduction –aturan pemugaran dan pengurangan) Tahun 825 M Berasal dari Iran Masuk Indonesia tahun 1980-an

4 Definisi Algoritma Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. <>Urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. <>(Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998) Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. <>Alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. <>Tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. <>(Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)

5 Review Algoritma 1 Buatlah algoritma untuk mencari sisi miring dari suatu segitiga siku-siku, jika diketahui panjang sisi yang membentuk sudut siku-siku. Menghitung usia berdasarkan tahun (saja) lahir dan tahun (saja) sekarang

6 Bahasa C C dan C++ merupakan bahasa pemrograman yang tidak memiliki kepanjangan apapun. C Diciptakan oleh Dennis Ritchie (1972) C++ diciptakan oleh Bjarne Stroustroup (1982) merupakan pengembangan dari bhs C dan mendukung pemrograman Berorientasi Objek

7 Kode sumber : pertama.c #include <stdio.h> Int main() {
printf (“Selamat Belajar C\n”); return 0; }

8 Output Program Program di atas menampilkan tulisan Selamat Belajar C
Ke layar

9 Penjelasan Program #include <stdio.h> Int main() {
Menyertakan berkas header stdio.h #include <stdio.h> Int main() { printf (“Selamat Belajar C\n”); return 0; } Tipe kode keluar program Pernyataan untuk menyatakan string Awal tubuh fungsi main() Pernyataan untuk memberi kode keluar program Akhir tubuh fungsi main()

10 Penjelasan Program (Lanjt.)
Berkas header (berekstensi.h) adalah berkas yg berisi prototipe fungsi, definisi konstanta, dan definis variabel. Prototipe fungsi berupa judul suatu fungsi yg dilengkapi dengan argumen dan tipe argumen serta tipe nilai balik untuk fungsi yg memberikan nilai balik. Ini merupakan persyaratan selama kompilasi. Fungsi adalah kumpulan kode C yg diberi nama dan ketika nama tsb dipanggil maka kumpulan kode tsb dijalankan. Praprosessor #include adalah suatu perintah yg digunakan untuk mengatur kompiler agar membaca berkas header yg disertakan dibelakang kata include saat pelaksanaan kompilasi

11 Penjelasan Program (Lanjt.)
Main() adalah fungsi yg akan dijalankan pertama kali ketikan program dieksekusi. Kata int di depan main() menyatakan bahwa program memberikan nilai balik yg bertipe int. Tipe int adalah tipe yg menyatakan bilangan bulat. Nilai balik program ditentukan oleh pernyataan return. Pada program di depan , return 0 menyatakan bahwa nilai balik program adalah nol. Nilai balik nol biasa digunakan untuk menyatakan bahwa program berhasil melaksanakan tugas yg di bebankannya. Pernyataan di dalam C adalah suatu perintah yg dapat berdiri sendiri dalam melaksanakan suatu aksi dan dijalankan ketika program dieksekusi. Setiap pernyataan ditulis dengan diakhiri tanda titi-koma (;). Pada program di depan, ada dua buah pernyataan, yaitu : 1. printf (“Selamat Belajar C\n”); 2. return 0; Printf() adalah suatu fungsi yg prototipenya terdapat dalam berkas stdio.h. Yang berada dalam tanda kurung yg mengikuti printf pada program di depan disebut string. String adalah deretan karakter yg ditulis didalam tanda petik ganda (“)

12 Perbedaaan dengan C++ Berkas header yg digunakan bukan berupa stdio.h melainkan iostream.h Pernyataan untuk menampilkan keluaran berupa cout. Untuk menyatakan inputan berupa cin

13 Identifier Identifier adalah suatu nama yg dugunakan dalam program
untuk menyatakan variabel, fungsi, dll. Aturan umum yg berlakuk dalam membuat pengenal baik pda C maupun C++ : Berawalan huruf kapital, huruf kecil atau karakter garis bawah (_) Bagian berikutnya dapat berupa huruf , angka (0..9), atau karakter garis bawah Catt : Haruf kecil dan huruf kapital dibedakan pada pengenal

14 Tipe Data Tipe Keterangan char
Menyatakan sebuah karakter (bisa berupa huruf seperti A dan a, digit seperti 0 atau 7, atau simbol seperti * dan &) double Menyatakan bilang titik mengambang (bil. Real) dengan ketelitian tinggi float Menyatakan bilang titik mengambang (bil. Real) dengan ketelitian rendah int Menyatakan bilang bulat anatara s.d 32767 long int Menyatakan bilang bulat yg berkisar antar s/d

15 Variabel Variabel adalah suatu nama yg menyatakan tempat dalam
memori komputer yg digunakan untuk menyimpan suatu nilai dan nilainya dapat diubah sewaktu-waktu ketika program sedang dieksekusi. Misalnya, dulu berisi 23 24 Sekarang berisi 24

16 Mendeklarasikan Variabel
Pendeklarasian variabel digunakan untukmemesan lokasi dalam memori komputer dan menetukan tipe dari data yg dapat disimpan dalam variabel. Bentuk pendeklarasiannya adalah : tipe_data nama variabel; Contoh : int n; char ch; long int jum_penduduk; double jarak; Jika ada beberapa var dengan tipe yg sama pendeklarasian dilakukan dengan menggunakan sebuah pernyataan. Contoh : Int i, j, k;

17 Memberi nilai ke variabel
Bentuk : Variabel = nilai; Contoh : n = 7;

18 Literal/Konstanta Menyatakan nilai yg tetap di dalam program.Contoh :
2.3 (literal bilangan titik mengambang) 10 (literal bilangan bulat) ‘K’ (sebuah karakter) Tipe Keterangan int Berupa bil. Bulat antara s/d tanda pemisah ribuan tidak boleh digunakan long int Berupa bil.bulat antara s/d Tanda pemisah ribuan ribuan tdk boleh digunakan. Tanda L atau 1perlu disertakan dibagian literal untuk menyatakan long int secara eksplisit. Cont.: L float Harus ditulis dengan akhiran F atau f. Tanda pecahan berupa titik. Notasi sains seperti 2.2e+04 diperkenankan (artinya 2,2 x 104). Huruf e dapat ditulis dengan E double Seperti pada float,tetapi tidak perlu akhiran F atau f char Literal ditulis dengan awalan dan akhiran petik tunggal (‘). Di dalam tanda petik tsb terdapat satu karakter. Literal bertipe char juga dapat mengandung dua karakter atau lebih dengan karakter pertama berupa \. Pd keadaan spt ini, deretan karakter dalam tanda petik tunggal tsb tetap menyatakan sebuah karakter

19 Karakter Escape Karakter Keterangan \0
Karakter NULL (Tulisannya berupa \ dan angka nol) \a Karakter bel \b Karakter backspace \f Formfeed \n Linefeed (disebut newline atau pindah baris) \r Carriage return \t Tab horisontal \v Tab vertikal \\ Karakter \ \’ Karakter petik tunggal \” Karakter petik ganda \? Karakter tanda tanya \DDD Menyatakan sebuah karakter yg nilai ASCII nya sama dengan nilai oktal DDD \xHH Menyatakan sebuah karakter yg nilai ASCII nya sama dengan nilai heksadesimal HH

20 String String berarti deretan karakter, sebuah string dapat tidak mengandung karakter sama sekali. Konstanta string ditulis dengan awalan dan akhiran tanda petik ganda. Contoh : String Keterangan “Yogya” String dengan panjang 5 karakter “Y” String dengan panjang 1 karakter. Literal ini berbeda dengan literal karakter. Sebagaiman diketahui, literal karakter ditulis dengan awalan dan akhiran petik tunggal “” String kosong (tidak mengandung satu karakterpun) “Jl.Beo 45/B” String yg mengandung huruf, angka, dan simbol “123” String yg berisi angka 123. Hal ini berbeda dengan literal 123 Catt : Penugasan literal string ke variabel string harus dilakukan melaui fungsi bernama strcpy()

21 Contoh (dalam C) #include <stdio.h> #include <string.h>
int main() { char info[25]; strcpy(info, “Nama : Budi”); Printf(info); printf(“\n”); strcpy(info, “Info: Mahasiswa”); printf(info); return 0; }

22 Contoh (dalam C++) #include <iostream.h>
#include <string.h> int main() { char info[25]; strcpy(info, “Nama : Budi”); cout << info; cout << “\n”; strcpy(info, “Info: Mahasiswa”); return 0; }

23 String pada C selalu diakhiri dengan karater Null (\0), contohnya
Indeks U N T A \0 Variabel kps Kps[4] Kps[5] Kps[3] Kps[2] Kps[1] Kps[0]

24 Menampilkan Informasi ke layar
Fungsi printf() berguna untuk menampilkan informasi ke layar, selain fungsi ini terdapat dua fungsi penting yang berguna untuk menampilkan keluaran, berupa puts() dan putchar() Contoh : Puts(“Alpro 2”); // Menampilkan string Putchar(“A”); //Menampilkan karakter A

25 Penentuan format pada printf
Kode Keterangan %u Menampilkan bilangan bulat tak bertanda %d atau %i Menampilkan bilangan bulat bertanda %o Menampilkan bilangan bulat tak bertanda dalam bentuk sistem okltal %x Menampilkan bilangan bulat tak bertanda dalam bentuk sistem heksadesimal. Huruf dinyatakan dengan huruf kecil %X Menampilkan bilangan bulat tak bertanda dalam bentuk sistem heksadesimal. Huruf dinyatakan dengan huruf besar %f Menampilkan bilngan real dengan notasi:dddd.dddddd %e atau %E Menampilkan bilangan real dalam bentuk notasi sains %g atau %G Menampilkan bilangan real dalam bentuk seperti %f, atau 5E tergantung pada kepresisian data 1(huruf L kecil Awalan yang digunakan untuk menyatakan long int atau double. Contoh:%1d untu long int atau %1f untuk double %% Menyatakan simbol %

26 Contoh Printf(“Cacah %2d”, 23); Printf(“Cacah %3d”, 23);

27 Printf(“%8.2f”, 52.0); Untuk mengatur penampilan bilangan real, notasi
m.n Dipakai untuk menentukan lebar data secara keseluruhan (m) dan untuk menentukan jumlah digit pecahan (n). Contoh printf(“%8.2f”, 52.0) 5 2 Printf(“%8.2f”, 52.0);

28 Untuk mengatur agar suatu string ditampilkan dalam ruang berukuran n karakter dan diataur rata kiri terhadap ruang yang tersedia, tanda minus perlu diletakan antara % dan angka yang menentukan lebar string. Contoh Printf(“%8s”, “Hai”); Printf(“%-8s”, “Hai”); 5 2 H a i H a i

29 Mengenal Operator Pada operasi 2 3, tanda + dinamakan operator. Operator berupa simbol yang digunakan untuk menyusun suatu ekspresi, dengan melibatkan satu atau beberapa operand. Operator Ekspresi Operand Operand

30 Macam-macam Operator Operator Unary, Operator yang hanya melibatkan sebuah perand. Contoh : +1, -1 2. Operator binary, yaitu operator yg melibatkan dua buah operand Contoh : 2 + 3, 5 * 2, 5 > 2 3. Operator Tertiary, yaitu operator yang melibatkan tiga buah operand. Contoh : a > b ? 1 : 0

31 Operator aritmatika Operator ini digunakan untuk melakukan perhitungan aritmatika Operator Prioritas Ket Contoh - 1 Unary minus -1 + Unary plus +1 * 2 Perkalian 2 * 3 6 2 * 3.0 6.0 / pembagian 7/2 3 7/2.03.5 7.0/23.5 % Sisa Penjumlahan 7%21 8%32 8%20 3 Penjumlahan 2 + 35 5.0 Penguranga 3 – 1  5 3 – 1.02.0

32 Contoh Jarak lintasan peluru (X) dapat dihitung dengan menggunakan rumus : Jarak = 2 x V0² x sin ά x cos ά x cos ά / g #include <stdio.h> #include <math.h> Int main() { Double kecepatan = 32; Sudut = 40; Jarak = 2 * kecepatan * kecepatan * sin (sudut * 3.14/ qa180) * cos (sudut * 3.14 / 180) / 9.8; Printf (“jarak = %f”, jakar); Return 0; }

33 Operator Pembanding Operator pembanding atau disebut juga operator relasional adalah operator yang berguna untuk melakukan pembandingan terhadap dua buah nilai. Hasil pembandingan bernilai 1 atau 0. Operator Ket > Lebih dari >= Lebih dari atau sama dengan < Kurang dari <= Kurang dari atau sama dengan != Tidak sama dengan == Sama dengan

34 Contoh pemakaian operator pembanding
ekspresi Hasil 5 > 1 1 (Benar) 4 < 5 4 <= 3 0 (salah) ‘A’ > ‘B’ ‘B’ > ‘A’ 1 (benar) ‘A’ < ‘a’

35 Operator Logika Digunakan untuk membentuk suatu ekspresi pembandingan dari satu atau dua buah ekspresi pembanding Operator Ket && Operator “dan” || Operator “atau’ ! operator “bukan”

36 contoh Ekspresi Ket Kar >= ‘A’ && <= ‘Z’
Hasil berupa benar hanya kalau kar berupa huruf kapital Kode == ‘a’ || kode == ‘A’ Hasil berupa benar kalau kode berupa huruf a atau A ! (kar == ‘A’) Hasil berupa benar kalau kar tidak berupa huruf A

37 Operator Masukan Dalam suatu program seringkali diperlukan
operasi masukan yang berasal dari keyboard Fungsi Scanf() Untu penanganan pemasukan data dari keyboard, fungsi ini dapat dipakai untuk pemasukan berbagai tipe data. Syntak : Scanf(“string kontrol”, argumen); String kontrol dapat berupa : penentuan format, kakarter spasi-putih, karakter spasi bukan spasi putih

38 Penentuan format pada scanf
Kode Ket %c Data yang dibaca berupa sebuah karakter %s Data yang dibaca berupa string %i atau %d Data yg dibaca berupa sebuah bilangan bulat %e atau %f Data yg dibaca berupa sebuah bil. Real %u Data yg dibaca berupa sebuah bil. Bulat tak bertanda L (huruf L kecil) Awalan untuk membaca data long int atau double. Contoh %id

39 Contoh pemakaian scanf()
Pernyataan Ket Scanf(“%f”, &jarak) Pernyataan untuk membaca sebuah bilanga real dan meletakkannya ke var jarak yg bertipe float. Dalam hal ini &jarak berarti ‘alamat dari variabel jarak” Scanf(“%d”, &jumlah); Pernyataan untuk membaca sebuah bilangan bulat dan meletakkannya ke variabel julah yang bertipe integer int Scanf(“%id’, &jum-penduduk); Peryataan untuk membaca sebuah bilangan bulat bertipe long int dan meletakkannya ke variabel jum_penduduk yang bertipe long int

40 Fungsi gets() Syntak : gets(variabelString);
Bentuk diatas setara dengan scanf(“%s”, variabelString) Contoh: #include <stdio.h> int main() {char nama[35]; printf (“Nama: “); gets(nama); printf(“hai, %s. Selamat datang \n’, nama); return 0; }

41 Operasi Seleksi

42 Bentuk Jika...Akhir-Jika
Pseudokode Kode C JIKA kondis benar MAKA pernyataan_1 SEBALIKNYA pernyataan_2 AKHIR-JIKA If (kondisi) { pernyataan_1; } else pernyataan_; JIKA kondisi benar MAKA pernyataan If(kondisi) pernyataan;

43 Kondisi pada pernyataan if harus ditulis
dalam tanda kurung. Jika di dalam { } hanya terdapat sebuah pernyataan, tanda tsb bisa Dibuang.

44 Bentuk COCOK…AKHIR-COCOK
Pseudokode Kode C COCOK nilai DENGAN nila1 MAKA pernyataan-11 pernyataan-12 DENGAN nilai2 MAKA pernyataan-21 pernyataan-22 DENGAN nilai3 MAKA pernyataan-31 pernyataan-32 LAINNYA pernyataan-n1 pernyataan-n2 AKHIR-COCOK switch (nilai) { case nilai1: pernyataan_11; pernyataan_12; break; case nilai2: pernyataan_21; pernyataan_22; case nilai3: pernyataan_31; pernyataan_32; default: pernyataan_n1 pernyataan_n2 }

45 Pernyataan break pada pernyataan switch digunakan agar eksekusi dilanjutkan ke pernyataan terletak sesudah pernyataan switch Bagian default pada switch bersifat opsional. Bagian ini hanya dijalankan kalau tak ada satupun bagian case yang cocok dengan nilai pada switch Pernyaaan break pada bagian default bisa ditiadakan tanpa mengubah hasil

46 Contoh Seleksi Sederhana
#include <stdio.h> Int main() { int bilangan; printf (“Masukkan sebuah bilangan bulat:”); scanf (“%d”, &bilangan); if (bilangan % 2 == 0) printf (“Bilangan genap”); else printf (“Bilangan ganjil”); return 0;

47 Contoh Seleksi Bersarang
Menentukan tahun kabisat #include <stdio.h> Int main() { int tahun; printf (“Masukkan tahun:”); scanf (“%d”, &tahun); if (tahun % 4 !=0) printf (“Bukan kabisat\n”); else if ((tahun % 100 == 0) && (tahun % 400 !=0)) printf (“kabisat \n”); return 0;

48 Menentukan predikat lulus
IP Kumulatif Prediakat kelulusan 2.00 ≤ IP ≤ 2.75 Lulus memuaskan 2.75 < IP ≤ 3.50 Lulus Sangat Memuaskan 3.50 < IP ≤ 4.00 Lulus dengan Pujian

49 #include <stdio.h>
Int main() { double ip; printf (“IP Kumulatif:”); scanf (“%lf”, &ip); if (ip >= 2.00 && ip <= 2.75) printf (“Lulus Memuaskan”); else if (ip > 2.75 && ip <= 3.50) printf (“Lulus dngan pujian\n”); printf (“Data IP tidak valid\n); return 0;

50 Latihan switch case case 7: printf(“Juli\n”); break; case 8:
printf(“Agustus\n”); case 9: printf(“September\n”); case 10: printf(“Oktober\n”); case 11: printf(“November\n”); case 12: printf(“Desember\n”); default: printf(“Salah kode bulan\n”) } return 0; #include <stdio.h> int main() { int kode_bulan; printf(“masukkan kode bulan (1..12); scanf(“d”, &kode_bulan); switch (kode_bulan) case 1: printf(“Januari\n”); break; case 2: printf(“Februari\n”); case 3: printf(“Maret\n”); case 4: printf(“April\n”); case 5: printf(“Mei\n”); case 6: printf(“Juni\n”);

51 Bentuk Ulang…Akhir-Ulang
ULANG SELAMA kondisi Pernyataan-1 Pernyataan-2 AKHIR-ULANG While(kondisi) { pernyataan_1; pernyataan_2; }

52 Contoh : menampilkan deret bilangan berikut: 10 9 8 7 6 5 4 3 2 1
#include <stdio.h> int main() { int bil; bil = 10; while (bil >= 1) printf(“%d\n”, bil); bil = bil – 1; } return 0;

53 Latihan Buatlah program yg meminta n buah bilangan bulat dimasukkan dari key board dan kemudian menampilkan rata-rata

54 #include <stdio.h>
int main () { int n, pencacah; double bil, jum, rata_rata; printf (“%d”, &n); jum = 0; pencacah = 1; while (pencacah <= n) printf(“Bilangan %d=“, pencacah); scanf(“%lf”, &bil); jum =jum + bil; pencacah = pencacah + 1; } rata-rata = jum / n; printf(“Rata-rata = %lf\n”, rata_rata); return 0;

55 UNTUK…AKHIR-UNTUK Pernyataan for Hasil UNTUK bil = 1 S/D 8 tampilkan(bil) AKHIR-UNTUK for(bil =1;bil<=8;bil++) printf(“%d\n”, bil); Catt: bil++ identik dengan bil=bil+1 1 2 3 4 5 6 7 8 UNTUK bil = 1 S/D 8 STEP for(bil =1;bil<=8;bil+=3) Catt: bil+= identik dengan bil=bil+3 UNTUK bil = 10 S/D 5 STEP -1 for(bil =8;bil>=5;bil--) Catt: bil-- identik dengan bil=bil-1 10 9 UNTUK bil = 10 S/D 5 STEP -2 for(bil =8;bil>=5;bil-=2) Catt: bil-=2 identik dengan bil=bil-2

56 Buatlah program untuk menyusun hasil seperti berikut : 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15
#include <stdio.h> int main() { int I, j, tinggi, bil; printf(“Masukkan tinggi segitiga: “); scanf(“%d”, &tinggi); for (i=1; i<=tinggi; i++) bil = 1; for (j=1; j<=I; j++) printf (“%3d”, bil); bil = bil + tinggi – j; } printf(“\n”); /*pindah baris*/ return 0;

57 Mengenal tipe Struct Dalam C terdapat tipe struct yang dapat dipakai untuk menghimpun sejumlah data dengan tipe yang berbeda- beda. Data yang diletakkan dalam sejumlah struct adalah data yang terkait. Sebagai contoh, dimungkinkan untuk untuk membuat tipe struct yang mengandung data NIP, Nama, dan Gaji, Pendefinisiannya adalah sbb: Struct data_pegawai { Int nip; char nama[25]; long int gaji; };

58 #include <stdio.h>
#include <string.h> struct data_pegawai { int nip; char nama[25]; long int gaji; }; int main() struct data_pegawai peg; Peg.nip = 4567; strcpy(peg.nama, “Budi”); //Menyalin Budi ke var nama Peg.gaji = L; printf(“NIP : %d\n”, peg.nip); printf(“Nama : %-s\n”, peg.nama); printf(“Gaji : %ld\n”, peg.gaji); return 0; }

59 Selain void di akhir fungsi selalu ada perintah return.
Void main adalah Fungsi utama yg tdk mengembalikan nilai 

60 ARRAY/LARIK

61 Definisi Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama (komponen tipe / byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange) dan jumlah yang tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya

62 Di dalam algoritma , larik dinyatakan dengan awalan huruf kapital dan notasi [ ] dipakai untuk menyatakan data dalam larik. Contoh : A  [1, 2, 3, 4] Menyatakan larik A yang berisi data 1,2,3 dan 4 Pada contoh diatas lairk memiliki 4 buah elemen. Untuk menyatakan sebuah elemen dalam larik , dapat digunakan notasi berikut : A[indeks]

63 Dalam hal ini indeksdigunakan untuk menyatakan posisi elemen, posis pertama diberi kode 0, posisi kedua 1, dst Indeks Larik A 1 2 3 4 A[3] A[2] A[1] A[0]

64 Pada bahasa C Larik dideklarasikan dalam bentuk :
Tipe _data nama_larik[jumlah _elemen] (dalam hal ini jumlah elemen harus berupa konstanta) Deklarasi Keterangan Int cacah[4] Larik cacah mempunyai 4 buah elemen bertipe int Char vokal[5] Larik vokal mempunyai 5 buah elemen bertipe char Char kota[6] [20] Larik kota mempunyai 6 bertipe string dengan panjang maksimal sebesar 19 karakter

65 Berikut contoh variabel bernama C yang
mempunyai 7 lokasi memori yang semuanya bertipe int: C[0] 10 C[1] 20 C[2] 30 C[3] 40 C[4] 75 C[5] 80 C[6] 12

66 Contoh #include <stdio.h> Int main() { Char kar[5]; Int I;
Kar[0] = ‘A’; Kar[1] = ‘E’; Kar[2] = ‘I’; Kar[3] = ‘O’; Kar[4] = ‘U’; For (i=0; i<5; i++); Printf (“%c\n”, kar[ i ]; Return 0; } Output : A E I O U

67 Latihan OUTPUT: NAMA L/P UMUR HOBBY Andri L 19 Sport Lia P 20 Membaca
Kiki L 18 Main Musik Tia P 21 Hiking

68 Array Dimensi Dua Contoh data mahasiswa baru di fakultas Teknik
Prodi 2006 2007 2008 2009 Teknik Informatika 53 70 65 60 Teknik Industri 10 13 21 15 Teknik Elektro 86 132 242 195

69 Contoh di atas merupakan matrik L
berukuran 3 x 4 dapat dideklarasikan dalam sebagai berikut: {[53, 70, 65, 60], [86, 132, 242, 195]} dan definisi variabel untuk setiap elemen tersebut adalah: 1 2 3 L[0,0] L[0,3] L[1,0] L[1,1] L[1,2] L[1,3] L[2,0] L[2,1] L[2,2] L[2,3]

70 Larik Bertipe Rekaman

71 Elemen suatu larik bisa saja melibatkan tipe rekaman (atau disebut struct pada C). Contoh :
Simpul = REKAMAN data1 data2 data3 AKHIR-REKAMAN

72 Untuk menyatakan data1 yang terdapat pada simpul digunakan notasi berupa simpuldata1.
Di dalam C, tipe rekaman seperti di atas dinyatakan dengan : struct rek_simpul { tipe data1; tipe data2; tipe data3; }; struct rek_simpul simpul;

73 Untuk menyatakan field data1 diperlukan notasi seperti berikut:
simpul.data1 Adapun contoh berikut menunjukkan bagaimana mendeklarasikan sebuah larik yang bertipe struct : struct rek_pegawai { int nip; char nama[30]; }; struct rek_pegawai peg[5];

74 Larik peg dengan tipe elemen berupa struct
nip nama 1 2 3 4

75 Sepuluh mahasiswa mengikuti ujian dengan nilai hasil berkisar antara 0 samapi dengan 100. buat programnya untuk membaca seluruh data tersebut dan kemudian : Hitung nilai rata-ratanya Tampilkan mahasiswa yang gagal (yaitu nilai Kurang dari 60)

76 #include <stdio.h> int main() { struct mahasiswa{ char nama[25];
double nilai; }; struct mahasiswa daftar [10]; int pencacah; double jum; int ada_gagal; pencacah = 0; while (pencacah < 10) printf(“Nama Mahasiswa:”); scanf(“%s”, daftar[pencacah]. Nama); while (1) pritnf(“Nilai:”); scanf(“%lf”, &daftar[pencacah].nilai); if (daftar[pencacah].nilai >== 0 && daftar[pencacah].nilai <= 100) break; else printf(“Nilai harus terletak anatara 0 sampai dengan 100\n”); } pencacah++; } /*Jumlahkan Semua nilai*/ jum=0; pencacah = 0; while(pencacah < 10) { jum =jum + daftara[pencacah].nilai; Pencacah++; /*Menampilkan mahasiswa yang gagal*/ printf(“siswa yang gagal\n”); ada_gagal = 0; pencacah= 0; while(pencacah<10) if(daftar[pencacah].nilai<60) ada_gagal = 1; printf(“%s\n”, daftar[pencacah].nama); if(ada_gagal == 0) printf(“tak ada\n”); return 0;

77 pencacah++; } /*Jumlahkan Semua nilai*/ jum=0; pencacah = 0; while(pencacah < 10) { jum =jum + daftara[pencacah].nilai; Pencacah++; /*Menampilkan mahasiswa yang gagal*/ printf(“siswa yang gagal\n”); ada_gagal = 0; pencacah= 0; while(pencacah<10) if(daftar[pencacah].nilai<60) ada_gagal = 1; printf(“%s\n”, daftar[pencacah].nama); if(ada_gagal == 0) printf(“tak ada\n”); return 0;

78 Fungsi Rekursif

79 Fungsi rekursif adalah suatu fungsi yang
memanggil dirinya sendiri, artinya fungsi tersebut dipanggil di dalam tubuh fungsi sendiri.

80 int faktorial (int n) { int counter, hasil = 1; for (counter = n;counter > = 1, counter-- hasi*=coun{ for (counter = n;counter > = 1, counter-- hasil *=counter; return hasil; }

81 Fungsi tersebut menunjukkan bahwa nilai faktorial
dihitung menggunakan looping sehingga melakukan proses sebagai berikut: Hasil = 1; Hasil = hasil * n; artinya hasil = n Hasil = hasil 8 (n – 1);artinya hasil = n x (n – 1); Demikian seterusnya sampai b bernilai 1, atau jika dituliskan sekaligus menjadi: Faktorial = n! = n x (n – 1) x (n – 2) ….x 1

82 Fungsi ini dapat dituliskan dalam bentuk:
Faktorial (n) = n! = n x (n -1) ! Yang menunjukkan sifat rekursif dari fungsi, yaitu (n – 1)!. Oleh karena itu, faktorial yang telah ditulis dalam program C++ sebelumnya,dapat ditulis kembali dalam bentuk rekursif sebagai berikut: Int faktorial(int n) { if (n==0) return 1; else return (n * faktorial (n- 1)); }

83 #include <iostream.h>
int faktorial(int n) { if (n==1) return(1); else return (n*faktorial(n-1)); } void main() int x; cout<<"Mencari Nilai Faktorial \n"<<"Masukkan nilai x:"; cin>>x; cout<<"Nilai Faktorial dari "<<x<<" adalah "<<faktorial(x);

84 POINTER

85 Pointer adalah variabel yang berisi alamat memori sebagai
nilainya dan berbeda dengan variabel biasa yang berisi nilai tertentu. Dengan kata lain, pointer berisi alamat dari variabel yang mempunyai nilai tertentu. Bentuk umum dari pernyataan variable pointer dalam C adalah: Type *variabel name Ket: Type adalah tipe dasar pointer Variabel name adalah nama variabel pointer * adalah operator memori yang fungsinya untuk mengembalikan nilai variabel pada alamatnya yang ditentukan oleh operand.

86 Membuat program yang akan menampilkan suatu nilai dalam suatu variabel tertentu dan menampilkan juga alamat suatu pointer yang isinya sama dengan yang ditunjuk oleh variabel tadi. #include <iostream.h> void main() { int v = 7, *p; p = &v; cout<<"Nilai v = "<<v ; cout<<" \nDengan alamat = "<<&v; cout<<" \nNilai *p = "<<*p; cout<<" \nDengan alamat = "<<p; }

87 Operator Pointer Ada beberapa operator yang bisa digunakan dalam pointer. Operator-operator itu adalah: oprator alamat (yang dilambangkan dengan simbol &) adalah operator unary yang mengembalikan alamat dari operandnya. Sebagai contoh, diasumsikan deklarasi sebagai berikut: int y = 5; int *yptr; Maka pernyataan: yptr = &y; Pernyataan ini mengandung arti bahwa alamat dari variabel y ditujukan kepada variabel pointer yptr. Perhatikan contoh program berikut ini:

88 #include <iostream.h>
int main() { int *ptr, num; ptr = &num; *ptr = 100; cout<<num<<" "; (*ptr) ++; cout<<(*ptr)*2<<"\n"; return 0; }

89 STRING

90 String merupakan gabungan dua buah karakter atau lebih
String merupakan gabungan dua buah karakter atau lebih. String dapat berupa konstanta dan variabel, Contoh pada konstanta: cout<<”Topik terakhir adalah String”<<endl;. suatu konstanta string ditulis dengan awal dan akhiran tanda petik ganda ( “ ) Karakter null merupakan ciri khas pengakhit string pada c++. String kosong adalah string yang tidak berisi sesuatu karakter-pun. ( “ “ ). Variabel string adalah variabel yang dipakai untuk menyimpan string, contoh: char teks[10]

91 #include <iostream.h>
void main() { char teks[13]; cout<<"Masukan sebuah atau beberapa kata:"; cin>>teks; cout<<"Yang Anda masukan : "<<teks<<endl; }

92 Dari output di atas, dapat dilihat bahwa cin hanya membaca sebuah kata, disebabkan operator >> pada cin hanya membaca masukan hingga terdapat spasi, tab, ataupun enter. Untuk mengatasi hal tersebut, menggunakan fungsi get() pada cin yaitu dengan cin.get() atau cin.get(teks, 13) atau cin.get(teks, sizeof(teks));

93 #include <iostream.h>
void main() { char teks[13]; cout<<"Masukan sebuah atau beberapa kata:"; cin.get(teks,sizeof(teks)); cout<<"Yang Anda masukan : "<<teks<<endl; }

94 2 Inisialisasi string Ada beberapa cara untuk melakukan inisialisasi pada string. Perhatikan contoh di bawah ini : char warna[ ] = {‘y’, ‘e’, ‘l’, ‘l’, ‘o’, w’}; Atau char warna[ ] = “yellow”;

95 Prototipe Fungsi Keterangan strcpy(s1, s2) Menyalin string s2 ke s1 strncpy(s1, s2, n) Menyalin string S2 ke s1 sebanyak n karakter strcat(s1, s2) Menggabungkan dua string s1 dan s2 strncat(s1, s2, n) Menggabungkan n karakter s2 ke s1 strcmp(s1, s2) Membandingkan string s1 dengan s2, - Nilai negatif, apabila s1 < s2 - Nilai nol, apabila s1 == s2 - Nilai positif s1 > s2 strlen(s1) Menentukan panjang dari suatu string

96 Perhatikan contoh berikut ini (penggunaan strcpy dan strncpy)
#include <iostream.h> #include <string.h> void main() { char x[ ] ="Happy Birthday to You"; char y[25], z[15]; cout<<"String pada variabel x :" <<x; cout<<"\nString pada variabel y :" <<strcpy(y,x); strncpy(z, x, 14); //Tidak menyalin karakter null z[14] = '\0'; //Karakter null cout<<"\nString pada variabel z :" <<z; }

97

98

99 Jawaban Latihan (pencarian Data)
#include <stdio.h> Int cari (int data[ ], int n, int k) { Int posisi, I, ketemu; If (n <= 0) Poisisi = -1; Else Ketemu = 0; i=n-1; While ((i>= 0) && ! Ketemu) If (data[i] == k) Posisi = I; Ketemu = 1; } I --; If (!ketemu) Posisi = -1; } return posisi; }int main() {int data [8] = {6,2,7,2,5,8,4,2,9}; Int dicari = 8; Printf (“posisi %d dalam larik data; %d\n, divari, cari(data, 8, dicari)); Return 0;

100 SUBRUTIN

101 Sebuah program yang besar biasanya
disusun atas sejumlah bagian yg lebih kecil yg dinamakan subrutin atau subprogram. Tujuannya untuk memudahkan pengelolaan/pengembangan program Program subrutin_a() subrutin_b() subrutin_c()

102 Penulisan Algoritma untuk subrutin
SUBRUTIN NamaSubrutin(daftar-parameter) Pernyataan-1 …. Pernyataan-2 AKHIR-SUBRUTIN Dalam hal ini, bagian Disebut dengan judul subrutin. Sebuah subrutin dapat memberikan nilai balik ataupun tidak. Nilai balik adalah nilai yg diberikan ke pemanggilnya. Nilai ini ditentukan melalui notasi : NILAI-BALIK nilai Contoh : SUBRUTIN hitung_keliling_kotak(panjang, lebar) Keliling2 x(panjang + lebar) NILAI-BALIK keliling

103 Pencarian Data

104 Pencarian Data Pencarian merupakan tindakan untuk
mendapatkan suatu data dalam kumpulan data. Contohnya : Menemukan nomor telp pada buku telp, mencari istilah dalam kamus

105 Pencarian Sekuensial (pencarian linear)
Merupakan model pencarian paling sederhana yang dilakukan terhadap suatu kumpulan data. L[i]=k L [10,9,4,6,4,3,2,5], dimanakah posisi 4 yang pertama?dalam hal ini k adalah 4 dan k ditemukan pada posisi dengan indeks berupa 2

106 Algoritma Untuk menghasilkan Nilai balik berupa :
-1 jika data yang dicari tidak ditemukan dan Bilangan antara 0 sampai dengan n-1 (dengan n adalah jumlah elemen larik) jika data dicari ditemukan.

107 SUBRUTIN cari(L, n, k) JIKA n ≤ 0 MAKA posisi  -1 SEBALIKNYA ketemu  SALAH i  0 ULANG SELAMA (i<n-1) DAN (TIDAK ketemu) JIKA k = L[i] MAKA posisi  i ketemu  BENAR i I + 1 AKHIR-JIKA AKHIR ULANG JIKA TIDAK ketemu MAKA NILAI-BALIK posisi AKHIR-SUBRUTIN

108 #include <stdio.h>
int cari(int data[ ], int n, int k) { int posisi, i, ketemu; if(n <= 0) posisi = -1; else ketemu = 0; i = 1; while ((i < n-1) && ! Ketemu) if (data[i] == k) posisi = i; ketemu = 1; } i++; if (!ketemu) } return posisi; }int main() {int data [8] = {6,7,8,5,7,8,1,9}; int dicari = 8; printf (“posisi %d dalam larik data; %d\n, dicari, cari(data, 8, dicari)); return 0;

109 Hasil Posisi 5 dalam larik data: 3

110

111 #include <stdio.h>
int cari (int data[ ], int n, int k) { int posisi, i, ketemu; if (n <= 0) poisisi = -1; else ketemu = 0; i=n-1; while ((i>= 0) && ! ketemu) if (data[i] == k) posisi = i; ketemu = 1; } i--; if (!ketemu) posisi = -1; } return posisi; }int main() {int data [8] = {6,2,7,2,5,8,4,2,9}; int dicari = 8; printf (“posisi %d dalam larik data; %d\n, dicari, cari(data, 8, dicari)); return 0;

112 Hasil Posisi 8 dalam larik data: 5

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144


Download ppt "Algoritma & Pemrograman 2"

Presentasi serupa


Iklan oleh Google