• Tidak ada hasil yang ditemukan

LAPORAN PRAKTIKUM

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAPORAN PRAKTIKUM"

Copied!
95
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM

LAPORAN PRAKTIKUM

APLIKASI PEMROGAMAN DENGAN

APLIKASI PEMROGAMAN DENGAN

BAHASA C

BAHASA C

Oleh: Oleh: Praktikan : Amalina Almas

Praktikan : Amalina Almas –  –  1510631160012 1510631160012

Dosen

Dosen : : Ibrahim, Ibrahim, ST.,MT.ST.,MT. Asisten

Asisten : : 1. 1. Aryo Aryo Jati Jati PrabowoPrabowo 2. Anggit Satrio Suwana 2. Anggit Satrio Suwana

Program Studi Teknik Elektro

Program Studi Teknik Elektro

Fakultas Teknik

Fakultas Teknik

(2)
(3)

DAFTAR ISI

DAFTAR ISI

DAFTAR

DAFTAR ISI ISI 22

Laporan

Laporan Praktikum Praktikum 1 1 Algoritma Algoritma dan dan Flowchart Flowchart 33 Laporan

Laporan Praktikum Praktikum 2 2 Dasaar Dasaar Pemrogaman Pemrogaman Bahasa Bahasa C C 1414 Laporan

Laporan Praktikum Praktikum 3 3 Pengambilan Pengambilan Keputusan Keputusan 2525 Laporan

Laporan Praktikum Praktikum 4 4 Pengulangan Pengulangan Proses Proses 4646 Laporan

Laporan Praktikum Praktikum 6 6 Fungsi Fungsi Matematika Matematika 5757 Laporan

Laporan Praktikum Praktikum 7 7 Pointer Pointer 6262 Laporan

Laporan Praktikum Praktikum 8 8 Array Array 6767 Laporan

Laporan Praktikum Praktikum 9 9 String String 7575 Laporan

(4)

LAPORAN PRAKTIKUM 1

LAPORAN PRAKTIKUM 1

Algoritma dan Flowchart

Algoritma dan Flowchart

A.

A. TUJUANTUJUAN 1.

1. Mampu memahami persoalanMampu memahami persoalan 2.

2. Mendesain penyelesaian persoalan ke dalam algoritmaMendesain penyelesaian persoalan ke dalam algoritma 3.

3. Menotasikan algoritma yang sudah dibuat menggunakan notasi flowchartMenotasikan algoritma yang sudah dibuat menggunakan notasi flowchart

B.

B. DASAR TEORIDASAR TEORI

Beberapa langkah dalam proses pembuatan suatu program atau sof

Beberapa langkah dalam proses pembuatan suatu program atau sof tware :tware : 1.

1. Mendefinisikan masalah dan menganalisanyaMendefinisikan masalah dan menganalisanya

Langkah awal yang harus dilakukan adalah mengidentifikasikan masalah antara Langkah awal yang harus dilakukan adalah mengidentifikasikan masalah antara lain tujuan dari pembuatan program, parameter-parameter yang digunakan, fasilitas lain tujuan dari pembuatan program, parameter-parameter yang digunakan, fasilitas apa saja yang akan disediakan oleh program. Kemudian menentukan metode atau apa saja yang akan disediakan oleh program. Kemudian menentukan metode atau algoritma apa yang akan diterapkan untuk menyelesaikan masalah tersebut dan algoritma apa yang akan diterapkan untuk menyelesaikan masalah tersebut dan terakhir menentukan bahasa program

terakhir menentukan bahasa program yang digunakan untuk pembuatan program.yang digunakan untuk pembuatan program. 2.

(5)

Algoritma

Algoritma adalah urutan langkah-langkah logika yang menyatakan suatu tugas dalam menyelesaikan suatu masalah atau problem.

Contoh : Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap.

Algoritmanya :

1. Masukkan sebuah bilangan sembarang 2. Bagi bilangan tersebut dengan bilangan 2 3. Hitung sisa hasil bagi pada langkah 2.

4. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi  bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.

(6)

Dari contoh algoritma di atas tentang menentukan apakah suatu bilangan adalah  bilangan ganjil atau bilangan genap, flowchart dari program adalah sebagai berikut :

(7)

C. Hasil Percobaan

1.1 Menghitung luas lingkaran dan mencetak hasilnya. Listing programnya adalah :

#include<stdio.h> main()

{

float r, L, phi=3.14;

printf("Menghitung Luas Lingkaran\n"); printf("Masukkan nilai jari-jari = "); scanf("%f",&r);

L=phi*r*r;

(8)

Keluaran yang dihasilkan dari program tersebut sebagai berikut :

Kesimpulan :

Dalam percobaan menghitung luas lingkaran dengan bahasa C, harus mengetik program dengan tepat agar hasil yang diharapkan serta perhitungan yang diinginkan berjalan sesuai keinginan. Penentu format yang digunakan juga harus sesuai dengan kondisi yang dimasukkan.

Kesalahan-kesalahan dalam praktikum dapat disebabkan oleh banyak factor seperti kurang teliti dalam menulis program ataupun salah menggunakan format.

(9)

1.2 Proses pengiriman e-mail, jika email tidak terkirim maka akan dilakukan proses  pengiriman email lagi.

Listing programnya adalah :

#include<stdio.h> main() { char a='t'; int n; while(a=='t'||a=='T') {

printf("Pengiriman e-mail ke-"); scanf("%d",&n);

printf("Apakah e-mail terkirim [y/t]?"); getchar();

a=getchar(); }

printf("E-mail terkirim dengan %d percobaan",n); }

(10)

Kesimpulan :

Program tersebut menggunakan fungsi while karna memiliki dua kondisi untuk mencetak  program yang diinginkan. Penulisan program dan ketepatan penggunaan format dalam

membuat program adalah yang terpenting agar program dapat dijalankan sesuai keinginan.

1.3 Proses melakukan panggilan telepon, jika tidak diangkat maka akan dilakukan panggilan telepon lagi.

(11)

main() { char e='t'; int n; while(e=='t'||e=='T') {

printf("Panggilan telepon ke-"); scanf("%d",&n);

printf("Telepon dijawab atau tidak [y/t]?"); getchar();

e=getchar(); }

printf("Telepon dijawab dengan %d percobaan",n); }

(12)

Kesimpulan :

Program dapat dijalankan sesuai perintah dengan penulisan yag tepat serta penempatan fungsi sesuai dan penggunaan yang benar.

1.4 Perusahaan daerah air minum menentukan tariff per m3  air berdasarkan ketentuan sebagai berikut :

Air (m3) Tarif per m3

0-15 300

>15 650

Buatlah program yang membaca jumlah pemakaian air, untuk menghitung biaya yang harus dibayar dan menampilkan hasilnya di layar.

Listing programnya : #include<stdio.h> #include<math.h> main() { int e, b, biaya;

printf("Masukkan jumlah air yang digunakan (m3) : "); scanf("%d", &e);

(13)

{

biaya=e*650;

printf("Biaya yang harus dibayar %d Rupiah", biaya); }

else {

biaya=e*300;

printf("Biaya yang harus dibayar %d Rupiah", biaya); }

return 0; }

(14)

1.5 Buatlah program untuk menjumlahkan bilangan 1 sampai 10, tapi yang dijumlahkan  bilangan ganjil saja.

Listing programnya adalah :

#include<stdio.h> main()

{

int bilangan,i=0;

for(bilangan=1; bilangan<=10; bilangan+=2) { printf("%d\n", bilangan); i=i+bilangan; } printf("Hasilnya = %d\n",i); }

(15)

LAPORAN PRAKTIKUM 2

Dasar Program Bahasa C

A. TUJUAN

1. Mengenal sintaks dan fungsi-fungsi dasar dalam bahasa C

2. Mampu membuat flowchart untuk algoritma untuk memecahkan suatu masalah sederhana, selanjutnya mengimplementasikannya dalam bahasa C

B. DASAR TEORI

Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ritchie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell Laboratories). Bahasa C  pertama kali digunakan pada komputer Digital Equipment Corporation PDP-11 yang

menggunakan sistem operasi UNIX.

Standar bahasa C yang asli adalah standar dari UNIX. Sistem operasi, kompiler C dan seluruh program aplikasi UNIX yang esensial ditulis dalam bahasa C. Kepopuleran  bahasa C membuat versi-versi dari bahasa ini banyak dibuat untuk komputer mikro.

