modul praktikum dasar pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...modul...

49

Upload: others

Post on 29-Oct-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –
Page 2: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

1

MODUL PRAKTIKUM Dasar Pemrograman

STANDAR KOMPETENSI Menerapkan prinsip-prinsip dasar pemrograman dalam penyelesaian suatu masalah dengan menggunakan bahasa C. No Kode Pokok Bahasan Unit Kompetensi 1 TIK.RPL01.002.01.01 Menggunakan Integrated Development Environment

(IDE) Visual C++ dan mengecek kesempurnaan IDE dengan program sederhana.

2 TIK.RPL01.002.01.02 Menggunakan komponen-komponen bahasa pemrograman C, seperti: struktur pengambilan keputusan, struktur pengulangan, operator dan fungsi yang tersedia.

3 TIK.RPL01.002.01.03 Menggunakan Tipe Data Abstrak Array, membaca data dari File dan menggunakan Fungsi sebagai bagian yang dapat dipanggil dari fungsi utama (main) atau fungsi lain.

4 TIK.RPL01.002.01.04 Menulis algoritme dari masalah sederhana dan mengimplementasikannya dalam bahasa pemrograman sebagai program.

5 TIK.RPL01.002.01.05 Memahami cara kerja algoritme-algoritme Pengurutan dan mengimplementasikannya dalam bahasa pemrograman sebagai program.

6 TIK.RPL01.002.01.06 Memahami cara kerja algoritme Pencarian dan Penggabungan, serta mengimplementasikannya dalam bentuk program/fungsi.

TEORI SINGKAT Pemrograman merupakan pekerjaan inti dari segala sesuatu yang berhubungan dengan komputer. Banyaknya kemudahan yang telah dirasakan manusia ketika bekerja dengan berbagai perangkat lunak aplikasi tidak lain karena ada pekerjaan sejumlah pembuat program yang menulis program sedemikian rupa sehingga perangkat lunak tersebut berpenampilan, berkemampuan seperti itu. Program merupakan urut-urutan perintah yang secara sistematis dibuat untuk menyelesaikan masalah tertentu dalam bahasa pemrograman tertentu. Berdasarkan hal tersebut maka sebelum dilakukan pembuatan program, maka seorang pemrogram tentu sudah harus tahu bagaimana cara menyelesaikan masalah atau algoritme yang akan dibuatkan programnya.

Page 3: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

2

Pada umumnya, terutama untuk masalah-masalah yang kompleks, sebelum dimulai melakukan penulisan program (dalam bahasa pemrograman) perlu terlebih dahulu dibuat algoritme yang merupakan urutan langkah-langkah penyelesaian dari masalah tersebut dalam bentuk pseudocode. Selain harus dapat menuliskan algoritmenya, seorang pemrogram tentu harus pula mengerti tata bahasa dari bahasa pemrograman yang akan dipergunakannya. Apa-apa yang dituliskan pemrogram dalam bahasa pemrograman disebut sebagai kode sumber (source code). Selanjutnya untuk melihat hasil pemecahan masalah tersebut, kode sumber terlebih dahulu harus di compile menjadi kode-kode biner dan di hubungkan (link) dengan berbagai kode-kode biner lain sebelum di eksekusi. Meskipun pada saat ini telah banyak banyak bahasa pemrograman yang dapat dipergunakan, dalam praktikum ini mahasiswa akan diberikan ketrampilan untuk membuat program secara terstruktur dalam bahasa C untuk menyelesaikan berbagai masalah dasar yang diperlukan untuk membuat program kompleks atau pun perangkat lunak. DAFTAR PERTANYAAN 1. Jelaskan dengan kata-kata sendiri apa yang dimaksud dengan Program! 2. Tuliskan minimal 5 bahasa pemrograman yang dapat dipergunakan

untuk membuat program. 3. Apa perlunya menuliskan algoritme sebelum membuat program? 4. Gambarkan dalam bentuk diagram, kegiatan-kegiatan yang dilakukan

seseorang dalam memecahkan masalah dengan menggunakan komputer yang dimulai dari orang tersebut menemukan masalah sampai dengan hasil dan setiap masukan/keluaran dari kegiatan tersebut.

5. Beri penjelasan apa yang dimaksud dengan Integrated Development Environment (IDE).

Pokok Bahasan: IDE Visual C++ Kode Pokok Bahasan: TIK.RPL01.002.01.01 Menggunakan Integrated Development Environment (IDE) Visual C++ dan mengecek kesempurnaan IDE dengan program sederhana

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Menjalankan IDE Visual C++, menuliskan program yang dapat mencetak keluaran ke layar, mengkompilasi dan menjalankan program tersebut.

Kode sumber dan keluaran hasil eksekusi

1,00 7

Page 4: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

3

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

2 Mendeklarasikan variabel dari berbagai TDE dan mengoperasikan variabel-variabel tersebut.

Kode sumber dan keluaran hasil eksekusi

1,00 9

3 Mendeklarasikan variabel dengan Tipe Data Penunjuk dan mengoperasikan data yang ditunjuk oleh tipe data tersebut

Kode sumber dan keluaran hasil eksekusi

1,00 11

Pokok Bahasan: Komponen Bahasa Pemrograman C Kode Pokok Bahasan: TIK.RPL01.002.01.02 Menggunakan komponen-komponen bahasa pemrograman C, seperti: struktur pengambilan keputusan, struktur pengulangan, operator dan fungsi yang tersedia

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Menggunakan struktur pengambilan keputusan if dan if-else

Kode sumber dan keluaran hasil eksekusi

1,00 17

2 Menggunakan struktur pengulangan while, do-while dan for

Kode sumber dan keluaran hasil eksekusi

1,00 18

3 Menggunakan operator-operator dan fungsi aritmatika yang telah tersedia dan membuat cara memvalidasi masukan agar sesuai batasan nilai yang diinginkan

Kode sumber dan keluaran hasil eksekusi

1,00 20

Pokok Bahasan: Array, File dan Fungsi Kode Pokok Bahasan: TIK.RPL01.002.01.03 Menggunakan Tipe Data Abstrak Array, membaca data dari File dan menggunakan Fungsi sebagai bagian yang dapat dipanggil dari fungsi utama (main) atau fungsi lain

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Membuat fungsi yang dapat mencetak isi dari suatu array

Kode sumber dan keluaran hasil eksekusi

0,50 24

2 Membuat fungsi yang dapat membaca masukan dari file text

Kode sumber dan keluaran hasil eksekusi

0,50 26

3 Membuat fungsi yang dapat memanggil diri, sehingga dapat memecahkan masalah yang bersifat rekursif

Kode sumber dan keluaran hasil eksekusi

1,00 26

Page 5: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

4

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

4 Membuat fungsi yang dapat menghasilkan deret Fibonacci dan menyimpan keluarannya dalam file text

Kode sumber dan keluaran hasil eksekusi

1,00 27

Pokok Bahasan: Algoritme sebagai dasar Pembuatan Program Kode Pokok Bahasan: TIK.RPL01.002.01.04 Menulis algoritme dari masalah sederhana dan mengimplementasikannya dalam bahasa pemrograman sebagai program

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Menuliskan psedocode dari masalah yang akan dibuat programnya dan menerjemahkan pseudocode menjadi program dalam bahasa C

Kode sumber dan keluaran hasil eksekusi

1,00 32

2 Memisahkan komponen -komponen fungsional menjadi modul/fungsi yang saling berkomunikasi

Kode sumber dan keluaran hasil eksekusi

1,00 33

3 Mengimplementasikan algoritme Pembagian Persekutuan Terbesar sebagai program yang moduler

Kode sumber dan keluaran hasil eksekusi

1,00 34

Pokok Bahasan: Algoritme Pengurutan Kode Pokok Bahasan: TIK.RPL01.002.01.05 Memahami cara kerja algoritme-algoritme Pengurutan dan mengimplementasikannya dalam bahasa pemrograman sebagai program

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Menuliskan fungsi pengurutan gelembung (bubble sort) yang dapat berkomunikasi dengan fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 39

2 Menuliskan fungsi pengurutan pilih (selection sort) yang dapat berkomunikasi dengan fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 40

3 Menuliskan fungsi pengurutan sisip (insertion sort) yang dapat berkomunikasi dengan fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 41

Page 6: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

5

Pokok Bahasan: Algoritme Pencarian dan Penggabungan Kode Pokok Bahasan: TIK.RPL01.002.01.06 Memahami cara kerja algoritme Pencarian dan Penggabungan mengimplementasikannya dalam bahasa pemrograman sebagai program

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Menuliskan fungsi pencarian linear yang dapat dipanggil oleh fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 44

2 Menuliskan fungsi pencarian biner yang dapat dipanggil oleh fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 46

3 Menuliskan fungsi penggabungan array yang dapat dipanggil oleh fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 47

Page 7: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

6

Pokok Bahasan I IDE Visual C++

