modul dasprog complete

Upload: verrie-pratama-harahap

Post on 19-Jul-2015

71 views

Category:

Documents


2 download

TRANSCRIPT

MODUL PRAKTIKUM DASAR PEMROGRAMAN

LABORATORIUM SISTEM PENGATURAN & KOMPUTER DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS SUMATERA UTARA

Bab 1

Pengenalan Linux dan Aplikasi Dasar1.1 Tujuan

Mengenal perintah dasar Linux Mengenal shell sebagai salah satu interface Mengenal editor teks dan kompiler pada linux

1.2 TeoriLinux adalah suatu sistem operasi turunan UNIX, menggunakan Kernel Linux dan implementasi dari standar POSIX. Linux dapat ber-interoperated dengan sistem operasi lain seperti Microsoft Windows, Apple Mac, dan BSD Unix. Linux merupakan contoh yang terkenal dari pengembangan Open Source Software. Sekarang Linux banyak mendapatkan dukungan dari berbagai vendor seperti, Hewlett Packard, Novell, Red Hat, IBM, dan banyak lagi.

1.2.1 Sejarah LinuxPengerjaan Kernel Linux dimulai pada tahun 1991 oleh seorang mahasiswa University of Helsinki bernama Linus Torvalds. Linus membuat kernel ini untuk menggantikan Minix yang tidak bebas buatan Andrew S. Tanenbaum. Atas kerjasamanya dengan Richard M. Stallman, pendiri GNU (Gnu Not Unix) Projects dan The Free Software Foundation, Linus diijinkan untuk menggunakan komponen yang dikembangkan GNU, seperti GCC (GNU C Compiler). Kernel Linux dikembangkan dengan bahasa C..

Gambar 1: Torvalds dan Stallman

1

1.2.2 ShellShell adalah sebuah program yang menyediakan interface pengguna dengan kernel. Shell terdiri atas dua jenis yaitu Command Line Interface (CLI) dan Graphic User Interface (GUI). Terdapat beberapa CLI-Shell pada Unix, antara lain:

Bourne Shell (bsh) Bourne Again Shell (bash) Korn Shell (ksh) C shell (csh)

CLI-Shell yang paling banyak digunakan sebagai default pada mayoritas distribusi Linux adalah bash. Dalam studi kasus kita juga menggunakan bash untuk CLI. Beberapa perintah dasar yang bisa kita gunakan pada bash: Perintah mkdir Fungsi Untuk membuat sebuah direktori Keterangan Mirip dengan perintah md pada DOS Syntax: $ mkdir /direktori cp Untuk mengkopi file Mirip dengan perintah copy pada DOS Syntax: $ cp [option] file /dir/tujuan ls Menampilkan isi suatu direktori beserta atribut filenya Memindahkan direktori aktif Mirip dengan perintah dir pada DOS Syntax: $ ls [option] /direktori Mirip dengan perintah cd pada DOS Syntax: $ cd /dir/tujuan rm Menghapus file Mirip dengan perintah del pada DOS Syntax: $ rm file rmdir Menghapus direktori Mirip dengan perintah rd pada DOS Syntax: $ rmdir /direktori mv Memindahkan file Mirip dengan perintah move dan ren pada atau direktori. Bisa DOS juga untuk mengganti

cd

2

nama file atau direktori man

Syntax: $ mv file/folder tujuan/nama baru

Menampilan manual Mirip dengan perintah help pada DOS dari perintah yang ada pada linux Syntax: $ man nama_perintah

CatatanPerintah yang disajikan hanya beberapa dari sebagian banyak perintah. Cobalah untuk mengeksplorasi perintah dan opsi-opsi yang disediakan.

1.2.3 Text Editor (Vim)Terdapat banyak text editor yang ada pada Linux, baik yang berbasis CLI ataupun GUI. Beberapa diantaranya adalah Vi, joe, pico, ee, nano, mc yang berbasis CLI dan Kwrite, Kate, Gedit yang berbasis GUI. Pada praktikum, kita akan menggunakan text editor berbasis CLI yaitu Vim. Vim adalah akronim dari Vi improved atau peningkatan dari Vi, sedangkan Vi adalah akronim dari Visual.