Untuk membuat versi-versi tersebut menjadi standar, ANSI (American National  Standards Institute) membentuk suatu komite (ANSI committee X3J11)  pada tahun 1983 yang kemudian menetapkan standar ANSI untuk bahasa C. Standar ANSI ini didasarkan kepada standar UNIX yang diperluas.

Proses Kompilasi dan Linking Program C

Proses dari bentuk  source program, yaitu program yang ditulis dalam bahasa C hingga menjadi program yang executable ditunjukkan pada Gambar 1 di bawah ini.

(16)

Struktur Penulisan Program C

Program C pada hakekatnya tersusun atas sejumlah blok fungsi. Sebuah program minimal mengandung sebuah fungsi. Fungsi pertama yang harus ada dalam program C dan sudah ditentukan namanya adalah main(). Setiap fungsi terdiri atas satu atau beberapa  pernyataan, yang secara keseluruhan dimaksudkan untuk melaksanakan tugas khusus. Bagian pernyataan fungsi (sering disebut tubuh fungsi) diawali dengan tanda kurung kurawal buka ({) dan diakhiri dengan tanda kurung kurawal tutup (}). Di antara kurung kurawal itu dapat dituliskan statemen-statemen program C. Namun pada kenyataannya, suatu fungsi bisa saja tidak mengandung pernyataan sama sekali. Walaupun fungsi tidak memiliki pernyataan, kurung kurawal haruslah tetap ada. Sebab kurung kurawal mengisyaratkan awal dan akhir definisi fungsi. Berikut ini adalah struktur dari program C

(17)

Bahasa C dikatakan sebagai bahasa pemrograman terstruktur karena strukturnya menggunakan fungsi-fungsi sebagai program-program bagiannya (subroutine). Fungsi-fungsi yang ada selain Fungsi-fungsi utama (main()) merupakan program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau diletakkan di file pustaka (library). Jika fungsi-fungsi diletakkan di file pustaka dan akan dipakai di suatu  program, maka nama file judulnya (header file)  harus dilibatkan dalam program yang menggunakannya dengan preprocessor directive berupa #include.

Pengenalan Fungsi-Fungsi Dasar a. Fungsi

main()

Fungsi main() harus ada pada program, sebab fungsi inilah yang menjadi titik awal dan titik akhir eksekusi program. Tanda {  di awal fungsi menyatakan awal tubuh fungsi dan sekaligus awal eksekusi program, sedangkan tanda }  di akhir fungsi merupakan akhir tubuh fungsi dan sekaligus adalah akhir eksekusi program. Jika program terdiri atas lebih dari satu fungsi, fungsi main()  biasa ditempatkan pada posisi yang paling atas dalam pendefinisian fungsi. Hal ini hanya merupakan kebiasaan. Tujuannya untuk memudahkan pencarian terhadap program utama bagi pemrogram. Jadi bukanlah merupakan suatu keharusan.

b. Fungsi

 printf()

.

(18)

Selamat belajar bahasa C

misalnya, pernyataan yang diperlukan berupa:

printf(“Selamat belajar bahasa C”);

Pernyataan di atas berupa pemanggilan fungsi  printf() dengan argumen atau parameter  berupa string. Dalam C suatu konstanta string ditulis dengan diawali dan diakhiri tanda  petik-ganda (“). Perlu juga diketahui pernyataan dalam C selalu diakhiri dengan tanda

titik koma (;). Tanda titik koma dipakai sebagai tanda pemberhentian sebuah  pernyataan dan bukanlah sebagai pemisah antara dua pernyataan.

Tanda \ pada string yang dilewatkan sebagai argumen  printf() mempunyai makna yang khusus. Tanda ini bisa digunakan untuk menyatakan karakter khusus seperti karakter  baris-baru ataupun karakter backslash  (miring kiri). Jadi karakter seperti \n

sebenarnya menyatakan sebuah karakter. Contoh karakter yang ditulis dengan diawali tanda \ adalah:

\” menyatakan karakter petik-ganda

\\ menyatakan karakter backslash

\t menyatakan karakter tab

Dalam bentuk yang lebih umum, format printf()

printf(“string kontrol”, daftar argumen);

dengan string kontrol dapat berupa satu atau sejumlah karakter yang akan ditampilkan ataupun berupa penentu format yang akan mengatur penampilan dari argumen yang terletak pada daftar argumen. Mengenai penentu format di antaranya berupa:

(19)

%f untuk menampilkan bilangan titik-mengambang (pecahan)

%c untuk menampilkan sebuah karakter 

%s untuk menampilkan sebuah string Contoh: #include <stdio.h> main( ) { : %d\n”, 10); printf(“No printf(“Nama : %s\n”, “Ali”); printf(“Nilai : %f\n”,80.5); printf(“Huruf : %c\n”,‘A’); }

Pengenalan Praprosesor #include

#include  merupakan salah satu jenis pengarah praprosesor (preprocessordirective). Pengarah praprosesor ini dipakai untuk membaca file yang di antaranya berisi deklarasi fungsi dan definisi konstanta. Beberapa file judul disediakan dalam C. File-file ini mempunyai ciri yaitu namanya diakhiri dengan ekstensi .h. Misalnya pada program #include <stdio.h> menyatakan pada kompiler agar membaca file bernama  stdio.h  saat  pelaksanaan kompilasi.

Bentuk umum #include:

#include “namafile”