Kode Pokok Bahasan: TIK.RPL01.002.01.01 Deskripsi Pokok Bahasan: Menggunakan Integrated Development Environment (IDE) Visual C++ untuk membuat program-program sederhana

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Menjalankan IDE Visual C++, menuliskan program yang dapat mencetak keluaran ke layar, mengkompilasi dan menjalankan program tersebut.

Kode sumber dan keluaran hasil eksekusi

1,00 7

2 Mendeklarasikan variabel dari berbagai TDE dan mengoperasikan variabel-variabel tersebut.

Kode sumber dan keluaran hasil eksekusi

1,00 9

3 Mendeklarasikan variabel dengan Tipe Data Penunjuk dan mengoperasikan data yang ditunjuk oleh tipe data tersebut

Kode sumber dan keluaran hasil eksekusi

1,00 11

TUGAS PENDAHULUAN

1. Pelajari cara menggunakan IDE Microsoft C++ 2. Pelajari bentuk umum suatu program yang ditulis dalam bahasa C 3. Pelajari bagaimana suatu nilai tersimpan pada komputer 4. Ketahui cara pencetakan keluaran program ke perangkat output standar DAFTAR PERTANYAAN

1. Tuliskan spesifikasi dari perangkat keras yang saudara pergunakan. 2. Tuliskan jenis dan versi dari Sistem Operasi yang dipergunakan. 3. Tuliskan jenis dan versi dari IDE yang dipergunakan. 4. Apakah yang dimaksud dengan tipe data dan variable?

Page 8: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

7

TEORI SINGKAT

Setelah mempunyai algoritme dari suatu permasalahan, seorang pemrogram terlebih dahulu harus menuliskan/menerjemahkan algoritmenya tersebut menjadi program dengan minimal menggunakan fasilitas text editor yang dapat memfasilitasi penulisan kode sumbernya. Meskipun demikian pada saat ini telah banyak fasilitas lain yang jauh lebih baik dari sekedar text editor yang dapat dipergunakan untuk menulis kode sumber, mengkompilasi kode sumber menghubungkan dengan berbagai sumber lain dan kemudian menjalankannya. Perangkat lunak yang demikian dikenal dengan nama Integrated Development Environment (IDE). Dengan adanya IDE ini maka banyak kemudahaan yang diperoleh pemrogram. IDE Visual C++ adalah sebuah IDE yang dapat dipergunakan untuk membangun sebuah perangkat lunak yang akan ditulis dalam bahasa C++. Cara penggunaan IDE ini, seperti layaknya program aplikasi lainnya, menggunakan menu-menu dan icon-icon sebagai perintah untuk menjalankan fungsi yang ada pada IDE tersebut. Dalam pokok bahasan ini mahasiswa diharapkan dapat memahami apa itu IDE, fungsi-fungsi yang dapat dijalankan oleh IDE dalam membantu pemrogram membuat program-program sederhana dalam bahasa pemrograman C. LAB SETUP

Siapkan seperangkat komputer dengan jumlah memory yang cukup yang mampu menjalankan compiler dari bahasa pemrograman C. Yakinkan bahwa semua seperangkat yang diperlukan bekerja dengan sempurna. ELEMEN KOMPETENSI 1

Deskripsi: Menggunakan IDE Visual C++ untuk membuat program Hello Word! Kompetensi Dasar: Mahasiswa mampu menjalankan IDE Visual C++, menuliskan program yang dapat mencetak keluaran ke layar (program Hello Word!), mengkompilasi dan menjalankan program tersebut. Latihan 1 a. Dari sistem operasi, click icon Microsoft Visual C++ b. Pilih menu New c. Pada tab Projects pilih Win32 Console Application d. Isi location dengan nama folder tempat anda bekerja dan isi Project Name

dengan nama proyek LatihanA

Page 9: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

8

e. Pada pilihan jenis Win32 Console Application pilih ‘A “Hello Word!” application’

f. Jawab pertanyaan berikut: (i) Pada FileView, folder apa saja yang tersedia?

Page 10: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

9

(ii) Periksa masing-masing folder dan jelaskan apa isi dari masing-masing folder tersebut.

g. Dari menu Build, cobalah sub-sub menu: Compile …, Build …, Rebuild All, Clean dan !Execute

h. Tangkap penampilan layar untuk setiap Menu-Submenu tersebut dan beri penjelasan terhadap tampilan tersebut.

i. Simpan proyek LatihanA dengan menu File Save Workspace dan selesaikan latihan 1, dengan memilih menu File – Exit

Latihan 2 a. Jalankan kembali IDE Visual C++, lalu buka proyek LatihanA yang lalu