Penggunaan Vim text editorUntuk memulai Vim, ketikkan perintah: $ vim nama_file

CatatanJika nama file yang anda isikan sudah terdapat pada direktori aktif anda, maka editor akan menampilkan isi file tersebut dan anda bisa memulai untuk mengedit.

3

Untuk menggerakkan kursor pada Vim anda dapat menggunakan tombol H, J, K dan L atau anda juga dapat menggunakan tombol panah yang terdapat pada keyboard. Untuk dapat mengetikkan teks anda harus berada pada modus insert. Tekan i atau maka akan muncul indikator -INSERT-- kemudian mulai ketikkan teks dan tekan untuk kembali ke modus normal. Beberapa perintah yang bisa digunakan antara lain: Perintah zz :q :w :q! :wq :help [subjek] x X dd dw d0 d$ :set number :set nonumber Keluar dari editor Menyimpan file yang di-edit Keluar dari editor tanpa menyimpan (override) Keluar dari editor dan simpan file yang di-edit Menampilkan halaman bantuan dengan spesifik subjek Menghapus karakter Menghapus karakter disebelah kiri kursor Menghapus satu baris Menghapus 1 kata Menghapus dari awal teks sampai ke kursor Menghapus dari kursor sampai ke akhir teks Memunculkan nomor baris Menghilangkan nomor baris Keterangan Keluar dari editor dan simpan file yang di-edit

:help atau Menampilkan halaman bantuan

CatatanSebenarnya terdapat berbagai perintah pada editor Vim. Untuk mengeksplorasinya sendiri, silakan gunakan perintah $ vimtutor atau www.vim.org. Jangan menghapal perintah yang ada pada Vim!!!

1.2.4 Compiler (gcc)GCC (Gnu C Compiler) pertama rilis dengan versi beta 0.9 pada 22 Maret 1987, kemudian rilis 1.0 pada 23 Mei 1987. GCC menjadi bagian penting dari perkembangan opensource. Keberadaan Linux juga sering dikaitkan dengan GCC. GCC bersifat bebas, karenanya anda dapat memperolehnya dengan mudah. GCC tersedia untuk berbagai platform.

4

Penggunaan Gnu C CompilerUntuk meng-kompile program yang telah anda buat, gunakan perintah: $ gcc [file.c] -o [file_eksekusi] dan untuk run program yang telah anda buat: $ ./file_eksekusi

CatatanTentang GCC dan kegunaannya lebih lanjut anda dapat menggunakan perintah $ man gcc atau http://gcc.gnu.org

1.3 Percobaan

Buatlah sebuah direktori dan gunakan NIM anda sebagai namanya. Letak direktori anda pada /home/praktikan. Buatlah sebuah file coba.c dan simpan. Compile dan Run program yang telah anda buat tadi.

5

Bab 2

Bahasa C2.1 Tujuan

Mengenal dan memahami struktur bahasa pemrograman bahasa C. Mengetahui pemulisan program dalam bahasa C.

2.2 TeoriHingga saat ini penggunaan bahasa C telah begitu luas di seluruh dunia. Berbagai perguruan tinggi di dunia menjadikan bahasa C sebagai salah satu mata kuliah wajib. Selain itu, banyak bahasa pemrograman populer seperti PHP dan Java menggunakan syntax dasar yang mirip dengan bahasa C. Sistem operasi seperti Microsoft Windows dan Linux juga dikembangkan dengan bahasa C.

2.2.1 Sejarah Bahasa CBahasa BCPL yang dikerjakan oleh Martin Richards pada tahun 1967 merupakan awal dari lahirnya bahasa C. Ken Thompson memulai pengembangan bahasa BCPL yaitu bahasa B pada tahun 1970. Perkembangan selanjutnya dari bahasa B dikembangkan menjadi bahasa C oleh Dennis Ritchie beberapa bulan berikutnya di Bell Telephone Laboratories Inc. (sekarang AT&T Bell Laboratories). Bahasa C pertama kali digunakan di komputer Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi Unix.

Gambar 2: Thompson & Ritchie

6