Bentuk pertama (#include <namafile>) mengisyaratkan bahwa pencarian file dilakukan  pada direktori khusus, yaitu direktori file include. Sedangkan bentuk kedua (#include “namafile”) menyatakan bahwa pencarian file dilakukan pertama kali pada direktori aktif tempat program sumber dan seandainya tidak ditemukan pencarian akan dilanjutkan pada direktori lainnya yang sesuai dengan perintah pada sistem operasi.

(20)

Kebanyakan program melibatkan file stdio.h  (file-judul I/O standard, yang disediakan dalam C). Program yang melibatkan file ini yaitu program yang menggunakan pustaka I/O (input-output) standar seperti printf().

(21)

Komentar dalam Program

Untuk keperluan dokumentasi dengan maksud agar program mudah dipahami di suatu saat lain, biasanya pada program disertakan komentar atau keterangan mengenai program. Dalam C, suatu komentar ditulis dengan diawali dengan tanda /* dan diakhiri dengan tanda */.

Contoh :

/*

Tanda ini adalah komentar untuk multiple lines

*/

#include <stdio.h> main()

{

//Ini komentar satu baris printf(“Coba\n”);

}

C. HASIL PERCOBAAN

2.1 Mencetak kalimat dalam beberapa baris. Listing programnya adalah :

#include<stdio.h> main()

{

printf("Program Studi Teknik Elektro\n"); printf("Kampus UNSIKA Tahun 2013"); }

(22)

Hasil keluaran programnya sebagai berikut :

2.2 Mencetak kalimat dalam beberapa baris. Listing programnya adalah :

#include<stdio.h> main()

{

printf("Saya sekarang sedang makan\n"); printf("Kantin UNSIKA\n");

printf("Murah meriah\n");

(23)

Keluaran yang dihasilkan dari program tersebut sebagai berikut :

2.3 Memperbaiki program yang salah. Listing programnya adalah :

#include<stdio.h> main()

{

printf("Ternyata semester %d ini nilaiku jelek\n",4);

printf("Matematika %c dan metode numerik %c\n",'B','D'); printf("oooo...ternyata kuliah itu susah %s","sekali\n");

(24)

Keluaran yang dihasilkan dari program tersebut sebagai berikut :

2.4 Mencetak kalimat dalam beberapa baris. Listing programnya adalah :

#include<stdio.h> main()

{

printf("Dalam membuat\"Program Komputer\"\n");

printf("Terdapat \\aturan\\aturan yang harus dipenuhi\n"); printf("Dalam menuliskan perintah-perintah dasar\n");

printf("Untuk itu \"Programmer\" harus menghafal aturan-aturan\n"); printf("yang berlaku");

(25)

Keluaran yang dihasilkan dari program tersebut sebagai berikut :

D. KESIMPULAN

Kesalahan dalam menuliskan sebuah program dapat terjadi dengan adanya berbagai macam factor, seperti kesalahan menulis, kesalahan menempatkan atau menggunakan sebuah fungsi ataupun kesalahan lainnya yang lebih sering disebabkan kurangnya ketelitian.

Penggunaan penentu format pada sebuah program sangatlah penting karena kesalahan yang disebabkan oleh penentu format membuat program tidak akan terbaca sama sekali. Berbagai macam tanda \ pada string dapat digunakan untuk berbagai macam menyatakan karakter khusus yang tidak dapat berdiri sendiri pada sebuah program maupun dengan sebuah penentu format.

(26)

LAPORAN PRAKTIKUM 3

Pengambilan Keputusan

A. TUJUAN

1. Menjelaskan tentang operator kondisi (operator relasi dan logika) 2. Menjelaskan penggunaan pernyataan if

3. Menjelaskan penggunaan pernyataan if-else 4. Menjelaskan penggunaan pernyataan if dalam if 5. Menjelaskan penggunaan pernyataan else-if 6. Menjelaskan penggunaan pernyataan switch

B. DASAR TEORI

Untuk keperluan pengambilan keputusan, C menyediakan beberapa jenis pernyataan,  berupa :

Pernyataan if 

Pernyataan if -else, dan Pernyataan switch

Pernyataan-pernyataan tersebut memerlukan suatu kondisi, sebagai basis dalam  pengambilan keputusan. Kondisi umum yang dipakai berupa keadaan benar dan salah.

Operator Relasi

Operator relasi biasa dipakai untuk membandingkan dua buah nilai. Hasil pembandingan  berupa keadaan benar atau salah. Keseluruhan operator relasi pada C ditunjukkan pada

(27)

Operator

Operator MaknaMakna

>

> Lebih dariLebih dari >=

>= Lebih Lebih dari dari atau atau sama sama dengandengan <

< Kurang Kurang daridari <=

<= Kurang dari atau sama denganKurang dari atau sama dengan ==

== Sama Sama dengandengan !=

!= Tidak Tidak sama sama dengandengan

Operator Logika. Operator Logika.

Operator logika biasa dipakai untuk menghubungkan ekspresi relasi. Keseluruhan operator Operator logika biasa dipakai untuk menghubungkan ekspresi relasi. Keseluruhan operator logika ditunjukkan pada tabel 3-2.

logika ditunjukkan pada tabel 3-2.

Tabel 3-2. Operator logika Tabel 3-2. Operator logika Operator

Operator MaknaMakna &&

&& dan dan (AND)(AND) |||| atau atau (OR)(OR) !

! tidak tidak (NOT)(NOT)

Bentuk pemakaian operator && dan || adalah Bentuk pemakaian operator && dan || adalah

operand1 operator operand2 operand1 operator operand2

Pernyataan Pernyataan

if 

if 

Pernyataan

Pernyataan if if  mempunyai bentuk umum : mempunyai bentuk umum : if (kondisi )

if (kondisi ) pernyataan; pernyataan;

(28)

Bentuk ini menyatakan : Bentuk ini menyatakan :

 Jika kondisi yang diseleksi adalah benar (bernilai logikaJika kondisi yang diseleksi adalah benar (bernilai logika = 1= 1), maka pernyataan yang), maka pernyataan yang mengikutinya akan diproses.

mengikutinya akan diproses.

 Sebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilai logikaSebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilai logika = = 00),), maka

maka  pernyataan yang mengikutinya tidak akan d pernyataan yang mengikutinya tidak akan diproses.iproses.

Mengenai kodisi harus ditulis diantara tanda kurung, sedangkan pernyataan dapat berupa Mengenai kodisi harus ditulis diantara tanda kurung, sedangkan pernyataan dapat berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan kosong. Diagram alir dapat sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan kosong. Diagram alir dapat dilihat seperti gambar 3.1

dilihat seperti gambar 3.1

Pernyataan

Pernyataan

if-else

if-else

Pernyataan

Pernyataan

if-else

if-else

 memiliki bentuk : memiliki bentuk : if (kondisi) if (kondisi) pernyataan-1; pernyataan-1; else else pernyataan-2; pernyataan-2;

(29)

Diagram alir dapat dilihat seperti gambar 3.2. Diagram alir dapat dilihat seperti gambar 3.2.

Arti dari pernyataan

Arti dari pernyataan if-elseif-else : :

 Jika kondisi benar, makaJika kondisi benar, maka pernyataan-1pernyataan-1 dijalankan. dijalankan.

 Sedangkan bila kondisi bernilai salah, makaSedangkan bila kondisi bernilai salah, maka pernyataaan-2pernyataaan-2 yang dijalankan. yang dijalankan. Masing-masing

Masing-masing pernyataan-1pernyataan-1  dan  dan pernyataan-2pernyataan-2  dapat berupa sebuah pernyataan  dapat berupa sebuah pernyataan tunggal, pernyataan majemuk ataupun pernyataan kosong.

tunggal, pernyataan majemuk ataupun pernyataan kosong. Contoh penggunaan pernyataan

Contoh penggunaan pernyataan if-elseif-else  adalah untuk menyeleksi nilai suatu bilangan  adalah untuk menyeleksi nilai suatu bilangan  pembagi. Jika

 pembagi. Jika nilai nilai bilangan pembagi bilangan pembagi adalah adalah nol, maka nol, maka hasil hasil pembagian dengan pembagian dengan nilai nilai nolnol akan mendapatkan hasil tak berhingga. Jika ditemui nilai pembaginya nol, maka proses akan mendapatkan hasil tak berhingga. Jika ditemui nilai pembaginya nol, maka proses  pembagian tidak akan dilakukan

 pembagian tidak akan dilakukan..

Pernyataan

Pernyataan

iif f 

 di dalam di dalam

iif f 

Di dalam suatu pernyataan

Di dalam suatu pernyataan if if   (atau  (atau if-elseif-else) bisa saja terdapat pernyataan) bisa saja terdapat pernyataan if if   (atau  (atau if-else)if-else) yang lain. Bentuk seperti ini dinamakan sebagai

yang lain. Bentuk seperti ini dinamakan sebagai   nested if   nested if . Secara umum, bentuk . Secara umum, bentuk  daridari  pernyataan ini adalah sebagai berikut :

(30)

if (kondisi-1) if (kondisi-2) . . if(kondisi-n) pernyataan; else pernyataan; . . else pernyataan; else pernyataan;

 Kondisi yang akan diseleksi pertama kali adalah kondisi yang terluar ( kondisi-1). Jika kondisi-1  bernilai salah, maka statemen else  yang terluar (pasangan if   yang  bersangkutan) yang akan diproses. Jika else  (pasangannya tsb) tidak ditulis, maka  penyeleksian kondisi akan dihentikan.

 Jika kondisi-1 bernilai benar, maka kondisi berikutnya yang lebih dalam ( kondisi-2) akan diseleksi. Jika kondisi-2 bernilai salah, maka statemen else pasangan dari if  yang  bersangkutan yang akan diproses. Jika else  (untuk kondisi-2) tidak ditulis, maka  penyeleksian kondisi akan dihentikan.

 Dengan cara yang sama, penyeleksian kondisi akan dilakukan sampai dengan kondisi-n, jika kondisi-kondisi sebelumnya bernilai benar.

Pernyataan else-

if 

Contoh implementasi nested if  ini misalnya pembuatan sebuah program kalkulator sederhana. User memberikan masukan dengan format :

operand1 operator operand2

Jenis operasi yang dikenakan bergantung pada jenis operator  ang dimasukkan oleh user. Oleh karena itu program akan mengecek apakah operator  berupa tanda ‘*’, ‘/’, ‘+’, ataukah tanda ‘-‘ .

(31)

Jika operator berupa tanda ‘/’ maka operand1 akan dibagi dengan operand2.

Jika operator berupa tanda ‘+’ maka operand1 akan dijumlahkan dengan operand2. Jika operator berupa tanda ‘-’ maka operand1 akan dikurangi dengan operand2. Kalau operator yang dimasukkan bukan merupakan salah satu dari jenis operator di atas, maka ekspresi tersebut tidak akan diproses, dan user akan mendapatkan pesan  berupa : “Invalid operator !”

Pernyataan

 switch

Pernyataan

 switch

  merupakan pernyataan yang dirancang khusus untuk menangani  pengambilan keputusan yang melibatkan sejumlah alternatif, misalnya untuk menggantikan  pernyataan

if 

 bertingkat.

Bentuk umum pernyataan

 switch

 adalah :

switch (ekspresi) { case konstanta-1: pernyataan-1; ... break; case konstanta-2: . . . case konstanta-n: pernyataan-n; ... break; default: ... ... break; }

dengan ekspresi  dapat berupa ekspresi bertipe integer atau bertipe karakter. Demikian juga konstanta-1, konstanta-2, konstanta-n dapat berupa konstanta integer atau karakter. Setiap  pernyataan-i (pernyataan-1, … , pernyataan-n) dapat berupa pernyataan tunggal ataupun  pernyataan jamak. Dalam hal ini urutan penulisan pernyataan case tidak berpengaruh. Proses  penyeleksian berlangsung sebagai berikut :

(32)

 pengujian pada switch akan dimulai dari konstanta-1. Kalau nilai konstanta-1 cocok dengan ekspresi maka pernyataan-1 dijalankan. Kata kunci break  harus disertakan di  bagian akhir setiap pernyataan case, yang akan mengarahkan eksekusi ke akhir switch. Kalau ternyata pernyataan-1 tidak sama dengan nilai ekspresi, pengujian dilanjutkan  pada konstanta-2, dan berikutnya serupa dengan pengujian pada konstanta-1.

Jika sampai pada pengujian case  yang terakhir ternyata tidak ada kecocokan, maka  pernyataan yang mengikuti kata kunci default   yang akan dieksekusi. Kata kunci

default ini bersifat opsional.

Tanda kurung kurawal tutup (}) menandakan akhir dari proses penyeleksian kondisi case.

C. HASIL PERCOBAAN

3.1 Penggunaan if-else bertingkat Listing programnya adalah : #include<stdio.h>

main() {

float a, t, L; int bil;

 printf("1. Luas Segitiga\n");

 printf("2. Luas Persegi Panjang atau Bujur Sangkar \n");  printf("Apa yang ingin anda cari : ");

scanf("%d", &bil); if(bil==1)

{

 printf("Masukkan alas & tinggi : "); scanf("%f", &a); scanf("%f", &t); L=0.5*a*t;

 printf("Luas Segitiga = %2.2f",L); }

else if (bil==2) {

(33)

 printf("Masukkan panjang & lebar : "); scanf("%f", &a); scanf("%f", &t); L=a*t;

 printf("Luas Persegi Panjang / Bujur Sangkar = %2.2f", L); }

else {

 printf("Pilihan anda tidak sesuai"); }

return 0; }

Listing program dengan switch case: #include<stdio.h>

main() {

float a, t, L; int bil;

printf("1. Luas Segitiga\n");

printf("2. Luas Persegi Panjang atau Bujur Sangkar \n"); printf("Apa yang ingin anda cari : ");

scanf("%d", &bil); switch(bil)

{

case 1:

printf("Masukkan alas & tinggi : "); scanf("%f", &a); scanf("%f", &t); L=0.5*a*t;

printf("Luas Segitiga = %2.2f",L); break;

case 2:

printf("Masukkan panjang & lebar : "); scanf("%f", &a); scanf("%f", &t);

(34)

L=a*t;

printf("Luas Persegi Panjang / Bujur Sangkar = %2.2f", L); break;

}

return 0; }

Hasil programnya adalah : 1. if-else bertingkat

(35)

2. switch case

(36)

Kesimpulan :

switch case dengan if else bertingkat dapat membentuk sebuah program yang sama namun fungsi yang berbeda.

3.2 Penggunaan switch case Listing programnya adalah : #include<stdio.h>

main() {

char a;

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

(37)

{ case 'A': printf("Nilai angka = 4"); break; case 'B': printf("Nilai angka = 3"); break; case 'C': printf("Nilai angka = 2"); break; case 'D': printf("Nilai angka = 1"); break; case 'E': printf("Nilai angka = 0"); break; } return 0; }

(38)
(39)
(40)

Flowchart 3.2 :

Kesimpulan : switch case dapat diguakan membuat program dengan kondiisi yang cukup  banyak dengan tampilan yang lebih sederhana.

3.3 Penggunaan nested if Listing programnya adalah : #include<stdio.h>

(41)

main() {

double a, b, c;

printf("Masukkan nilai huruf = "); scanf("%lf",&a); printf("Masukkan nilai huruf = "); scanf("%lf",&b); printf("Masukkan nilai huruf = "); scanf("%lf",&c); if(a<c) if(a<c) { printf("Terkecil %2.lf",a); } else { printf("Terkecil %2.lf",c); } else if(b<c) printf("Terkecil %2.lf",b); else printf("terkecil %2.lf",c); return 0; }

(42)
(43)

3.4 Percobaan 3.2 denngan if-else Listing programnya adalah :

#include<stdio.h> main() { char e; printf("Nilai Huruf : "); scanf("%c",&e); if(e=='A') printf("4"); else if (e=='B') printf("3"); else if (e=='C') printf("2"); else if (e=='D') printf("1"); else if (e=='E') printf("0"); else

printf("Pilihan Tidak Sesuai"); }