melalui menu: File – Open Workspace LatihanA.dsw b. Ubah statement printf("Hello World!\n") dengan printf("\nPercobaan

Pemrograman selesai dengan baik\n") c. Ulangi lagi meng compile dan link kode sumber tersebut, bila tidak ada

kesalahan, jalankan program tersebut. d. Tangkap penampilan layar dan beri penjelasan terhadap tampilan

tersebut.

ELEMEN KOMPETENSI 2

Deskripsi: Menggunakan berbagai Tipe Data Elementer bahasa C dan operasi-operasi pada TDE tersebut Kompetensi Dasar: Mahasiswa mampu mendeklarasikan variabel dari berbagai TDE dan mengoperasikan variabel-variabel tersebut.

Latihan 3 a. Lakukan pencetakan berbagai jenis Tipe Data Elementer, dengan

menambahkan statement-statement berikut pada awal program: int bilInteger = 6 ; printf("\nCetak bilangan integer : %d \n",bilInteger); float bilFloat = 6. ; printf("\nCetak bilangan float : %f \n",bilFloat); char aChar = 'A' ; printf("\nCetak karakter : %c \n",aChar); char sHallo[] = "Hallo"; printf("\nCetak string : %s \n",sHallo);

b. Compile dan link kode sumber tersebut, bila tidak ada kesalahan, jalankan program tersebut.

c. Tangkap penampilan layar dan beri penjelasan terhadap tampilan tersebut. Latihan 4

Page 11: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

10

a. Jalankan kembali IDE Visual C++, lalu buat proyek LatihanB yang lalu melalui menu: File – Open Workspace LatihanB.dsw

b. Pada pilihan jenis Win32 Console Application pilih ‘A simple application’ c. Deklarasikan variabel integer A, B dan C. d. Deklarasikan variabel float x, y dan z. e. Assign variabel A dengan nilai 20, variabel B dengan nilai 3 dan variabel C

sebagai hasil bagi A dengan B. f. Assign variabel x dengan nilai 20, variabel y dengan nilai 3 dan variabel z

sebagai hasil bagi x dengan y. g. Tulis nilai A, B, dan C dengan statement berikut:

printf("\nNilai A = %d, Nilai B = %d, Nilai C = %d \n", A, B, C);

h. Tulis nilai x, y, dan z dengan statement berikut: printf("\nNilai x = %f, Nilai y = %f, Nilai z = %f \n", x, y, z);

i. Berdasar tampilan layar, tulis kesimpulan saudara. j. Lakukan sendiri berbagai operasi yang dapat dilakukan pada variabel-

variabel tersebut (kali, bagi, modulo, tambah, kurang) yang menyertakan tanda kurung buka dan tutup sebagai pengubah hierarchie operasi.

k. Tangkap penampilan layar dan beri penjelasan terhadap tampilan tersebut. l. Berdasar percobaan-percobaan tersebut, tulis kesimpulan saudara. Latihan 5 a. Lanjutkan percobaan pada proyek LatihanB untuk mencoba tipe data char

dan string. b. Sisipkan deklarasi berikut pada latihanB.cpp

char hk = 'k' ; char hx = 'x' ; char txt[] = "Text" ;

c. Tambahkan statement-statement berikut, pada baris yang tepat: printf("\nNilai hk = %c, Nilai hx = %c, Nilai txt = %s \n",

hk, hx, txt); printf("\n %d \n", hk ) ; printf("\n %d \n", hx) ;

printf("\n %d \n", hk > hx) ; printf("\n %d \n", hk < hx) ; printf("\n %d \n", hk == txt[2]) ; printf("\n %d \n", hx == txt[2]) ; printf("\n %c%c \n", txt[1], txt[2]) ;

d. Compile dan jalankan kode sumber tersebut kemudian kerjakan tugas/jawab pertanyaan berikut: (i) Jelaskan arti dari setiap statement-satement baru tersebut

Page 12: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

11

(ii) Apakah arti simbol >, <, dan == Latihan 7 a. Perbaiki latihanB.cpp, sehingga semua data masukan dilakukan dari

peralatan masukan standar dengan menggunakan fungsi scanf. Hal ini dapat dilakukan dengan mengganti deklarasi-deklarasi variable yang langsung memberikan nilai dengan hanya mendeklarasikan saja dan kemudian menambahkan pernyataan masukan (input statement) untuk variabel tersebut, seperti mengganti deklarasi int A = 20 ; dengan serangkaian statement: int A ; //tanpa = 20 //… //dan dua stament berikut (letakkan pada baris yang tepat) printf("\nInput Nilai A: "); //statement ini untuk apa? scanf("%d", &A) ;

b. Lakukan penggantian tersebut untuk semua data masukan (bukan hasil manipulasi).

c. Compile dan jalankan kode sumber tersebut kemudian kerjakan tugas/jawab pertanyaan berikut: (i) Apa keuntungan dari cara terakhir ini? (ii) Jelaskan arti dari fungsi scanf! (iii) Mengapa perlu ada pernyataan pendahulu yang menyertakan printf?

ELEMEN KOMPETENSI 3

Deskripsi: Menggunakan Tipe Data Penunjuk. Kompetensi Dasar: Mahasiswa mampu mendeklarasikan variabel dengan Tipe Data Penunjuk dan mengoperasikan data yang ditunjuk oleh tipe data tersebut.

Page 13: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

12

Latihan 8 a. Tambahkan statement-statement berikut untuk memahami Tipe Data

Penunjuk (letakkan pada tempat yang tepat). int * P ; double * p ; //… p = &x ; printf("\nNilai yang ditunjuk oleh p = %f", *p); P = &A ; printf("\nNilai yang ditunjuk oleh P = %d", *P); printf("\nNilai dari penunjuk p = %d", p); printf("\nNilai dari penunjuk P = %d", P);

b. Compile dan jalankan kode sumber tersebut kemudian kerjakan

tugas/jawab pertanyaan berikut: (i) Jelaskan arti setiap baris yang ditambahkan tersebut! (ii) Jelaskan apa yang dimaksud dengan Tipe Data Penunjuk! (iii) Jelaskan dengan gambar variabel P dan p! (iv) Menurut saudara apa manfaat dan kekhususan Tipe Data ini?

Page 14: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

13

FORM UMPAN BALIK

Elemen Kompetensi Tingkat Kesulitan Tingkat Ketertarikan Waktu

Penyelesaian dalam menit

Menjalankan IDE Visual C++, menuliskan program yang dapat mencetak keluaran ke layar, mengkompilasi dan menjalankan program tersebut.

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Menggunakan berbagai Tipe Data Elementer bahasa C dan operasi-operasi pada TDE tersebut

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Menggunakan Tipe Data Penunjuk

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Page 15: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

14

Pokok Bahasan II Komponen Bahasa Pemrograman C

Kode Pokok Bahasan: TIK.RPL01.002.01.02 Deskripsi Pokok Bahasan: Menggunakan komponen-komponen bahasa pemrograman C, seperti: struktur pengambilan keputusan, struktur pengulangan, operator dan fungsi yang tersedia.

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Menggunakan struktur pengambilan keputusan if dan if-else

Kode sumber dan keluaran hasil eksekusi

1,00 17

2 Menggunakan struktur pengulangan while, do-while dan for

Kode sumber dan keluaran hasil eksekusi

1,00 18

3 Menggunakan operator-operator dan fungsi aritmatika yang telah tersedia dan membuat cara memvalidasi masukan agar sesuai batasan nilai yang diinginkan

Kode sumber dan keluaran hasil eksekusi

1,00 20

TUGAS PENDAHULUAN

1. Pelajari semua operator aritmatika dan lojik yang ada pada bahasa pemrograman C.

2. Pelajari hierarchie operasi aritmatika dan juga lojik serta penggunaan tanda kurung buka dan kurung tutup.

3. Pelajari statement pada bahasa pemrograman C yang dapat merealisasi struktur pengambilan keputusan.

4. Pelajari statement pada bahasa pemrograman C yang dapat merealisasi struktur pengulangan.

5. Pelajari cara penggunaan fungsi aritmatik yang telah ada pada library.

Page 16: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

15

DAFTAR PERTANYAAN

1. Gambar bagan alir (flow chart) struktur pengambilan keputusan if dan if-else. 2. Gambar bagan alir (flow chart) struktur pengambilan pengulangan while

dan do-while. 3. Kombinasikan struktur pengambilan dan pengulangan, sedemikian rupa

sehingga ada struktur pengulangan while didalam struktur pengambilan keputusan if-else.

4. Kombinasikan struktur pengambilan dan pengulangan, sedemikian rupa sehingga ada struktur pengambilan keputusan if didalam struktur pengulangan do-while.

TEORI SINGKAT

Program merupakan kumpulan dari statement. Dalam pemrograman terstruktur program juga merupakan kumpulan terurut dari sejumlah struktur yang lebih kecil, dimana setiap struktur tersebut pada akhirnya adalah sekumpulan statement. Dua diantara struktur penting adalah struktur pengambilan keputusan dan struktur pengulangan. Struktur pengambilan keputusan merupakan struktur yang terdiri atas beberapa kelompok struktur yang lebih kecil, dimana pelaksanaan struktur tersebut tergantung dari kondisi tertentu. Dalam hal ini kondisi diartikan sebagai suatu ekspresi yang nilainya salah atau benar. Struktur pengambilan keputusan pada bahasa pemrograman C, dapat direalisasikan dalam bentuk if maupun if-else statement. Bentuk umum struktur if (tanpa else) dapat dituliskan sebagai berikut: if (kondisi)

{ // struktur S, dilaksanakan bila kondisi bernilai benar } Dalam struktur ini kondisi akan diperiksa dulu nilai kebenarannya, apabila benar maka struktur S (dibatasi oleh kurawal buka – kurawal tutup) akan dilaksanakan, sebaliknya bila nilai kondisi adalah salah, maka struktur S tidak dilaksanakan. Selain daripada bentuk struktur if tersebut, pada bahasa pemrograman C juga terdapat modifikasi daripada bentuk if tersebut yang dikenal sebagai struktur if-else. Bentuk umum struktur if-else dapat dituliskan sebagai berikut: if (kondisi) { //struktur S1, dilaksanakan bila kondisi bernilai benar } else { //struktur S2, dilaksanakan bila kondisi bernilai salah }

Page 17: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

16

Struktur S1 akan dilaksanakan bila nilai kondisi adalah benar, sebaliknya bila nilai kondisi adalah salah maka struktur S2 yang akan dilaksanakan. Variasi lain dari struktur pengambilan keputusan pada bahasa pemrograman C difasilitasi dengan statement switch. Struktur pengulangan berguna untuk mengulangi sejumlah statement atau struktur yang lebih kecil. Jumlah pengulangan akan tergantung pada nilai dari kondisi untuk keluar dari struktur pengulangan tersebut. Struktur pengulangan pada bahasa pemrograman C, dapat direalisasikan dalam bentuk while, do-while maupun for statement. Bentuk umum struktur while dapat dituliskan sebagai berikut: while (kondisi) { //struktur S }

Struktur S akan selalu dilaksanakan selama nilai kondisi bernilai benar, namun bila saja pada awalnya nilai kondisi yang cek bernilai salah, maka struktur S tersebut tidak pernah dilaksanakan. Bila nilai kondisi awal adalah benar, maka dalam struktur S harus ada statement yang membuat kondisi yang dicek tersebut bernilai salah untuk keluar dari pengulangan tersebut. Pada struktur pengulangan do-while yang mempunyai bentuk umum: do { //struktur S } while (kondisi) ;

stuktur S akan selalu dilaksanakan minimal satu kali. Selanjutnya bila saja nilai kondisi tersebut diubah menjadi salah oleh salah satu statement dalam struktur S, maka pengulangan tersebut akan segera terhenti. Selain kedua struktur tersebut, bahasa pemrograman C juga dilengkapi dengan struktur for yang mempunyai bentuk: for ( init; kondisi; pengubah-kondisi) { //blok S }

yang mempunyai pengertian sama sekumpulan statement/struktur berikut: while (kondisi) { //blok S

pengubah-kondisi ; }

Dalam pokok bahasan ini mahasiswa diharapkan dapat memahami seluruh bentuk struktur yang difasilitasi oleh bahasa pemrograman C, dan juga menggunakannya untuk kasus-kasus yang memerlukan struktur-struktur tersebut.

Page 18: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

17

LAB SETUP

Siapkan seperangkat komputer dengan jumlah memory yang cukup yang mampu menjalankan compiler dari bahasa pemrograman C. Yakinkan bahwa semua seperangkat yang diperlukan bekerja dengan sempurna. ELEMEN KOMPETENSI 1

Deskripsi: Menggunakan struktur pengambilan keputusan dalam bahasa pemrograman C. Kompetensi Dasar: Mahasiswa mampu menggunakan struktur pengambilan keputusan if dan if-else. Latihan 1 a. Buat proyek baru (beri nama sesuai keinginan saudara) untuk aplikasi

konsol (Win32 Console Application). b. Pada pilihan jenis Win32 Console Application pilih ‘An empty project’. c. dari menu File – New – C++ source file, (beri nama sesuai keinginan

saudara) tulis kode sumber berikut: #include <stdio.h> void main(int argc, char* argv[]) { double a, b ; printf ("\nNilai a: ") ; scanf ("%lf", &a) ; printf ("\nNilai b: ") ; scanf ("%lf", &b) ;

if (a>0) { printf("\nNilai a lebih besar dari nol\n"); } if (b<0) { printf("\nNilai b lebih kecil dari nol\n"); } if (a>b) { printf("\nNilai a lebih besar dari b\n"); } else { printf("\nNilai b lebih besar dari a\n"); }

printf("\nPercobaan Pemrograman selesai dengan baik\n"); }

d. Compile dan jalankan kode sumber tersebut kemudian kerjakan tugas/jawab pertanyaan berikut:

Page 19: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

18

(i) Jelaskan arti dari setiap statement pada kode sumber tersebut. (ii) Coba beri tanda comment (//) sebelum #include <stdio.h>,

kemudian compile kembali kode sumber tersebut. Berdasarkan hal tersebut, jelaskan apa stdio.h tersebut.

ELEMEN KOMPETENSI 2

Deskripsi: Menggunakan struktur pengulangan dalam bahasa pemrograman C. Kompetensi Dasar: Mahasiswa mampu menggunakan struktur pengulangan while, do-while dan for. Latihan 2 a. Ubah kode sumber saudara sehingga menjadi sebagai berikut:

#include <stdio.h> void main(int argc, char* argv[]) { double a, b ; int y = 1 ;

while (y == 1) { printf ("\nNilai a: ") ; scanf ("%lf", &a) ; printf ("\nNilai b: ") ; scanf ("%lf", &b) ;

if (a>0) { printf("\nNilai a lebih besar dari nol\n"); } if (b<0) { printf("\nNilai b lebih kecil dari nol\n"); } if (a>b) { printf("\nNilai a lebih besar dari b\n"); } else { printf("\nNilai b lebih besar dari a\n"); }

printf ("\nAkan mencoba lagi ? (1 = Ya) ==> ") ; scanf ("%d", & y) ; } printf("\nPercobaan Pemrograman selesai dengan baik\n"); }

b. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari setiap statement tambahan tersebut.

Page 20: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

19

Latihan 3 a. Ubah struktur pengulangan while menjadi dengan struktur do-while,

dengan mengubah kode sumber sehingga menjadi sebagai berikut:

#include <stdio.h> void main(int argc, char* argv[]) { double a, b ; int y = 0 ; do { printf ("\nNilai a: ") ; scanf ("%lf", &a) ; printf ("\nNilai b: ") ; scanf ("%lf", &b) ; if (a>0) { printf("\nNilai a lebih besar dari nol\n"); } if (b<0) { printf("\nNilai b lebih kecil dari nol\n"); } if (a>b) { printf("\nNilai a lebih besar dari b\n"); } else { printf("\nNilai b lebih besar dari a\n"); } printf ("\nAkan mencoba lagi ? (1 = Ya) ==> ") ; scanf ("%d", & y) ; } while (y == 1) ; printf("\nPercobaan Pemrograman selesai dengan baik\n"); }

b. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap tambahan/perubahan statement tersebut.

Page 21: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

20

Latihan 4 a. Ubahlah kode sumber diatas, sehingga dapat melakukan pengulangan

dengan jumlah tertentu, dengan menggunakan struktur pengulangan dengan atatement for, seperti berikut:

#include <stdio.h> void main(int argc, char* argv[]) { double a, b ; int counter, maxCont = 3 ; for (counter = 0; counter < maxCont; counter = counter + 1 ) { printf ("\nNilai a: ") ; scanf ("%lf", &a) ; printf ("\nNilai b: ") ; scanf ("%lf", &b) ; if (a>0) { printf("\nNilai a lebih besar dari nol\n"); } if (b<0) { printf("\nNilai b lebih kecil dari nol\n"); } if (a>b) { printf("\nNilai a lebih besar dari b\n"); } else { printf("\nNilai b lebih besar dari a\n"); } } printf("\nPercobaan Pemrograman selesai dengan baik\n"); }

b. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap tambahan/perubahan statement tersebut. ELEMEN KOMPETENSI 3 Deskripsi: Menggunakan operator dan fungsi aritmatika dan menggunakan struktur pengulangan untuk menghindari nilai yang tidak valid. Kompetensi Dasar:

Page 22: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

21

Mahasiswa mampu menggunakan operator-operator dan fungsi aritmatika yang telah tersedia dan membuat cara memvalidasi masukan agar sesuai batasan nilai yang diinginkan.

Latihan 5 a. Buat proyek baru (beri nama sesuai keinginan saudara) untuk aplikasi

konsol (Win32 Console Application). b. Pada pilihan jenis Win32 Console Application pilih ‘An empty project’. c. dari menu File – New – C++ source file, (beri nama sesuai keinginan

saudara) tulis kode sumber berikut:

#include <stdio.h> #include <math.h> void main () { int a, b ; do { printf ("\nNilai a: ") ; scanf ("%d", &a) ; printf ("\nNilai b: ") ; scanf ("%d", &b) ; } while (a < b ) ; if (b>0) { printf("\n %d + %d = %d\n", a, b, a+b ); printf("\n %d - %d = %d\n", a, b, a-b ); printf("\n %d * %d = %d\n", a, b, a*b ); printf("\n %d mod %d = %d\n", a, b, a%b ); printf("\n %d & %d = %d\n", a, b, a&b ); printf("\n %d | %d = %d\n", a, b, a|b ); printf("\n %d ^ %d = %d\n", a, b, a^b ); printf("\n ~%d = %d \n", a, ~a ); printf("\n %d << %d = %d\n", a,b, a<<b ); printf("\n %d >> %d = %d\n", a,b, a>>b ); printf("\n sqrt ( %d )= %lf \n", a, sqrt (a) ); printf("\n sqrt ( %d )= %lf \n", b, sqrt (b) ); printf("\n log ( %d )= %lf \n", a, sqrt (a) ); printf("\n log ( %d )= %lf \n", b, sqrt (b) ); printf("\n exp ( %d )= %lf \n", a, exp (a) ); printf("\n exp ( %d )= %lf \n", b, exp (b) ); } printf("\nPercobaan Pemrograman selesai dengan baik\n"); }

d. Compile dan jalankan kode sumber tersebut kemudian kerjakan tugas/jawab pertanyaan berikut: (i) Jelaskan arti dari setiap statement pada kode sumber tersebut

Page 23: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

22

(ii) Beri tanda comment (//) sebelum #include <math.h>, kemudian compile kembali kode sumber tersebut. Berdasarkan hal tersebut, jelaskan apakah kegunaan dari math.h tersebut

FORM UMPAN BALIK

Elemen Kompetensi Tingkat Kesulitan Tingkat Ketertarikan Waktu

Penyelesaian dalam menit

Menggunakan struktur pengambilan keputusan if dan if-else

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Menggunakan struktur pengulangan while, do-while dan for

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Menggunakan operator-operator dan fungsi aritmatika yang telah tersedia dan membuat cara memvalidasi masukan agar sesuai batasan nilai yang diinginkan

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Page 24: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

23

Pokok Bahasan III Array, File dan Fungsi

Kode Pokok Bahasan: TIK.RPL01.002.01.03

Deskripsi Pokok Bahasan: Menggunakan Tipe Data Abstrak Array, membaca data dari File dan menggunakan Fungsi sebagai bagian yang dapat dipanggil dari fungsi utama (main) atau fungsi lain

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Membuat fungsi yang dapat mencetak isi dari suatu array

Kode sumber dan keluaran hasil eksekusi

0,50 24

2 Membuat fungsi yang dapat membaca masukan dari file text

Kode sumber dan keluaran hasil eksekusi

0,50 26

3 Membuat fungsi yang dapat memanggil diri, sehingga dapat memecahkan masalah yang bersifat rekursif

Kode sumber dan keluaran hasil eksekusi

1,00 26

4 Membuat fungsi yang dapat menghasilkan deret Fibonacci dan menyimpan keluarannya dalam file text

Kode sumber dan keluaran hasil eksekusi

1,00 27

TUGAS PENDAHULUAN

1. Pelajari bagaimana bahasa pemrograman C merealisasikan struktur data Array. 2. Pelajari cara pembacaan data dari suatu file text. 3. Pelajari bagaimana fungsi yang satu berkomunikasi dengan fungsi lain. 4. Ketahui cara penulisan fungsi selain dari fungsi main. DAFTAR PERTANYAAN

1. Tuliskan bentuk umum deklarasi dari suatu array dalam bahasa pemrograman C.

2. Tuliskan bentuk umum fungsi dalam bahasa pemrograman C. 3. Tuliskan statement-statement yang berhubungan dengan file. TEORI SINGKAT

Page 25: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

24

Variabel tidak lain adalah besaran yang nilainya dapat berubah. Bila saja variabel tersebut dapat menyimpan lebih dari satu nilai dengan tipe yang sama, maka variabel tersebut dikatakan sebagai variabel array. Untuk membedakan nilai yang satu dengan yang lain, digunakan indeks yang pada bahasa pemrograman C dimulai dari 0. Notasi A[2] menunjukkan nilai dari variabel array A dengan indeks 2 (urutan ketiga). Dalam pemrograman, struktur data Array sangat diperlukan untuk memanipulasi sejumlah data secara bersama-sama. Bila saja data yang akan dimanipulasi secara bersama tersebut adalah bertipe integer, maka array tersebut disebut sebagai array integer, demikian juga bila data yang akan dimanipulasi adalah float, maka array tersebut disebut sebagai array float, dstnya. Pada C string tidak lain adalah array dari karakter yang diakhiri dengan karakter NULL (\0) pada akhir string tersebut. Sehubungan dengan banyaknya data yang akan dimanipulasi dengan array, akan muncul masalah pemasukan data yang akan diolah tersebut. Salah satu cara yang paling baik untuk ini adalah menyimpan data yang akan dimasukan tersebut dalam suatu file text. Karena hal itu maka seorang pemrogram perlu tahu bagaimana membaca/menulis data dari/ke suatu file text. Dalam paradigma terstruktur, suatu program perlu diupayakan sebagai suatu program haruslah moduler, yaitu setiap kesatuan fungsi dikodekan dalam fungsi mandiri yang dapat dipanggil oleh fungsi yang lain. Oleh karena itu dalam bahasa pemrograman C, secara struktur program tak lain adalah kumpulan fungsi (juga disebut method) yang saling berkomunikasi, dimana fungsi awal harus bernama main. Hanya dalam program yang sangat sederhana semua statement ada dalam fungsi main. LAB SETUP

Siapkan seperangkat komputer dengan jumlah memory yang cukup yang mampu menjalankan compiler dari bahasa pemrograman C. Yakinkan bahwa semua seperangkat yang diperlukan bekerja dengan sempurna. ELEMEN KOMPETENSI 1

Deskripsi: Mencetak isi dari array. Kompetensi Dasar: Mahasiswa mampu membuat fungsi yang dapat mencetak isi dari suatu array. Latihan 1

Page 26: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

25

a. Buat proyek baru (beri nama sesuai keinginan saudara) untuk aplikasi konsol (Win32 Console Application).

b. Pada pilihan jenis Win32 Console Application pilih ‘An empty project’. c. Tulis pada file kode sumber (beri nama sesuai keinginan saudara) fungsi

main yang dapat memanggil fungsi lain untuk mencetak isi dari suatu array.

#include <stdio.h> void tulisArrayDouble (int jA, double X[]) ; void tulisArrayInteger (int jA, int X[]) ; void tulisArrayChar (char X[]) ; int main(int argc, char* argv[]) { double A[] = {2.5, 1.75, 0.0, -1.25, 6.75, 12.5, 1.5, 10.0, -11.25, 6.5}; int I[] = { 2, 1, 0, -5, 6, 5, -101, 100 } ; char text[] = "Selamat Praktikum" ; char *textLain = "Semoga Bermanfaat" ; int jEl ; printf ("\n") ; jEl = sizeof A / sizeof (double) ; tulisArrayDouble (jEl, A) ; printf ("\n") ; jEl = sizeof I / sizeof (int) ; tulisArrayInteger (jEl, I) ; printf ("\n") ; tulisArrayChar ( text ) ; printf ("\n") ; tulisArrayChar ( textLain ) ; printf("\nPercobaan Pemrograman selesai dengan baik\n"); return 0 ; } void tulisArrayDouble (int jA, double X[]) { for (int i = 0 ; i<jA ; i++) printf ("%lf \t", X[i]) ; } void tulisArrayInteger (int jA, int X[]) { for (int i = 0 ; i<jA ; i++) printf ("%d \t", *(X + i)) ; } void tulisArrayChar (char X[]) { while (*X) printf ("%c", *X++) ; }

d. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap statement pada kode sumber yang saudara tulis!

ELEMEN KOMPETENSI 2

Page 27: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

26

Deskripsi: Membaca data dari file text. Kompetensi Dasar: Mahasiswa mampu membuat fungsi yang dapat membaca masukan dari file text. Latihan 2 a. Lengkapi proyek pada Latihan 1 dengan fungsi yang dapat membaca data

masukan dari suatu file text, seperti kode sumber berikut:

int bacaFileInteger (char * fName, int X[]) { FILE *in ; if (!(in=fopen(fName, "r"))) { printf ("\n File tak dapat dibaca "); exit(0) ; } int bData ; int i=0 ; while (fscanf(in, "%d", &bData) > 0) { X[i] = bData ; i++ ; } return i ; }

b. Lengkapi kode sumber tersebut sehingga fungsi main dapat memanggil

fungsi tersebut. c. Buat juga pada folder yang sama sebuah file text yang berisi bilangan-

bilangan integer yang akan dibaca oleh fungsi tersebut. d. Tambahkan beberapa statement sehingga hasil bacaan file tersebut juga

dapat dicetak dengan fungsi yang telah dibuat pada Latihan 1. e. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap statement tambahan tersebut.

ELEMEN KOMPETENSI 3

Deskripsi: Membuat fungsi yang dapat memangil diri sendiri. Kompetensi Dasar: Mahasiswa mampu membuat fungsi yang dapat memanggil diri, sehingga dapat memecahkan masalah yang bersifat rekursif. Latihan 3

Page 28: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

27

a. Buat proyek baru (beri nama sesuai keinginan saudara) untuk aplikasi konsol (Win32 Console Application).

b. Pada pilihan jenis Win32 Console Application pilih ‘An empty project’ c. Tulis pada file kode sumber (beri nama sesuai keinginan saudara) fungsi

main yang dapat memanggil fungsi yang dapat menghitung nilai fakultatif bilangan secara rekursif.

int faktorial (int bilInteger ) { if (bilInteger<=1) return 1 ; return bilInteger * faktorial(bilInteger-1) ; }

c. Buatlah fungsi main yang dapat: (i) Membaca nilai integer dari keyboard. (ii) Membaca nilai integer dari keyboard, dan kemudian memanggil

fungsi faktorial tersebut dengan nilai integer yang merupakan nilai masukan tersebut.

(iii) Menulis keluaran berupa bilangan integer masukan ( n )dan nilai faktorial ( n! ) dari bilangan tersebut.

d. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari setiap statement yang saudara tulis.

ELEMEN KOMPETENSI 4

Deskripsi: Membuat program yang dapat mengeluarkan deret Fibonacci dan menuliskan hasil keluarannya dalam suatu file text. Kompetensi Dasar: Mahasiswa mampu membuat fungsi yang dapat menghasilkan deret Fibonacci dan menyimpan keluarannya dalam file text.

Latihan 4 a. Buat proyek baru (beri nama sesuai keinginan saudara) untuk aplikasi

konsol (Win32 Console Application). b. Pada pilihan jenis Win32 Console Application pilih ‘An empty project’. c. Tulis pada file kode sumber (beri nama sesuai keinginan saudara) fungsi

main yang dapat memanggil fungsi yang dapat menghitung bilangan Fibonacci rekursif.

int fibo (int bilInteger ) { if (bilInteger<=2) return 1 ; return fibo(bilInteger-1) + fibo(bilInteger-2); }

c. Buatlah fungsi main yang dapat:

Page 29: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

28

(i) Membaca nilai integer ( n ) dari keyboard. (ii) Memanggil fungsi fibo tersebut dengan nilai integer yang merupakan

nilai masukan tersebut. (iii) Menulis keluaran berupa deret fibonacci sampai dengan suku ke n

tersebut ke text file. d. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap statement yang saudara tulis. e. Tangkap keluaran layar dan cetak file text yang juga hasil keluaran program.

Page 30: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

29

FORM UMPAN BALIK

Elemen Kompetensi Tingkat Kesulitan Tingkat Ketertarikan Waktu

Penyelesaian dalam menit

Membuat fungsi yang dapat mencetak isi dari suatu array

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Membuat fungsi yang dapat membaca masukan dari file text

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Membuat fungsi yang dapat memanggil diri, sehingga dapat memecahkan masalah yang bersifat rekursif

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit Membuat fungsi

yang dapat menghasilkan deret Fibonacci dan menyimpan keluarannya dalam file text

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Page 31: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

30

Pokok Bahasan IV Algoritme sebagai dasar

Pembuatan Program

Kode Pokok Bahasan: TIK.RPL01.002.01.04 Deskripsi Pokok Bahasan: Menulis algoritme dari masalah sederhana dan mengimplementasikannya dalam bahasa pemrograman sebagai program.

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Menuliskan psedocode dari masalah yang akan dibuat programnya dan menerjemahkan pseudocode menjadi program dalam bahasa C

Kode sumber dan keluaran hasil eksekusi

1,00 32

2 Memisahkan komponen -komponen fungsional menjadi modul/fungsi yang saling berkomunikasi

Kode sumber dan keluaran hasil eksekusi

1,00 33

3 Mengimplementasikan algoritme Pembagian Persekutuan Terbesar sebagai program yang moduler

Kode sumber dan keluaran hasil eksekusi

1,00 34

Page 32: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

31

TUGAS PENDAHULUAN

1. Pelajari cara penulisan algoritme dalam bentuk pseudocode. 2. Pahami pencarian akar-akar dari persamaan kuadrat dengan rumus abc. 3. Pahami cara pencarian pembagi terbesar dari dua buah bilangan positif. DAFTAR PERTANYAAN

1. Pada pseudocode AkarPersamaanKuadrat bagaimana mencari Determinan (baris 02)?

2. Tuliskan statement yang tepat untuk mengganti baris 04 dan 05 pada algoritme AkarPersamaanKuadrat!

3. Jelaskan arti mod baris 03 pada algoritme PersekutuanPembagiTerbesar! TEORI SINGKAT

Meskipun komputer sangat banyak kebisaannya, namun demikian sesungguhnya yang dilakukan oleh komputer adalah menjalankan perintah-perintah yang tersusun dalam modul-modul program. Karena Program adalah merupakan urutan perintah, maka sesungguhnya sebelum program tersebut dibuat, terlebih dahulu ada urut-urutan cara penyelesaian masalah tersebut, yang dikenal sebagai algoritme. Bentuk algoritme yang lazim dikenal adalah diagram alir (flow chart) atau kode semu program (pseudocode). Kedekatan bentuk pseudocode dengan kode sumber dalam suatu bahasa pemrograman menyebabkan pseudocode lebih banyak dipergunakan dalam merancang atau membuat dokumentasi suatu program komputer. Berdasarkan hal tersebut, maka dalam pembuatan perangkat lunak/program komputer perlu lebih dahulu dibuat algoritme yang dapat menyatakan bagaimana langkah-langkah pelaksanaan masalah yang akan diselesaikan. Setelah algoritme tersebut diyakini merupakan urutan langkah yang tepat dan lengkap, maka barulah pemrogram mulai menuliskan programnya dalam bahasa pemrograman. Dalam paradigma terstuktur suatu masalah yang kompleks akan terlebih dahulu dipecah-pecah menjadi beberapa sub-sub masalah yang lebih kecil yang bisa saja merupakan “langkah-langkah besar” yang perlu diuraikan lebih lanjut. Dalam implementasi sebagai program, sub-sub masalah pada umumnya dituliskan sebagai fungsi-fungsi yang merupakan bagian dari program, dimana fungsi yang masih cukup kompleks akan diurai lebih lanjut menjadi fungsi yang lebih kecil sebelum menjadi statement dalam bahasa pemrograman. Dalam penulisan algoritme, satu perintah pada algoritme dapat saja direalisasikan dengan tepat satu statement pada bahasa pemrograman, tetapi dapat pula merupakan suatu kumpulan statement yang perlu direalisasikan

Page 33: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

32

sebagai suatu fungsi dalam bahasa pemrograman. Contoh penulisan pseudocode dari algoritme pencarian akar-akar persamaan kuadrat dan pencarian persekutuan pembagi terbesar masing-masing adalah sebagai berikut: AkarPersamaanKuadrat

01. Baca(a,b,c)

02. Hitung Determinan

03 Jika Determinan >0

04. Hitung akar-akar persamaan

05 Tulis akar-akar persamaan

Selesai

PersekutuanPembagiTerbesar

01. Baca(a,b)

02. Lakukan

03 s = a mod b

04 a = b

05 b = s

06 Hingga ( s == 0 )

07 Tulis (a)

Selesai

LAB SETUP

Siapkan seperangkat komputer dengan jumlah memory yang cukup yang mampu menjalankan compiler dari bahasa pemrograman C. Yakinkan bahwa semua seperangkat yang diperlukan bekerja dengan sempurna. ELEMEN KOMPETENSI 1

Deskripsi: Menulis psedocode dan menerjemahkannya menjadi program. Kompetensi Dasar: Mahasiswa mampu menuliskan psedocode dari masalah yang akan dibuat programnya dan menerjemahkan pseudocode menjadi program dalam bahasa C. Latihan 1 a. Buat proyek baru (beri nama sesuai keinginan saudara) untuk aplikasi

konsol (Win32 Console Application). b. Pada pilihan jenis Win32 Console Application pilih ‘An empty project’. c. Buatlah program dari algoritme (pseudocode) AkarPersamaanKuadrat

tersebut diatas.

Page 34: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

33

d. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari setiap statement pada kode sumber yang saudara tulis!

Latihan 2 a. Sempurnakan pseudocode AkarPersamaanKuadrat tersebut sehingga

dapat memberi penjelasan bahwa tidak ada akar-akar nyata (bila Determinan bernilai lebih kecil dari nol).

b. Tulis kode sumber dari pseudocode yang baru tersebut. c. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap statement tambahan tersebut.

Latihan 3 a. Sempurnakan pseudocode AkarPersamaanKuadrat tersebut sehingga

dapat mencegah data masukan a (koefisien dari suku berpangkat dua) bernilai nol.

b. Tulis kode sumber dari pseudocode yang baru tersebut. c. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap statement tambahan tersebut.

ELEMEN KOMPETENSI 2

Deskripsi: Mengimplementasikan prosedur-prosedur yang mandiri sebagai fungsi. Kompetensi Dasar: Mahasiswa mampu memisahkan komponen-komponen fungsional menjadi modul/fungsi yang saling berkomunikasi. Latihan 4 a. Sempurnakan hasil latihan 1, 2 dan 3, dengan membuat:

(i) Modul (fungsi) pembaca data input a, b dan c, serta modul lain yang dapat menyelesaikan persamaan kuadrat bila diberikan masukan a, b dan c.

(ii) Modul (fungsi) persamaan kuadrat dengan masukan variabel a, b dan c,

sedemikian rupa sehingga fungsi main berbentuk: int main(int argc, char* argv[]) { double a, b, c ; a = bacadouble ("Nilai a: ") ; b = bacadouble ("Nilai b: ") ; c = bacadouble ("Nilai c: ") ;

rumusabc (a, b, c) ;

printf("\nPercobaan Pemrograman selesai dengan baik\n"); return 0 ; }

Page 35: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

34

ELEMEN KOMPETENSI 3

Deskripsi: Mengimplementasikan algoritme Pembagian Persekutuan Terbesar sebagai program yang moduler. Kompetensi Dasar: Mahasiswa mampu mengimplementasikan algoritme Pembagian Perseku-tuan Terbesar sebagai program yang moduler.

Latihan 5 a. Buat program (hanya fungsi main) untuk merealisasikan algoritme

Pembagi Persekutan Terbesar. b. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap statement tambahan tersebut!

Latihan 6 a. Sempurnakan kode sumber saudara, sedemikian rupa sehingga pencarian

persekutuan pembagi terbesar menjadi sebuah fungsi dengan format berikut: int gcd (int a, int b) { // … //sesuai algoritme PersekutuanPembagiTerbesar // … }

b. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari setiap statement pada kode sumber tersebut!

Latihan 7 a. Sempurnakan kode sumber saudara, sedemikian rupa sehingga

pemasukan data input menjadi sebuah fungsi yang hanya dapat menerima bilangan integer positif, seperti fungsi berikut:

int readIntPositif (char s[]) { int x ; do { printf ("\n %s", s) ; scanf ("%d", &x) ; } while ( x<= 0 ) ; return x ; }

b. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap statement pada kode sumber tersebut!

Page 36: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

35

Latihan 8 a. Tambahkan fungsi yang dapat menukar nilai dari dua buah variabel,

seperti kode sumber berikut:

void tukarNilai (int *x, int *y ) { int z ; z = *x ; *x = *y ; *y = z ; }

b. Gunakan fungsi tersebut sehingga masukan untuk fungsi pencari

persekutuan pembagi terbesar, selalu mempunyai input dengan bilangan pertama yang lebih besar.

c. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari setiap statement pada kode sumber tersebut!

Page 37: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

36

FORM UMPAN BALIK

Elemen Kompetensi Tingkat Kesulitan Tingkat Ketertarikan Waktu

Penyelesaian dalam menit

Menuliskan psedocode dari masalah yang akan dibuat programnya dan menerjemahkan pseudocode menjadi program dalam bahasa C

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

memisahkan kompunen-komponen fungsional menjadi modul/fungsi yang saling berkomunikasi

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Mengimplementasikan algoritme Pembagian Persekutuan Terbesar sebagai program yang moduler

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Page 38: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

37

Pokok Bahasan V Algoritme Pengurutan

Kode Pokok Bahasan: TIK.RPL01.002.01.05 Deskripsi Pokok Bahasan: Memahami cara kerja algoritme-algoritme Pengurutan dan mengimple-mentasikannya dalam bahasa pemrograman sebagai program

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Menuliskan fungsi pengurutan gelembung (bubble sort) yang dapat berkomunikasi dengan fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 39

2 Menuliskan fungsi pengurutan pilih (selection sort) yang dapat berkomunikasi dengan fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 40

3 Menuliskan fungsi pengurutan sisip (insertion sort) yang dapat berkomunikasi dengan fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 41

TUGAS PENDAHULUAN

1. Pelajari cara kerja algoritme pengurutan gelembung. 2. Pelajari cara kerja algoritme pengurutan pilih. 3. Pelajari cara kerja algoritme pengurutan sisip. DAFTAR PERTANYAAN

1. Tunjukkan pada ketiga algoritme tersebut, manakah yang disebut sebagai pass.

2. Uraikan lebih rinci perintah tukar (baris 03 PengurutanGelembung dan baris 05 PengurutanPilih).

TEORI SINGKAT

Data yang telah teratur pada umumnya akan lebih mudah dimanipulasi. Dari data yang sudah terurut juga kan lebih mudah dicari berbagai informasi yang diperlukan. Berdasarkan hal itu maka pengurutan data dari yang belum

Page 39: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

38

terurut menjadi terurut data yang terurut menjadi suatu hal yang sangat penting. Terdapat sejumlah algoritme yang dapat dipergunakan untuk melakukan pengurutan data. Algoritme pengurutan yang perlu diketahui oleh seorang pemrogram adalah pengurutan gelembung, pengurutan pilih dan pengurutan sisip yang kesemuanya mempunyai kompleksitas O(n2). Algoritme pengurutan gelembung mendapatkan hasil terurut dengan cara menukarkan suatu data dengan data disebelahnya secara bila tidak sesuai dengan urutan yang diinginkan. Pada awalnya, penukaran data tersebut dilakukan mulai dari data awal hingga akhir, hingga akhirnya dapat diposisikan data yang tepat pada posisi terakhir. Bila hal yang sama dilakukan sebanyak jumlah pass tertentu, yaitu satu kali lebih sedikit dari jumlah data, maka akan didapat semua data terurut sesuai dengan urutan yang diinginkan. Penyusunan data pada algoritme pengurutan pilih, dilakukan dengan memilih anggota yang perlu diletakkan terdepan pada setiap pass. Dengan melakukan hal tersebut sebanyak satu kali lebih sedikit dari jumlah data akan didapat data yang telah terurut. Hal ini berbeda dengan algoritme pengurutan sisip yang pada setiap pass menempatkan data yang semula pada posisi pass tersebut ke posisi yang seharusnya, dengan cara terus menggeser data didepannya kebelakang. Pseudocode dari masing-masing algoritme tersebut dapat dituliskan sebagai berikut: PengurutanGelembung (A[0 .. n-1])

01 Lakukan sebanyak n-1 kali (dengan i = 0 s.d. n-2)

02 Lakukan sebanyak (n – i) kali (dengan i = 0 s.d. n-i-2)

03 Jika (A[i] > A[i+1]) tukar (X[i], X[i+1])

Selesai

PengurutanPilih (A[0 .. n-1])

01 Lakukan sebanyak n-1 kali (dengan i = 0 s.d. n-2)

02 iMin = i ;

03 Lakukan sebanyak n-1-i kali (dengan j = i+1 s.d. n-1)

04 Jika (X[j] < X[iMin]) iMin = j ;

05 tukar (X[i], X[iMin])

Selesai

PengurutanSisip (A[0 .. n-1])

01 Lakukan sebanyak n-1 kali (dengan i = 1 s.d. n-1)

02 temp = X[i] ;

03 j = i ;

Page 40: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

39

04 Lakukan selama (j>0 && X[j-1]>temp)

05 X[j] = X[j-1]

06 j = j – 1

07 X[j] = temp

Selesai

LAB SETUP

Siapkan seperangkat komputer dengan jumlah memory yang cukup yang mampu menjalankan compiler dari bahasa pemrograman C. Yakinkan bahwa semua seperangkat yang diperlukan bekerja dengan sempurna.

ELEMEN KOMPETENSI 1

Deskripsi: Mengimplementasikan algoritme pengurutan gelembung (bubble sort) sebagai fungsi. Kompetensi Dasar: Mahasiswa mampu menuliskan fungsi pengurutan gelembung (bubble sort) yang dapat berkomunikasi dengan fungsi lain.

Latihan 1 a. Buat proyek baru (beri nama sesuai keinginan saudara) untuk aplikasi

konsol (Win32 Console Application). b. Pada pilihan jenis Win32 Console Application pilih ‘An empty project’. c. Dari menu File – New – C++ source file, (beri nama sesuai keinginan

saudara) tulis kode sumber dari algoritme pengurutan gelembung sebagai suatu fungsi, seperti berikut: void bubbleSort ( int jA, int X[] ) { int temp ; for (int pass = 0; (pass < jA - 1); pass++) { for (int i = 0 ; i < ( jA - 1 - pass ) ; i++ ) { if (X[i] > X[i+1]) { temp = X[i] ; X[i] = X[i+1] ; X[i+1] = temp ; } } } }

d. Buat fungsi main yang dapat membaca data array dari file dan kemudian

memanggil fungsi bubbleSort untuk mengurutkan data, dan juga fungsi untuk pencetakan data yang berupa array untuk mencetak data sebelum dan sesudah pengurutan (lihat latihan-latihan terdahulu).

Page 41: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

40

e. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari setiap statement pada kode sumber tersebut!

Latihan 2 a. Jadikan blok { temp = X[i] ; X[i] = X[i+1] ; X[i+1] =

temp ; } menjadi fungsi dengan nama tukar, dan panggil lah fungsi tukar tersebut dari fungsi bubbleSort tersebut.

b. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari setiap statement pada kode sumber tersebut!

Latihan 3 a. Tambahkan statement-statement yang diperlukan sehingga dapat

memperlihatkan array hasil dari perubahan setiap pass. b. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap statement pada kode sumber tersebut! (i) Jelaskan arti dari setiap statement pada kode sumber tersebut! (ii) Print hasil keluaran yang memperlihatkan perubahan setiap pass.

ELEMEN KOMPETENSI 2

Deskripsi: Mengimplementasikan algoritme pengurutan pilih (selection sort) sebagai fungsi. Kompetensi Dasar: Mahasiswa menuliskan fungsi pengurutan pilih (selection sort) yang dapat dipanggil oleh fungsi lain. Latihan 4 Seperti latihan 1 dan 2 untuk pengurutan pilih.

Latihan 5 Seperti latihan 3 untuk pengurutan pilih.

Page 42: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

41

ELEMEN KOMPETENSI 3

Deskripsi: Mengimplementasikan algoritme pengurutan sisip (insertion sort) sebagai fungsi. Kompetensi Dasar: Mahasiswa mampu menuliskan fungsi pengurutan sisip (insertion sort) yang dapat dipanggil oleh fungsi lain. Latihan 6 Seperti latihan 4 untuk pengurutan sisip.

Latihan 5 Seperti latihan 5 untuk pengurutan sisip.

FORM UMPAN BALIK

Elemen Kompetensi Tingkat Kesulitan Tingkat Ketertarikan Waktu

Penyelesaian dalam menit

Menuliskan fungsi pengurutan gelembung (bubble sort) yang dapat berkomunikasi dengan fungsi lain

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Menuliskan fungsi pengurutan pilih (selection sort) yang dapat berkomunikasi dengan fungsi lain

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Menuliskan fungsi pengurutan sisip (insertion sort) yang dapat berkomunikasi dengan fungsi lain

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Page 43: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

42

Pokok Bahasan VI Algoritme Pencarian dan Penggabungan

Kode Pokok Bahasan: Unit TIK.RPL01.002.01.06 Deskripsi Pokok Bahasan: Memahami cara kerja algoritme Pencarian dan Penggabungan, serta mengimplementasikannya dalam bentuk program/fungsi.

No Elemen Kompetensi Indikator Kinerja Jml Jam Halaman

1 Menuliskan fungsi pencarian linear yang dapat dipanggil oleh fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 44

2 Menuliskan fungsi pencarian biner yang dapat dipanggil oleh fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 46

3 Menuliskan fungsi penggabungan array yang dapat dipanggil oleh fungsi lain

Kode sumber dan keluaran hasil eksekusi

1,00 47

TUGAS PENDAHULUAN

1. Pelajari cara kerja algoritme pencarian linear dan pencarian biner. 2. Pelajari cara kerja algoritme penggabungan dua buah array yang masing-

masing telah terurut. DAFTAR PERTANYAAN

1. Tuliskan algoritme pencarian linear untuk mencari data dalam sekelompok data yang telah terurut. Perlihatkan perbedaannya dengan algoritme PencarianLinear diatas.

2. Penggabungan dua array dapat dilakukan juga mengabung array pertama setelah array kedua, dan kemudian mengaturnya kembali dengan algoritme pengurutan. Bandingkan cara ini dengan algoritme Penggabungan Array.

Page 44: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

43

TEORI SINGKAT

Untuk mencari apakah dalam suatu kumpulan ada minimal sebuah data yang sama dengan apa yang diingi kan dapat dilakukan dengan cara mengecek setiap anggota data pada kumpulan tersebut. Kalau saja kumpulan data tersebut disimpan dalam array, maka cara tersebut tak lain adalah mencocok kan data yang dicari dengan setiap anggota array tersebut. Pencarian dengan cara demikian dikenal sebagai algoritme pencarian linear, yang algoritmenya dapat ditulis dengan pseudocode berikut: PencarianLinear (x, A[0 .. n-1])

01 ada = 0

02 Lakukan pada semua anggota A (dengan i = 0 s.d. n-1)

03 Jika (x == A[i]) ada = 1

04 Jika (ada = 0) tulis “tak ada”

05 Jika-tidak tulis “ada”

Selesai

Dari pseudocode tersebut, dapat dapat dianalisis bahwa algoritme tersebut mempunyai kompleksitas O(n). Bila saja sekumpulan data tempat pencarian telah terurut dengan susunan ascending/descending, maka pencarian data tersebut akan lebih mudah. Dalam hal ini, bila saja data yang dicari cara tidak ada, algoritme tersebut dapat dihentikan lebih awal dari pada mencari pada kumpulan data yang tidak terurut. Cara lain yang dapat memperccepat pencarian pada data yang telah terurut dapat dilakukan dengan algoritme pencarian biner. Dalam hal ini pencarian tidak dilakukan dari awal hingga akhr, namun dimulai dengan mencocokkan data yang ditengah dengan data yang dicari. Bila sama tentu saja pencarian berhasil, bila tidak maka pencarian akan dilanjutkan pada separuh yang lebih kecil/besar dari data yang dicari tergantung dari hasil perbandingan tersebut, sebagaimana pseudocode berikut: PencarianBiner (x, A[0 .. n-1])

01 min = 0

02 max = n-1

03 Ulangi

04 mid = (min+max) / 2;

05 Jika (x == A[mid]) return mid

06 Jika (x > A[mid]) min = mid + 1

07 Jika-tidak max = mid - 1

08 Selama (min < max)

09 return -1

Selesai

Page 45: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

44

Masalah lain dengan sekumpulan data yang direpresentasikan dengan array adalah penggabung dari dua kelompok data. Bila saja masing-masing kelompok data tersebut telah terurut, penggabungan kedua data menjadi data yang juga terurut dapat dapat dilakukan dengan algoritme penggabungan seperti pseudocode berikut: PenggabunganArray (A[0 .. n-1], B[0 .. m-1] , C[0 .. n+m-1])

01 i=0, j=0, k=0

02 Selama (i<n && j<m)

03 Jika (X[i]<Y[j])

04 Z[k] = X[i]

05 i++, k++

06 Jika - tidak

07 Z[k] = Y[j]

08 j++, k++

10 Selama (i<jAX)

11 Z[k] = X[i]

12 i++, k++

13 Selama (j<jAY)

14 Z[k] = Y[j]

15 j++, k++

Selesai

LAB SETUP

Siapkan seperangkat komputer dengan jumlah memory yang cukup yang mampu menjalankan compiler dari bahasa pemrograman C. Yakinkan bahwa semua seperangkat yang diperlukan bekerja dengan sempurna. ELEMEN KOMPETENSI 1

Deskripsi: Memahami algoritme pencarian linear dan dapat menulis algoritme tersebut sebagai fungsi. Kompetensi Dasar: Mahasiswa mampu menuliskan fungsi pencarian linear yang dapat dipanggil oleh fungsi lain.

Page 46: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

45

Latihan 1 a. Buat proyek baru (beri nama sesuai keinginan saudara) untuk aplikasi

konsol (Win32 Console Application). b. Pada pilihan jenis Win32 Console Application pilih ‘An empty project’ c. Dari menu File – New – C++ source file, (beri nama sesuai keinginan

saudara) tulis kode sumber sebagai dari fungsi main untuk mengimplementasikan algoritme PencarianLinear diatas, seperti kode sumber berikut:

#include <stdio.h> int main(int argc, char* argv[]) { int I [] = { 2, 1, 0, -5, 6, 5, -101, 100 } ; int jumEl = sizeof I / sizeof (int) ; int a = -100 ; int ada = 0 ; int j = 0 ; while (j<jumEl) { if ( I[j] == a ) ada = 1 ; j++ ; } if ( ada ) printf ("\n%d ada pada daftar", a ); else printf ("\n%d tak ada pada daftar", a ); printf("\nProgram Percobaan selesai dengan baik\n"); return 0 ; }

d. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari

setiap statement pada kode sumber yang saudara tulis! Latihan 2 a. Ubahlah cara pemasukan data int I [] = { 2, 1, 0, -5, 6, 5, -101, 100 } dengan

membuat fungsi yang dapat membaca data dari file text. b. Demikian juga ubah statement pemasukan data yang dicari int a = -100

dengan statement yang dapat membaca data yang akan dicari dari console/keyboard.

c. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari setiap statement tambahan tersebut.

Latihan 3 a. Jadikan algoritme tersebut menjadi fungsi yang dapat dipanggil dari

fungsi main, dimana return value dari fungsi tersebut adalah posisi dari data yang dicari, dimana posisi -1 mengartikan data yang dicari tak ditemukan, seperti kode sumber berikut:

Page 47: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

46

int cariLinear (int x, int jA, int X[] ) { int i = 0 ; while (i<jA) { if ( X[i] == x ) return i ; i++ ; } return -1 ; }

b. Sempurnakan kode sumber pada fungsi main sehingga dapat membaca fungsi tersebut, dan memperlihatkan dimana posisi dari data yang dicari.

c. Compile dan jalankan kode sumber tersebut kemudian jelaskan arti dari setiap statement tambahan tersebut.

ELEMEN KOMPETENSI 2

Deskripsi: Memahami algoritme pencarian biner dan dapat menulis algoritme tersebut sebagai fungsi. Kompetensi Dasar: Mahasiswa mampu menuliskan fungsi pencarian biner yang dapat dipanggil oleh fungsi lain. Latihan 4 a. Buat proyek baru (beri nama sesuai keinginan saudara) untuk aplikasi

konsol (Win32 Console Application). b. Pada pilihan jenis Win32 Console Application pilih ‘An empty project’ c. Dari menu File – New – C++ source file, (beri nama sesuai keinginan

saudara) tulis kode sumber sebagai dari fungsi main untuk mengimplementasikan algoritme PencarianBiner diatas.

d. Buat fungsi main yang dapat membaca data array dari file dan kemudian memanggil fungsi insertionSort untuk mengurutkan data, fungsi untuk pencetakan data yang berupa array untuk mencetak data sebelum dan sesudah pengurutan (lihat latihan-latihan terdahulu) untuk kemudian memanggil fungsi cari Biner tersebut.

Page 48: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

47

ELEMEN KOMPETENSI 3

Deskripsi: Memahami algoritme penggabungan dari dua buah array yang telah terurut dan dapat menulis algoritme tersebut sebagai fungsi. Kompetensi Dasar: Mahasiswa mampu menuliskan fungsi penggabungan array yang dapat dipanggil oleh fungsi lain. Latihan 5 a. Buat proyek baru (beri nama sesuai keinginan saudara) untuk aplikasi

konsol (Win32 Console Application). b. Pada pilihan jenis Win32 Console Application pilih ‘An empty project’ c. Dari menu File – New – C++ source file, (beri nama sesuai keinginan

saudara) tulis kode sumber sebagai dari fungsi main untuk mengimplementasikan algoritme Penggabungan diatas sebagai fungsi.

d. Buat fungsi main yang dapat membaca data array A dan data Array B dari masing-masing file dan kemudian memanggil fungsi insertionSort untuk mengurutkan kedua array tersebut dan selanjutnya memanggil fungsi penggabungan yang saudara buat.

e. Sempurnakan program saudara sehingga dapat mencetak, baik array A dan B yang belum diurutkan, array A dan B yang telah terurut dan array C sebagai hasil penggabungan array A dengan array B ke layar dan file text.

f. Tangkap penampilan layar dan cetak file text hasil keluaran program yang saudara buat tersebut.

Page 49: Modul Praktikum Dasar Pemrogramaninformatika.fti.trisakti.ac.id/uploads/informatika/...Modul Praktikum Dasar Pemrograman Jurusan Teknik Informatika Fakultas Teknologi Industri –

Modul Praktikum Dasar Pemrograman

Jurusan Teknik Informatika Fakultas Teknologi Industri – Universitas Trisakti

48

FORM UMPAN BALIK

Elemen Kompetensi Tingkat Kesulitan Tingkat Ketertarikan Waktu

Penyelesaian dalam menit

Menuliskan fungsi pencarian linear yang dapat dipanggil oleh fungsi lain

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Menuliskan fungsi pencarian biner yang dapat dipanggil oleh fungsi lain

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit

Menuliskan fungsi penggabungan array yang dapat dipanggil oleh fungsi lain

Sangat Mudah Tidak Tertarik Mudah Cukup Tertarik Biasa Tertarik Sulit Sangat Tertarik Sangat Sulit