2.2.2 Penulisan Program Bahasa CBentuk umum penulisan syntax bahasa C adalah: 1 2 3 4 5 6 7 8 9 10 main () { //komentar isi program } fungsi lain() { isi program }

/*komentar*/

Pada baris pertama penulisan merupakan fungsi utama yang harus terdapat pada setiap pernulisan program. Baris kedua terdapat karakter { yang berarti mulai. Baris berikutnya berisi syntax dari program yang hendak kita buat, termasuk Komentar, Deklarasi, Inisialisasi, dan Instruksi. Baris kelima terdapat karakter } yang berarti akhir. Pada baris ke-tujuh terdapat fungsi lain yang dapat kita buat untuk membantu pengerjaan program yang akan kita buat. Biasanya programmer membuat fungsi lain diluar fungsi utama untuk menghemat penulisan program apabila dipergunakan berkali-kali.

2.3 Percobaan

Tulislah program dibawah ini: #include stdio.h void main() { //menampilkan Hello World ! Pada layar printf(Hello World!); }

Simpan dengan nama hello.c. Compile program tersebut. Run Program

7

Bab 3

Struktur Dasar Bahasa C3.1 Tujuan

Mengetahu tipe data yang ada pada bahasa C Mengetahui penggunaan konstanta dan variabel Mengetahui penulisan deklarasi dalam bahasa C Mengetahui jenis-jenis operator dan penggunaannya dalam bahasa C

3.2 TeoriBahasa C menyediakan tipe-tipe data dasar yang cukup memadai. Walaupun dengan kebutuhan tertentu programmer dapat membuat tipe bentukan sendiri. Variabelvariabel dapat dibuat untuk tiap tipe data yang diperbolehkan. Dalam bahasa C, kita juga dapat membuat konstanta. Terdapat juga berbagai operator dalam bahasa C. Tipe data, Variabel, Konstanta, dan Operator akan kita bahas sebagai berikut.

3.2.1 Tipe DataTipe data merupakan bagian yang paling penting karena tipe data mempengaruhi seriap instruksi yang akan dilaksanakan oleh komputer. Misalnya saja 5 dibagi 2 bisa saja memberikan hasil yang berbeda tergantung pada tipe datanya. Jika 5 dan 2 bertipe integer, akan menghasilkan nilai 2. Namun jika kedianya bertipe float maka akan memberikan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien. Dalam bahasa C terdapat lima tipe data dasar, yaitu: No. 1 2 3 4 5 int float double void Tipe Data char Ukuran (byte) Format 1 2 4 8 0 %c %f %lf Keterangan Karakter / String Bilangan pecahan (float) Pecahan presisi ganda Tidak bertipe

%i %d Bilangan Bulat (integer)

Beberapa tipe data dapat dimodifikasi dengan salah satu atau beberapa modfier berikut: signed unsigned short long

8

3.2.2 VariabelVariabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable dapat ditentukan sendiri oleh programmer dengan aturan sebagai berikut:

Terdiri atas gabungan huruf, angka dan _ (underscore). Bukan kata kunci yang terdapat pada bahasa C. Karakter pertama tidak dapat berupa angka. Case-Sensitive (huruf kapital dan huruf kecil berbeda) Tidak mengandung simbol dan spasi. Panjangnya bebas, namun hanya 32 karakter pertama yang terpakai.

Contoh Variabel yang BENAR NIM _mhs Nama_siswa abc123 Contoh Variabel yang SALAH %per penting! 123Abc $sine

3.2.3 KonstantaKonstanta adalah suatu nilai yang tidak dapat diubah selama proses program berlangsung. Konstanta harus didefinisikan terlebih di awal program. Konstanta dapat bernilai integer, pecahan, karakter atau string. Selain itu, bahasa C juga menyediakan beberapa karakter khusus yang disebut Escape Sequence, antara lain: Kode \a \b \f \n \r \v \0 \' \ \? \\ \N \xN Fungsi Untuk bunyi bell (alert) Mundur satu spasi (backspace) Ganti halaman (form feed) Ganti baris (new line) Ke kolom pertama, baris yang sama (carriage return) Tabulasi vertikal Nilai kosong (Null) Karakter ' Karakter Karakter ? Karakter \ Karakter Bilangan Oktal (dgn N = angka) Karakter Bilangan Heksadesimal (dgn N = angka)

9

3.2.4 OperatorDi dalam bahasa C terdapat enam jenis operator yaitu:

Operator Penugasan Operator = Operasi Inisialisasi

Operator Aritmatika Operator + * / % Operasi Penambahan Pengurangan Perkalian Pembagian Modulo (Sisa pembagian)

Operator Hubungan (Perbandingan)

Operator < >= == !=

Operasi Kurang dari Kurang dari sama dengan Lebih dari Lebih dari sama dengan Sama dengan Tidak sama dengan

Operator Logika Operator && || ! Operasi Logika AND Logika OR Logika Not

10

Operator Bitwise Operator > & ^ | ~ Operasi Geser kiri Geser kanan Bitwise AND Bitwise XOR Bitwise OR Bitwise NOT

Operator Unary Operator ++ -sizeof ! ~ & * Operasi Increment Decrement Ukuran Operand Unary NOT Bitwise NOT Alamat memori operand Nilai dari pointer Unary Minus Letak (terhadap Operand) Sebelum dan sesudah Sebelum dan sesudah Sebelum Sebelum Sebelum Sebelum Sebelum Sebelum

3.3 Percobaan

Tulislah program berikut ini: #include stdio.h #define A 5 //Konstanta Preposesor

void main() { //Konstanta dgn fungsi const const double pi=3,1415926535897932384; //Deklarasi Variabel int x, nilai; float y; char z;

11

double w; //Inisialisasi Variabel x=10; y=9.45; z='C'; w=3.45E20; //Menampilkan variabel x printf (Nilai dari x adalah : %i\n, x); //Menampilkan variabel y printf (Nilai dari y adalah : %f\n, y); printf (Nilai dari y adalah : %g\n, y); printf (Nilai dari y adalah : %e\n, y); //Menampilkan variabel z printf (Nilai dari z adalah : %c\n, z); printf (Nilai dari z adalah : %u\n, z); //Penggunaan Operator printf (Nilai dari a+x adalah printf (Nilai dari a-x adalah printf (Nilai dari a*x adalah printf (Nilai dari y/a adalah printf (Sisa 9 bagi 4 adalah : : : : : %1\n, %i\n, %i\n, %f\n, %i\n, a+x); a-x); a*x); y/a); 9%4);

/*Perbedaan ++ diletakkan sebelum dan sesudah*/ nilai=++x; printf(x=%i\, nilai=%i\n, x, nilai); nilai=x++; printf(x=%i\, nilai=%i\n, x, nilai); }

Simpan dengan nama tipe.c. Compile program tersebut. Run program.

12

Bab 4

Input & Output4.1 Tujuan

Mengetahui fungsi fungsi yang digunakan untuk proses memasukkan data. Mengetahui fungsi fungsi yang digunakan untuk proses menampilkan data.

4.2 TeoriInput dan output pada program dimaksudkan agar program dan pengguna dapat saling berinteraksi. Sebagai contoh jika anda membuat sebuah program penghitung luas lingkaran, program akan menanyakan berapa jari-jari lingkaran. Setelah pengguna memasukkan nilai, kemudian komputer akan menampilkan luas lingkaran dengan jarijari sesuai yang diisikan pengguna.

4.2.1 Input DataDalam bahasa C, proses untuk memasukkan sata bisa menggunakan beberapa fungsi pustaka yang telah tersedia. Beberapa fungsi pustaka yang bisa digunakan adalah:

scanf()

Fungsi pustaka scanf() digunakan untuk menginputkan data berupa data numerik, karakter dan string secara terformat. Hal hal yang perlu diperhatikan dalam pemakaian fungsi scanf() adalah:

Fungsi scanf() memakai penentu format. Fungsi scanf() memberi pergantian baris secara otomatis. Fungsi scanf() tidak memerlukan penentu lebar field. Variabelnya harus menggunakan operator alamat &.

gets()

Fungsi gets() digunakan untuk memasukkan data berupa tipe karakter dan tidak dapat digunakan untuk memasukkan data numerik Harus diakhiri dengan penekanan tombol user. Cursor secara otomatis akan berpindah baris. Tidak memerlukan penentu format.

13

Kode penentu format %c %s %i %d %f %e %o %x %u

Fungsi Membaca karakter Membaca string Membaca bilangan bulat Membaca bilangan pecahan Membaca bilangan oktal Membaca bilangan heksadesimal Membaca bilangan tak bertanda

getchar()

Fungsi getchar() digunakan untuk memasukkan data berupa tipe karakter dan tidak dapat digunakan untuk memasukkan data numerik. Harus diakhiri dengan penekanan tombol . Karakter yang dimasukkan terlihat pada layar. Pergantian baris secara otomatis.

getch() & getche()

Fungsi getch() digunakan untuk membaca data karakter. Karakter yang dimasukkan tidak perlu diakhiri dengan penekanan tombol Tidak membrikan efek pergantian baris secara otomatis. Jika menggunakan fungsi getch() karakter yang dimasukkan tidak akan ditampilkan pada layer sehingga sering digunakan untuk meminta inputan data password. Jika menggunakan fungsi getche() karakter yang dimasukkan akan ditampilkan pada layar.

4.2.2 Output Data

printf()

Fungsi printf() digunakan untuk menampilkan semua jenis data (numerik dan karakter). Tidak memberikan efek pergantian baris.

14

puts()

Fungsi puts () digunakan untuk menampilkan data string. Memberikan efek pergantian baris secara otomatis.

fprintf(), fputs() dan fputc()

Fungsi fprintf() digunakan untuk mencetak semua jenis tipe data ke printer dan secara otomatis memberikan efek perpindahan baris. Fungsi fputs() digunakan untuk mencetak tipe data string ke printer. Fungsi fputc() digunakan untuk mencetak tipe data karakter ke printer.

4.3 Percobaan

Tulislah program dibawah ini: #include stdio.h #include conio.h void main() { //Deklarasi Variabel int umur; char nama[20]; float nilai; clrscr(); /*Memasukkan data*/ puts(Masukkan nama Anda : ); gets(nama); puts(Masukkan umur Anda : ); scanf(%d, &umur); puts(Masukkan nilai Anda : ); scanf(%f, &nilai); /*Menampilkan data*/ printf(Nama anda : %s\n, nama); printf(Umur anda : %s\n, nama); printf(Anda memperoleh nilai %5.2f\n, nilai); getch(); }

Simpan dengan nama io.c. Compile program tersebut. Run program.

15

Bab 5

Pemilihan & Perulangan5.1 Tujuan

Mengetahui penggunaan struktur pemilihan. Mengetahui penggunaan struktur perulangan.

5.2 TeoriStruktur seleksi digunakan untuk memilih proses yang akan dijalankan bila suatu kondisi tertentu muncul. Seleksi memungkinkan program melakukan pengecekan terhadap kondisi yang terjadi, hingga hanya perintah perintah yang sesuai dengan kondisi saja yang akan dieksekusi. Tentu akan sangat membuang waktu untuk menuliskan proses yang sama dalam sebuah program. Dengan menggunakan struktur pengulangan, kita dapat melakukan proses yang sama beberapa kali sesuai dengan keinginan kita.

5.2.1 Struktur Pemilihan

if Perintah if sering digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilasi benar, maka pernyataan yang berada dalam blok akan dieksekusi. Bentuk Umum if(kondisi) proses yang dilakukan bila kondisi terpenuhi

if else Dalam struktur ini minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang diproses dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang diproses. Bentuk Umum if(kondisi) proses yang dilakukan bila kondisi terpenuhi else proses yang dilakukan bila kondisi tdk terpenuhi

16

atau if(kondisi 1) proses yang dilakukan bila kondisi terpenuhi else if(kondisi 2) proses yang dilakukan bila kondisi 1 terpenuhi, tapi kondisi 2 terpenuhi else if(kondisi 3) proses yang dilakukan bila kondisi 2 terpenuhi, tapi kondisi 3 terpenuhi else jika semua kondisi tidak terpenuhi

tdk tdk

switch case Jika terdapat kemungkinan yang cukup banyak, dengan menggunakan struktur if kita akan menuliskan cukup banyak perintah if. Untuk itu, kita dapat menggunakan struktur switch case. Bentuk Umum switch(variabel atau ekspresi) { case nilai 1: proses yang dilakukan bila variabel atau ekspresi bernilai sama dgn nilai 1 break; case nilai 1: proses yang dilakukan bila variabel atau ekspresi bernilai sama dgn nilai 1 break; default: proses yang dilakukan bila variabel atau ekspresi tidak sama dgn nilai pd semua case }

5.2.2 Struktur Perulangan

for Perintah for sangat cocok digunakan untuk perulangan karena jumlah pengulangan sudah diketahui. Begitu juga awal dan akhir pengulangan sudah diketahui. Bentuk pengulangan dengan perintah for relatif lebih mudah digunakan.

17

Bentuk Umum for(inisialisasi;kondisi;ekspresi) proses yang akan diulang;

while Perintah while sama halnya dengan perintah for, yaitu melakukan perulangan selama kondisi berhenti dipenuhi. Perintah while akan mengecek apa kondisi sudah terpenuhi atau belum, jika belum maka proses akan dilaksanakan. Namun, jika sudah terpenuhi maka proses dihentikan. Bentuk Umum while(kondisi) proses yang akan diulang;

do while Pada perintah for dan while, pengecekan dilakukan sebelum melakukan perulangan. Namun, pada perintah do while, proses akan dijalankan terlebih dahulu kemudian dilakukan pengecekan terhadap kondisi. Jadi perintah ini paling tidak melakukan satu kali proses. Bentuk Umum do proses yang akan diulang; while(kondisi);

5.3 Percobaan

Tulislah program dibawah ini: /*Program daftar makanan di Bioskop*/ #include stdio.h int main() { char c; int done; float total=0; printf(Silahkan buat pilihan anda:\n); printf(1 - Minuman.\n); printf(2 - Permen.\n); printf(3 - Hot dog.\n); printf(4 - Popcorn.\n); printf(= - Selesai.\n); printf(Pilihan anda:\n);

18

/* Memeriksa pilihan */ done=0; while(!done) { c=getchar(); switch(c) { case 1: printf(Minuman\tRp.1500\n); total+=1500; break; case 2: printf(Permen\t\tRp.500\n); total+=500; break; case 3: printf(Hot dog\t\tRp.6000\n); total+=6000; break; case 4: printf(Popcorn\t\tRp.3000\n); total+=3000; break; case =: printf(= Jumlah Rp.%.2f\n,total); printf(Silahkan bayar di kasir.\n); done=1; break; default: printf(Pilihan tidak benar.\n); } /* end switch */ } /* end while */ return(0); }