(44)
(45)
(46)

Flowchart 3.4 : Flowchart 3.4 :

(47)

LAPORAN PRAKTIKUM 4

LAPORAN PRAKTIKUM 4

Pengulangan Proses

Pengulangan Proses

A. A. TUJUANTUJUAN 1.

1. Menjelaskan proses pengulangan menggunakan pernyataan for Menjelaskan proses pengulangan menggunakan pernyataan for  2.

2. Menjelaskan proses pengulangan menggunakan pernyataan whileMenjelaskan proses pengulangan menggunakan pernyataan while 3.

3. Menjelaskan proses pengulangan menggunakan pernyataan do-whileMenjelaskan proses pengulangan menggunakan pernyataan do-while B.

B. DASAR TEORIDASAR TEORI Pernyataan

Pernyataan

  fo

  for r 

Mengulang suatu proses merupakan tindakan yang banyak dijumpai dalam pemrograman. Mengulang suatu proses merupakan tindakan yang banyak dijumpai dalam pemrograman. Pada semua bahasa pemrograman, pengulangan proses ditangani dengan suatu mekanisme Pada semua bahasa pemrograman, pengulangan proses ditangani dengan suatu mekanisme yang disebut

yang disebut looploop. Dengan menggunakan. Dengan menggunakan looploop, suatu proses yang berulang misalnya, suatu proses yang berulang misalnya menampilkan tulisan yang sama seratus kali pada layar dapat diimpelementasikan dengan menampilkan tulisan yang sama seratus kali pada layar dapat diimpelementasikan dengan kode program yang pendek.

kode program yang pendek.

Pernyataan pertama yang digunakan untuk keperluan pengulangan proses adalah pernyataan Pernyataan pertama yang digunakan untuk keperluan pengulangan proses adalah pernyataan  for 

 for . Bentuk pernyataan ini :. Bentuk pernyataan ini :

for (ungkapan1; ungkapan2; ungkapan3) for (ungkapan1; ungkapan2; ungkapan3)

pernyataan pernyataan;;

Kegunaan dari masing-masing ungkapan pada pernyataan Kegunaan dari masing-masing ungkapan pada pernyataan for. for.

 Ungkapan1 : digunakan untuk memberikan inisialisasi terhadap variabel pengendaliUngkapan1 : digunakan untuk memberikan inisialisasi terhadap variabel pengendali

loop loop..

(48)

 Ungkapan3 : dipakai sebagai pengatur kenaikan nilai variabel pengendaliUngkapan3 : dipakai sebagai pengatur kenaikan nilai variabel pengendali looploop. Ketiga. Ketiga

ungkapan dalam

ungkapan dalam  for  for  tersebut harus dipisahkan dengan tanda titik koma (;). Dalam hal tersebut harus dipisahkan dengan tanda titik koma (;). Dalam hal ini pernyatan bisa berupa pernyataan tunggal maupun jamak. Jika pernyataannya ini pernyatan bisa berupa pernyataan tunggal maupun jamak. Jika pernyataannya  berbentuk

 berbentuk jamak, jamak, maka maka pernyataan-pernyataan pernyataan-pernyataan tersebut tersebut harus harus diletakkan diletakkan di di antaraantara kurung kurawal buka ({) dan kurung kurawal tutup (}), s

