Download - Pemrograman Terstruktur (Bahasa C)

Transcript
  • i

    Bahan Ajar

    PEMROGRAMAN TERSTRUKTUR

    Prof. Dr. Ir. Ansar Suyuti, MT

    JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK

    UNIVERSITAS HASANUDDIN

    MAKASSAR

    2013

  • ii

    KATA PENGANTAR

    Puji syukur penulis panjatkan kehadirat Allah SWT yang telah

    memberikan rahmat dan karunianya serta kesehatan dan kesempatan

    kepada penulis sehingga penyusunan buku bahan ajar untuk mata kuliah

    pemrograman terstruktur ini dapat terselesaikan dengan sangat baik.

    Penyusunan buku bahan ajar ini menjadi salah satu hal penting

    dalam pelaksanaan proses perkuliahan karena merupakan salah satu

    komponen penunjang pembelajaran. Pemrograman terstruktur

    merupakan ilmu yang mempelajari tentang teknik pembuatan program

    secara terstruktur agar penyusunan program untuk suatu masalah yang

    rumit dapat lebih sederhana, dapat dimodifikasi (dikembangkan) dengan

    mudah, dan mempermudah pencarian bagian yang error saat pengujian.

    Bahasa pemrograman yang digunakan dalam buku ini adalah bahasa C.

    Selama proses penyusunan buku ini, penulis menyadari masih

    banyaknya kekurangan dalam buku bahan ajar ini. Oleh karena itu,

    penulis dengan sangat terbuka menerima segala bentuk kritik dan saran

    yang tentunya dapat membangun dan meningkatkan kemampuan kita

    bersama. Penulis berharap semoga buku ini dapat membantu dan

    bermanfaat bagi para pembaca.

    Makassar, 11 Oktober 2013

    Penulis

  • iii

    DAFTAR ISI

    Halaman Sampul ................................................................................ i

    Kata Pengantar ................................................................................... ii

    Daftar Isi ............................................................................................ iii

    Bab I Pendahuluan ....................................................................... 1

    Bab II Struktur Dasar Bahasa C ................................................... 4

    Bab III Input dan Output .............................................................. 13

    Bab IV Penyeleksian Kondisi ......................................................... 19

    Bab V Perulangan ......................................................................... 24

    Bab VI Array ................................................................................. 28

    Bab VII Fungsi .............................................................................. 34

    Bab VIII Struct (Record) ................................................................

    Bab VIII Pointer ............................................................................ 47

    Bab IX Operasi Fungsi .................................................................. 52

  • 1

    BAB I

    PENDAHULUAN

    1. Deskripsi Mata Kuliah

    Pemrograman terstruktur adalah mata kuliah yang

    mempelajari tentang bagaimana menyelesaikan suatu masalah

    komputasi melalui program yang lebih terstruktur dan mudah

    untuk dipahami. Bahasa pemrograman yang digunakan selama

    mata kuliah ini adalah bahasa pemrograman bahasa C. Bahasa

    pemrograman ini dipilih karena penggunaan bahasa

    pemrograman ini secara luas telah digunakan dan mudah untuk

    dipahami. Mata kuliah ini merupakan salah satu mata kuliah

    wajib pada program studi Teknik Informatika.

    2. Kegunaan Mata Kuliah

    Dengan adanya mata kuliah ini mahasiswa memperoleh

    manfaat berupa kemampuan untuk menyusun program yang

    lebih sistematis dan sederhana dalam menyelesaikan suatu

    masalah. Selain itu menambah soft-skill mahasiswa dalam bidang

    pemrograman.

    3. Tujuan Instruksional

    Diharapkan setelah mengikuti mata kuliah ini mahasiswa

    mampu menyelesaikan masalah pemrograman yang lebih

    kompleks dengan lebih sederhana.

  • 2

    4. Petunjuk bagi Mahasiswa

    1) Sebelum mengikuti perkuliahan diharapkan mahasiswa

    telah membaca materi pembahasan dari bahan ajar dan

    literatur lainnya yang berkaitan.

    2) Mintalah petunjuk dari dosen jika ada hal yang belum

    terselesaikan, baik dalam diskusi kelompok maupun dalam

    diskusi kelas

    3) Kerjakan setiap tugas yang diberikan pada setiap akhir

    kegiatan/pertemuan dengan baik.

    4) Perbanyaklah latihan mengerjakan soal, baik secara teori

    maupun langsung dipraktekan dalam komputer dengan

    menggunakan bahasa pemrograman Bahasa C.

    5. Sistem Penilaian

    Adapun sistem penilaian untuk mata kuliah ini adalah :

    1) Kehadiran = 10%

    2) Tugas = 20%

    3) Mid = 30%

    4) Final = 40%

  • 3

    6. Garis Garis Besar Program Pembelajaran

    No Tujuan Instruksional Khusus Pokok Bahasan Sub Pokok Bahasan Estimasi

    Waktu

    1 2 3 4 5

    1.

    Menjelaskan Konsep Pemrograman

    Terstruktur

    Konsep

    Pemrograman

    Terstruktur

    1. Go to less Programming 2. Lingkungan Bahasa C 3. Desain Program

    1 x 100

    2.

    Menjelaskan struktur dasar berupa elemen-

    elemen dasar dalam bahasa C

    Elemen Dasar 1. Tipe Data 2. Variable & Constant 3. Operator & Expresi

    1 x 100

    3.

    Menerapkan perintah perintah dasar dalam program sederhana.

    Perintah Dasar 1. Instruksi Input 2. Inatruksi Output 3. Instruksi Sequential

    1 x 100

    4. Menerapkan perintah penyeleksian kondisi

    (Selection) dan perulangan (iterasion)

    Perintah Selection

    dan Iteration

    1. Instruksi selection 2. Instruksi iteration

    2 x 100

    5.

    Membuat program menggunakan struktur

    data array.

    Array 1. Membuat array 2. Aspek-aspek penting pada array 3. Melewatkan array ke dalam fungsi

    2 x 100

    6.

    Membuat program dengan menggunakan

    fungsi

    Fungsi 1. Fungsi pustaka pada bahasa C 2. Parameter fungsi 3. Jenis variabel fungsi 4. Melewatkan nilai pada fungsi 5. Fungsi rekursif

    2 x 100

    7.

    Membuat program dengan struktur data

    pointer

    Pointer 1. Membuat perintah pointer 2. Operator pointer 3. Operasi pointer 4. Pointer pada pointer, array, dan

    string

    1 x 100

    8.

    Membuat program dengan menggunakan

    operasi file

    Operasi file 1. Pengantar file 2. Membuka dan menutup file 3. Melaksanakan proses file 4. File sequensial

    1 x 100

    9 Membuat program untuk kasus tertentu Studi kasus Program manipulasi 2 x 100

  • 4

    BAB II

    STRUKTUR DASAR BAHASA C

    1. Pendahuluan

    a. Deskripsi

    Bab ini akan menyajikan tentang pengenalan bahasa C, tipe

    tipe data yang digunakan dalam bahasa C, pengertian konstanta dan

    variabel, cara mendeklarasikan konstanta, variabel, dan fungsi,

    operator operator dalam bahasa C, komentar dan kata kata

    terkadang dalam bahasa C.

    b. Tujuan pembelajaran

    Setelah mengikuti perkuliahan ini, mahasiswa diharapkan

    mampu mengenal dan menggunakan tipe data, variabel, konstanta,

    operator operator dan komentar dalam sebuah program bahasa C.

    2. Teori Dasar

    a. Pengenalan Bahasa C

    Bahasa C diciptakan oleh Dennis Ritchie tahun 1972 di Bell

    Laboratories. Bahasa C adalah suatu bahasa pemrograman. Bahasa

    C termasuk sebagai bahasa pemrograman tingkat menengah,

    maksudnya bahasa C bisa dipelajari dengan lebih mudah karena

    mudah dimengerti tetapi mempunyai kemampuan yang tinggi.

    Bahasa C bisa digunakan untuk merekayasa program untuk

    segala kebutuhan, baik untuk aplikasi bisnis, matematis atau

    bahkan game. Setiap bahasa pemrograman memiliki kelebihan dan

  • 5

    kekurangan masing masing. Adapun kelebihan dan kekurangan

    bahasa C adalah sebagai berikut [1]:

    Kelebihan Bahasa C:

    Bahasa C tersedia hampir di semua jenis computer.

    Kode bahasa C sifatnya adalah portable dan fleksibel untuk

    semua jenis computer.

    Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya

    terdapat 32 kata kunci.

    Proses executable program bahasa C lebih cepat

    Dukungan pustaka yang banyak.

    C adalah bahasa yang terstruktur

    Bahasa C termasuk bahasa tingkat menengah penempatan ini

    hanya menegaskan bahwa c bukan bahasa pemrograman yang

    berorientasi pada mesin. yang merupakan ciri bahasa tingkat

    rendah. Melainkan berorientasi pada obyek tetapi dapat

    dinterprestasikan oleh mesin dengan cepat. secepat bahasa

    mesin. inilah salah satu kelebihan c yaitu memiliki kemudahan

    dalam menyusun programnya semudah bahasa tingkat tinggi

    namun dalam mengeksekusi program secepat bahasa tingkat

    rendah.

    Kekurangan Bahasa C:

    Banyaknya operator serta fleksibilitas penulisan program

    kadang-kadang membingungkan pemakai.

    Bagi pemula pada umumnya akan kesulitan menggunakan

    pointer.

  • 6

    b. Struktur Bahasa C [1]

    Adapun struktur dari bahasa C adalah sebagai berikut :

    {

    ;

    ;

    }

    Contoh :

    Preprosesor Directive (#include)

    Preprosesor Directive (#include) adalah perintah yang

    digunakan untuk memanggil file header (include file) yang

    didalamnya terdapat perintah, fungsi atau prototype yang bisa

    digunakan dalam program yan dibuat. Jika perintah #include ini

    tidak ditulis, maka komputer tidak mengerti perintah-perintah yang

    ditulis.

    Contoh:

    #include

    #include phi 3.14

    Header File

    Header adalah berkas yang berisi prototype fungsi, definisi

    konstanta dan definisi variable. Fungsi adalah kumpulan code C yang

    diberi nama dan ketika nama tersebut dipanggil maka kumpulan

    kode tersebut dijalankan.

  • 7

    Contoh :

    File header stdio.h digunakan untuk penanganan input / output

    standar seperti penulisan ke layar, ke file atau pembacaan data dari

    keyboard atau file. Dan masih ada lagi beberapa file header lainnya

    seperti conio.h, math.h,dll.

    Void

    Void artinya fungsi yang mengikutinya tidak memiliki nilai

    kembalian (return).

    Main ( )

    Fungsi main ( ) adalah fungsi yang pertama kali dijalankan

    ketika program dieksekusi. Tanpa fungsi main suatu program tidak

    dapat dieksekusi namun dapat dikompilasi.

    Statement

    Statement adalah instruksi atau perintah kepada suatu

    program ketika program itu dieksekusi untuk menjalankan suatu

    aksi. Setiap statement diakhiri dengan titik-koma (;).

    c. Tipe Data

    Dalam bahasa C tipe data merupakan bagian program yang

    sangat penting karena tipe data mempengaruhi setiap perintah yang

    akan dilaksanakan oleh komputer. Sebagai contoh 3 dibagi 2

    menghasilkan 1.5000 jika bertipe data float dan menghasilkan 1 jika

    bertipe data integer. Berikut adalah tipe dasar dalam bahasa C.

    Pemilihan tipe data yang tepat membuat program menjadi efisien dan

    efektif.

  • 8

    Tabel 2.1 Tipe tipe data dalam pemrograman bahasa C[4]

    No Tipe

    Data Ukuran Range Format Keterangan

    1 char I byte -128 s/d 127 %c Karakter/string

    2 int 2 byte -32768 s/d

    32767 %i, %d

    Integer/ bilangan

    bulat

    3 float 4 byte -3.4E-38s/d

    3.4E+38 %f

    Float/bilangan

    pecahan

    4 double 8 byte 1.7E-308s/d

    1.7E+308 %lf

    Pecahan presisi

    ganda

    5 void 0 byte - - Tidak bertipe

    Contoh Program :

    #include stdio.h

    #include conio.h

    void main()

    {

    int a, b, c;

    float d;

    a = 3;

    b = 2;

    c = a/b;

    d = a/b;

    printf ( "nilai a / b adalah :%i", c);

    printf ( "nilai a / b adalah :%f", d);

    getch ();

    }

    Tampilan program diatas :

  • 9

    Catatan [2]:

    Pemilihan tipe data harus hati-hati. Pertimbangkan jangkauan

    yang dimiliki oleh tipe data yang dipilih. Kesalahan dalam memilih

    tipe data akan menimbulkan suatu hasil yang tidak diperkirakan.

    Contoh :

    int a=32000;

    int b=769;

    int c;

    c=a+b;

    printf(%i + %i = %i\n,a,b,c);

    Jika program tersebut dijalankan, maka akan menghasilkan

    output seperti berikut :

    32000 + 769 = -32767

    Hal tersebut terjadi karena jangkuan nilai c sudah melebihi

    jangkauan nilai untuk sebuah tipe data int. Bila suatu variable telah

    melebihi jangkauan nilainya maka nilai variable tersebut akan

    berputar menjadi nilai minimalnya dan jika nilainya kurang dari

    minimal jangkauan nilainya maka variable tersebut akan terisi oleh

    bilangan maksimal tipe tersebut.

    Contoh : Nilai yang diharapkan :

    32767

    32768

    32769

  • 10

    Nilai yang tercetak pada bahasa C

    32767

    -32768

    -32767

    d. Konstanta

    Konstanta adalah suatu nilai yang sifatnya tetap. Konstanta

    secara garis besar dapat terbagi 2 yaitu konstanta bilangan contoh 1,

    2, 3, .. dan konstanta teks yang dapat berupa karakter contohnya

    a, b, 4, & dan dapat pula berupa teks (string) contohnya

    Makassar, Universitas Hasanuddin. bahasa C juga menyediakan

    beberapa karakter khusus yang disebut karakter escape, antara lain :

    \a : untuk bunyi bell (alert)

    \b : mundur satu spasi (backspace)

    \f : ganti halaman (form feed)

    \n : ganti baris baru (new line)

    \r : ke kolom pertama, baris yang sama (carriage return)

    \v : tabulasi vertical

    \0 : nilai kosong (null)

    \ : karakter petik tunggal

    \ : karakter petik ganda

    \\ : karakter garis miring

    e. Variabel

    Variabel 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

  • 11

    variable bisa diubah-ubah sesuai kebutuhan. Berikut ini adalah

    aturan dalam penamaan variabel.

    Nama variabel hanya boleh terdiri dari huruf, angka, dan garis

    bawah / underscore atau gabungan dari ketiganya, dimana

    karakter pertamanya adalah huruf.

    Tidak mengandung simbol khusus seperti +, -, =, %, ^, @, ?, :,

    $, #, !, &, *, (, ) dll dan tidak mengandung spasi.

    Bersifat case sensitive yaitu huruf kecil dan huruf besar

    berbeda. Contoh : varibel nama, Nama, dan NAMA dianggap

    berbeda.

    Keyword (kata kunci) yang telah digunakan dalam bahasa C

    tidak boleh digunakan sebagai nama variabel,seperti include,

    using, scanf, printf, int, float dll.

    Panjangnya bebas namun yang ditampilkan hanya 32 karakter.

    Contoh penamaan variabel yang benar : x, nama, UNHAS, D411,

    nama_mhs, dll.

    Contoh penamaan variable yang salah : 12nama, %unhas, x#nama,

    nama saya, float, dll.

    f. Deklarasi

    Deklarasi diperlukan bila kita akan menggunakan pengenal

    (identifier) dalam program. Identifier dapat berupa variable, konstanta

    dan fungsi.

    Deklarasi Variabel

    Bentuk umum pendeklarasian suatu variable adalah :

    Nama_tipe nama_variabel;

  • 12

    Contoh :

    int a; (deklarasi a bertipe integer)

    char b, huruf, nip[5]; (deklarasi b, huruf, nip[5], bertipe karakter)

    float c; (deklarasi c bertipe float)

    double d; (deklarasi d bertipe double

    int array[2][3]; (deklarasi array bertipe integer)

    char *p; (deklarasi pointer bertipe karakter)

    Deklarasi Konstanta

    Dalam bahasa C konstanta dideklarasikan menggunakan

    preprocessor #define. Contohnya :

    #define PHI 3.14

    #define nim D412110123

    #define nama Si bulan

    Deklarasi Fungsi

    Fungsi merupakan bagian yang terpisah dari program dan

    dapat diaktifkan atau dipanggil di manapun di dalam program.

    Fungsi dalam bahasa C ada yang sudah disediakan sebagai fungsi

    pustaka seperti printf(), scanf(), getch() dan untuk menggunakannya

    tidak perlu dideklarasikan. Fungsi yang perlu dideklarasikan terlebih

    dahulu adalah fungsi yang dibuat oleh programmer. Bentuk umum

    deklarasi sebuah fungsi adalah :

    Tipe_fungsi nama_fungsi (parameter_fungsi);

    Contohnya :

    float luas_lingkaran(int jari);

    void tampil();

    int tambah(int x, int y);

  • 13

    g. Operator

    1) Operator Penugasan

    Operator Penugasan (Assignment operator) dalam bahasa C

    berupa tanda sama dengan (=)

    Contoh :

    a = 5 ;

    A = x * y;

    Artinya : variabel a diisi dengan 5 dan variable A diisi dengan hasil

    perkalian antara x dan y.

    2) Operator Aritmatika

    Bahasa C menyediakan lima operator aritmatika, yaitu :

    Tabel 2.2 Operator aritmatika

    Operator Keterangan Contoh

    * Perkalian 5 * 6

    / Pembagian 10 / 5

    % Sisa Pembagian

    (modulus) 5 % 2

    + Penjumlahan 3 + 4

    - Pengurangan 5 - 4

    Contoh program : #include "stdio.h"

    #include "conio.h"

    void main()

    {

    clrscr(); // untuk membersihkan layar

    printf("Nilai dari 7 + 3 = %i", 7 + 3);

    printf("\nNilai dari 7 - 3 = %i", 7 - 3);

    printf("\nNilai dari 7 * 3 = %i", 7 * 3);

    printf("\nNilai dari 7 / 3 = %i", 7 / 3);

  • 14

    printf("\nNilai dari 7 % 3 = %i", 7 % 3);

    getch();

    }

    Tampilan program diatas adalah :

    3) Operator Unary

    Operator Unary aadalah operator yang hanya membutuhkan

    satu operand saja. Berikut adalah beberapa operator unary dalam

    bahasa C :

    Tabel 2.3 Operator unary [4]

    Operator Keterangan Letak Contoh

    - Unary minus Sebelum

    operator A + (-B) * C

    ++ Peningkatan dengan

    penambahan nilai 1

    Sebelum dan

    sesudah A++

    -- Penurunan dengan

    pengurangan 1

    Sebelum dan

    sesudah A--

    ! Unary not Sebelum !A

    & Menghasilkan alamat

    memori operand Sebelum &A

    ~ Bitwise NOT Sebelum ~A

    * Menghasilkan nilai dari

    pointer Sebelum *A

    Sizeof Ukuran dari operand dalam

    byte Sebelum sizeof (A)

  • 15

    4) Operator Hubungan (Perbandingan)

    Operator Hubungan digunakan untuk membandingkan

    hubungan antara dua buah operand sebuah nilai atau variable.

    Operator hubungan dalam bahasa C :

    Tabel 2.4 Operator hubungan [4]

    Operator Keterangan Contoh

    < Lebih kecil dari a > b

    = b

    > Lebih besar a < b

    >= Lebih besar sama dengan dari a >= b

    == Sama dengan a == b

    != Tidak sama dengan a != b

    5) Operator Logika

    Operator logika adalah operator yang digunakan untuk

    membandingkan logika hasil dari operator-operator hubungan.

    Operator logika ada tiga macam, yaitu [3]:

    && : Logika AND (DAN)

    || : Logika OR (ATAU)

    ! : Logika NOT (INGKARAN)

  • 16

    6) Operator Bitwise

    Operator bitwise digunakan untuk memanipulasi bit-bit dari

    nilai data yang ada di memori. Operator bitwise dalam bahasa C [3]:

    > : Pergeseran bit ke kanan

    & : Bitwise AND

    ^ : Bitwise XOR (exclusive OR)

    | : Bitwise OR

    ~ : Bitwise NOT

    7) Kata Tercadang (Reserved Word)

    Bahasa C standar ANSI memiliki 32 kata tercadang (reserved

    word) dan Turbo C menambahkannya dengan 7 kata tercadang.

    Semua reserved word tidak boleh digunakan dalam penamaan

    identifier (variable, nama fungsi dll). Kata Tercadang yang tersedia

    dalam bahasa C adalah sbb [4]:

    *asm default for *pascal switch

    auto do goto register typedef

    break double *huge return union

    case else if short unsigned

    *cdecl enum int signed void

    char extern *interrupt sizeof volatile

    const *far long static while

    continue float *near struct

  • 17

    8) Komentar Program

    Komentar program hanya diperlukan untuk memudahkan

    pembacaan dan pemahaman suatu program (untuk keperluan

    dokumentasi program). Dengan kata lain, komentar program hanya

    merupakan keterangan atau penjelasan program. Untuk memberikan

    komentar atau penjelasan dalam bahasa C digunakan pembatas /*

    dan */ atau menggunakan tanda // untuk komentar yang hanya

    terdiri dari satu baris. Komentar program tidak akan ikut diproses

    dalam program (akan diabaikan).

    Contoh program :

    #include

    #include

    void main()

    {

    clrscr(); // untuk membersihkan layar

    printf(Universitas Hasanuddin); /* Mencetak Universitas Hasanuddin */

    getch();

    }

    Tampilan program diatas :

  • 18

    3. Latihan Soal

    Kerjakanlah latihan soal berikut!

    1. Buatlah sebuah program menghitung nilai rata rata dari data

    nilai mahasiswa yang terdiri atas nilai tugas1, tugas2 , mid

    test, dan final test dimana komposisi nilai adalah tugas 20%,

    mid 40%, dan final 40% .

    2. Sebuah toko memberikan discount untuk setiap pembelian

    minimum Rp 50.000,-. Hitunglah jumlah yang harus dibayar

    oleh setiap pelanggan untuk setiap pembelian.

  • 19

    Daftar Pustaka

    [1] Bahasa Pemrograman C. diakses pada tanggal 13 Oktober 2013.

    http://www2.ukdw.ac.id/kuliah/info/TI2023/Modul08A.pdf

    [2] Kurniawan Khannedy Eko. 2007. Pemrograman C. Teknik

    Informatika. UNICOM.

    [3] Frieyadie. 2005. Panduan Pemrograman C++. Penerbit Andi. Yogyakarta

    [4] Solichin Achmad. Pemrograman Bahasa C dengan Turbo C. www.ilmukomputer.com

  • 20

    BAB III

    INPUT DAN OUTPUT

    1. Pendahuluan

    a. Deskripsi

    Bab ini menyajikan tentang beberapa perintah input dan output

    yang digunakan dalam bahasa C dan cara pendeklarasian dan

    penggunaannya masing masing.

    b. Tujuan Pembelajaran

    Setelah mempelajari bab ini diharapkan mahasiswa mampu

    menggunakan setiap perintah input dan output dalam membuat

    program pada pemrograman bahasa C.

    2. Teori Dasar

    a. Perintah Input

    Perintah standar input yang merupakan fungsi pustaka bahasa

    C diantaranya adalah :

    1) Scanf() [4]

    Fungsi pustaka scanf() digunakan untuk menginput data

    berupa data numerik, karakter dan string secara terformat. Hal-hal

    yang perlu diperhatikan dalam pemakaian fungsi scanf() :

    Fungsi scanf() memakai penentu format

    Fungsi scanf() memberi pergantian baris secara otomatis

    Fungsi scanf() tidak memerlukan penentu lebar field

    Variabelnya harus menggunakan operator alamat &

  • 21

    Bentuk umum dari fungsi ini adalah :

    scanf (penentu format, &nama_variabel);

    Tabel 3.1 Kode penentu format [1]

    Tipe Data Penentu

    Format

    Integer %d atau %i

    Bentuk desimal/ berpangkat/

    floating point %e atau %f

    Karakter %c

    String %s

    Unsigned octal integer %o

    Unsigned hexadecimal integer %x

    Unsigned integer %u

    Contoh program :

    #include

    #include

    void main ()

    {

    int a;

    float b;

    char nama[10];

    printf("Masukkan nilai a = "); scanf("%d", &a);

    printf("Masukkan nilai b = "); scanf("%e", &b);

    printf("Masukkan nama Anda = "); scanf("%s", &nama);

    }

    Tampilan program diatas :

  • 22

    2) Gets()

    Fungsi Gets () digunakan untuk memasukkan data string.

    Bentuk umum fungsi ini adalah [4]:

    gets (nama_variabel_array)

    Contoh program :

    #include

    #include

    void main ()

    {

    char nama[20];

    char jurusan[20];

    printf("Masukkan nama Anda : ");

    gets (nama);

    printf ("\nMasukkan jurusan Anda : ");

    gets (jurusan);

    }

    Tampilan program diatas adalah :

    3) Getch()

    Fungsi getch() (get character and echo) digunakan untuk

    sebuah karakter dengan sifat karakter yang dimasukkan tidak perlu

    diakhiri dengan menekan tombol ENTER, dan karakter yang

    dimasukkan tidak akan ditampilkan dilayar. File header yang harus

    disertakan adalah conio.h [4].

  • 23

    Contoh program [3]:

    #include

    #include

    void main ()

    {

    char a;

    printf("Masukkan sebuah karakter : ");

    a = getch ();

    printf ("\nKarakter yang Anda masukkan adalah :%c ", a);

    getch ();

    }

    Tampilan program diatas :

    4) Getchar()

    Fungsi getchar() digunakan untuk membaca data yang bertipe

    karakter. Penggunaannya harus diakhiri dengan penekanan tombol

    ENTER dan karakter yang dimasukkan akan terlihat pada layar [4].

    Contoh program :

    #include

    void main ()

    {char c;

    printf ("Masukkan sebuah karakter: ");

    c = getchar ();

    printf ("%c", c);

    }

  • 24

    Tampilan program diatas adalah :

    5) Getche()

    Fungsi getche() digunakan untuk membaca sebuah karakter

    dengan sifat karakter yang dimasukkan tidak perlu diakhiri dengan

    menekan tombol ENTER, dan karakter yang dimasukkan ditampilkan

    dilayar. File header yang harus disertakan adalah conio.h[4].

    Contoh program :

    #include

    #include

    void main ()

    {

    char a;

    printf("Masukkan sebuah karakter : ");

    a = getche ();

    printf ("\nKarakter yang Anda masukkan adalah :%c ", a);

    getch ();

    }

    Tampilan program diatas adalah :

    b. Perintah Output

    Untuk menampilkan data pada layar maka fungsi yang dapat

    digunakan adalah [4] :

    Fungsi printf() digunakan untuk menampilkan semua jenis

    data (numeric dan karakter)

  • 25

    Bentuk penulisan :

    printf (string-kontrol, argument-1, argument-2,..);

    Fungsi puts() digunakan untuk menampilkan data string dan

    secara otomatis akan diakhiri dengan perpindahan baris.

    Fungsi putchar() digunakan untuk menampilkan sebuah

    karakter.

    Contoh program :

    #include

    #include

    void main ()

    {

    int a = 10;

    float b = 5;

    char c[10] = "UNHAS";

    printf ("Nilai a adalah :%i \n", a);

    printf ("Nilai a adalah ;%i dan nilai b adalah : %f\n\n", a, b);

    puts ("Saya kuliah di");

    puts (c);

    puts ("\nSaya kuliah di");

    putchar ('U'); putchar ('N'); putchar ('H'); putchar ('A');putchar ('S');

    getch ();

    }

    Tampilan program diatas adalah :

  • 26

    Mengatur lebar field [1]:

    Bila ingin mencetak atau menampilkan data yang bertipe data float

    atau pecahan, tampilan yang tampak biasanya kurang bagus. Untuk

    mengatur lebar field dan jumlah desimal yang akan dicetak, dapat

    digunakan bentuk penulisan :

    %a.bf

    Lebar field Jumlah desimal

    Contoh program [1]:

    #include

    #include

    void main ()

    {

    float a = 1.23, b = 321.5;

    printf ("Bilangan a tanpa pengaturan lebar fild = %f\n",a );

    printf ("Bilangan b tanpa pengaturan lebar fild = %f\n\n",b );

    printf ("Bilangan a dengan pengaturan lebar fild = %3.2f\n",a );

    printf ("Bilangan b dengan pengaturan lebar fild = %3.2f\n",b );

    getch ();

    }

    Contoh Kasus[2]

    Di suatu perusahaan, data penggajian dihitung dengan

    ketentuan sebagai berikut :

    Gaji Pokok : Rp. 5000000

  • 27

    Gaji Lembur/jam : Rp. 5000

    Total Gaji Lembur : Lama Lembur * Gaji Lembur/jam

    Gaji Kotor : Gaji Pokok + Total Gaji Lembur

    Pajak : 10%

    Gaji Bersih : Gaji Kotor - Pajak

    Data yang diinputkan adalah : Nama Pegawai, Lama Lembur.

    #include

    #include

    main()

    {

    int jamlembur;

    long int gajipokok=500000,gajikotor,totalgajilembur;

    float pajak,gajibersih;

    char nama[50];

    clrscr();

    printf("Nama Pegawai : ");gets(nama);

    printf("Lama Lembur : ");scanf("%i",&jamlembur);

    totalgajilembur=(long int)5000*jamlembur;

    gajikotor=gajipokok+totalgajilembur;

    pajak=0.1*gajikotor;

    gajibersih=gajikotor-pajak;

    clrscr();

    printf("Hasil Perhitungan\n");

    printf("Nama Pegawai : %s\n",nama);

    printf("Gaji Pokok : Rp. %10li\n",gajipokok);

    printf("Lama Lembur : %i jam\n",jamlembur);

    printf("Total Gaji Lembur : Rp. %10li\n",totalgajilembur);

    printf("Gaji Kotor : Rp. %10li\n",gajikotor);

    printf("Pajak (10%%) : Rp. %10.0f\n",pajak);

    printf("Gaji Bersih : Rp. %10.0f\n",gajibersih);

    getch();

    }

    Tampilan program diatas adalah :

  • 28

    3. Latihan

    Kerjakanlah soal latihan berikut!

    1) Buatlah sebuah Menginput data pegawai pada sebuah instansi

    dimana data yang dibutuhkan adalah Nama, NIP, Tempat dan

    tanggal lahir, dan Alamat.

    2) Buatlah sebuah program untuk membuat sebuah password.

    3) Buatlah sebuah program untuk Menginput sebuah nilai yang

    menyatakan waktu dalam detik, kemudian cetaklah waktu

    tersebut dalam bentuk :

    Jam, Menit, dan Detik

  • 29

    Daftar Pustaka

    [1] Frieyadie. 2005. Panduan Pemrograman C++. Penerbit Andi.

    Yogyakarta

    [2] Kurniawan Khannedy Eko. 2007. Pemrograman C. Teknik

    Informatika. UNICOM.

    [3] Sjukani Moh. 2009. Algoritma (Algoritma & Struktur Data 1)

    dengan C, C++, dan Java, Teknik Teknik Dasar Pemrograman

    Komputer. Edisis 5. Mitra Wacana Media. Jakarta

    [4] Solichin Achmad. Pemrograman Bahasa C dengan Turbo C.

    www.ilmukomputer.com

  • 30

    BAB IV

    PENYELEKSIAN KONDISI

    1. Pendahuluan

    a. Deskripsi

    Bab ini menyajikan tentang fungsi fungsi yang digunakan

    dalam menyelesaikan program penyeleksian kondisi pada

    pemrograman bahasa C serta perbedaan penggunaan masing

    masing.

    b. Tujuan pembelajaran

    Setelah mengikuti perkuliahan ini mahasiswa diharapkan

    mampu membuat program dengan menggunakan fungsi selection.

    2. Teori Dasar

    Penyeleksian kondisi digunakan untuk menentukan alur suatu

    proses. Penyeleksian kondisi biasanya digunakan dalam program

    yang kompleks. Penyeleksian kondisi melibatkan beberapa operator

    dalam bahasa C, yaitu : operator hubungan (perbandingan), logika,

    dan bitwise. Fungsi seleksi terdiri dari 3 tipe pernyataan yaitu :

    a. Struktur Kondisi if

    Bentuk umum If [1]:

    if (kondisi)

    {

    statement1;

    statementn;

    }

  • 31

    Jika kondisi yang diseleksi terpenuhi maka statement tersebut

    akan dikerjakan sedangkan jika kondisi tersebut tidak terpenuhi

    maka akan menjalankan program berikutnya setelah seleksi kondisi

    tersebut.

    Contoh program 1:

    #include

    #include

    void main ()

    {

    float tot_pembelian, discount, tot_pembayaran;

    printf ("Masukkan Total Pembelian Rp :");

    scanf ("%f",&tot_pembelian);

    if (tot_pembelian >= 100000)

    discount = 0.2*tot_pembelian;

    printf ("\nAnda memperoleh discount 10 %");

    printf ("\nBesarnya Potongan : Rp %10.0f",discount);

    tot_pembayaran = tot_pembelian - discount;

    printf ("\nJumlah yang Anda bayar adalah : Rp %10.0f",

    tot_pembayaran);

    printf ("\n\nTERIMA KASIH ATAS KUNJUNGAN ANDA");

    getch ();

    }

    Tampilan program diatas adalah :

  • 32

    Jika dalam sebuah IF perintah yang hendak dijalankan lebih

    dari 1 perintah, maka perintah perintah tersebut harus

    dikelompokkan dalam sebuah blok { }. Format penulisannya adalah

    [5]:

    if

    {

    statement 1;

    statement 2;

    }

    Statement 3;

    Statement 4;

    Dengan format IF diatas, jika kondisi benar, maka perintah

    yang dijalankan adalah perintah yang terletak dalam kurung kurawal

    (statement 1 dan statement 2), sedangkan statement3 dan statement

    4 akan dijalankan tanpa bergantung dari kondisi yang ada.

    Contoh program 2 [5]:

    # include

    #include

    main ()

    {

    float suhu;

    printf ("Masukkan suhu dalam derajat Celcius :");

    scanf ("%f", &suhu);

    if (suhu < 24)

    {printf ("\nSebaiknya tidak mandi!\n");

    printf ("\nJangan menyalakan AC.");

    }

  • 33

    if (suhu >= 24)

    {printf ("\nSebaiknya mandi!");

    printf ("\nNyalakan AC!");

    }

    getch ();

    }

    Tampilan program diatas :

    b. Struktur Kondisi if else

    Bentuk umum If Else :

    if (kondisi)

    { Statement;

    }

    else

    } Statement;

    }

    Jika kondisi yang diseleksi terpenuhi maka statement pertama

    yang akan dikerjakan sedangkan jika kondisi tersebut tidak

    terpenuhi statement kedua yang akan dikerjakan. Diakhir setiap

    statement menggunakan tanda (;) walaupun sebelum else.

    Contoh program :

    #include

    #include

    void main ()

    {

  • 34

    float tot_pembelian, discount, tot_pembayaran;

    printf ("Masukkan Total Pembelian Rp :");

    scanf ("%f",&tot_pembelian);

    if (tot_pembelian >= 100000)

    {

    printf ("\nAnda memperoleh discount 10 %");

    discount = 0.2*tot_pembelian;

    }

    else

    {

    printf ("\nAnda memperoleh discount 5 %");

    discount = 0.05*tot_pembelian;

    }

    printf ("\nBesarnya Potongan : Rp %10.0f",discount);

    tot_pembayaran = tot_pembelian - discount;

    printf ("\nJumlah yang Anda bayar adalah : Rp %10.0f",

    tot_pembayaran);

    printf ("\n\nTERIMA KASIH ATAS KUNJUNGAN ANDA");

    getch ();

    }

    Tampilan program diatas adalah :

  • 35

    Contoh program 2 [4]:

    Berikut adalah program untuk menginput tiga buah bilangan

    bulat (misal A, B, dan C) kemudian mencetak ketiga nilai tersebut

    urut dari nilai kecil ke nilai besar [3]

    # include

    # include

    void main ()

    { int A, B, C;

    printf ("Input nilai A ="); scanf ("%i", &A);

    printf ("Input nilai B ="); scanf ("%i", &B);

    printf ("Input nilai C ="); scanf ("%i", &C);

    if (A < B)

    { if (B < C)

    printf ("%i ,%i ,%i ",A, B, C);

    else

    {if (A < C)

    printf ("%i ,%i ,%i ",A, C, B);

    else

    printf ("%i ,%i ,%i ",C, A, B);

    }

    }

    else

    {if (A < C)

    printf ("%i ,%i ,%i ",B, A, C);

    else

    { if (B < C)

    printf ("%i ,%i ,%i ", B, C, A);

    else

    printf ("%i ,%i ,%i ",C, B, A);

    }

    }

    getch ();

    }

    Tampilan program diatas adalah :

  • 36

    c. Struktur Kondisi Switch

    Struktur kondisi switch digunakan untuk penyeleksian kondisi

    dengan kemungkinan yang terjadi cukup banyak[1].

    Bentuk Umum Switch :

    switch (ekspresi)

    {

    case 1: Statement 1;

    break;

    case 2 : Statement 2;

    break;

    case n : Statement n;

    break;

    default : Statement m;

    }

    Contoh program :

    #include

    #include

    void main ()

    {

    char jurusan;

    printf ("1. Teknik Sipil \n2. Teknik Mesin \n3. Teknik Perkapalan \n4.

    Teknik Elektro");

    printf ("\n5. Teknik Arsitektur \n6. Teknik Geologi");

    printf ("\n\nMasukkan kode jurusan Anda :");

    jurusan = getchar ();

    switch (jurusan)

  • 37

    {

    case '1' : puts ("TEKNIK SIPIL"); break;

    case '2' : puts ("TEKNIK MESIN"); break;

    case '3' : puts ("TEKNIK PERKAPALAN"); break;

    case '4' : puts ("TEKNIK ELEKTRO"); break;

    case '5' : puts ("TEKNIK ARSITEKTUR"); break;

    case '6' : puts ("TEKNIK GEOLOGI"); break ;

    default : puts ("Kode Anda Salah"); break;

    }

    getch ();

    }

    Tampilan program diatas adalah :

    Contoh Program 2 [2]:

    Contoh switch case berjenjang

    # include

    # include

    void main ()

    { char KodePulau; int KodeKota;

    printf ("Kode Pulau : \nJ = Jawa \nS = Sumatera \nK =

    Kalimantan");

    printf ("\nMasukkan Kode Pulau : \t");

    scanf ("%c", &KodePulau);

    switch (KodePulau)

    {

    case 'J':

  • 38

    printf ("PULAU JAWA \n");

    printf ("Kode Kota di Jawa :");

    printf ("\n1. Jakarta \n2. Surabaya \n3. Bandung \n4. Semarang \n5.

    Yogyakarta\n");

    printf ("Masukkan Kode Kota :\t");

    scanf ("%i", &KodeKota);

    switch (KodeKota)

    {

    case 1 : printf ("\nJakarta");

    break;

    case 2 : printf ("\nSurabaya");

    break;

    case 3 : printf ("\nBandung");

    break;

    case 4 : printf ("\nSemarang");

    break;

    case 5 : printf ("\nYogyakarta");

    break;

    default : printf ("Kode Kota di Pulau Jawa Salah");

    }

    break;

    case 'S':

    printf ("PULAU SUMATERA \n");

    printf ("Kode Kota di Sumatera");

    printf ("\n1. Medan \n2. Palembang \n3. Padang\n");

    printf ("Masukkan Kode Kota : \t");

    scanf ("%i", &KodeKota);

    switch (KodeKota)

    {

    case 1 : printf ("\nMedan");

    break;

    case 2 : printf ("\nPalembang");

    break;

    case 3 : printf ("\nPadang");

    break;

    default : printf ("Kode Kota di Pulau Sumatera Salah");

    }

    break;

  • 39

    case 'K':

    printf ("PULAU KALIMANTAN \n");

    printf ("Kode Kota di Kalimantan");

    printf ("\n1. Banjarmasin \n2. Pontianak\n");

    printf ("Masukkan Kode Kota : \t");

    scanf ("%i", &KodeKota);

    switch (KodeKota)

    {

    case 1 : printf ("\nBanjarmasin");

    break;

    case 2 : printf ("\nPontianak");

    break;

    default : printf ("Kode Kota di Pulau Kalimantan Salah");

    }

    break;

    default : printf ("Kode Pulau Salah");

    }

    getch ();

    }

    Tampilan program diatas adalah :

  • 40

    d. Multi Kondisi dan Opertor Logika [3]

    Kadang kadang satu kondisi saja tidak cukup untuk

    menentukan suatu syarat, sehingga diperlukan dua atau lebih

    kondisi. Untuk menggabungkan kondisi kondisi tersebut digunakan

    operator yang disebut operator logika. Adapun operator logika dapat

    digunakan : AND (&&), OR (||), dan NOT (!).

    Contoh Program 1 :

    # include

    # include

    void main ()

    {

    int a, b, c;

    printf ("Input nilai A : "); scanf ("%i", &a);

    printf ("Input nilai B : "); scanf ("%i", &b);

    printf ("Input nilai C : "); scanf ("%i", &c);

    if (a > b && a > c )

    printf ("Nilai maksimum adalah %i", a);

    if (b > a && b > c )

    printf ("Nilai maksimum adalah %i", b);

    if (c > a && c > b )

    printf ("Nilai maksimum adalah %i", c);

    getch ();

    }

    Tampilan program diatas adalah :

  • 41

    Contoh program 2 [2]:

    #include

    #include

    main()

    {

    int kodejurusan,kodekelas,banyaktiket;

    long int hargatiket,total;

    float diskon,bayar;

    printf("Pilih Jurusan :\n");

    printf("---------------\n");

    printf("1. Jakarta\n2. Yogya\n3. Surabaya\n");

    printf("---------------\n");

    printf("Jurusan yang dipilih : ");scanf("%i",&kodejurusan);

    printf("Pilih Kelas :\n");

    printf("---------------\n");

    printf("1. Eksekutif\n2. Bisnis\n3. Ekonomi\n");

    printf("---------------\n");

    printf("Kelas yang dipilih : ");scanf("%i",&kodekelas);

    printf("Banyak Tiket : ");scanf("%i",&banyaktiket);

    if((kodejurusan==1)&&(kodekelas==1))

    hargatiket=70000;

    else

    if((kodejurusan==1)&&(kodekelas==2))

    hargatiket=40000;

    else

    if((kodejurusan==1)&&(kodekelas==3))

    hargatiket=10000;

    else

    if(kodejurusan==2)

    {

    if(kodekelas==1) hargatiket=80000; else

    if(kodekelas==2) hargatiket=50000; else

    if(kodekelas==3) hargatiket=20000;

    }

    else

    if(kodejurusan==3)

    {

    switch (kodekelas)

  • 42

    {

    case 1:hargatiket=90000;break;

    case 2:hargatiket=60000;break;

    case 3:hargatiket=30000;

    }

    }

    printf("Harga Tiket : Rp. %li\n",hargatiket);

    total=banyaktiket*hargatiket;

    printf("Total Tiket : Rp. %li\n",total);

    if( ((kodejurusan==3)&&(kodekelas==1)) ||

    ((kodejurusan==2)&&(kodekelas==2))

    )

    diskon=0.1*total;

    else

    diskon=0;

    printf("Diskon 10%% : Rp. %f\n",diskon);

    bayar=total-diskon;

    printf("Bayar : Rp. %f\n",bayar);

    getch();

    return 0;

    }

    Tampilan program diatas adalah :

  • 43

    3. Latihan

    1) Buatlah nilai huruf dengan kriteria sebagai berikut :

    Nilai Huruf Range Nilai

    A Nilai akhir > 85

    B 70>= nilai akhir = nilai akhir < 70

    D 50 >= nilai akhir < 60

    E Nilai akhir < 50

    2) Buatlah program mengklasifikasikan jenis buku berikut :

    Kode 1 : komputer

    Kode 2 : akuntansi

    Kode 3 : hukum

    Kode 4 : manajemen

    Kode 5 : kedokteran

    3) Buatlah sebuah program untuk menentukan jenis sebuah

    segitiga dengan memberi 3 input bilangan yang menyatakan

    panjang sisi dari sebuah segitiga. Jika ketiga sisi dari bilangan

    tersebut sama maka segitiga tersebut adalah segitiga sama

    sisi, jika kedua bilangan sama maka segitiga tersebut adalah

    segitiga sama kaki, dan jika ketiga bilangan yang diinput

    berbeda maka segitiga tersebut adalah segitiga sembarang.

    a. Gunakan operator logika AND (&&) atau OR (||).

    b. Gunakan operator logika AND (&&) dan OR (||).

  • 44

    Daftar Pustaka

    [1] Frieyadie. 2005. Panduan Pemrograman C++. Penerbit Andi.

    Yogyakarta

    [2] Kurniawan Khannedy Eko. 2007. Pemrograman C. Teknik

    Informatika. UNICOM.

    [3] Sjukani Moh. 2009. Algoritma (Algoritma & Struktur Data 1)

    dengan C, C++, dan Java, Teknik Teknik Dasar Pemrograman

    Komputer. Edisis 5. Mitra Wacana Media. Jakarta

    [4] Solichin Achmad. Pemrograman Bahasa C dengan Turbo C.

    www.ilmukomputer.com

    [5] Swastika Windra. April 2012. "Dasar Algoritma dan Pemrograman

    menggunakan C & Java". Prestasi Pustaka Publisher. Jakarta

  • 45

    BAB V

    PERULANGAN

    1. Pendahuluan

    a. Deskripsi

    Dalam bab ini dijelaskan tentang fungsi fungsi yang

    digunakan untuk membuat perintah perulangan dan perbedaan

    penggunaan masing - masing fungsi.

    b. Tujuan Pembelajaran

    Setelah mengikuti perkuliahan ini, mahasiswa diharapkan mampu

    menyelesaikan masalah perulangan dengan menggunakan program

    bahasa C.

    2. Teori Dasar

    Perulangan data atau yang biasa disebut dengan looping

    adalah proses yang dilakukan secara berulang-ulang sampai batas

    yang ditentukan. Perulangan akan berhenti jika nilai yang

    dimasukan sudah tidak memenuhi syarat yang diberikan. Jenis

    jenis perulangan:

    a. For

    For digunakan untuk mengulang suatu proses yang telah

    diketahui jumlah perulangannya. Syntax untuk menuliskan perintah

    for adalah sebagai berikut [4]:

    for (inisialisasi; syarat_perulangan; pengubah_nilai_pencacah)

    Keterangan :

    Inisialisasi : bagian untuk memberikan nilai awal untuk

    variabel variabel tertentu

  • 46

    Syarat pengulangan : memegang kontrol terhadap

    pengulangan, karena bagian ini yang akan menentukan suatu

    perulangan diteruskan atau dihentikan.

    Pengubah nilai pencacah : mengatur kenaikan atau penurunan

    nilai pencacah.

    Contoh program 1:

    #include

    #include

    void main ()

    {

    int a;

    for (a = 1; a

  • 47

    #include

    #include

    main ()

    {

    int i, j;

    int hasil = 1;

    printf ("PROGRAM UNTUK MENGHITUNG FAKTORIAL N!");

    printf ("\n\nInput N = ");

    scanf ("%i", &j);

    for (i = j; i >=1; i--)

    {hasil = hasil*i;

    }

    printf ("\n\nHasil faktorial : %d", hasil);

    getch ();

    }

    Tampilan Program diatas :

    Contoh program 3 [2]:

    Berikut akan diberikan contoh penggunaan perintah for dalam for :

    #include

    #include

    main ()

    {

    int i, j;

    for (i = 1; i < 6; i++)

    {for (j = 1; j

  • 48

    {printf ("%d",i);

    }

    printf ("\n");

    }

    getch ();

    }

    Tampilan program diatas:

    b. While

    While digunakan untuk mengulang suatu proses yang belum

    diketahui jumlahnya. Pengecekan kondisi akan dilakukan terlebih

    dahulu. Jika kondisi masih bernilai true, maka looping akan terus

    berlanjut. Bentuk penulisan while adalah sebagai berikut[1]:

    while (syarat_pengulangan)

    {

    statement_yang_akan_diulang;

    }

    Contoh program 1:

    #include "stdio.h"

    #include "conio.h"

    void main()

    { clrscr();

    int bil = 1;

  • 49

    while (bil

  • 50

    c. Do while

    Do while digunakan untuk mengulang suatu proses yang

    belum diketahui jumlahnya. Instruksi akan dijalankan lebih dahulu,

    kemudian dilakukan pengecekan kondisi apabila masih bernilai true

    maka looping akan terus berlanjut. Bentu penulisannya sebagai

    berikut [1]:

    do

    {

    statement-yang-akan-diulang;

    }

    while (syarat-pengulangan);

    Contoh program :

    # include

    # include

    void main ()

    {

    int bil = 2;

    do

  • 51

    {

    printf ("%i", bil);

    bil +=2;

    }

    while (bil

  • 52

    printf("\nTotal Pembelian : %d", total);

    getch ();

    }

    Tampilan program diatas adalah :

    Contoh aplikasi [3]:

    Titik A dan titik B hanya dihubungkan oleh satu buah jalan

    sepanjang 1000 m. Ali berangkat dari titik A menuju titik B tepat jam

    08 : 15 : 27 dengan kecepatan tetap 2 m/det. Badu berangkat dari

    titik B pada jam yang sama menuju titik A dengan kecepatan tetap 3

    m/det. Susun program untuk mencetak pukul berapa ( Jam: Menit:

    detik) Ali dan Badu berpapasan di jalan.

    # include

    #include

    void main ()

    { int vAli, vBadu, sAli, sBadu, s, t;

    long int t1, t2, det, J, M, D;

    vAli = 2; vBadu = 3;

    sAli = 0; sBadu;

  • 53

    s = 1000 ; t = 0;

    while ((sAli + sBadu) < s)

    { sAli = sAli + vAli;

    sAli = sBadu+ vBadu;

    t = t + 1;

    }

    t1 = 8*3600L + 15*60 +27;

    t2 = t1 + t;

    det = t2;

    J = det/ 3600; det = det % 3600;

    M = det / 60; det = det % 60;

    D = det;

    printf ("%li : %li : %li", J, M, D);

    getch ();

    }

    Tampilan program diatas adalah :

  • 54

    3. Latihan

    1) Buatlah program menghitung 10 deret bilangan genap dengan

    hasilnya!

    2 + 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20 = 110

    a. Dan ganjil dengan hasilnya!

    b. 1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 = 100

    2) Buatlah program untuk menghitung perkalian deret bilangan

    ganjil membentuk segitiga siku dengan hasilnya!

    1 = 1

    1 x 3 = 3

    1 x 3 x 5 = 15

    1 x 3 x 5 x 7 = 105

    1 x 3 x 5 x 7 x 9 = 945

    3) Seseorang menyimpan uang Rp 1.000.000,- di bank dengan

    bunga ber-bunga 2 % perbulan. Jadi setelah satu bulan

    uangnya menjadi Rp 1.020.000,-. Satu bulan berikutnya

    uangnya ini mendapat bunga lagi 2%, sehingga setetlah 2

    bulan, uangnya menjadi Rp 1.020.000 + Rp 20.400,- = Rp

    1.040.400,- dan demikian seterusnya. Buatlah program untuk

    menghitung dan mencetak jumlah uangnya stetlah 10 bulan.

  • 55

    Daftar Pustaka

    [1] Frieyadie. 2005. Panduan Pemrograman C++. Penerbit Andi.

    Yogyakarta

    [2] Kurniawan Khannedy Eko. 2007. Pemrograman C. Teknik

    Informatika. UNICOM.

    [3] Sjukani Moh. 2009. Algoritma (Algoritma & Struktur Data 1)

    dengan C, C++, dan Java, Teknik Teknik Dasar Pemrograman

    Komputer. Edisis 5. Mitra Wacana Media. Jakarta

    [4] Solichin Achmad. Pemrograman Bahasa C dengan Turbo C.

    www.ilmukomputer.com

  • 56

    BAB VI

    ARRAY

    1. Pendahuluan

    a. Deskripsi

    Bab ini menyajikan tentang pengertian, cara deklarasi, dan

    penggunaan array baik array berdimensi satu, array berdimensi dua,

    dan array multi-dimensi. Serta disajikan contoh contoh

    penggunaannya masing masing.

    b. Tujuan Pembelajaran

    Setelah mengikuti perkuliahan ini, mahasiswa diharapkan

    dapat memahami penggunaan array serta mampu mengaplikasikan

    dalam menyelesaikan program yang membutuhkan penyelesaian

    dengan array.

    2. Teori Dasar

    Array atau larik adalah tipe terstruktur yan terdiri dari

    sejumlah komponen yang mempunyai tipe yang sama. Jumlah

    komponen dalam sebuah array adalah tetap. Banyaknya komponen

    dalam array ditunjukkan oleh indeks yang berfungsi untuk

    membedakan variabel yang satu dengan variabel lainnya. Dalam

    bahasa C dikenal 3 macam array yaitu :

    a. Array Berdimensi Satu

    Untuk mengakses setiap elemen dalam array dapat dilakukan

    dengan mengakses indeksnya. Indeks setiap array default dimulai

    dari nol. Adapun bentuk deklarasi array adalah [4]:

    Tipe_data Nama_variabel[Ukuran]

  • 57

    Tipe data untuk menyatakan tipe data yang digunakan dan ukuran

    digunakan untuk menyatakan jumlah maksimum elemen array.

    Sebuah array dapat digambarkan sebagai kotak anjang yang berisi

    kotak kotak kecil di dalam kotak panjang tersebut. Contoh :

    int nilai[5];

    indeks [0] [1] [2] [3] [4]

    50 85 90 70 95

    Contoh program :

    # include

    # include

    void main()

    { int index, barang[10];

    clrscr();

    // input jumlah barang//

    printf ("Masukkan jumlah Barang :\n");

    for (index =0 ; index < 10; index ++)

    {

    printf ("Barang %i : ", index+1);

    scanf ("%i", &barang[index]);

    }

    printf ("Jumlah barang yang telah diinput:");

    for (index = 0; index < 10; index++)

    {

    printf ("%i", barang[index]);

    }

    getch ();

    }

    Tampilan program diatas adalah :

  • 58

    Untuk mengakses array berdimensi 1, dapat digunakan bentuk

    pengaksesan sebagai berikut [1]:

    Nama_array[indeks]

    Contoh :

    nilai [3];

    nilai [1];

    nilai [0]; dst

    Sedangkan untuk inisialisasi suatu array dapat dilakukan dengan

    bentuk :

    Tipe_data nama_array[indeks] = {nilai array};

    Contoh :

    float nilai[5] = {75.8 78,67 87,5 90.0 65.7};

    Contoh program inisiakisasi dan mengakses array :

    #include

    #include

    main()

    { int i, nilai [5];

    nilai [0] = 10;

    nilai [1] = 8;

    nilai [2] = 5;

    nilai [3] = 7;

    nilai [4] = 8;

  • 59

    printf ("Nilai = ");

    for (i = 0; i

  • 60

    b. Array Berdimensi Dua

    Array dimensi dua tersusun dalam bentuk baris dan kolom,

    dimana indeks pertama menunjukkan baris dan indeks kedua

    menunjukkan kolom. Array dimensi dua dapat digunakan pada

    pendataan penjualan, pendataan nilai, dan sebagainya.

    Bentuk umum pendeklarasian array [1]:

    Tipe_data Nama_variabel [indeks-1][indeks-2]

    Bentuk umum pengaksesan array berdimensi dua adalah :

    Nama_array [index-1][index-2]

    Contoh :

    Data [3][2]

    Data [0][1]

    Bentuk pendefenisian array berdimensi dua adalah :

    Tipe_data nama_array [juml_elemen] = {nilai array};

    Contoh :

    Int data [2][4] = {{ 1, 2, 3, 4}, 4, 3, 2, 1};

    Contoh deklarasi array pada bahasa C [5]:

    #include

    #include

    main()

    { int i,j, matriks [3][3];

    matriks [0][0] = 10;

    matriks [0][1] = 6;

    matriks [0][2] = 5;

    matriks [1][0] = 7;

    matriks [1][1] = 9;

    matriks [1][2] = 5;

    matriks [2][0] = 7;

    matriks [2][1] = 3;

  • 61

    matriks [2][2] = 2;

    printf ("Matriks = ");

    for (i = 0; i

  • 62

    }

    getch();

    }

    Tampilan program diatas adalah :

    Contoh program 2 [2]: Penjumlahan dua buah matriks

    #include

    #include

    #define maks 3

    main()

    {

    int mat1[maks][maks], mat2[maks][maks], mathasil[maks][maks];

    int b,k;

    printf("Pengisian Matrik 1 : \n");

    for (b=0;b

  • 63

    }

    printf("Pengisian Matrik 2 : \n");

    for (b=0;b

  • 64

    printf("%6d",mathasil[b][k]);

    }

    printf("\n");

    }

    getch();

    return 0;

    }

    Tampilan program diatas adalah :

    c. Array Multi-dimensi

    Array multi-dimensi merupakan array yang mempunyai ukuran

    lebih dari dua. Bentuk pendeklarasian array sama saja dengan array

    dimensi satu maupun array dimensi dua. Bentuk umumnya yaitu [4]:

    tipe_array nama_array[ukuran1][ukuran2][ukuranN];

    Contoh :

  • 65

    float X[2][4][3];

    Contoh program [4]:

    #include stdio.h

    #include conio.h

    void main()

    { int i, j, k;

    static int data_huruf[2][8][8] =

    { { { 1, 1, 1, 1, 1, 1, 1, 0 },

    { 1, 1, 0, 0, 0, 0, 1, 0 },

    { 1, 1, 0, 0, 0, 0, 0, 0 },

    { 1, 1, 1, 1, 1, 1, 1, 0 },

    { 0, 0, 0, 0, 1, 1, 1, 0 },

    { 1, 0, 0, 0, 1, 1, 1, 0 },

    { 1, 1, 1, 1, 1, 1, 1, 0 },

    { 0, 0, 0, 0, 0, 0, 0, 0 }

    },

    { { 1, 1, 0, 0, 0, 1, 1, 0 },

    { 1, 1, 0, 0, 0, 1, 1, 0 },

    { 1, 1, 0, 0, 0, 1, 1, 0 },

    { 1, 1, 1, 1, 1, 1, 1, 0 },

    { 1, 1, 1, 0, 0, 1, 1, 0 },

    { 1, 1, 1, 0, 0, 1, 1, 0 },

    { 1, 1, 1, 0, 0, 1, 1, 0 },

    { 0, 0, 0, 0, 0, 0, 0, 0 }

    }

    };

    /* Tampilkan Huruf */

    for(i=0; i

  • 66

    }

    getch();

    }

    Contoh aplikasi :

    Pencarian data (searching) menggunakan array[5] :

    #include

    #include

    int main()

    {

    int a[20] = {0};

    int i;

    int n; //mengacu pada jumlah array

    int target; //berisi data yang akan dicari

    int ketemu; // status dari proses pencarian; 1 = ketemu, 0 = tidak

    ketemu

    printf("Masukkan data - data yang ingin dibuat MAX 20 data :\t");

    scanf ("%i", &n);

    if (n >= 20) return 0;

    printf ("Masukkan data - data pada array yang akan dibuat :\n");

    for (i = 0; i < n; i++)

    {

    printf ("data ke-%d\t :", i+1);

    scanf ("%d", &a[i]);

    }

    for (i = 0; i < n; i++) // perulangan digunakan untuk menampilkan

    seluruh elemen array

    {

    printf("%d",a[i]);

    }

    printf ("\nMasukkan angka yang akan dicari : ");

    scanf ("%d", &target);

    for (i = 0; i < n-1; i++) // proses pencarian dilakukan mulai dari

    elemen ke-0 (pertama)

    {

  • 67

    if (a[i] == target)

    {

    printf (" Data %d ditemukan pada urutan ke %d", target, i+1);

    ketemu = 1; // variabel ketemu diberi nilai 1 untuk menunjukkan

    bahwa proses pencarian berhasil

    return 0 ;

    }

    printf ("Data tidak ditemukan");

    }

    getch () ;

    }

    Tampilan program diatas adalah [5]:

    Pengurutan data dengan menggunakan array (menggunakan

    metode selection short.

    #include

    #include

    main()

    {

    int N = 5; //jumlah elemen array arr

    int arr [5] = {63, 21, 3, 177, 8};

    int i, j, k, temp, biggest;

    printf ("Data elemen array arr sebelum di urutkan \n");

    for (i = 0; i

  • 68

    }

    printf ("\n");

    // Proses pengurutan data bobble Sort

    for (i = 0; i

  • 69

    3. Latihan

    1. Buatlah sebuah program untuk menghitung jumlah dan hasil

    kali matriks A dan B sebagai berikut :

    A = [

    ] B = [

    ]

    2. Jumlah suara masing- masing calon pada sebuah pemilihan

    walikota adalah sbb :

    Calon

    Kecamatan A B C D

    1 304 125 112 111

    2 203 236 231 145

    3 112 312 332 211

    4 98 142 167 245

    5 346 154 287 123

    Dengan menggunakan array, buatlah program untuk

    menyelesaikan pekerjaan ini :

    a. Membaca dan mencetak hasil pemilihan diatas dalam bentuk

    tabel

  • 70

    b. Menghitung dan mencetak jumlah suara masing masing

    calaon hasil pemilihan tersebut.

    c. Tampilkan pemenang hasil pemilihan tersebut.

    3. Urutkanlah bilangan berikut dengan menggunakan metode

    bubble sort.

    [12, 35, 27, 5, 10, 56, 98, 75)

    1. Terdapat sebuah array dua dimensi yang dibuat dengan int

    [3][5] dan telah diisi. Buatlah sebuah program untuk :

    a. Mencetak nilai yang terbesar

    b. Mencetak nilai yang terbesar dan mencetak ada berapa

    buah nilai yang terbesar.

    c. Mencetak nilai yang terbesar dan mencetak ada berapa

    buah nilai yang terbesar, serta mencetak ada di lokasi mana

    saja nilai terbesar tersebut.

    d. Memeriksa apakah diantara isi array tersebut ada yang

    nilainya = 50. Bila ada, maka cetak perkataan ada ADA

    dan bila tidak ada maka cetak TIDAK ADA.

  • 71

    Daftar Pustaka

    [1] Frieyadie. 2005. Panduan Pemrograman C++. Penerbit Andi.

    Yogyakarta

    [2] Kurniawan Khannedy Eko. 2007. Pemrograman C. Teknik

    Informatika. UNICOM.

    [3] Sjukani Moh. 2009. Algoritma (Algoritma & Struktur Data 1)

    dengan C, C++, dan Java, Teknik Teknik Dasar Pemrograman

    Komputer. Edisis 5. Mitra Wacana Media. Jakarta

    [4] Solichin Achmad. Pemrograman Bahasa C dengan Turbo C.

    www.ilmukomputer.com

    [5] Swastika Windra. April 2012. "Dasar Algoritma dan Pemrograman

    menggunakan C & Java". Prestasi Pustaka Publisher. Jakarta

  • 72

    BAB VII

    FUNGSI

    1. Pendahuluan

    a. Deskripsi

    Bab ini membahas tentang fungsi pustaka yaitu fungsi yang

    telah tersedia dalam turbo C dan fungsi yang dapat dibuat sendiri

    oleh programmer. Pada fungsi yang dapat dibuat sendiri oleh

    programmer akan dijelaskan tentang cara mendeklarasikan fungsi,

    jenis parameter dan variabel yang digunakan dalam bahasa C serta

    cara pemanggilan fungsi. Di akhir pembahasan, akan dijelaskan

    tentang fungsi rekursif. Dalam setiap pembahasan akan diberikan

    contoh program yang akan membantu mahasiswa lebih memahami

    tentang penggunaan fungsi.

    b. Tujuan Pembahasan

    Setelah mengikuti perkuliahan ini, mahasiswa diharapkan

    mampu memahami kegunaan penggunaan fungsi dalam bahasa

    pemrograman dan mampu menerapkan penggunaan fungsi dalam

    pemrograman bahasa C.

    2. Teori Dasar

    Fungsi adalah bagian dari program yang digunakan untuk

    suatu tugas tertentu dan letaknya terpisah dari program utama.

    Fungsi merupakan bagian utama dalam bahasa C karena program

    bahasa C sendiri tersusun atas kumpulan fungsi fungsi dam dalam

    setiap program minimal terdapat satu buah fungsi yaitu fungsi main

    (). Adapun kegunaan penggunaan fungsi dalam bahasa C adalah :

    Program menjadi lebih terstruktur sehingga mudah untuk

    dipahami dan

  • 73

    Untuk mengurangi pengulangan penulisan program yang sama.

    Dalam bahasa C fungsi dibagi menjadi dua yaitu fungsi pustaka atau

    fungsi yang telah tersedia dalam turbo C dan yang didefinisikan atau

    dibuat oleh programmer.

    a. Fungsi Pustaka dalam Bahasa C [4]

    1) Fungsi Operasi String (tersimpan dalam header file

    string.h)

    strcpy() berfungsi untuk menyalin suatu string asal ke variable

    string tujuan. Bentuk umum : strcpy(var_tujuan, string_asal);

    strlen() Berfungsi untuk memperoleh jumlah karakter dari

    suatu string. Bentuk umum : strlen(string);

    strcat() Digunakan untuk menambahkan string sumber ke

    bagian akhir dari string tujuan. Bentuk umum : strcat(tujuan,

    sumber);

    strupr() Digunakan untuk mengubah setiap huruf dari suatu

    string menjadi huruf capital. Bentuk umum : strupr(string);

    strlwr() Digunakan untuk mengubah setiap huruf dari suatu

    string menjadi huruf kecil semua. Bentuk umum :

    strlwr(string);

    strcmp() Digunakan untuk membandingkan dua buah string.

    Hasil dari fungsi ini bertipe integer dengan nilai :

    (a) Negative, jika string pertama kurang dari string kedua.

    (b) Nol, jika string pertama sama dengan string kedua

    (c) Positif, jika string pertama lebih besar dari string

    kedua.

    Bentuk umum : strcmp(string1, string2);

  • 74

    Contoh program :

    #include "stdio.h"

    #include "conio.h"

    #include "string.h"

    void main()

    { char nama[20];

    char nama1 [30]= "UNIVERSITAS HASANUDDIN";

    char nama2 [30]= "Teknik Informatika" ;

    int x;

    strcpy(nama,nama1);

    printf("Nama : %s", nama1);

    printf("\nJumlah karakter : %i",strlen(nama));

    strcat (nama2,nama1);

    printf ("\n");

    puts (nama2);

    strupr(nama2);

    printf ("\n");

    puts (nama2);

    printf ("\n");

    strlwr (nama2);

    puts (nama2);

    strcmp (nama1,nama2) ;

    printf("Hasil : %i", x);

    getch();

    }

    Tampilan program diatas adalah :

  • 75

    2) Fungsi Operasi Karakter (tersimpan dalam header

    ctype.h) [4]

    islower() Fungsi akan menghasilkan nilai benar (bukan nol)

    jika karakter merupakan huruf kecil. Bentuk umum :

    islower(char);

    isupper() Fungsi akan menghasilkan nilai benar (bukan nol)

    jika karakter merupakan huruf kapital. Bentuk umum :

    isupper(char);

    isdigit() Fungsi akan menghasilkan nilai benar (bukan nol) jika

    karakter merupakan sebuah digit. Bentuk umum : isdigit(char);

    tolower() Fungsi akan mengubah huruf capital menjadi huruf

    kecil. Bentuk umum : tolower(char);

    toupper() Fungsi akan mengubah huruf kecil menjadi huruf

    kapital. Bentuk umum : toupper(char);

    Contoh program :

    #include "stdio.h"

    #include "conio.h"

    #include "ctype.h"

    void main()

    { char karakter;

    clrscr();

    printf ("Masukkan sebuah karakter : \t");

    karakter = getche();

    if (islower (karakter))

    { printf ("\nadalah huruf kecil");

    printf ("\nHuruf kapitalnya adalah :%c",toupper(karakter));}

    else if (isupper (karakter))

    { puts ("\nadalah huruf kapital");

    printf ("\nHuruf kecilnya adalah :%c",tolower(karakter));}

    else if (isdigit (karakter))

    { puts("\nadalah bilangan digit");

    }

    getch ();}

  • 76

    Tampilan program diatas adalah :

    3) Fungsi Operasi Matematik (tersimpan dalam header

    math.h dan stdlib.h) [4]

    sqrt() Digunakan untuk menghitung akar dari sebuah

    bilangan. Bentuk umum : sqrt(bilangan);

    pow() Digunakan untuk menghitung pemangkatan suatu

    bilangan. Bentuk umum : pow(bilangan, pangkat);

    Contoh program :

    #include "stdio.h"

    #include "conio.h"

    #include "math.h"

    void main()

    { int x, y; float z;

    clrscr();

    printf ("Menghitung x pangkat y");

    printf ("\nMasukkan Nilai x :"); scanf("%i",&x);

    printf ("\nMasukkan Nilai y :"); scanf ("%i", &y);

    printf ("\nx^y = %i ^ %i = %3.2f", x,y, pow(x,y));

    printf ("\n\nMenghitung akar x");

    printf ("\nMasukkan Nilai x :"); scanf("%i",&x);

    printf ("\nAkar x adalah %2.2f",sqrt (x));

    getch();

    }

  • 77

    Tampilan program diatas adalah :

    sin(), cos(), tan() Masing-masing digunakan untuk menghitung

    nilai sinus, cosinus dan tangens dari suatu sudut. Bentuk

    umum :

    sin(sudut);

    cos(sudut);

    tan(sudut);

    Contoh program :

    #include "stdio.h"

    #include "conio.h"

    #include "math.h"

    void main()

    {

    clrscr();

    int sudut;

    printf ("Menghitung sin, cos, dan tan\n");

    printf ("Masukkan sudut :");

    scanf ("%i",&sudut);

    printf ("\nsin %i = %5.2f\n", sudut, sin (sudut));

    printf ("cos %i = %5.2f\n", sudut, cos (sudut));

    printf ("tan %i = %5.2f", sudut, tan (sudut));

    getch();

    }

  • 78

    Tampilan program diatas adalah :

    atof() Digunakan untuk mengkonversi nilai string menjadi

    bilangan bertipe double. Bentuk umum : atof(char x);

    atoi() Digunakan untuk mengkonversi nilai string menjadi

    bilangan bertipe integer. Bentuk umum : atoi(char x);

    Contoh program :

    #include "stdio.h"

    #include "conio.h"

    #include "math.h"

    #include "stdlib.h"

    void main()

    {

    clrscr();

    char x [10]= "123";

    char y [10]= "3.14";

    printf ("Nilai x = %i",atoi(x));// Mengubah string menjadi integer

    printf ("Nilai y = %f", atof(y));// mengubah string menjadi float

    getch();

    }

    Tampilan program diatas adalah :

  • 79

    div() Digunakan untuk menghitung hasil pembagian dan sisa

    pembagian. Bentuk umum : div_t div(int x, int y) Strukturnya

    :

    typedef struct

    { int qout; // hasil pembagian

    int rem // sisa pembagian

    } div_t;

    Contoh program [1]:

    #include "stdio.h"

    #include "conio.h"

    #include "stdlib.h"

    { int x, y;

    div_t hasil;

    clrscr();

    printf("Menghitung sisa dan hasil pembagian x dengan y\n");

    printf("x = "); scanf("%i", &x);

    printf("y = "); scanf("%i", &y);

    hasil = div(x,y);

    printf("\n\n %3i div %3i = %3i sisa %3i", x, y, hasil.quot, hasil.rem);

    getch();

    }

    Tampilan program diatas adalah :

  • 80

    max() Digunakan untuk menentukan nilai maksimal dari dua

    buah bilangan. Bentuk umum : max(bilangan1, bilangan2);

    min() Digunakan untuk menentukan bilangan terkecil dari dua

    buah bilangan. Bentuk umum : min(bilangan1, bilangan2);

    Contoh program :

    #include "conio.h"

    #include "stdlib.h"

    void main()

    { int a, b, c, d;

    printf ("Masukkan Nilai\n");

    printf ("a = "); scanf ("%i", &a);

    printf ("b = "); scanf ("%i", &b);

    printf ("c = "); scanf ("%i", &c);

    printf ("d = "); scanf ("%i", &d);

    printf ("Nilai maksimumnya adalah %i", max(max(max(a,b),c),d));

    printf ("\nNilai minimumnya adalah %i", min(min(min(a,b),c),d));

    getch ();

    }

    Tampilan program diatas adalah :

  • 81

    b. Membuat Fungsi Sendiri

    1) Deklarasi Fungsi

    Bentuk deklarasi sebuah fungsi adalah sebagai berikut [1] :

    Tipe_fungsi nama_fungsi (parameter_fungsi) {

    Statement; Statement; }

    Dalam penggunaan fungsi terdapat beberapa hal yang perlu untuk diperhatikan, diantaranya :

    Nama fungsi dapat ditentukan dengan bebas dengan ketentuan

    tidak menggunakan spasi dan nama nama fungsi yang

    disediakan oleh turbo C.

    Kalau tipe fungsi tidak disebutkan, maka akan dianggap

    sebagai fungis dengan nilai keluaran bertipe integer.

    Untuk fungsi yang memiliki keluaran bertipe bukan integer,

    maka diperlukan pendefinisian penentu tipe fungsi.

    Untuk fungsi yang tidak mempunyai nilai keluaran maka

    dimasukkan ke dalam tipe void

    Pernyataan yang diberikan untuk memberikan nilai akhir

    fungsi berupa pernyataan return.

    Suatu fungsi dapat menghasilkan nilai balik bagi fungsi

    pemanggilnya.

    Contoh program :

    #include "stdio.h"

    #include "conio.h"

    kampus () // fungsi kampus

    { puts ("UNIVERSITAS HASANUDDIN");

    }

    void main () // program utama

  • 82

    {clrscr();

    printf ("Nama Universitas :\n");

    kampus (); // memanggil fungsi kampus

    getch();

    }

    Tampilan program diatas adalah :

    2) Parameter Fungsi

    Dalam bahasa C terdapat 2 macam parameter fungsi yaitu [1] ;

    Parameter formal yaitu variabel yang terdapat pada daftar

    parameter yang berada di dalam definisi fungsi.

    Parameter aktual adalah variabel yang digunakan pada

    pemanggilan satu fungsi.

    Terdapat dua cara untuk melewatkan parameter ke dalam fungsi,

    yaitu :

    Pemanggilan dengan nilai (Call by value) [2]

    Call by value akan menyalin nilai dari parameter aktual ke

    parameter formal. Nilai yang dikirimkan ke fungsi adalah nilai dari

    datanya, bukan alamat memori letak dari datanya. Fungsi yang

    menerima kiriman nilai akan menyimpannya di alamat terpisah dari

    nilai aslinya yang digunakan oleh bagian program yang memanggil

    fungsi. Perubahan nilai di fungsi (parameter formal) tidak akan

    merubah nilai asli di bagian program yang memanggilnya. Pengiriman

    parameter secara nilai adalah pengiriman searah, yaitu dari bagian

  • 83

    program yang memanggil fungsi ke fungsi yang dipanggil. Pengiriman

    suatu nilai dapat dilakukan untuk suatuungkapan tidak hanya

    untuk sebuah variabel, elemen array atau konstanta saja.

    Contoh program :

    #include "stdio.h"

    #include "conio.h"

    nilai (int x, int y);

    void main ()

    {

    clrscr ();

    int a = 10, b = 5;

    printf ("Nilai sebelum pemanggilan fungsi");

    printf ("\nNilai a = %i dan nilai b = %i", a,b);

    nilai (a,b); // pemanggilan fungsi

    printf ("\n\nNilai setelah pemanggilan fungsi");

    printf ("\n\nNilai a = %i dan nilai b = %i", a,b);

    getch();

    }

    nilai (int x, int y)

    {

    x+=5;

    y+=5;

    printf ("\n\nNilai setelah pemanggilan fungsi");

    printf("\na = %i dan nilai b = %i",x, y);

    }

    Tampilan program diatas adalah :

  • 84

    Pemanggilan Secara Referensi (Call by Reference)

    Pemanggilan secara Referensi merupakan upaya untuk

    melewatkan alamat dari suatu variabel ke dalam fungsi. Yang

    dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan

    nilai datanya. Fungsi yang menerima kiriman alamat ini akan

    menggunakan alamat yang sama untuk mendapatkan nilai datanya.

    Perubahan nilai di fungsi akan merubah nilai asli di bagian program

    yang memanggil fungsi. Pengiriman parameter secara referensi

    adalah pengiriman dua arah, yaitu dari fungsi pemanggil ke fungsi

    yang dipanggil dan juga sebaliknya. Pengiriman secara acuan tidak

    dapat dilakukan untuk suatu ungkapan.

    Contoh program :

    #include "stdio.h"

    #include "conio.h"

    nilai (int *x, int *y);

    void main ()

    {

    clrscr ();

    int a = 10, b = 5;

    printf ("Nilai sebelum pemanggilan fungsi");

    printf ("\nNilai a = %i dan nilai b = %i", a,b

    nilai (&a,&b); // pemanggilan fungsi

    printf ("\n\nNilai setelah pemanggilan fungsi");

    printf ("\n\nNilai a = %i dan nilai b = %i", a,b);

    getch();

    }

    nilai (int *x, int *y)

    {

    *x+=5;

    *y+=5;

    printf ("\n\nNilai setelah pemanggilan fungsi");

    printf("\na = %i dan nilai b = %i",*x, *y);

    }

  • 85

    Tampilan program diatas adalah :

    3) Jenis Variabel pada Fungsi

    a) Variabel lokal

    Variabel lokal adalah variabel yang dideklarasikan di dalam

    fungsi dan hanya dikenal oleh fungsi yang bersangkutan. Variabel

    lokal biasa juga disebut sebagai variabel otomatis.

    Contoh program

    b) Variabel global /eksternal

    Variabel eksternal adalah variabel yang dideklarasikan di luar

    fungsi yang bersifat global yang berarti dapat digunakan bersama

    sama tanpa harus dideklarasikan berulang ulang. Pendeklarasian

    variabel eksternal diletakkan di luar fungsi main ().

    Contoh program :

    #include "stdio.h"

    #include "conio.h"

    void tampil (void);

    int i = 25; /* variabel global */

    void main()

    { clrscr();

    printf("Nilai variabel i dalam fungsi main() adalah %i\n\n", i);

    tampil();

    i = i * 4; /* nilai i yang dikali 4 adalah 25 (global) bukan 10 */

  • 86

    printf("\nNilai variabel i dalam fungsi main() sekarang adalah %i\n\n",

    i);

    getch();

    }

    void tampil(void)

    { int i = 10; /* variabel lokal */

    printf("Nilai variabel i dalam fungsi tampil() adalah %i\n\n", i);

    }

    Tampilan program diatas adalah :

    c) Variabel statis

    Variabel statis dapat berupa variabel lokal ataupun variabel

    eksternal. Variabel statis ini bersifat :

    Jika variabel bersifat lokal maka hanya dikenal oleh fungsi

    tempat variabel tersebut dideklarasikan.

    Jika variabel statis bersifat eksternal maka variabel dapat

    dipergunakan oleh semua fungsi yang terletak pada file yang

    sama di tempat variabel statis dideklarasikan.

    Jika tidak ada inisialisasi maka secara otomatis akan diberikan

    nilai awal nol.

    d) Variabel Register [3]

    Variabel Register adalah variabel yang nilainya disimpan dalam

    resister dan bukan dalam memori RAM. Sifat-sifat variabel register :

  • 87

    Hanya dapat diterapkan pada variabel lokal yang bertipe int

    dan char.

    Digunakan untuk mengendalikan proses perulangan (looping).

    Proses perulangan akan lebih cepat karena variabel register

    memiliki kecepatan yang lebih tinggi dibandingkan variabel

    biasa.

    Dideklarasikan dengan menambahkan kata register.

    Contoh program :

    #include stdio.h

    #include conio.h

    void main()

    { register int x; /* variabel register */

    int jumlah;

    clrscr();

    for(i=1; i

  • 88

    efisiensi memori dan kecepatan kerja ketika sebuah proses rekursi

    dijalankan akan menjadi lebih lambat. Permasalahan yang lebih

    sering terjadi adalah proses rekursi yang tidak kunjung berhenti,

    hingga mengakibatkan komputer hang.

    Contoh program:

    #include conio.h

    #include stdio.h

    long int faktorial(int N); /* prototype fungsi faktorial */

    void main()

    { int N;

    printf(Berapa factorial ? ); scanf(%i, &N);

    printf(Faktorial dari %i = %ld\n, N, faktorial(N));

    getch();

    }

    Long int faktorial(int N) /* definisi fungsi factorial */

    {

    if(N==0)

    return(1);

    else

    return(N * faktorial(N - 1)); // fungsi faktorial() memanggil fungsi

    factorial()

    }

    Tampilan program diatas adalah :

  • 89

    3. Latihan

    2. Buatlah sebuah program untuk menghitung luar persegi

    panjang, luas segitiga dan luas lingkaran. Buatlah pemilihan

    perhitungan dengan menggunakan fungsi.

    3. Buatlah program untuk menghitung harga sewa peminjaman

    buku pada sebuah perpustakaan umum. Terdapat tiga jenis

    buku yaitu jenis A, B, dan C. Tarif jenis buku per 3 hari adalah

    :

    Jenis Buku Harga sewa per 3 hari

    A Rp 1500

    B Rp 2000

    C Rp 2500

    a. Jika melebihi waktu peminjaman (3 hari) maka setiap buku

    di denda sebesar Rp 500,-.

    b. Buatlah program untuk menghitung pembayarannya.

    c. Buatlah fungsi untuk menghitung harga sewa.

    d. Buatlah fungsi untuk menghitung total pembayaran.

  • 90

    Daftar Pustaka

    [1] Frieyadie. 2005. Panduan Pemrograman C++. Penerbit Andi.

    Yogyakarta

    [2] Kurniawan Khannedy Eko. 2007. Pemrograman C. Teknik

    Informatika. UNICOM.

    [3] Sjukani Moh. 2009. Algoritma (Algoritma & Struktur Data 1)

    dengan C, C++, dan Java, Teknik Teknik Dasar Pemrograman

    Komputer. Edisis 5. Mitra Wacana Media. Jakarta

    [4] Solichin Achmad. Pemrograman Bahasa C dengan Turbo C.

    www.ilmukomputer.com

    [5] Swastika Windra. April 2012. "Dasar Algoritma dan Pemrograman

    menggunakan C & Java". Prestasi Pustaka Publisher. Jakarta

  • 91

    BAB VIII

    STRUCT (RECORD)

    1. Pendahuluan

    a. Deskripsi

    Bab ini menjelaskan tentang fungsi penggunaan struct (record) dan

    penggunaan struct dalam array. Agar lebih mudah untuk dipahami,

    akan diberikan contoh contoh dari penggunaan struct ini.

    b. Tujuan pembelajaran

    Setelah mengikuti perkuliahan ini, mahasiswa diharapkan mengerti

    tentang struct (record) dan dapat mengaplikasikan dalam pembuatan

    program.

    2. Teori dasar

    a. Deklarasi Struct (Record)

    Turbo C tidak selalu menyediakan tipe data yang sesuai

    dengan tipe data yang diinginkan. Contoh kasus yaitu ketika kita

    ingin membuat suatu program mengolah data mahasiswa dimana

    data mahasiswa terdiri dari NIM, Nama, NilaiUTS, NilaiUAS,

    NilaiQuiz, NilaiAkhir dan Index Prestasinya. Turbo C tidak

    menyediakan tipe data untuk data tersebut. Oleh karena itu maka

    kita harus membuat suatu tipe data baru yang cocok dengan

    keperluan kita. Caranya adalah dengan menggunakan perintah

    struct[1].

    Deklarasi tipe data baru (struct) untuk data mahasiswa dapat

    dilihat sebagai berikut :

    struct TMhs

  • 92

    {

    char NIM[11];

    char Nama[21];

    int NilaiUTS,NilaiUAS,NilaiQuiz;

    float NilaiAkhir;

    char index;

    };

    Deklarasi diatas berarti kita telah membuat suatu tipe data

    yang bernama TMhs dimana setiap data bertipe TMhs mempunyai

    field NIM, Nama, NilaiUTS, NilaiUAS, NilaiQuiz, NilaiAkhir dan index.

    Untuk mendeklarasikan sebuah variable yang bertipe TMhs caranya

    adalah seperti berikut :

    TMhs Mhs1,Mhs2;

    Deklarasi tersebut berarti bahwa kita membuat suatu variable

    bernama Mhs1 dan Mhs2 dimana tiap variable tersebut mempunyai

    field sesuai dengan TMhs.

    Contoh program [2]:

    #include

    #include

    #include

    struct TMhs

    {

    char NIM[11];

    char Nama[21];

    int NilaiUTS,NilaiUAS,NilaiQuiz;

    float NilaiAkhir;

    char index;

    };

    main()

    {

  • 93

    TMhs mhs1,mhs2;

    printf(Pengisian Data);

    printf(NIM : );gets(mhs1.NIM);

    printf(NAMA : );gets(mhs1.Nama);

    printf(Nilai QUIZ : );scanf(%d,&mhs1.NilaiQuiz);

    printf(Nilai UTS : );scanf(%d,&mhs1.NilaiUTS);

    printf(Nilai UTAS : );scanf(%d,&mhs1.NilaiUAS);

    mhs1.NilaiAkhir=0.2*mhs1.NilaiQuiz+0.3*mhs1.NilaiUTS+0.5*mhs1.Ni

    laiUAS;

    if(mhs1.NilaiAkhir>=80) mhs1.index=A;else

    if(mhs1.NilaiAkhir>=60) mhs1.index=B;else

    if(mhs1.NilaiAkhir>=40) mhs1.index=C;else

    if(mhs1.NilaiAkhir>=20) mhs1.index=D;else

    if(mhs1.NilaiAkhir>=00) mhs1.index=E;

    mhs2=mhs1; // mengisikan semua data di mhs1 ke mhs2

    printf(Data yang telah dimasukan :);

    printf(NIM : %s\n,mhs2.NIM);

    printf(NAMA : %s\n,mhs2.Nama);

    printf(Nilai QUIZ : %i\n,mhs2.NilaiQuiz);

    printf(Nilai UTS : %d\n,mhs2.NilaiUTS);

    printf(Nilai UTAS : %d\n,mhs2.NilaiUAS);

    printf(Nilai Akhir: %.2f\n,mhs2.NilaiAkhir);

    printf(Index : %c\n,mhs2.index);

    getch();

    }

    Tampilan program diatas adalah :

  • 94

    b. Struct pada Array

    Setiap tipe data dapat dibuat dalam bentuk array. Begitu juga

    dengan tipe data yang dibuat dengan perintah struct.

    Contoh program [3]:

    #include

    #include #include

    #define maks 3 struct TMhs {

    char NIM[9]; char Nama[21];

    int NilaiUTS,NilaiUAS,NilaiQuis; float NilaiAkhir; char index;

    }; main()

    { TMhs mhs[maks]; // array struct int i;

    for(i=0;i=80) mhs[i].index='A';else if(mhs[i].NilaiAkhir>=60) mhs[i].index='B';else

    if(mhs[i].NilaiAkhir>=40) mhs[i].index='C';else if(mhs[i].NilaiAkhir>=20) mhs[i].index='D';else if(mhs[i].NilaiAkhir>=0) mhs[i].index='E';

    }; clrscr();

    printf("Data yang telah dimasukan adalah : \n"); printf("----------------------------------------------------------------------\n");

    printf("| NIM | NAMA | QUIS | UTS | UAS | N A | INDEX |\n");

  • 95

    printf("----------------------------------------------------------------------\n");

    for(i=0;i

  • 96

    3. Latihan

    1) Buatlah sebuah program untuk Menginput data pegawai dan

    besar gaji serta tunjangan dengan menggunakan record!

    2) Buatlah program pada nomor 1 dengan menggunakan struct

    pada array!

  • 97

    Daftar Pustaka

    [1] Frieyadie. 2005. Panduan Pemrograman C++. Penerbit Andi.

    Yogyakarta

    [2] Kurniawan Khannedy Eko. 2007. Pemrograman C. Teknik

    Informatika. UNICOM.

    [3] Sjukani Moh. 2009. Algoritma (Algoritma & Struktur Data 1)

    dengan C, C++, dan Java, Teknik Teknik Dasar Pemrograman

    Komputer. Edisis 5. Mitra Wacana Media. Jakarta

  • 98

    BAB IX

    POINTER

    1. Pendahuluan

    a. Deskripsi

    Bab ini menyajikan tentang penggunaan pointer. Lebih lanjut

    akan dijelaskan tentang operator pointer, operasi dalam pointer,

    pointer pada pointer, pointer pada array dan pointer pada string. Dan

    pada akhir bab diberikan soal latihan untuk meningkatkan

    pemahaman tentang penggunaan pointer.

    b. Tujuan pembelajaran

    Setelah mengikuti perkuliahan ini mahasiswa diharapkan

    mampu memahami dan mengaplikasikan pointer dalam

    menyelesaikan sebuah masalah pada bahasa pemrograman.

    2. Teori Dasar

    Pointer adalah sebuah variabel yang berisi alamat lain. Suatu

    pointer digunakan untuk menunjuk ke suatu alamat memori

    sehingga alamat dari suatu variabel atau suatu fungsi dapat

    diketahui dengan mudah. Dengan adanya pointer maka kita dapat

    memanipulasi data yang berada pada alamat tertentu dalam memory.

    Terdapat dua jenis operator yang dapat digunakan dalam pointer

    yaitu :

    a. Operator pointer

    1. Operator dereference (&)

    Operator dereference & merupakan operator alamat. Pada saat

    pendeklarasian variable, user tidak diharuskan menentukan lokasi

    sesungguhnya pada memory, hal ini akan dilakukan secara otomatis

  • 99

    oleh kompiler dan operating system pada saat run-time. Dengan

    menggunakan operator & ini, variabel akan menghasilkan alamat

    lokasi memori sehingga operator ini biasa disebut dengan address of.

    Sebagai contoh, Ani ditempatkan pada memori dengan alamat

    0x00112ff55 dan dideklarasikan sbb[1]:

    Ani = a;

    Anna = Ani; // Anna sama dengan Ani (a)

    Rani = &Ani; // Rani sama dengan alamat Ani (0x00112ff55)

    Contoh program :

    #include

    #include

    void main ()

    { int x = 50, y, *z;

    y = x;

    z = &x;

    printf ("Nilai x adalah %i",x); // Nilai x = 50

    printf ("\nNilai y adalah %i", y); // Nilai y = x

    printf ("\nNilai z adalah %i", z); // Nilai z = berisi alamat x

    getch ();

    }

    Tampilan program diatas adalah :

    2. Operator reference (*)

    Dengan menggunakan operator reference (*) user dapat

    mengakses secara langsung nilai yang terdapat didalam variabel yang

    berpointer. Hal ini dapat dilakukan dengan menambahkan identifier

  • 100

    asterisk (*), agar dapat menerjemahkan nilai sebenarnya dari suatu

    variabel. Operator ini biasa disebut value pointed by. Dengan

    menggunakan operator reference (*) ini akan dihasilkan nilai yang

    berada pada suatu alamat memori[1].

    Sebagai contoh :

    Ani = a

    Anna = &Ani// Anna sama dengan Alamat Ilham (0x00112ff55)

    Rani = *Ani // Rani sama dengan nilai Ani (a)

    Contoh program :

    #include

    #include

    void main ()

    { int x = 50, y, *z;

    z = &x;

    y = *z;

    printf ("Nilai x adalah %i",x);

    printf ("\nNilai y adalah %i", y);

    printf ("\nNilai z adalah %i", z);

    getch ();}

    Tampilan program diatas adalah :

  • 101

    b. Operasi Pointer

    1) Operasi penugasan[4]

    Nilai suatu variabel pointer dapat disalin ke variabel pointer

    lainnya.

    Contoh program :

    #include "stdio.h"

    #include "conio.h"

    void main()

    { float *x1, *x2, y;

    clrscr();

    y = 13.45;

    x1 = &y; /* Alamat dari y disalin ke variabel x1 */

    x2 = x1; /* Isi variabel x1 disalin ke variabel x2 */

    printf("Nilai variabel y = %.2f ada di alamat %p\n", y, x1);

    printf("Nilai variabel y = %.2f ada di alamat %p\n", y, x2);

    getch();

    }

    Tampilan program diatas adalah :

    2) Operasi aritmatika [4]

    Operasi aritmatika yang bisa dilakukan oleh pointer adalah

    hanya operasi penjumlahan dan pengurangan dan hanya data integer

    yang dapat digunakan. Operasi penjumlahan dan pengurangan akan

    menunjukkan alamat data berikutnya.

    #include stdio.h #include conio.h void main() { int nilai[3], *penunjuk;

  • 102

    clrscr(); nilai[0] = 125;

    nilai[1] = 345; nilai[2] = 750;

    penunjuk = &nilai[0]; printf(Nilai %i ada di alamat memori %p\n, *penunjuk, penunjuk); printf(Nilai %i ada di alamat memori %p\n, *(penunjuk+1),

    penunjuk+1); printf(Nilai %i ada di alamat memori %p\n, *(penunjuk+2),

    penunjuk+2); getch();

    }

    Tampilan program diatas adalah :

    3) Operasi logika [4]

    Operasi logika juga dapat digunakan dalam sebuah pointer.

    Contoh program:

    #include stdio.h

    #include conio.h

    void main()

    { int a = 100, b = 2