Simpan dengan nama loop.c. Compile program tersebut. Run program.

19

Bab 6

Larik (Array)[ ]6.1 Tujuan

Mengetahui jenis jenis larik. Mengetahui penggunaan larik dalam bahasa C.

6.2 TeoriLarik (array) adalah kumpulan dari nilai nilai yang bertipe sama dalam urutan tertentu dengan nama variabel yang sama. Letak atau posisi dari elemen larik ditunjukkan oleh indeks.

6.2.1 Larik Dimensi SatuBentuk Umum Tipe_data nama_variabel [ukuran];

Elemen data dapat diakses berdasarkan indeks. Indeks array secara default dimulai dari nol.

6.2.2 Larik Multi DimensiBentuk Umum Tipe_data nama_variabel [ukuran1][ukuran2][ukuranN};

Elemen data dapat diakses berdasarkan indeks. Indeks array secara default dimulai dari nol. Untuk larik dua dimensi dapat dianggap sebagai sebuah matriks yang terdiri dari baris dan kolom.

6.3 Percobaan

Tulislah program dibawah ini: /*Program penjumlahan matriks dua dimensi*/ #include stdio.h #include conio.h void main() {

20

//Deklarasi Variabel int A[3][4], B[3][4], X[3][4], y[3][4], i, j; clrscr(); /*Masukkan data matriks A*/ for(i=0;i