kurung kurawal buka ({) dan kurung kurawal tutup (}), s ehingga formatnya menjadi :ehingga formatnya menjadi :

for (ungkapan1; ungkapan2; ungkapan3) for (ungkapan1; ungkapan2; ungkapan3) { {  pernyataan;  pernyataan;  pernyataan;  pernyataan; .. .. .. } } Pernyataan

Pernyataan

while

while

Pada pernyataan

Pada pernyataan whilewhile, pengecekan terhadap loop dilakukan di bagian awal (sebelum t, pengecekan terhadap loop dilakukan di bagian awal (sebelum t ubuhubuh loop). Lebih jelasnya, bentuk pernyataan

loop). Lebih jelasnya, bentuk pernyataan whilewhile adalah sebagai berikut : adalah sebagai berikut :

while (kondisi) while (kondisi)

pernyataan; pernyataan;

dengan pernyataan dapat berupa pernyataan tunggal, pernyataan majemuk ataupun dengan pernyataan dapat berupa pernyataan tunggal, pernyataan majemuk ataupun  pernyataan

 pernyataan kosong. kosong. Proses Proses pengulangan pengulangan terhadap terhadap pernyataan pernyataan dijelaskan dijelaskan pada pada gambargambar  berikut :

(49)

Pernyataan

do-while

Bentuk pernyataan

do-while

do

 pernyataan; while (kondisi)

Pada pernyataan do-while, tubuh loop  berupa pernyataan,dengan pernyataan bisa berupa  pernyataan tunggal, pernyataan majemuk ataupun pernyataan kosong. Pada pernyataan do, mula-mula pernyataan dijalankan. Selanjutnya, kondisi diuji. Sendainya kondisi bernilai  benar, maka pernyataan dijalankan lagi, kemudian kondisi diperiksa kembali, dan

seterusnya. Kalau kondisi bernilai salah pada saat dites, maka pernyataan tidak dijalankan lagi. Untuk lebih jelasnya dapat dilihat pada Gambar 4.3. Berdasarkan Gambar 5.3 terlihat  bahwa tubuh loop minimal akan dijalankan sekali.

(50)

C. HASIL PERCOBAAN 4.1 Penggunaan pernyataan for

Listing program: #include<stdio.h> main()

{

int a,b,c=0;

printf("Masukkan integer positif = "); scanf("%d", &b); for (a=1;a<=b;a++) { c=c+a; } printf("Jumlah 1 sampai 10 = %d",c); }

(51)

Hasil program :

(52)

4.2 Penggunaan loop while Listing program:

#include<stdio.h> main()

{

char jawab = 'y'; int a=0, hasil=0, n=0;

while(jawab=='y'||jawab=='Y') {

(53)

n=n+1;

printf("Masukkan bilangan ke-%d : ",n); scanf("%d",&a);

printf("Mau masukkan lagi [y/t] ?"); getchar();  jawab=getchar(); hasil+=a; } printf("Hasilnya = %d \n",hasil); } Hasil program :

(54)

Flowchart :

4.3 Program menentukan integer acak Listing program : #include<stdlib.h> #include<math.h> #include<time.h> int main() {

(55)

do {

angka = rand(); }

while(angka<=0 && angka>50); for(b=1;b<=5;b++)

{

printf("Masukkan angka tebakan anda ke-%d ?",b); scanf("%d",&input);

if(input==angka) {

printf("\nHebat angka %d berhasil anda tebak dalam %d kali tebakan \n\n", angka,b);

break; }

if(input<=angka) {

printf("\nAngka anda lebih KECIL \n\n"); }

if(input>=angka) {

(56)

printf("\nAngka anda lebih BESAR \n\n"); }

}

if(input!=angka) {

printf("\nAngka Tidak Berhasil menebak angka ajaib = %d \n\n",angka); }

}

(57)

D. KESIMPULAN

Memahami program yang akan dibuat sangat mempengaruhi keberhasilan dari suatu  program. Selain ketelitian, menempatkan fungsi yang akan digunakan sangat penting. Menetapkan fungsi untuk sebuah program agar lebih sederhana dan mudah dimengerti.

(58)

LAPORAN PRAKTIKUM 6

Fungsi Matematika

A. TUJUAN

1. Menjelaskan fungsi matematika dalam bahasa C.

2. Menerapkan fungsi-sungsi matematika yang terdapat dalam C dalam menyelesaikan  permasalahan.

B. TEORI DASAR

Bahasa C menyediakan bawaan fungsi matematika yang terdapat dalam pustaka (library) : math.h . Agar fungsi matematika tersebut dapat digunakan dalam program maka fungsi matematika harus disertakan dalam program melalui pernyataan:

#include<math.h>

Beberapa fungsi matematika yang terdapat dalam library math.h bahasa C yakni:

Fungsi Kegunaan

Sin(x)

Menghitung nilai sinus sudut x yang dinyatakan dalam radian

Cos(x)

Menghitung nilai cosines sudut x yang dinyatakan dalam radian

Tan(x)

Menghitung nilai tangen sudut x yang dinyatakan dalam radian

Asin(x)

Menghitung nilai arcus sinus dari x yang harus bernilai diantara -1 dan 1

Acos(x)

Menghitung nilai arcus cosinus dari x yang harus bernilai diantara -1 dan 1

Atan(x)

Menghitung nilai arcus tangen dari x

Sinh(x)

(59)

Cosh(x)

Menghitung nilai cosines hiperbolik dari x

Tanh(x)

Menghitung nilai tangent hiperbolik dari x

Abs(x)

Menghitung nilai mutlak dari x

Log(x)

Menghitung nilai logaritma natural dari x (yaitu ln x)

Log10(x)

Menghitung nilai logaritma basis 10 dari x

Pow(x,y)

Menghitung nilai x pangkat y

Sqrt(x)

Menghitung nilai akar kuadrat dari x

Exp(x)

Menghitung nilai expoen dari x (yaitu ex)

C. HASIL PERCOBAAN Listing program : #include<stdio.h> #include<math.h> main() { float v, y, y0, v0, t, g=9.8; printf("Ketinggian awal : "); scanf("%f", &y0); printf("Kecepatan awal : "); scanf("%f", &v0);

(60)

t = (v0+sqrt(v0*v0+2*g*y0))/g; v = sqrt(v0*v0+2*g*y0);

printf("\n Hasil : \n");

printf("Durasi benda diudara : %.2f g\n",t);

printf("Kecepatan sebelum meyentuh tanah : %.2f m/s2\n",v); }

(61)
(62)

Flowchart :

Kesimpulan:

Membuat program dengan melibatkan rumus-rumus pada dunia matematika maupun fisika tidaklah serumit yang dibayangkan. Cukup dengan ketelitian dan penggunaan symbol serta menuliskan rumus yang tepat dapat menyelesaikan berbagai kondisi yang melibatkan  perhitungan matematika pada sebuah program.

(63)

LAPORAN PRAKTIKUM 7

POINTER

A. TUJUAN

1. Mengetahui konsep dari variabel pointer 2. Mengetahui penggunaan pointer array 3. Mengetahui penggunaan pointer string

B. TEORI DASAR  Konsep Dasar Pointer

Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke objek lain. Pada kenyataan yang sebenarnya, variebel pointer berisi alamat dari suatu objek lain (yaitu objek yang dikatakan ditunjuk oleh pointer).

Mendeklarasikan Variabel Pointer

Suatu variabel pointer dideklarasikan dengan bentuk sebagai berikut: Tipe*nama_variabel 

Dengan tipe dapat berupa sembarang tipe yang sudah dibahas pada bab-bab sebelumnya, maupun bab-bab berikutnya. Adapun nama_variabel adalah nama dari variabel pointer.

Mengatur Pointer agar Menunjuk ke Variabel Lain

Agar suatu pointer menunjuk ke variabel lain, mula-mula pointer harus diisi dengan alamat dari variabel yang akan ditunjuk. Untuk menyatakan alamat dari suatu variabel, operator & (operator alamat, bersifat unary) bisa dipergunakan, dengan menempatkannya di depan nama variabel.

Mengakses Isi Suatu Variabel Melalui Pointer

Jika suatu variabel sudah ditunjuk oleh pointer, variabel yang ditunjuk oleh pointer tersebut dapat diakses melalui variabel itu sendiri (pengaksesan langsung) ataupun melalui pointer (pengaksesan tak langsung).

