Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma & Pemrograman 2. Ketentuan Perkuliahan Setiap perkuliahan datang tepat waktu, waktu toleransi 15 menit Berpakaian rapi dan sopan (Tidak berkaos.

Presentasi serupa


Presentasi berjudul: "Algoritma & Pemrograman 2. Ketentuan Perkuliahan Setiap perkuliahan datang tepat waktu, waktu toleransi 15 menit Berpakaian rapi dan sopan (Tidak berkaos."— 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 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 Bahasa C

7 Kode sumber : pertama.c #include 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 Int main() { printf (“Selamat Belajar C\n”); return 0; } Menyertakan berkas header stdio.h Tipe kode keluar program Awal tubuh fungsi main() Pernyataan untuk menyatakan string 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 TipeKeterangan charMenyatakan sebuah karakter (bisa berupa huruf seperti A dan a, digit seperti 0 atau 7, atau simbol seperti * dan &) doubleMenyatakan bilang titik mengambang (bil. Real) dengan ketelitian tinggi floatMenyatakan bilang titik mengambang (bil. Real) dengan ketelitian rendah intMenyatakan bilang bulat anatara s.d long intMenyatakan 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. 24 Misalnya, dulu berisi 23 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) TipeKeterangan intBerupa bil. Bulat antara s/d tanda pemisah ribuan tidak boleh digunakan long intBerupa 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 floatHarus ditulis dengan akhiran F atau f. Tanda pecahan berupa titik. Notasi sains seperti 2.2e+04 diperkenankan (artinya 2,2 x 10 4 ). Huruf e dapat ditulis dengan E doubleSeperti pada float,tetapi tidak perlu akhiran F atau f charLiteral 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 KarakterKeterangan \0Karakter NULL (Tulisannya berupa \ dan angka nol) \aKarakter bel \bKarakter backspace \fFormfeed \nLinefeed (disebut newline atau pindah baris) \rCarriage return \tTab horisontal \vTab vertikal \\Karakter \ \’Karakter petik tunggal \”Karakter petik ganda \?Karakter tanda tanya \DDDMenyatakan sebuah karakter yg nilai ASCII nya sama dengan nilai oktal DDD \xHHMenyatakan 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 : StringKeterangan “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 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 int main() { char info[25]; strcpy(info, “Nama : Budi”); cout << info; cout << “\n”; strcpy(info, “Info: Mahasiswa”); cout << info; return 0; }

23 String pada C selalu diakhiri dengan karater Null (\0), contohnya UNTAN\0 Kps[0] Kps[1] Kps[4]Kps[5] Kps[3] Kps[2] Indeks Varia bel kps

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 KodeKeterangan %uMenampilkan bilangan bulat tak bertanda %d atau %iMenampilkan bilangan bulat bertanda %oMenampilkan bilangan bulat tak bertanda dalam bentuk sistem okltal %xMenampilkan bilangan bulat tak bertanda dalam bentuk sistem heksadesimal. Huruf dinyatakan dengan huruf kecil %XMenampilkan bilangan bulat tak bertanda dalam bentuk sistem heksadesimal. Huruf dinyatakan dengan huruf besar %fMenampilkan bilngan real dengan notasi:dddd.dddddd %e atau %EMenampilkan bilangan real dalam bentuk notasi sains %g atau %GMenampilkan bilangan real dalam bentuk seperti %f, atau 5E tergantung pada kepresisian data 1(huruf L kecilAwalan 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); Printf(“Cacah %4d”, 23); Cacah2 Cacah 3 23 Cacah23

27 5200 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)

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”); 52Hai Hai

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 Operand Operator Ekspresi

30 Macam-macam Operator 1. Operator Unary, Operator yang hanya melibatkan sebuah perand. Contoh : +1, 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 OperatorPrioritasKetContoh -1Unary minus +1Unary plus+1 *2Perkalian2 * 3  6 2 * 3.0  6.0 /2pembagian7/2  3 7/2.0  /2  3.5 %2Sisa Penjumlahan 7%2  1 8%3  2 8%2  0 +3Penjumlahan2 + 3   Penguranga3 – 1  5 3 – 1.0  2.0

32 Contoh Jarak lintasan peluru (X) dapat dihitung dengan menggunakan rumus : Jarak = 2 x V 0 ² x sin ά x cos ά x cos ά / g #include 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. OperatorKet >Lebih dari >=Lebih dari atau sama dengan

34 Contoh pemakaian operator pembanding ekspresiHasil 5 > 11 (Benar) 4 < 51 (Benar) 4 <= 30 (salah) ‘A’ > ‘B’0 (salah) ‘B’ > ‘A’1 (benar) ‘A’ < ‘a’1 (benar)

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

