Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Disusun oleh:
A. TUJUAN
B. DASAR TEORI
Algoritma
Algoritmanya :
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.
Dari contoh algoritma di atas tentang menentukan apakah suatu bilangan
adalah bilangan ganjil atau bilangan genap, flowchart dari program adalah
sebagai berikut :
C. Hasil Percobaan
#include <stdio.h>
#define phi 3.14
main()
{
float r, luas;
printf("Masukkan r Lingkaran:");
scanf ("%f",&r);
luas= phi*r*r;
printf("luas lingkaran :%f", luas);
return 0;
}
1.2 Proses pengiriman e-mail, jika email tidak terkirim maka akan dilakukan
proses pengiriman email lagi.
#include <stdio.h>
int main()
{
char huruf;
printf("Proses pengiriman email\apakah email terkirim atau tidak
[Y/T]?=");
scanf ("%c”, &huruf);
switch (huruf)
{
case 'Y': printf ("email sudah terkirim\n");break;
case 'T': printf ("mengirim Ulang\n");break;
}
}
Keluaran yang dihasilkan dari program tersebut sebagai berikut :
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.
#include <stdio.h>
int main()
char huruf;
switch (huruf)
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 :
Buatlah program yang membaca jumlah pemakaian air, untuk menghitung biaya
yang harus dibayar dan menampilkan hasilnya di layar.
Listing programnya :
#include <conio.h>
#include <stdio.h>
void main()
int jpa;
if (jpa<=15) tpm=300;
total= jpa*tpm;
return 0;
#include<stdio.h>
main()
int bilangan,i=0;
printf("%d\n", bilangan);
i=i+bilangan;
printf("Hasilnya = %d\n",i);
A. TUJUAN
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.
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().
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:
%d untuk menampilkan bilangan bulat (integer)
Contoh:
#include <stdio.h>
main( )
{
printf(“No : %d\n”, 10);
printf(“Nama : %s\n”, “Ali”);
printf(“Nilai : %f\n”,80.5);
printf(“Huruf : %c\n”,‘A’);
#include “namafile”
Contoh :
/*
Tanda ini adalah komentar
untuk multiple lines
*/
#include <stdio.h>
main()
{
printf(“Coba\n”);
}
C. HASIL PERCOBAAN
#include <stdio.h>
main()
{
printf("Program Studi Teknik Elektro\n");
printf("Kampus UNSIKA 2013");
return 0;
}
#include <stdio.h>
main()
return 0;
#include <stdio.h>
int main()
{
printf("ternyata semester ini nilaiku jelek%d\n",4);
printf("matematika %c\n dan metode numerik %c\n",'B','D');
printf("oooo....ternyata kuliah itu susah %s\n","sekali");
printf ("sepertinya %s\n rajin belajar minimal %d/n sehari","harus", 8);
return 0;
}
#include <stdio.h>
main()
printf("\tYang berlaku");
return 0;
A. TUJUAN
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 Tabel 3-1
Operator Makna
> Lebih dari
>= Lebih dari atau sama dengan
< Kurang dari
<= Kurang dari atau sama dengan
== Sama dengan
!= Tidak sama dengan
Operator Logika.
Operator logika biasa dipakai untuk menghubungkan ekspresi relasi. Keseluruhan operator logika
ditunjukkan pada tabel 3-2.
Operator Makna
|| atau (OR)
! tidak (NOT)
if (kondisi )
pernyataan;
Bentuk ini menyatakan :
Jika kondisi yang diseleksi adalah benar (bernilai logika = 1), maka pernyataan yang
mengikutinya akan diproses.
Sebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilai logika = 0),
makapernyataan yang mengikutinya tidak akan diproses.Mengenai kodisi harus ditulis diantara
tanda kurung, sedangkan pernyataan dapat berupa sebuah pernyataan tunggal, pernyataan
majemuk atau pernyataan kosong. Diagram alir dapat dilihat seperti
Pernyataan if-else
if (kondisi)
pernyataan-1;
else
pernyataan-2;
Diagram alir dapat dilihat seperti gambar 3.2.
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 :
Jenis operasi yang dikenakan bergantung pada jenis operator ang dimasukkan oleh user. Oleh karena itu
program akan mengecek apakah operator berupa tanda ‘*’, ‘/’, ‘+’, ataukah tanda ‘-‘ .
Jika operator berupa tanda ‘*’ maka operand1 akan dikalikan dengan operand2.
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.
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 :
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
main()
{
int pilih;
float panjang, lebar,luas_persegi;
float alas, tinggi, luas_segitiga;
menu:
printf("Tampilan:\nMasukkan pilihan anda [1/2]:");scanf("%d",&pilih);
switch (pilih)
{
case 1:
segitiga:
system ("cls");
printf("menghitung luas_segitiga\n");
printf ("masukkan alas:");
scanf ("%f",&alas);
printf ("masukkan tingi:");
scanf ("%f",&tinggi);
putchar (7);
luas_segitiga=alas*tinggi/2;
printf ("jadi luasnya adalaj:=%2.2fcm 2\n\n",luas_segitiga);
getch();
break;
case 2:
persegi:
system("cls");
printf("menghitung luas persegi panjang\n");
printf ("masukkan panjang:");
scanf("%f",&panjang);
printf ("masukkan lebar:");
scanf("%f",&lebar);
luas_persegi=panjang*lebar;
printf("jadi luasnya adalah:%2.2f cm2\n",luas_persegi);
break;
}
}
Hasil keluaran dari program ini adalah:
Flowchart 3.1
Kesimpulan :
switch case dengan if- else bertingkat dapat membentuk sebuah program yang sama namun fungsi
yang berbeda.
A. TUJUAN
B. DASAR TEORI
Pernyataan for
Mengulang suatu proses merupakan tindakan yang banyak dijumpai dalam pemrograman. Pada semua
bahasa pemrograman, pengulangan proses ditangani dengan suatu mekanisme yang disebut loop.
Dengan menggunakan loop, suatu proses yang berulang misalnya menampilkan tulisan yang sama
seratus kali pada layar dapat diimpelementasikan dengan kode program yang pendek.
Pernyataan pertama yang digunakan untuk keperluan pengulangan proses adalah pernyataan for. Bentuk
pernyataan ini :
pernyataan;
pernyataan;
.
.
}
Pernyataan while
Pada pernyataan while, pengecekan terhadap loop dilakukan di bagian awal (sebelum tubuh loop).
Lebih jelasnya, bentuk pernyataan while adalah sebagai berikut :
while (kondisi)
pernyataan;
dengan pernyataan dapat berupa pernyataan tunggal, pernyataan majemuk ataupun pernyataan kosong.
Proses pengulangan terhadap pernyataan dijelaskan pada gambar berikut
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.
C. HASIL PERCOBAAN
#include<stdio.h>
main()
int a,b,c=0;
scanf("%d", &b);
for (a=1;a<=b;a++)
c=c+a;
}
Hasil keluaran dari program ini adalah:
Flowchart:
4.2 Penggunaan loop while
#include<stdio.h>
main()
while(jawab=='y'||jawab=='Y')
n=n+1;
scanf("%d",&a);
getchar();
jawab=getchar();
hasil+=a;
printf("Hasilnya = %d \n",hasil);
#include<stdlib.h>
#include<math.h>
#include<time.h>
int main()
do
angka = rand();
for(b=1;b<=5;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)
if(input>=angka)
if(input!=angka)
A. TUJUAN
1) Memahami fungsi dasar bahaca C
2) Membuat Fungsi
3) Memahami parameter dalam fungsi
4) Memahami cara melewatkan parameter ke dalam fungsi.
B. Teori Dasar
Pengertian
Fungsi adalah suatu bagian dari program yang dirancang untuk melaksanakan tugas tertentu dan letaknya
dipisahkan dari program yang menggunakannya. Elemen utama dari program bahasa C berupa fungsi-
fungsi, dalam hal ini program dari bahasa C dibentuk dari kumpulan fungsi pustaka (standar) dan fungsi
yang dibuat sendiri oleh pemrogram. Fungsi banyak digunakan pada program C dengan tujuan :
a) Program menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan. Dengan
memisahkan langkah-langkah detail ke satu atau lebih fungsi-fungsi, maka fungsi utama (main()) menjadi
lebih pendek, jelas dan mudah dimengerti.
Fungsi Dasar
Fungsi standar C yang mengemban tugas khusus contohnya adalah ;
Pada umumnya fungsi memerlukan nilai masukan atau parameter yang disebut sebagai argumen. Nilai
masukan ini akan diolah oleh fungsi. Hasil akhir fungsi berupa sebuah
nilai (disebut sebagai return value atau nilai keluaran fungsi). Oleh karena itu fungsi sering digambarkan
sebagai "kotak gelap" seperti ditunjukkan pada gambar di bawah
ini.
Gambar 5.1 Diagram Model Fungsi
Penggambaran sebagai kotak gelap di antaranya menjelaskan bahwa bagian dalam fungsi bersifat pribadi
bagi fungsi. Tak ada suatu pernyataan di luar fungsi yang bias mengakses bagian dalam fungsi, selain
melalui parameter (atau variabel eksternal yang akan dibahas belakangan). Misalnya melakukan goto
dari pernyataan di luar fungsi ke pernyataan dalam fungsi adalah tidak diperkenankan.
Keterangan :
Tipe-keluaran-fungsi, dapat berupa salah satu tipe data C, misalnya char atau int .Kalau penentu
tipe tidak disebutkan maka dianggap bertipe int (secara default).
Tubuh fungsi berisi deklarasi variabel (kalau ada) dan statemen-statemen yang akan melakukan
tugas yang akan diberikan kepada fungsi yang bersangkutan. Tubuh fungsi ini ditulis di dalam
tanda kurung kurawal buka dan kurung kurawal tutup. Sebuah fungsi yang sederhana bisa saja
tidak mengandung parameter sama sekali dan tentu saja untuk keadaan ini deklarasi parameter
juga tidak ada. Contoh :
int inisialisasi()
{
return(0);
}
x = inisialisasi();
Dijalankan, mula-mula eksekusi akan diarahkan ke fungsi inisialisasi(), selanjutnya
suatu nilai keluaran (hasil fungsi) akhir fungsi diberikan ke x. Proses yang serupa,
dilakukan untuk pernyataan
y = inisialisasi();
Bagi suatu fungsi, jika suatu pernyataan return dieksekusi, maka eksekusi terhadap
fungsi akan berakhir dan nilai pada parameter return akan menjadi keluaran fungsi.
Untuk fungsi yang tidak memiliki pernyataan return, tanda } pada bagian akhir fungsi
akan menyatakan akhir eksekusi fungsi. Di bawah ini diberikan contoh sebuah fungsi
yang mengandung dua buah pernyataan return. Fungsi digunakan untuk memperoleh
nilai minimum di antara 2 buah nilai yang menjadi parameternya.
if (x < y)
return(x);
else
return(y);
}
Pada fungsi di atas terdapat dua buah parameter berupa x dan y. Oleh karena itu fungsi
juga mengandung bagian untuk mendeklarasikan parameter, yang menyatakan x dan
y bertipe int. Adapun penentuan nilai keluaran fungsi dilakukan pada tubuh fungsi,
berupa pernyataan
if (x < y)
return(x);
else
return(y);
yang menyatakan :
Jika x < y maka nilai keluaran fungsi adalah sebesar nilai x.
Untuk keadaan lainnya (x >= y) maka keluaran fungsi adalah sebesar y.
Fungsi Dengan Keluaran Bukan Integer
Untuk fungsi yang mempunyai keluaran bertipe bukan integer, maka fungsi haruslah
didefiniskan dengan diawali tipe keluaran fungsinya (ditulis di depan nama fungsi).
Sebagai contoh untuk menghasilkan nilai terkecil di antara dua buah nilai real, maka
definisinya berupa :
Khusus untuk fungsi yang dirancang tanpa memberikan nilai keluaran (melainkan hanya menjalankan
suatu tugas khusus) biasa didefinisikan dengan diawali kata kunci void (di depan nama fungsi). Sebagai
contoh perhatikan program di bawah ini.
Contoh Keluaran
Prototipe Fungsi
Prototipe fungsi digunakan untuk menjelaskan kepada kompiler mengenai :
Tipe keluaran fungsi
Jumlah parameter
Jipe dari masing-masing parameter
Bagi kompiler, informasi dalam prototipe akan dipakai untuk memeriksa keabsahan (validitas) parameter
dalam pemanggilan fungsi. Salah satu keuntungannya adalah, kompiler akan melakukan konversi
seandainya antara tipe parameter dalam fungsi dan parameter saat pemanggilan fungsi tidak sama, atau
akan menunjukan kesalahan bila jumlah parameter dalam definisi dan saat pemanggilan berbeda.
Contoh prototipe fungsi:
Catatan :
Untuk fungsi-fungsi pustaka, prototipe dari fungsi-fungsi berada di file-file judulnya (header file).
Misalnya fungsi pustaka printf() dan scanf() prototipenya berada pada file dengan nama stdio.h
Untuk fungsi pustaka pen cantuman pada prototipe fungsi dapat dilakukan dengan menggunakan
preprocessor directive #include
C. HASIL PERCCOBAAN
1. Buatlah program untuk menjumlahkan n buah data kemudian hitunglah rata- ratanya dengan
menggunakan fungsi.
Listing program
#include<stdio.h>
long int deret(int x);
main()
{
int N;
long int hasil;
printf("Tampilan:\n Masukan Integer Positif:");
scanf("%d",&N);
hasil=deret(N);
printf("\n Jumlah=%d", hasil);
}
long int deret(int x)
{
int i;
long int z=0;
printf("nilai i:");
for (i=1; i<=x; i=i+1);
{
z+=i;
printf("\n %d", i);
}
return(z);
}
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:
Kegunaan
Fungsi
Menghitung nilai sinus sudut x yang dinyatakan dalam
Sin(x)
radian
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);
t = (v0+sqrt(v0*v0+2*g*y0))/g;
v = sqrt(v0*v0+2*g*y0);
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.
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).
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.
C. Hasil Percobaan
1. Buatlah program untuk mengetahui alamat suatu variabel
Listing program:
#include<stdio.h>
int main()
{
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;
}
Listing Programnya:
#include<stdio.h>
int main()
{
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;
}
A. Tujuan
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-dimensional array) mewakili bentuk
dari suatu matriks atau table. Array berdimensi tiga (three-dimensional array) mewakili bentuk suatu
ruang.
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.
Sebuah array dapat diinisialisasi sekaligus pada saat dideklarasikan. Untuk mendeklarasikan array,
nilai-nilai yang diinisialisasikan dituliskan di antara kurung kurawal ({}) yang dipisahkan dengan
koma.
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];
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.
printf(“%d”,data_lulus[2][0]);
merupakan perintah untuk menampilkan elemen yang memiliki indeks pertama = 2 dan indeks
kedua = 0.
C memungkinkan untuk membuat array yang dimensinya lebih dari dua. Bentuk umum
pendeklarasian array berdimensi banyak :
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.
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
2. Bandingkan x[i] dengan x[j], dg j berjalan dari i + 1 sampai dengan n-1.
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.
n = jumlah data
Algoritma diatas berlaku untuk pengurutan menaik (ascending). Untuk pengurutan menurun
(descending), penukaran dilakukan jika x[i] < x[j].
C. Hasil Percobaan.
Listing programanya:
#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;
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 keluarannya:
Flowchart:
2. Buatlah program menggunakan inisialisasi array berdimensi dua
Listing programnya:
#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;
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;
}
C. 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
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:
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 :
yang menyatakan bahwa name adalah variabel string dengan nilai awal berupa string : “RANI” .
Bentuk inisialisasi yang lebih singkat :
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
name = “RINI”;
adalah tidak diperkenankan. Pengisian string ke variabel string akan dibahas pada sub bab
berikutnya.
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.
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);
#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.
#include <string.h>
strlen(var_string);
Bentuk pemakaian :
#include <string.h>
strcat(tujuan, sumber);
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 :
#include <string.h>
strcmp(str1, str2);
C. Hasil Percobaan
C. 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 sebuah program yang lebih variatif.
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 (array 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
Suatu struktur didefinisikan dengan menggunakan kata kunci struct. Contoh pendefinisian
sebuah tipe data struktur:
Struct date{
Int mont;
Int day;
Int year;
};
Struct date{
Int month, day, year;
};
Yang mendefinisikan sebuah tipe data struktur bernama date yang memiliki 3 buah elemen
(field) berupa:
Day
Month
Year
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.
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.
C. HASIL PERCOBAAN
Listing
#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();
}
Flowchart :
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);
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");
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;
}
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;
}
Listing Program:
#include<stdio.h>
struct zodiak
{
char nama[11];
int tgl_awal;
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;
}
A. KESIMPULAN
Penggunaan struktur dan penggunaan struktur dan array sangat banyak diguakan dalam kehidupan
sehari-hari yang sangat penting. Perpaduan fungsi yang dapat membantu banyak hal dalam sebuah
program. Penggunaan struktur tidak hanya berkaitan dengan tanggal, bulan dan tahun saja, banyak
kondisi lain yang dapat dijalankan oleh program dengan struktur.