(64)

Pengaksesan tak langsung dilakukan dengan menggunakan operator indirection (tak langsung) berupa symbol *(bersifat unary).

Mengakses dan Mengubah Isi Suatu Variabel Pointer

Contoh berikut memberikan gambaran tentang pengubahan isi suatu variabel secara tak langsung (yaitu melalui pointer). Mula-mula pd dideklarasikan sebagai pointer yang menunjuk ke suatu data bertipe float dan d sebagai variabel bertipe float. Selanjutnya d = 54.5;

digunakan untuk mengisikan nilai 54,5 secara langsung ke var iabel d. Adapun  pd= &d;

digunakan untuk memberikan alamat dari d ke pd. Dengan demikian pd menunjuk ke variabel d. Sedangkan pernyataanberikutnya

*pd= *pd + 10; ( atau : *pd+=10;)

Merupakan instruksi untuk mengubah nilai variabel d secara tak langsung. Perintah di atas  berarti “jumlahkan yang ditunjuk pd dengan 10 kemudian berikan ke yang ditunjuk oleh

pd”, atau identik dengan pernyataan d = d+10;

akan tetapi seandainya tidak ada instruksi  pd= &d;

maka pernyataan *pd= *pd + 10; Tidak sama dengan d = d+10;

Pointer dan Array

Hubungan pointer dan array pada C sangatlah erat. Sebab sesungguhnya array secara internal akan diterjemahkan dalam bentuk pointer.

C. HASIL PERCOBAAN

7.1 Program mengetahui alamat suatu variabel Listing program :

#include<stdio.h> int main()

(65)

{ int alif = 5; float ba = 7.5; double ta = 17.777; printf("Isi variabel : \n"); printf("alif = %d\n", alif); printf("ba = %f\n", ba); printf("ta = %lf\n",ta); printf("\n"); printf("Alamat variabel : \n"); printf("alif = %p\n", &alif); printf("ba = %p\n", &ba); printf("ta = %p\n", &ta); return 0; } Hasil program:

7.2 Progam mengakses array via pointer Listing program :

#include<stdio.h> int main()

(66)

int tgl_lahir[] = {24, 6, 1965}; int*ptgl;

ptgl=tgl_lahir;//ptgl menunjuk ke array; //Menampilkan isi array via pointer int i; for(i=0; i<sizeof(tgl_lahir)/sizeof(int);i++) printf("%d\n",*(ptgl+i)); return 0; } Hasil program : Flowchart:

(67)

D. KESIMPULAN

Percobaan pointer berlandaskan dengan percobaan-percobaan sebelumnya. Percobaan  pointer menekankan pointer yang seringkali tidak diketahui.

(68)

LAPORAN PRAKTIKUM 8

ARRAY

A. Tujuan

1. Menjelaskan tentang array berdimensi satu 2. Menjelaskan tentang array berdimensi dua 3. Menjelaskan tentang array berdimensi banyak

4. Menjelaskan tentang inisialisasi array tak berukuran. 5. Menjelaskan array sebagai parameter fungsi

B. DASAR TEORI

Dalam beberapa literatur, array sering disebut (diterjemahkan) sebagai larik. Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu array disebut dengan elemen-elemen array. Letak urutan dari elemen-elemen array ditunjukkan oleh suatu  subscript atau indeks.

Array bisa berupa array berdimensi satu, dua, tiga atau lebih. Array berdimensi satu (one-dimensional array) mewakili bentuk suatu vektor. Array berdimensi dua (two-(one-dimensional array) mewakili bentuk dari suatu matriks atau table. Array berdimensi tiga  (three-dimensional array) mewakili bentuk suatu ruang.

Array Berdimensi Satu

Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa : tipe_data nama_var[ukuran];

dengan :

 tipe_data : untuk menyatakan tipe dari elemen array, misalnya int, char, float .  nama_var : nama variabel array

(69)

Mengakses Elemen Array Berdimensi Satu

Pada C, data array akan disimpan dalam memori yang berurutan. Elemen pertama mempunyai indeks bernilai 0. Jika variabel nilai_tes dideklarasikan sebagai array dengan 5 elemen, maka elemen pertama memiliki indeks sama dengan 0, dan elemen terakhir  memiliki indeks 4.

Bentuk umum pengaksesan array adalah sbb :  Nama_var[indeks]

Inisialisasi Array Berdimensi Satu

Sebuah array dapat diinisialisasi sekaligus pada saat dideklarasikan. Untuk mendeklarasikan array, nilai-nilai yang diinisialisasikan dituliskan di antara kurung kurawal ({}) yang dipisahkan dengan koma.

Beberapa Variasi dalam Mendeklarasikan Array

Ada beberapa variasi cara mendeklarasikan sebuah array (dalam hal ini yang berdimensi satu), di antaranya adalah sebagai berikut :

 int numbers[10];

 int numbers[10] = {34, 27, 16};

 int numbers[] = {2, -3, 45, 79, -14, 5, 9, 28, -1, 0};  char text[] = "Welcome to New Zealand.";

 float radix[12] = {134.362, 1913.248};  double radians[1000];

(70)

Array berdimensi satu dapat disimpan pada sebuah array berdimensi dua. Pendeklarasian array berdimensi dua adalah sebagai berikut :

int data_lulus[4][3];

 Nilai 4 untuk menyatakan banyaknya baris dan 3 menyatakan banyaknya kolom. Gambar 10.1 memberikan ilustrasi untuk memudahkan pemahaman tentang array  berdimensi dua.

Mengakses Elemen Array Berdimensi Dua

Array seperti data_lulus  dapat diakses dalam bentuk data_lulus[indeks pertama, indeks kedua] :

 data_lulus[0][1] = 540;

merupakan instruksi untuk memberikan nilai 540 ke array data_lulus  untuk indeks  pertama = 0 dan indeks kedua bernilai 1.

(71)

merupakan perintah untuk menampilkan elemen yang memiliki indeks pertama = 2 dan indeks kedua = 0.

Array Berdimensi Banyak 

C memungkinkan untuk membuat array yang dimensinya lebih dari dua. Bentuk umum pendeklarasian array berdimensi banyak :

tipe nama_var[ukuran 1][ukuran2}…[ukuranN]; sebagai contoh :

int data_huruf[2][8][8];

merupakan pendeklarasian array data_huruf   sebagai array berdimensi tiga. Sama halnya dengan array berdimensi satu atau dua, array berdimensi banyak juga bisa diinisialisasi.

Array Sebagai Parameter

Array juga dapat dilewatkan sebagai parameter fungsi. Sebagai contoh ditujukan  pada program sorting.c. Program digunakan untuk memasukkan sejumlah data,

kemudian data tersebut diurutkan naik (ascending) dan dicetak ke layar.

Untuk melakukan sorting (proses pengurutan data), cara yang dipakai yaitu metode buble sort (suatu metode pengurutan yang paling sederhana, dan memiliki kecepatan pengurutan yang sangat lambat). Algoritma pada metode pengurutan ini adalah sebagai berikut :

1. Atur i bernilai 0

(72)

3. Pada setiap pembandingan, jika x[i] > x[j], maka isi x[i] dan x[j] ditukarkan

4. Bila i < (n –  1), ulangi mulai langkah 2.

Catatan: i = indeks array

x = nama array untuk menyimpan data n = umlah data

Algoritma diatas berlaku untuk pengurutan menaik (ascending). Untuk pengurutan menurun (descending), penukaran dilakukan jika x[i] < x[j].

C. HASIL PERCOBAAN

8.1 Program membaca array karakter Listing program : #include<stdio.h> main() { char tmp, kar[255]; int htg[255]; int a, b, c=0, n, cek;

printf("Masukkan jumlah karakter : "); scanf("%d",&n);

for(a=1;a<=n;a++) {

printf("Masukkan karakter ke-%d\t: ",a); scanf("\n%c",&tmp); for(b=0;b<=c;b++) { cek=1; if(tmp==kar[b]) { cek=0;

(73)

htg[b]++; break; } } if(cek==1) { kar[c]=tmp; htg[c]=1; c++; } } printf("\n"); for(a=0;a<c;a++) {

printf("Frekuensi yang muncul pada karakter %c adalah %2d\n", kar[a], htg[a]); }

}

Hasil program:

(74)