36 contoh EkspresiKet 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 KodeKet %cData yang dibaca berupa sebuah karakter %sData yang dibaca berupa string %i atau %dData yg dibaca berupa sebuah bilangan bulat %e atau %fData yg dibaca berupa sebuah bil. Real %uData 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() PernyataanKet 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 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 PseudokodeKode C JIKA kondis benar MAKA pernyataan_1 … SEBALIKNYA pernyataan_2 … AKHIR-JIKA If (kondisi) { pernyataan_1; … } else { pernyataan_; … } JIKA kondisi benar MAKA pernyataan … AKHIR-JIKA 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 PseudokodeKode 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; break; case nilai3: pernyataan_31; pernyataan_32; break; case nilai3: pernyataan_31; pernyataan_32; break; default: pernyataan_n1 pernyataan_n2 break; }

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 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 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)) else printf (“kabisat \n”); return 0; {

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

49 #include 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”); else printf (“Data IP tidak valid\n); return 0; {

50 Latihan switch case #include 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”); break; case 3: printf(“Maret\n”); break; case 4: printf(“April\n”); break; case 5: printf(“Mei\n”); break; case 6: printf(“Juni\n”); break; case 7: printf(“Juli\n”); break; case 8: printf(“Agustus\n”); break; case 9: printf(“September\n”); break; case 10: printf(“Oktober\n”); break; case 11: printf(“November\n”); break; case 12: printf(“Desember\n”); break; default: printf(“Salah kode bulan\n”) } return 0; }

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: #include 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 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-UNTUKPernyataan forHasil 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 UNTUK bil = 1 S/D 8 STEP tampilkan(bil) AKHIR-UNTUK for(bil =1;bil<=8;bil+=3) printf(“%d\n”, bil); Catt: bil+= identik dengan bil=bil UNTUK bil = 10 S/D 5 STEP -1 tampilkan(bil) AKHIR-UNTUK for(bil =8;bil>=5;bil--) printf(“%d\n”, bil); Catt: bil-- identik dengan bil=bil UNTUK bil = 10 S/D 5 STEP -2 tampilkan(bil) AKHIR-UNTUK for(bil =8;bil>=5;bil-=2) printf(“%d\n”, bil); Catt: bil-=2 identik dengan bil=bil

56 Buatlah program untuk menyusun hasil seperti berikut : #include 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 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 1234 A[0] A[1] A[3] A[2]

64 Pada bahasa C Larik dideklarasikan dalam bentuk : Tipe _data nama_larik[jumlah _elemen] (dalam hal ini jumlah elemen harus berupa konstanta) DeklarasiKeterangan 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 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: NAMAL/PUMURHOBBY AndriL19Sport LiaP20Membaca KikiL18Main Musik TiaP21Hiking

68 Array Dimensi Dua Contoh data mahasiswa baru di fakultas Teknik Prodi Teknik Informatika Teknik Industri Teknik Elektro

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: L[0,0] L[0,3] 1L[1,0]L[1,1]L[1,2]L[1,3] 2L[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 namanip Larik peg dengan tipe elemen berupa struct

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 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); } pencacah++; } 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); } pencacah++; } 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{ int counter, hasil = 1; 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 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 "<

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 void main() { int v = 7, *p; p = &v; cout<<"Nilai v = "<

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 int main() { int *ptr, num; ptr = # *ptr = 100; cout<

89 STRING

90 String merupakan gabungan dua buah karakter atau lebih. String dapat berupa konstanta dan variabel, Contoh pada konstanta: cout<<”Topik terakhir adalah String”<

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

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 void main() { char teks[13]; cout<<"Masukan sebuah atau beberapa kata:"; cin.get(teks,sizeof(teks)); cout<<"Yang Anda masukan : "<

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 FungsiKeterangan 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 void main() { char x[ ] ="Happy Birthday to You"; char y[25], z[15]; cout<<"String pada variabel x :" <

97

98

99 Jawaban Latihan (pencarian Data) #include 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; } Else 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 SUBRUTIN NamaSubrutin(daftar-parameter) 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 AKHIR-SUBRUTIN

103 Pencarian Data

104 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

108 #include 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; } else i++; if (!ketemu) posisi = -1; } 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 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; } else 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. Ketentuan Perkuliahan Setiap perkuliahan datang tepat waktu, waktu toleransi 15 menit Berpakaian rapi dan sopan (Tidak berkaos."

Presentasi serupa


Iklan oleh Google