8.2 Program menggunakan inisialisasi array berdimensi dua Listing program : #include<stdio.h> int main() { int huruf_A[8][8]= { {0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 0, 0, 0, 0, 1, 0}, {1, 1, 0, 0, 0, 0, 1, 0}, {1, 1, 0, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0} }; int i, j;

(75)

for(i=0; i<8; i++) { for(j=0; j<8; j++) if (huruf_A[i][j]==1) putchar('*'); else putchar(' '); printf("\n"); } return 0; } Hasil program: D. KESIMPULAN

Percobaan dengan array serta inisialisasi array membutuhkan ketelitian yang tinggi pada saat membuat program, beberapa kali kesalahan terjadi namun program tetap berjalan hanya saja tidak sesuai dengan output yang diinginkan.

(76)

LAPORAN PRAKTIKUM 9

STRING

A. TUJUAN

1. Menjelaskan tentang konsep string 2. Menjelaskan operasi I/O pada string.

3. Menjelaskan cara mengakses elemen string 4. Menjelaskan berbagai fungsi mengenai string

B. TEORI DASAR 

Konstanta dan Variabel String

String merupakan bentuk data yang biasa dipakai dalam bahasa pemrograman untuk keperluan menampung dan memanipulasi data teks, misalnya untuk menampung (menyimpan) suatu kalimat. Pada bahasa C, string bukanlah merupakan tipe data tersendiri, melainkan hanyalah kumpulan dari nilai-nilai karakter yang berurutan dalam  bentuk

array 

 berdimensi satu.

Konstanta String

Suatu konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda, misalnya:

“ABCDE”

 Nilai string ini disimpan dalam memori secara berurutan dengan komposisi sebagai  berikut:

(77)

Setiap karakter akan menempati memori sebesar 1 byte. Byte terakhir otomatis akan  berisi karakter NULL (\0). Dengan mengetahui bahwa suatu string diakhiri nilai  NULL, maka akhir dari nilai suatu string akan dapat dideteksi. Sebagai sebuah array karakter, karakter pertama dari nilai string mempunyai indeks ke-0, karakter kedua mempunyai indeks ke-1, dan seterusnya.

Variabel String

Variabel string adalah variabel yang dipakai utuk menyimpan nilai string.

Misalnya :

char name[15];

merupakan instruksi untuk mendeklarasikan variabel string dengan panjang maksimal 15 karakter (termasuk karakter NULL). Deklarasi tersebut sebenarnya tidak lain merupakan deklarasi array bertipe char 

Inisialisasi String

Suatu variabel string dapat diinisialisasi seperti halnya array yang lain. Namun tentu saja elemen terakhirnya haruslah berupa karakter NULL. Sebagai contoh :

char name[] = {'R','A','N', 'I',’\0’};

yang menyatakan bahwa name  adalah variabel string dengan nilai awal berupa string : “RANI” . Bentuk inisialisasi yang lebih singkat :

char name[] = “RANI”;

Pada bentuk ini, karakter NULL tidak perlu ditulis. Secara implisit akan disisipkan oleh kompiler. Perlu diperhatikan, bila name dideklarasikan sebagai string, penugasan (assignment) suatu string ke variabel string seperti

(78)

adalah tidak diperkenankan. Pengisian string ke variabel string akan dibahas pada sub  bab berikutnya.

INPUT OUTPUT DATA STRING

 Memasukkan Data String

Pemasukan data string ke dalam suatu variabel biasa dilakukan dengan fungsi gets() atau scanf().

#include<stdio.h> gets(nama_array): atau #include<stdio.h> scanf(“%s”,nama_array): Perhatikan:

 Nama_array  adalah variabel beertipe array of char yang akan digunakan untuk menyimpan string masukan.

 Di depan Nama_array tidak perlu ada operator & (operator alamat), karenya nama_array tanpa kurung siku sudah menyatakan alamat yang ditempati oleh elemen pertama dari array tersebut.

 Kalau memakai scanf(), data string masukan tidak boleh mengandung spasi.

 Menampilkan Isi Variabel String

Untuk menampilkan isi variabel string, fungsi yang digunakn adalah puts() atau  printf(). Bentuk umum pemakainnya adalah sebagai berikut:

#inlude<stdio.h> Puts(var_string); Atau

(79)

Dalam hal ini var_string  adalah sebuah variabel yang berupa sebuah array of char . Fungsi  puts()  akan menampilkan isi dari var_string  dan secara otomatis menambahkan karakter '\n' di akhir string. Sedangkan fungsi  printf()  akan menampilkan isi variabel string tanpa memberikan tambahan '\n'. Sehingga, agar kedua pernyataan di atas memberikan keluaran yang sama, maka pada pernyataan  printf() dirubah menjadi :

Printf(“%s\n”,var_string);

 Fungsi-Fungsi Mengenai String

Berikut ini akan dibahas beberapa fungsi pustaka yang umumnya disediakan oleh kompiler C untuk mengoperasikan suatu nilai string. Fungsi-fungsi  pustaka untuk operasi string, prototype-prototype nya berada di file judul string.h. Beberapa di antara fungsi pustaka untuk operasi string akan dibahas di bawah ini.

Fungsi

 strcpy()

 untuk Menyalin Nilai String Bentuk pemakaian :

#include <string.h> strcpy(tujuan, asal)

Fungsi ini dipakai untuk menyalin string asal ke variabel string tujuan termasuk karakter '\0'. Keluaran dari fungsi ini (return value) adalah string tujuan. Dalam hal ini, variabel tujuan haruslah mempunyai ukuran yang dapat digunakan untuk menampung seluruh karakter dari string asal.

Fungsi

 strlen()

 untuk Mengetahui Panjang Nilai String Bentuk pemakaian :

#include <string.h> strlen(var_string);

(80)

Fungsi ini digunakan untuk memperoleh banyaknya karakter di dalam string yang menjadi argumennya (var_string). Keluaran dari fungsi ini adalah panjang dari var_string. Karakter NULL tidak ikut dihitung.

Fungsi

 strcat()

 untuk Menggabung Nilai String Bentuk pemakaian :

#include <string.h> strcat(tujuan, sumber);

Menggabungkan dua buah nilai string tidak dapat dilakukan dengan operator ‘+’, karena operator ini bukan operator untuk operasi string. Penggabungan dua buah nilai string dapat dilakukan dengan fungsi pustaka  strcat()  dengan menambahkan string sumber  ke bagian akhir dari string tujuan. Keluaran dari fungsi ini adalah string tujuan.

Fungsi

 strcmp()

 untuk Membandingkan Dua Nilai String

Membandingkan dua nilai string juga tidak dapat digunakan dengan operator hubungan, karena operator tersebut tidak untuk operasi string. Membandingkan dua  buah nilai string dapat dilakukan dengan fungsi pustaka  strcmp(). Contoh bentuk  pemakaian fungsi :

(81)

strcmp(str1, str2);

C. HASIL PERCOBAAN

9.1 Program kalimat palindrome Listing program: #include<stdio.h> #include<conio.h> #include<string.h> int main() { char a[100], b[100]; printf("Kalimat : "); gets (a); strcpy(b,a); strrev(b); if(strcmp(a,b)==0)

printf("\nKata '%s' merupakan kata POLINDROM\n",&a); else

printf("\nKata '%s' BUKAN PALINDROM\n",&a); getch();

}

(82)
(83)

9.2 Program mengurutkan nama Listing program: #include<stdio.h> #define N 20 char nama [N][20]; int i, j, k, l; main() { int jml; char jumlah[10];

printf("Jumlah nama yang akan diurutkan = "); gets(jumlah);

 jml=atoi(jumlah); for(i=0;i<jml;i++) {

printf("\nNama ke-%d : ",i+1); gets(&nama[i][0]);

}

bubble(jml);

printf("\nNama Sesudah Diurutkan: "); for(i=0;i<jml;i++)

{

printf("\nNama ke-%d : %-20s",i+1,&nama[i][0]); } } bubble(n) int n; { char temp; for(i=1;i<=n;i++) { for(j=i;j<n;j++) {

(84)

for(l=0;l<20;l++) { if(nama[i-1][l]<nama[j][l]) { break; } if(nama[i-1][l]>nama[j][l]) { for(k=0;k<20;k++) { temp=nama[i-1][k]; nama[i-1][k]=nama[j][k]; nama[j][k]=temp; } break; } } } } } Hasil Program :

(85)

D. KESIMPULAN

String memiliki banyak kegunaan lain seperti pada percobaan yang telah dilakukan, tidak hanya menampilkan sebuah kalimat saja pada sebuah program. Dengan menggunakan  berbagai fungsi string sesuai dengan penggunaan yang diinginkan akan mendapatkan

(86)

LAPORAN PRAKTIKUM 10

STRUKTUR

A. TUJUAN

1. Menjelaskan cara mendeklarasikan struktur 2. Menjelaskan cara menginisilisasi struktur 3. Menjelaskan cara mengakses elemen struktur

4. Menjelaskan pembentukan dan cara mengakses array dari struktur (ar ray of struct)

B. TEORI DASAR

Dalam struktur adalah pengelompokan variabel-variabel yang bernaung dalam satu nama yang sama. Berbeda dengan array yang berisi kumpulan variabel-variabel yang  bertipe sama dalam satu nama, maka suatu struktur dapat terdiri atas variabel-variabel yang berbeda tipenya dalam satu nama struktur.struktur biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah.

Variabel-variabel yang membentuk suatu struktur, selanjutnya disebut sebagai elemen dari struktur atau field. Dengan demikian dimungkinkan suatu struktur dapat berisi elemen-elemen data berbeda tipe seperti char, int, float, double, dll. Contoh sebuah struktur adalah informasi data tangga (date) yang berisi:

 Day

 Month  Year

Mendefinisikan & Mendeklarasikan Struktur

Suatu struktur didefinisikan dengan menggunakan kata kunci struct. Contoh  pendefinisian sebuah tipe data struktur:

Struct date{ Int mont; Int day; Int year; }; Struct date{

(87)

Int month, day, year; };

Yang mendefinisikan sebuah tipe data struktur bernama date yang memiliki 3 buah elemen (field) berupa:

 Day

 Month  Year

Dalam mendefinisikan sebuah struktur, elemen yang terkandung di dalamnya bisa juga  berupa sebuah struktur, contoh:

Struct date{ Int moth, day, year; };

Struct person{ Char nae[30];

Struct date birthday; };

(88)

Diagram struktur data dari variabel student dapat digambarkan sebagai berikut:

Elemen dari suatu variabel struktur dapat diakses dengan menyebutkan nama variabel struktur diikuti dengan operator titik (‘.’) dan nama dari elemen strukturnya. Cara penulisannya :

Variabel_struktur.nama_field

Menginisialisasi Struktur

Sebuah struktur juga bisa di inisialisasikan pada saat dideklarasikan. Hal ini serupa dengan inisialisasi array, yaitu elemen-elemennya ditulis di dalam sepasang kurung kurawal(‘{}’) dengan masing-masing dipisahkan dengan koma.

Array dan Struktur

Elemen-elemen dari suatu array juga dapat berbentuk sebuah struktur. Misalnya array yang dipakai untuk menyimpan sejumlah data siswa(struct student). Array struktur berdimensi satu ini membentuk suatu table, dengan barisnya menunjukan elemen dari arraynya dan kolomnya menunjukan elemen dari struktur.

(89)

C. HASIL PERCOBAAN

10.1 Mendefinisikan sebuah struktur Listing program: #include<stdio.h> main() { char nama [20]; float j, h, hbr, jbr;

printf("Masukkan nama barang : "); scanf("%s",nama);

printf("Masukkan jumlah barang : "); scanf("%f",&j);

printf("Masukkan harga per barang : "); scanf("%f",&h);

hbr=j*h;

printf("\nJadi Barang yang dimasukkan adalah %s\n",nama);

printf("Jumlah barang %2.2f dan total harganya adalah %2.2f\n",j , hbr); getch();

}

Hasil program:

(90)

10.2 Program array of struct Listing program: #include<stdio.h> #include<math.h> main () { char na[40],p; float uts,uas,tgs,akh; printf("======================================================= =================\n");

printf(" PROGRAM NILAI MAHASISWA\n");

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

printf("Masukan Nama Mahasiswa : "); gets(na);

printf("Masukan Nilai Tugas : "); scanf("%f",&tgs);

printf("Masukan Nilai UTS : "); scanf("%f",&uts);

(91)

printf("Masukan Nilai UAS : "); scanf("%f",&uas); akh=tgs*0.2+uts*0.4+uas*0.4; if(akh>=81) { p='A'; } else if(71<=akh<=80) { p='AB'; } else if(65<=akh<=70) { p='B'; } else if(akh>=61) { p='BC'; } else if(akh>=56) { p='C'; } else if (akh>=40) { p='D'; } else { p='E'; } printf("\n---\n");

(92)

printf(" Data Nilai Mahasiswa");

printf("\n---\n"); printf("Nama : %s\n",na);

printf("NILAI TUGAS : %2.2f\n",tgs); printf("NILAI UTS : %2.2f\n",uts); printf("NILAI UAS : %2.2f\n",uas); printf("NILAI AKHIR : %2.2f\n",akh); printf("NILAI HURUF : %c\n",p); return 0;

}

(93)

10.3 Program pembuatan dan pengaksesan struktur Listing program: #include<stdio.h> int main() { struct data_tanggal { int tahun; int bulan; int tanggal; };

//Deklarasi variabel struktur

struct data_tanggal tanggal_lahir; //Pengaksesan anggota struktur tanggal_lahir.tanggal = 1; tanggal_lahir.bulan = 9; tanggal_lahir.tahun = 1964; printf("%d/%d/%d\n",tanggal_lahir.tanggal, tanggal_lahir.bulan, tanggal_lahir.tahun); return 0; } Hasil program:

(94)

Flowchart:

10.4 Program penetapan zodiac Listing program: #include<stdio.h> struct zodiak { char nama[11]; int tgl_awal;

(95)

int bln_awal; int tgl_akhir; int bln_akhir; }; int main() {

struct zodiak bintang = {

"Sagitarius", 22, 11, 21, 12 };

int tgl_lhr, bln_lhr, thn_lhr;

printf("Tanggal lahir anda (DD-MM-YYYY) : "); scanf("%d-%d-%d", &tgl_lhr, &bln_lhr, &thn_lhr); if((tgl_lhr>=bintang.tgl_awal &&

bln_lhr==bintang.bln_awal)||(tgl_lhr<=bintang.tgl_akhir && bln_lhr==bintang.bln_akhir))

printf("Bintang Anda adalah %s\n",bintang.nama); else

printf("Bintang Anda bukanlah %s\n",bintang.nama); return 0;

}

Gambar

Tabel 3-2. Operator logikaTabel 3-2. Operator logika Operator
Diagram alir dapat dilihat seperti gambar 3.2.
Gambar  10.1  memberikan  ilustrasi  untuk  memudahkan  pemahaman  tentang  array  berdimensi dua.
Diagram struktur data dari variabel student dapat digambarkan sebagai berikut:

Referensi

Dokumen terkait

Struktur adalah tipe data bentukan yang menyimpan lebih dari satu variabel bertipe sama maupun berbeda. Bentuk umum pendeklarasian tipe:}.

Perbedaannya adalah bahwa dalam array semua elemennya harus bertipe sama, sedangkan pada record setiap elemen bisa mempunyai tipe data yang berbeda satu

Array adalah sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama atau Array juga dapat disebut sebagai kumpulan dari nilai-nilai data bertipe sama

Pada percobaan di atas, dideklarasikan 4 buah variabel array berdimensi satu yang masing-masing dibedakan berdasarkan indeksnya, dimana pada percobaan diatas,

• Kumpulan dari nilai-nilai data (elemen array/larik) yang bertipe sama dalam urutan tertentu (ditunjukan oleh subsricpt atau indeks) yang menggunakan sebuah nama yang sama.. •

Definisi array diatas berarti kita mendeklarasikan sebuah variabel dengan tipe array yang mempunyai nama variabel nilai, yang memiliki elemen sejumlah 10 buah

Program di atas merupakan program sederhana, yang ditujukan untuk menampilkan nilai mahasiswa yang telah diinputkan dalam array satu dimensi secara berurutan mulai 1-10

Jika kita mempunyai variabel A yang bertipe array yang berisi 5 elemen dari tipe int, maka untuk mengakses elemen-elemen array tersebut kita dapat juga menggunakan pointer (misalnya