Modul Praktikum pemrograman dasar

advertisement
BAB 1
TIPE ARRAY
Selama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai dengan
tipe data tertentu.
Misalnya : int a1, a2, a3, a4, a5.
Deklarasi variabel diatas digunakan untuk menyimpan 5 data integer dimana masingmasing variabel diberi nama a1, a2, a3, a4, dan a5. Jika kita memiliki 10 data, 100 data
integer bahkan mungkin data yang ingin kita proses tidak kita ketahui atau bersifat
dinamis, kita tidak mungkin menggunakan variabel seperti diatas. Di dalam C dan
pemrograman yang lain, terdapat suatu fasilitas untuk menyimpan data-data yang bertipe
data sama dengan suatu nama tertentu.
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 elemenelemen array. Letak urutan elemen array ditunjukkan dengan index atau subscript.
Dilihat dari dimensinya array dapat dinagi menjadi array satu dimensi, array dua dimensi
dan array tiga dimensi.
1.1 Array Satu Dimensi
Mendeklarasikan array satu dimensi :
Tipe_data Nama_array[ukuran_array]
 Tipe data elemen array: int, float, char, long int, dll.
 Nama array: menunjukkan nama array yang dipakai
 Ukuran array: menunjukkan jumlah maksimal elemen array
 Contoh : int X[5]
 Dalam bahasa C, indeks array dimulai dengan nol.
Ilustrasi array satu dimensi:
Contoh Program 1
Program untuk menjumlahkan elemen dalam array satu dimensi.
#include "stdio.h"
#include "conio.h"
void main()
{float X[]={5,3,7},Total=0;
int i;
clrscr();
for(i=0;i<=2;i++)
Total=Total+X[i];
printf("Total=%f\n",Total);
getch();
}
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Output dari program setelah dijalankan:
Total=15.000000
Contoh Program 2
#include "stdio.h"
#include "conio.h"
void main()
{float A[5]={75,73,78,81,80};
int i,x,indeks;
clrscr();
printf("Masukkan nilai yang akan dicari:\n");
scanf("%d",&x);
indeks=0;
for(i=0;i<5;i++)
if(A[i]==x)
indeks=i;
printf("Nilai ditemukan pada indeks ke- %d",indeks);
getch();
}
1.2 Array Dua Dimensi
Array dua dimensi sering kali digambarkan/dianalogikan sebagai sebuah matriks. Jika
array berdimensi satu hanya terdiri dari 1 baris dan banyak kolom, array berdimensi dua
terdiri dari banyak baris dan banyak kolom yang bertipe sama.
Mendeklarasikan array dua dimensi :
Tipe_data Nama_array[baris][kolom]
 Tipe data elemen array: int, float, char, long int, dll.
 Nama array: menunjukkan nama array yang dipakai
 Ukuran array: menunjukkan jumlah maksimal elemen array
 Contoh : int Matrik[2][3]
 Dalam bahasa C, indeks array dimulai dengan nol.
Ilustrasi array dua dimensi:
Jurusan Matematika
Universitas Brawijaya Malang
2
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Contoh Program 3
Program untuk menampilkan array dua dimensi
#include "stdio.h"
#include "conio.h"
void main()
{float X[][4]={12.34,25.36,17.45,18.37,
15.15,18.05,11.25,55.55,
43.21,17.11,62.85,13.01};
int i,j;
clrscr();
{for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%2.3f ",X[i][j]);
printf("\n");
}
printf("\n");
getch();
}
}
Output setelah program dijalankan:
12.340 25.360 17.450 18.370
15.150 18.050 11.250 55.550
43.210 17.110 62.850 13.010
Contoh Program 4
Program untuk menampilkan array dua dimensi
#include "stdio.h"
#include "conio.h"
void main()
{int MatriksA[100][100],MatriksB[100][100],MatriksC[100][100];
int i,j,barisAB,kolomAB;
clrscr();
//Memasukkan Orde dari Matriks
printf("Jumlah Baris Matriks A dan B? ");
scanf("%d",&barisAB);
printf("Jumlah Kolom Matriks A dan B? ");
scanf("%d",&kolomAB);
printf("\n");
//Memasukkan data matriks A
printf("Masukkan nilai matriks A:\n");
for(i=0;i<barisAB;i++){
for(j=0;j<kolomAB;j++)
Jurusan Matematika
Universitas Brawijaya Malang
3
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
{printf("A (%3d,%3d)?",i+1,j+1);
scanf("%d",&MatriksA[i][j]);
}
printf("\n");
}
//Memasukkan data Matriks B
printf("Masukkan nilai matriks B:\n");
for(i=0;i<barisAB;i++){
for(j=0;j<kolomAB;j++)
{printf("B (%3d,%3d)?",i+1,j+1);
scanf("%d",&MatriksB[i][j]);
}
printf("\n");
}
//Menghitung matriks C yang merupakan hasil jumlahan matriks A dan B
for(i=0;i<barisAB;i++){
for(j=0;j<kolomAB;j++){
MatriksC[i][k]=MatriksA[i][j]+MatriksB[i][j];
}
}
//Menampilkan hasil jumlahan matriks A dan B
printf("Hasil jumlahan matriks:\n");
for(i=0;i<barisAB;i++){
for(j=0;j<kolomAB;j++)
printf("%d ",MatriksC[i][k]);
printf("\n");
}
printf("\n");
getch();
}
Output setelah program dijalankan:
Jumlah Kolom Matriks A dan B? 2
Jumlah Kolom Matriks A dan B? 3
Masukkan nilai matriks A:
A ( 1, 1)?1
A ( 1, 2)?2
Jurusan Matematika
Universitas Brawijaya Malang
4
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
A ( 1, 3)?3
A ( 2, 1)?4
A ( 2, 2)?5
A ( 2, 3)?6
Masukkan nilai matriks B:
B ( 1, 1)?7
B ( 1, 2)?8
B ( 1, 3)?9
B ( 2, 1)?10
B ( 2, 2)?11
B ( 2, 3)?12
Hasil jumlahan matriks:
8 10 12
14 16 18
Latihan
1. Buatlah program untuk mengurutkan bilangan-bilangan berikut: 8,3,7,1,6,4,2 dan 5
dalam sebuah array satu dimensi dengan hasil pengurutannya meningkat dan
menurun.
2. Buatlah program untuk menghitung selisih 2 buah matriks.
3. Buatlah program untuk menghitung perkalian matriks dengan sebuah skalar positif.
Jurusan Matematika
Universitas Brawijaya Malang
5
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
BAB 2
SUB PROGRAM
(FUNGSI DAN PROSEDUR)
Fungsi dan prosedur merupakan bagian dari program yang dibuat untuk tugas tertentu.
Fungsi dan prosedur banyak dilibatkan dalam pemrograman yang bertujuan untuk
menjadikan program lebih terstruktur sehingga mudah dipahami dan mudah
dikembangkan karena dengan adanya fungsi dan prosedur akan mengurangi pengulangan
penulisan kode. Fungsi dan prosedur letaknya terpisah dari program yang memanggil
fungsi dan prosedur itu sendiri.
Fungsi akan memberikan nilai akhir yang dinyatakan dengan pernyataan return,
sedangkan prosedur tidak memberikan nilai akhir.
2.1 Dasar fungsi
Tugas khusus yang diemban sebuah fungsi dapat kita lihat pada beberapa fungsi standart,
misalnya:
- getch(), dengan tugas membaca kode tombol.
- printf(), dengan tugas untuk menampilkan informasi atau data ke layar.
Pada umumnya fungsi memerlukan masukan yang dinamakan argumen atau parameter.
Masukan ini selanjutnya diolah oleh fungsi. Hasil akhir fungsi berupa sebuah nilai
(disebut nilai keluaran fungsi atau nilai balik fungsi).
Bentuk umum fungsi
Tipe_fungsi Nama_fungsi(Parameter_fungsi)
{Pernyataan_1
Pernyataan_2
.......................
.......................
}
Sebuah fungsi yang sederhana bisa saja tidak mengandung parameter sama sekali dan
tentu saja untuk keadaan ini deklarasi parameter juga tidak ada. Sebagai contoh:
inisialisasi()
{
return(0);
}
Pada tipe fungsi diatas:
- Tipe fungsi tidak disebutkan, berarti keluaran fungsi bertipe int.
- inisialisasi adalah nama fungsi
- Tanda () sesudah nama fungsi menyatakan bahwa fungsi tak memiliki parameter.
- return (0); merupakan sebuah pernyataan dalam tubuh fungsi.
Jurusan Matematika
Universitas Brawijaya Malang
6
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
2.2 Memberikan nilai akhir fungsi
Sebuah fungsi terlihat memiliki nilai keluaran. Didalam fungsi, pernyataan yang
diberikan untuk memberikan nilai akhir fungsi berupa pernyataan return. Sebagai contoh
fungsi inisialisasi yaitu return (0); merupakan pernyataan untuk memberikan nilai akhir
pada fungsi berupa nol,
Contoh Program 1
#include"stdio.h"
#include"conio.h"
inisialisasi(); //deklarasi fungsi
void main()
{int x,y;
clrscr();
x=inisialisasi(); //pemanggilan fungsi inisialisasi
printf("x=%d\n",x);
y=inisialisasi(); //pemanggilan fungsi inisialisasi
printf("y=%d\n",y);
getch();
}
inisialisasi() //fungsi inisialisasi
{return(0);
}
Output setelah program dijalankan:
x=0
y=0
Program di atas menjelaskan bahwa suatu fungsi cukup didefinisikan satu kali tetapi bisa
digunakan beberapa kali. Pada keadaan semacam ini, seandainya tubu fungsi banyak
mengandung pernyataan, maka pemakaian fungsi dapat menghindari duplikasi kode dan
tentu saja menghemat penulisan program maupun kode dalam memori.
Bagi suatu fungsi, jika suatu pernyataan return dieksekusi maka eksekusi terhadap fungsi
akan berakhir dan nilai pada parameter return akan menjadi keluaran fungsi.
Contoh Program 2
Program untuk menghitung penjumlahan dan pengurangan dua buah bilangan dengan
pembuatan masing-masing fungsi jumlah dan kurang.
#include "stdio.h"
#include "conio.h"
float tambah(float a,float b); //deklarasi fungsi jumlah//
float kurang(float x,float y); //deklarasi fungsi kurang//
void main()
{float a,b,c,x,y,z;
clrscr();
Jurusan Matematika
printf("A= ");
Universitas Brawijaya Malang
scanf("%f",&a);
printf("B= ");
scanf("%f",&b);
printf("X= ");
7
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
scanf("%f",&x);
printf("Y= ");
scanf("%f",&y);
c=tambah(a,b);
z=kurang(x,y);
printf("A+B=%f\n",c); //pemanggilan fungsi jumlah//
printf("X-Y=%f",z); //pemanggilan fungsi kurang//
getch();
}
float tambah(float a,float b) //definisi fungsi jumlah//
{return(a+b);
}
float kurang(float x,float y) //definisi fungsi kurang//
{return(x-y);
}
Output setelah program dijalankan:
A= 7
B= 3
X= 9
Y= 2
A+B=10.000000
X-Y=7.000000
Latihan
1. Tentukan output dari program setelah program dijalankan!
#include ”stdio.h”
#include “conio.h”
int ubah(int y);
void main()
{int x,temp;
clrscr();
temp=ubah(x); //pemanggilan fungsi ubah//
printf("x=%d\n",temp);
Jurusan Matematika
getch();
Universitas
Brawijaya Malang
}
8
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
int ubah(int y) //definisi fungsi ubah//
{y=85;
return(y);
}
2. Buatlah program untuk menentukan suatu bilangan apakah termasuk bilangan ganjil,
genap, prima, kelipatan 3 atau kelipatan 5. Buatlah fungsi atau prosedur dalam
program tersebut untuk melaksanakan perintah tersebut.
3. Buatlah program untuk menentukan nilai maksimum dan minimum diantara beberapa
nilai yang dimasukkan sebagai inputan. Buatlah fungsi atau prosedur dalam program
tersebut untuk melaksanakan perintah tersebut.
4. Tentukan output dari program berikut
#include ”stdio.h”
#include “conio.h”
void fung_a(void);
void fung_b(void);
int x=20;
void main()
{ clrscr();
x+=2;
fung_a();
fung_b();
printf(“x=%d\n”,x);
getch();
}
void fung_a(void)
{static int x=5;
x++;
printf(“x=%d\n”,x);
fung_b();
}
void fung_b(void)
{ x--;
printf(“x=%d\n”,x);
}
Jurusan Matematika
Universitas Brawijaya Malang
9
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
BAB 3
OPERASI DASAR STRING
String merupakan bentuk data yang biasa dipakai dalam bahasa pemrongraman untuk
keperluan menampung dan memanipulasi data teks. Misalnya untuk menampung
(menyimpan) suatu kalimat yaitu nama, alamat, dll. Dalam bahasa C, string bukanlah
sebagai data tersendiri, melainkan array dari karakter.
Konstanta string ditulis dengan diawali dan diakhiri tanda petik, misalnya: “Matematika
AB”.
Konstanta string disimpan didalam memory secara berurutan sebagai berikut:
String M A T E M A T I K A
A B NULL
indeks 0 1 2 3 4 5 6 7 8 9 10 11 12
13
Setiap karakter akan menempati memory sebesar 1 byte. Byte terakhir secara otomatis
akan berisi karakter NULL (\0).
3.1 Variabel string
Variabel string adalah variabel yang dipakai untuk menyimpan string.
Misal: char nama[15];
3.2 Memasukkan data string dalam program
 Pemasukan data string ke dalam suatu variabel biasa dilakukan dengan
memakai gets(nama_array).
 Pemasukan data string ke dalam suatu program juga bisa menggunakan
scanf(“%s, nama_array).
Jika menggunakan perintah scanf maka data inputan string tidak bisa mengandung
spasi karena data yang terbaca akan selalu data sebelum spasi, kebalikannya terjadi
pada gets(nama_array).
3.3 Menampilkan isi variabel string ke layar
Pernyataan yang sering digunakan untuk menampilkan isi variabel string adalah:
puts(var_string);
printf(“%s”,var_string);
printf(var_string);
3.4 Mengakses elemen string
Variabel string merupakan bentuk khusus dari array bertipe char. Oleh karen itu,
elemen dari variabel string dapat diakses seperti halnya pengaksesan elemen pada
array.
Jurusan Matematika
Universitas Brawijaya Malang
10
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
3.5 Beberapa fasilitas untuk operasi karakter yang didefinisikan pada file ctype.h
isalnum() : menghasilkan nilai benar (bukan nol) kalau c adalah sebuah huruf
(huruf kapital ataupun huruf kecil) atau sebuah karakter digit (0 sampai
dengan 9).
isalpha() : menghasilkan nilai benar apabila c adalah sebuah huruf (huruf
kapital ataupun huruf kecil).
isdigit() : menghasilkan nilai benar (bukan nol) kalau c adalah sebuah
karakter digit (0 sampai dengan 9).
islower() : menghasilkan nilai benar (bukan nol) jika c adalah huruf kecil (a
sampai dengan z).
isupper() : menghasilkan nilai benar (bukan nol) jika c adalah huruf kapital
(A sampai dengan Z).
tolower() : Jika c adalah huruf kapital maka hasil funngsi beripa huruf
kecilnya. Apabila c tidak berupa huruf kapital, output fungsi sama dengan c.
toupper() : Jika c adalah huruf kecil (a sampai dengan z) maka hasil fungsi
berupa huruf kapitalnya. Kalau c tidak berupa huruf kecil, maka output fungsi
akan sama dengan c.
Contoh penulisan: int isalpa(int c)
Contoh Program 1
Program untuk menginputkan dan menampilkan string
#include "stdio.h"
#include "conio.h"
void main()
{char nama[15];
clrscr();
printf("Nama anda: ");
gets(nama);
printf("Halo, %s mahasiswa matematika.\n", nama);
getch();
}
Output setelah program dijalankan:
Nama anda: Ummu Habibah
Halo, Ummu Habibah mahasiswa matematika.
Contoh Program 2
Program untuk menghitung jumlah karakter dari suatu string yang diinputkan memalui
keybord.
#include "stdio.h"
#include "conio.h"
#define MAKS 256
void main()
{int i,jumkar;
char teks[MAKS];
clrscr();
Jurusan Matematika
puts("Masukkan suatu kalimat.");
Universitas Brawijaya Malang
puts("Saya akan menghitung jumlah karakternya.");
gets(teks);
jumkar=0;
for(i=0;teks[i];i++)
11
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Output setelah program dijalankan:
Masukkan suatu kalimat.
Saya akan menghitung jumlah karakternya.
Saya sedang belajar bahasa c.
Jumlah karakter=29
3.6 Beberapa Fungsi Mengenai String
Menyalin suatu string ke string lain ataupun menghitung banyaknya karakter ke dalam
suatu string sesungguhnya tidak perlu diimplementasikan sendiri karena Turbo C
menyediakan fasilitas tersebut. Fungsi-fungsi tersebut tersimpan dalam header file
“string.h”, diantaranya:
1. strcpy() : digunakan untuk menyalin string asal ke variabel string tujuan.
Penulisan : strcpy(variabel_tujuan,”string_x”);
2. strlen() : digunakan untuk memperoleh banyaknya karakter dalam string yang
merupakan argumennya.
Penulisan : strlen(string_x);
3. strcat() : digunakan untuk menambahkan string sumber ke bagian akhir dari string
tujuan.
Penulisan : strcat(tujuan,sumber);
4. strcmp() : digunakan untuk membandingkan string str1 dengan string str2. Hasil
fungsi bertipe int berupa nilai
- negatif, jika str1 kurang dari str2
- nol,
jika str1 sama dengan str2
- positif, jika str1 lebih dari str2
Penulisan : var_int=strcmp(str1,str2);
5. strlwr() : digunakan untuk mengubah setiap huruf kapital dalam string_x menjadi
huruf kecil.
Penulisan : strlwr(string_x);
6. strupr() : digunakan untuk mengubah setiap huruf kecil dalam string_x menjadi
huruf kapital.
Penulisan : strupr(string_x);
Latihan
1. Buatlah program untuk memasukkan suatu kalimat dari keybord dengan
menggunakan gets(). Kemudian melaporkan jumlah huruf kecil dan huruf kapitalnya.
2. Buatlah program untuk menentukan suatu kalimat termasuk palindrom atau tidak.
Misal:
Kalimat : KASUR RUSAK
Jurusan Matematika
Universitas Brawijaya Malang
12
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Termasuk : PALINDROM
Kalimat : MAKAN MALAM
Termasuk : BUKAN PALINDROM
Ket: Palindrom adalah bila urutan kalimat dibalik akan menghasilkan kalimat yang
sama.
3. Buatlah program yang menghasilkan output sebagai berikut:
A
KA
IKA
TIKA
ATIKA
MATIKA
EMATIKA
TEMATIKA
ATEMATIKA
MATEMATIKA
Jurusan Matematika
Universitas Brawijaya Malang
13
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
BAB 4
RECORD/STRUCT/STRUKTUR
Struktur adalah koleksi dari variabel yang dinyatakan dengan sebuah nama,
dengan sifat setiap variabel dapat memiliki tipe yang berlainan. Struktur bisa dipakai
untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan
(Pada Bahasa Pascal, struktur disebut dengan record).
Contoh sebuah struktur adala informasi data tanggal, yang berisi:
- Tanggal
- Bulan, dan
- Tahun.
4.1 Bentuk umum mendeklarasikan/mendefinisikan struktur
Struct nama_tipe_struktur
{tipe field1;
tipe field2;
...................
...................
tipe fieldN;
}variabel_struktur1,...,variabel_strukturM;
Adapun variabel_struktur1,...,variabel_strukturM menyatakan bahwa variabel
struktur yang dideklarasikan bisa lebih dari satu.
Contoh mendefinisikan struktur
struct data_tunggal
{int tanggal;
int bulan;
int tahun;
};tgl_lahir;
Yang mendefinisikan tipe struktur bernama data_tunggal, yang terdiri dari tiga
buah elemen (field) berupa tanggal, bulan dan tahun. Field adalah sebutan untuk elemen
struktur. Sedangkan variabel tgl_lahir betipe struktur data_tunggal yang mengandung tiga
field yaitu tanggal, bulan dan tahun.
Jurusan Matematika
Universitas Brawijaya Malang
14
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Note: nama_tipe_struktur atau variabel_struktur boleh dihilangkan tetapi tidak boleh
kedua-duanya dihilangkan.
4.2 Pemanggilan elemen struktur
Elemen struktur dapat dipanggil dalam program menggunakan bentuk
Variabel_struktur.nama_field
Antara variabel_struktur dan nama_field dipisahkan dengan operator titik (disebut
operator titik anggota struktur).
Sedangkan untuk memberikan data nama ke field nama, pernyataan yang diperlukan
misalnya berupa
strcpy(info_rekan.nama,”Ummu Habibah”);
Contoh Program 1
Program untuk mengakses elemen struktur
#include"stdio.h"
#include"conio.h"
#include"string.h"
void main()
{struct data_tanggal //definisi tipe data_tunggal
{int tanggal;
int bulan;
int tahun;
};
clrscr();
struct data_rekan //definisi tipe data_rekan
{char nama[31];
struct data_tanggal tgl_lahir;
};
struct data_rekan info_rekan; //deklarasi variabel
strcpy(info_rekan.nama,"UMMU HABIBAH");
info_rekan.tgl_lahir.tanggal=15;
info_rekan.tgl_lahir.bulan=5;
info_rekan.tgl_lahir.tahun=1985;
//penampilan elemen variabel struktur
printf("Nama
: %s\n",info_rekan.nama);
printf("Tanggal lahir : %d-%d-%d\n",
info_rekan.tgl_lahir.tanggal,
info_rekan.tgl_lahir.bulan,
info_rekan.tgl_lahir.tahun);
getch();
Jurusan
Matematika
}
Universitas Brawijaya Malang
15
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Output setelah program dijalankan
Nama
: UMMU HABIBAH
Tanggal lahir : 15-5-1985
Contoh Program 2
#include"stdio.h"
#include"conio.h"
#include"string.h"
#include"math.h"
struct{
char nama[20];
char alamat[20];
float gaji;
}pegawai1;
void main()
{char g[15];
float gj;
clrscr();
printf("Nama pegawai 1:");
gets(pegawai1.nama);
printf("Alamat pegawai 1:");
gets(pegawai1.alamat);
printf("Gaji pegawai 1:");
gets(g);
//konversi string ke float
gj=atof(g);
pegawai1.gaji=gj;
printf("\n\nData yang telah anda ketikkan:");
printf("\n%-20s%-30s%10.2f",pegawai1.nama,pegawai1.alamat,pegawai1.gaji);
printf("\n\nTekan sembarang tombol");
getch();
Jurusan
Matematika
}
Universitas Brawijaya Malang
16
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Output setelah program dijalankan
Nama pegawai 1:ummu
Alamat pegawai 1:malang
Gaji pegawai 1:1000
Data yang telah anda ketikkan:
ummu
malang
1000.00
Tekan sembarang tombol
4.3 Array dan struktur
Penggunaan struktur sering dikaitkan dengan array, membentuk array dari struktur.
Contoh dari array struktur adalah array yang dipakai untuk menyimpan data rekan. Array
yang diperlukan untuk masalah ini berupa
#define MAKS 20
.
.
.
struct data_rekan larik_rekan[MAKS];
Setelah array larik_rekan dideklarasikan, ruang yang disediakan akan ditunjukkan pada
gambar berikut
Tanggal lahir
No Nama Tanggal Bulan Tahun
0
1
2
.
.
.
n
Array dari struktur
Contoh Program 3
Program berikut merupakan contoh mengenai array dari struktur. Mula-mula seluruh data
dimasukkan ke dalam array, kemudian ditampilkan sehingga membentuk tabel.
#include"stdio.h"
#include"conio.h"
void main()
{struct zodiak
Jurusan
Matematika
{char
nama[11];
Universitas Brawijaya Malang
int tgl_awal;
int bln_awal;
int tgl_akhir;
int bln_akhir;
17
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
printf("Bintang anda bukanlah %s\n",bintang.nama);
getch();
}
printf("Tanggal lahir anda (XX-XX-XXXX): ");
scanf("%d-%d-%d",&tg_lhr,&bl_lhr,&th_lhr);
if((tg_lhr>=bintang.tgl_awal&&
bl_lhr==bintang.bln_awal)||
(tg_lhr<=bintang.tgl_akhir&&
bl_lhr==bintang.bln_akhir))
printf("Bintang anda adalah %s\n",bintang.nama);
else
printf("Bintang anda bukanlah %s\n",bintang.nama);
getch();
}
Output setelah program dijalankan
Tanggal lahir anda (XX-XX-XXXX): 15-05-1985
Bintang anda bukanlah Sagitarius
4.3 Struktur dan fungsi
Pada bagian ini masalah yang dibahas meliputi
 Cara melewatkan elemen struktur meupun struktur ke dalam fungsi
Cara melewatkan elemen struktur ke dalam fungsi dapat dilihat pada contoh program
berikut
Contoh program 4
#include <stdio.h>
#include <conio.h>
void tukar_xy(int *x, int *y); /* deklarasi fungsi */
Jurusan Matematika
Universitas
Malang
void Brawijaya
main()
{ struct koordinat
{ int x; int y; };
struct koordinat posisi = { 21, 34 };
18
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Output setelah program dijalankan
x, y semula --> 21, 34
x, y kini --> 34, 21
 Cara melewatkan struktur ke dalam fungsi.
Contoh Program 5
#include"stdio.h"
#include"conio.h"
struct data_tanggal
{int tanggal;
int bulan;
int tahun;};
void cetak_info_tanggal(struct data_tanggal unit_tgl);
void main()
{struct data_tanggal saat_proses = {12,9,1989};
clrscr();
cetak_info_tanggal(saat_proses);
getch();
}
void cetak_info_tanggal(struct data_tanggal unit_tgl)
{static char *nama_bulan[]=
{"Kode bulan salah!",
"Januari","Februari","Maret","April","Mei",
"Juni","Juli","Agustus","September","Oktober",
"November","Desember"};
printf("%d %s %d\n",unit_tgl.tanggal,
Jurusan Matematika
nama_bulan[unit_tgl.bulan],
Universitas Brawijaya Malang
unit_tgl.tahun);
}
19
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Output setelah program dijalankan
12 September 1989
Latihan
1. Kembangkanlah contoh program 2 sehingga dapat dipakai untuk menentukan
bintang kelahiran. Sebagai acuan gunakan data berikut:
Aries
: 21 Maret-19 April
Taurus
: 20 April-20 Mei
Gemini
: 21 Mei-20 Juni
Cancer
: 21 Juni-22 Juli
Leo
: 23 Juli-22 Agustus
Virgo
: 23 Agustus-22 September
Libra
: 23 September-22 Oktober
Scorpio
: 23 Oktober-21 November
Sagitarius
: 22 November-21 Desember
Aquarius
: 20 Januari-18 Februari
Pisces
: 19 Februari-20 Maret
Gunakan array untuk mengimplementasikan program.
2. Buatlah program untuk menginputkan data-data nilai nama mahasiswa, QUIS,
UTS dan UAS dalam suatu struktur daftar nilai mahasiswa dalam suatu kelas mata
kuliah pemrograman dasar.
Jurusan Matematika
Universitas Brawijaya Malang
20
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
BAB 5
FILE
File adalah sebuah organisasi dari sejumlah record. Masing-masing record bisa terdiri dari
satu atau beberapa field. Setiap field terdiri dari satu atau beberapa byte.
5.1 Membuka File
 Untuk membuka atau mengaktifkan file, fungsi yang digunakan adalah fungsi
fopen().
 File dapat berupa file biner atau file teks.
 File biner adalah file yang pola penyimpanan di dalam disk dalam bentuk biner,
yaitu seperti bentuk pada memori (RAM) computer.
 File teks adalah file yang pola penyimpanan datanya dalam bentuk karakter.
 Penambahan yang perlu dilakukan untuk menentukan mode teks atau biner adalah
“t” untuk file teks dan “b” untuk file biner.
 Prototype fungsi fopen() ada di header fungsi “stdio.h”
 Bentuk umum :
file *fopen(char *namafile, char *mode);
Keterangan :
 namafile adalah nama dari file yang akan dibuka/diaktifkan.
 mode adalah jenis operasi file yang akan dilakukan terhadap file.
5.2 Jenis-jenis operasi file :
 r : menyarakan file hanya dapat dibaca (file harus sudah ada)
 w : menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan
dihapus)
 a : untuk membuka file yang sudah ada dan akan dilakukan proses penambahan
Jurusan Matematika
Universitas Brawijaya Malang
21
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
data (jika file belum ada, otomatis akan dibuat)
r+ : untuk membuka file yang sudah ada dan akan dilakukan proses pembacaan
dan penulisan.
 w+ : untuk membuka file dengan tujuan untuk pembacaan atau penulisan. Jika file
sudah ada, isinya akan dihapus.
 a+ : untuk membuka file, dengan operasi yang akan dilakukan berupa
perekaman maupun pembacaan. Jika file sudah ada, isinya akan dihapus.
Contoh :
pf = fopen(“COBA.TXT”, “w”);


5.3 Menutup File
 Untuk menutup file, fungsi yang digunakan adalah fcloseØ.
 Prototype fungsi fclose() ada di header file “stdio.h”
 Bentuk Umum :
int fclose(FILE *pf);
atau
int fcloseall(void);
5.4 MELAKSANAKAN PROSES FILE
Menulis Karakter
Untuk menulis sebuah karakter, bentuk yang digunakan adalah :
putc(int ch, file *fp)
Dimana:
 fp adalah pointer file yang dihasilkan oleh fopen().
 ch adalah karakter yang akan ditulis.
Contoh Program 1
#include “stdio.h”
#include “conio.h”
#define CTRL_Z 26
void main()
{ file *pf;
char kar;
if((pf = fopen(“COBA.TXT”, “w”)) == NULL)
{ cputs(“File tak dapat diciptakan !\r\n”);
exit(1);
}
while((kar=getche()) != CTRL_Z)
putc(kar, pf);
fclose(pf);
}
Jurusan Matematika
Universitas Brawijaya Malang
/* pointer ke file */
/* ciptakan file */
/* selesai */
/* tulis ke file */
/* tutup file */
22
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
5.6 Membaca Karakter
Untuk membaca karakter dari file, fungsi yang digunakan adalah :
getc(file *fp);
Dimana:
 fp adalah pointer file yang dihasilkan oleh fopen()
 Fungsi feof(), digunakan untuk mendeteksi akhir file.
 Pada saat membaca data foef(file *fp)
Contoh Program 2
#include “stdio.h”
#include “conio.h”
void main()
{ file *pf;
char kar;
clrscr();
/*
pointer
ke
file
*/
if((pf = fopen(“COBA.TXT”, “r”)) == NULL) /* buka file
*/
{ cputs(“File tak dapat dibuka !\r\n”);
exit(1);
/* selesai */
}
while((kar=getc(pf)) != EOF)
putch(kar);
fclose(pf);
/* tampilkan ke layar */
/* tutup file */
}
5.7 Membaca dan Menulis String
Fungsi untuk membaca dan menulis string adalah : fgets() dan fputs()
Bentuk Umum :
Jurusan Matematika
Universitas Brawijaya Malang
23
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
fgets(char *str, int p, file *fp)
fputs(char *str, file *fp)
5.8 Membaca dan Menulis Blok Data
Fungsi untuk membaca dan menulis blok data adalah : fread() dan fwrite()
Bentuk umum :
fread(void *buffer, int b_byte, int c, file *fp);
fwrite(void *buffer, int b_byte, int c, file *fp);
Keterangan :
 buffer adalah pointer ke sebuah area di memori yang menampung data yang
akan dibaca dari file.
 b_byte adalah banyaknya byte yang akan dibaca atau ditulis ke file.
 c adalah banyaknya item dibaca/ditulis.
Contoh Program 3
#include “stdio.h”
#include “conio.h”
void main()
{ file *f_struktur; char jawaban; struct data_pustaka
{ char judul[26];
char pengarang[20];
int jumlah;
} buku; /* variabel buku bertipe struktur */
/* buka file */
if((f_struktur = fopen(“DAFBUKU.DAT”, “wb”)) == NULL)/* buka
file */ { cputs(“File tak dapat diciptakan !\r\n”);
exit(1);
/* selesai */
/*Rekam
sebuah
data
bertipe
struktur
*/
}
do fwrite(&buku, sizeof(buku), 1, f_struktur);
{ clrscr();
cputs(“\r\nMau
merekam data lagi
cputs(“Judul
Buku
: (Y/T) ?”);
“);
jawaban = getche();
gets(buku.judul);
}
cputs(“Nama==
Pengarang
while(jawaban
‘Y’ || jawaban: == ‘y’);
”);
fclose(f_struktur);
gets(buku.pengarang);
}
cputs(“Jumlah buku
:
“);
5.9 Membaca dan Menulis File yang Terformat
scanf(“%i”, $buku.jumlah);
Jika diinginkan, data bilangan dapat disimpan ke dalam file dalam keadaan terformat.
fflush(stdin);
/* Hapus
isi penampung keyboard */
Fungsi
yang digunakan adalah
:
fprintf(ptr_file, “string control”, daftar argument);
fscanf(pts_file, “string control”, daftar argument);
Contoh Program 4
#include “stdio.h:
#include “conio.h”
void main()
{ FILE *pformat;
Jurusan
char Matematika
jawaban;
Universitas
struct Brawijaya Malang
{ int x;
int y;
} koordinat;
24
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
while(jawaban == ‘y’ || jawaban == ‘Y’);
fclose(pformat);
getch();
}
Contoh Program 5
#include <stdio.h>
FILE *in;
void BACA( int[ ] );
void CETAK( int[ ] );
void main() {
int tabel[26] = {0};
BACA(tabel);
CETAK(tabel);
}
void BACA ( int huruf[] ) {
char c;
if (( in = fopen("data.txt" , "r")) == NULL)
printf ("File tidak bisa dibaca\n");
else
Jurusan
whileMatematika
( (ch = fgetc(in)) != EOF ) {
Universitas
Brawijaya
c = ( (( c >=
97) || ( Malang
c <= 122)) ? c - 32 : c );
if ( (c >= 65) || (c <= 90) )
++huruf [ c - 65 ];
}
25
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
5.10 File Sequensial
File sekuensial berisi rekord-rekord data yang tidak mengenal posisi baris atau nomor
rekord pada saat aksesnya, dan setiap record dapat mempunyai lebar yang berbeda-beda.
Akses terhadapnya selalu dimulai dari awal file dan berjalan satu persatu menuju akhir dari
file. Dengan demikian, penambahan file hanya dapat dilakukan terhadap akhir file, dan akses
terhadap baris tertentu harus dimulai dari awal file.
Fungsi baku yang terkait dengan file sekuensial ini antara lain adalah fprintf,fscanf, dan
rewind . Program berikut menyajikan penanganan file sekuensial tentang data nasabah yang
berisi tiga field, yaitu nomor identitas (account), nama (name), dan posisi tabungannya
(balance) untuk (1) menyajikan yang tabungannya bernilai nol, (2) berstatus kredit, dan (3)
berstatus debet. File data tersimpan dengan nama klien.dat.
Contoh Program 6
#include <stdio.h>
void main() {
int request, account;
float balance;
char name[25];
FILE *cfPtr;
if ( (cfPtr = fopen("klien.dat", "r+") ) == NULL )
printf("File could not be opened\n");
else {
printf ( "Enter request\n"
"1 - List accounts with zero balances\n"
"2 - List accounts with credit balances\n"
"3 - List accounts with debit balances\n"
"4 - End of run\n? " ) ;
scanf( "%d", &request );
while (request != 4) {
fscanf (cfPtr, "%d%s%f", &account, name, &balance);
switch (request) {
case 1:
printf ("\nAccounts with zero balances:\n");
Jurusan Matematika
while ( !feof(cfPtr) ) {
Universitas Brawijaya Malang
if (balance == 0)
printf ("%-10d%-13s7.2f\n", account, name, balance);
fscanf (cfPtr, "%d%s%f", &account, name, &balance);
}
26
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
rewind(cfPtr);
printf( "\n? ");
scanf ("%d", &request);
}
printf ("End of run.\n");
fclose(cfPtr);
}
}
Latihan
1. Buatlah program untuk menambahkan tulisan
BORLAND INTERNATIONAL
Ke dalam file COBA.TXT. Caranya ubahlah mode “w” pada contoh program 1
menjadi a dan gantilah komentar “File tak dapat diciptakan!” menjadi “File tak dapat
dibuka”
2. Lihatlah isi file COBA.TXT dengan perintah TYPE atau dengan menjalankan contoh
program 2. Perhatikan hasilnya.
Jurusan Matematika
Universitas Brawijaya Malang
27
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
BAB 6
TIPE POINTER
Konsep pointer sebenarnya cukup sederhana. Pointer sesungguhnya berisi alamat dari
suatu data, bukan data sebagaimana variabel yang telah anda kenal dalam pembahasan
sebelumnya. Setiap byte di dalam memori komputer memiliki sebuah alamat. Di dalam
memori inilah variabel disimpan. Tetapi tentu saja programmer tidak perlu menyebutkan
alamat dari suatu variabel secara explisit. Pada saat program dimuat di dalam memori,
variabel akan diletakkan dengan sendirinya pada alamat tertentu. Suatu pointer di dalam
program dimaksudkan untuk menunjuk suatu alamat memori. Misalnya kalau pint adalah
pointer, dan vint adalah variabel yang terletak di memori beralamat 0xfff2, maka pointer pint
dapat diatur agar menunjuk ke variabel vint. Seperti terlihat pada gambar dibawah ini:
Variabel pointer pint menunjuk ke variabel vint
3.7 Mengetahui Alamat Suatu Variabel
Alamat suatu variabel dapat diketahui dengan mudah, caranya tambahkan operator
alamat, berupa simbol & di depan nama variabel.
6.2 Mengetahui Alamat Suatu Variabel
Perlu diketahui, notasi 0x pada hasil program di depan menyatakan notasi heksadesimal.
Pada C++, tanda & juga dipakai untuk referensi (alias dari suatu variabel).
6.3 Mendeklarasikan Variabel Pointer
Suatu variabel pointer dideklarasikan dengan bentuk sebagai berikut:
Tipe_data *nama_variabel;
Dimana:
tipe_data dapat berupa sembarang tipe data seperti halnya variabel bukan pointer.
nama_variabel adalah variabel pointer.
Contoh:
Tipe *px;
Char *pch1,pch2;
Jurusan Matematika
Universitas Brawijaya Malang
28
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
6.4 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, yang bersufat unary) bisa dipergunakan, dengan cara menempatkan
operator di depan nama variabel. Sebagai contoh, apabila x dideklarasikan sebagai variabel
bertipe int, maka
&x
Berarti “alamat dari variabel x”. Adapun contoh pemberian alamat ke suatu variabel pointer
px (yang dideklarasikan sebagai pointer yang menunjuk ke data bertipe int) yaitu
px=&x
Pernyataan diatas berarti bahwa px diberi nilai berupa alamat dari variabel x. Setelah
pernyataan tersebut dieksekusi baruah dapat dikatakan bahwa px menunjuk ke variabel x.
6.5 Mengakses isi suatu variabel melalui pointer
Kalau suatu variabel sudah ditunjuk oleh pointer, variabel yang ditunjuk oleh pointer dapat
diakses melaui variabel itu sendiri (dikatakan sebagai pengaksesan langsung) ataupun melaui
pointer (dikatakan sebagai pengaksesan tak langsung). Pengaksesan tak langsung dilakukan
dengan menggunakan operator indirection (tak tangsung) berupa simbol * (bersifat unary).
Contoh penerapan operator * yaitu:
*px
Yang menyatakan “isi atau nilai variabel/data yang ditunjuk oleh pointer px”. Sebagai contoh
jika y bertipe int, maka sesudah dua pernyataan berikut
px=&x;
y=*px;
y akan berisi nilai yang sesuai dengan nilai x.
Contoh Program 1
#include"stdio.h"
#include"conio.h"
void main()
{int x,y;
int *px;
clrscr();
x=87;
px=&x;
y=*px;
printf("Alamat x=%p\n",&x);
printf("Isi px=%p\n",px);
printf("Isi x=%d\n",x);
printf("Nilai yang ditunjuk oleh px=%d\n",*px);
printf("Nilai y=%d\n",y);
getch();
}
Jurusan Matematika
Universitas Brawijaya Malang
29
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Output setelah program dijalankan
Alamat x=FFF4
Isi px=FFF4
Isi x=87
Nilai yang ditunjuk oleh px=87
Nilai y=87
Pada program diatas, dua pernyataan
px=&x;
y=*px;
sebenarnya dapat digantikan dengan sebuah pernyataan berupa
y=x.
Seandainya pada program 1 tidak terdapat pernyataan
px=&x;
Namun terdapat pernyataan
y=*px;
maka, y tidaklah berisi x, sebab px belum diatur agar menunjuk variabel x.
Kalau program melibatkan pointer dan pointer belum diinisialisi, ada kemungkinan akan
terjadi masalah yang dinamakan dengan “bug” yang bisa menyebabkan komputer tak dapat
dikendalikan lagi (“hang”).
6.6 Tipe variabel pointer dan tipe obyek yang ditunjuk
Antara tipe pointer (sesuai dengan pendeklarasian pointer) dan tipe obyek yang akan ditunjuk
oleh pointer haruslah sejenis.Kalau misalnya pointer pu dimaksudkan untuk menunjuk data
bertipe int maka data yang akan ditunjuk oleh pointer pu juga harus bertipe int. Sesuatu
kesalahan akan terjadi kalau misalnya pointer float digunakan untuk menunjuk data bertipe
int. Seperti pada contoh berikut:
Contoh program 2
#include"stdio.h"
#include"conio.h"
void main()
{float *pu;
float nu;
int u=1234;
clrscr();
pu=&u; //pernyataan ini salah karena pu adalah pointer float,
//sedangkan u bertipe int
nu=*pu;
printf("u=%d\n",u);
printf("nu=%f\n",nu);
getch();
}
Jurusan Matematika
Universitas Brawijaya Malang
30
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
6.7 Mengubah isi suatu variabel melalui pointer
Contoh berikut memberikan gambaran tentang pengubahan isi suatu variabel secara tak
langsung (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 variabel d. Adapun
Pd=&d;
Digunakan untuk memberikan alamat dari d ke pd. Dengan demikian pd mununjuk ke
variabel d. Sedangkan berikutnya
*pd=*pd+10; (atau *pd+=10;)
Merupakan instruksi untuk mengubah nilai variabel d secara tak langsung. Perintah di atas
berarti “jumlahkan yang ditunjuk oleh pd dengan 10 dan kemudian berikan ke yang ditunjuk
oleh pd”, atau identik dengan pernyataan
d=d+10;
Akan tetapi, seandaniya tidak ada instruksi
pd=&d;
Pernyataan
*pd=*pd+10;
Tidaklah sama dengan
d=d+10;
Contoh Program 3
#include"stdio.h"
#include"conio.h"
void main()
{float d,*pd;
clrscr();
d=54.5;
printf("Isi d semula = %g\n",d);
pd=&d;
*pd=*pd+10;
printf("Isi d kini = %g\n",d);
getch();
}
Output setelah program dijalankan
Isi d semula = 54.5
Isi d kini = 64.5
6.8 Pointer dan Array
Hubungan antara pointer dan array pada C sangatlah erat sebab sesungguhnya array secara
internal akan diterjemahkan dalam bentuk pointer. Pembahasan berikut akan memberikan
gambaran hubungan antara pointer dan array.
Misalnya dideklarasikan didalam suatu fungsi
static int tgl_lahir[3]={01,09,64};
Dan
int*ptgl;
Kemudian diberikan instruksi
ptgl=&tgl_lahir[0];
Jurusan Matematika
Universitas Brawijaya Malang
31
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Maka ptgl akan berisi alamat dari elemen array tgl_lahir yang berindeks nol. Instruksi diatas
bisa juga ditulis menjdi
ptgl=tgl_lahir;
Sebab nama array tanpa tanda kurung menyatakan alamat awal dari array. Sesudah
penugasan seperti di atas,
*ptgl
Dengan sendirinya menyatakan elemen pertama (berindeks sama dengan nol) dari array
tgl_lahir. Hal ini bisa dilihat melalui bukti program berikut:
Contoh Program 4
#include"stdio.h"
#include"conio.h"
void main()
{static int tgl_lahir[]={24,6,1965};
int *ptgl;
clrscr();
ptgl=tgl_lahir; //ptgl berisi alamat array
printf("Nilai yang ditunjuk oleh ptgl = %d\n",*ptgl);
printf("Nilai dari tgl_lahir[0] = %d\n",tgl_lahir[0]);
getch();
}
Output setelah program dijalankan
Nilai yang ditunjuk oleh ptgl = 24
Nilai dari tgl_lahir[0] = 24
Kalau ingin menampilkan seluruh elemen array tgl_lahir, perintah yang biasa digunakan
berupa
for(i=0;i<3;i++)
printf(“%d”,tgl_lahir[i]);
Dengan menggunakan pointer,
tgl_lahir[i]
dapat digantikan menjadi
*(ptgl+i)
Dengan terlebih dahulu mengatur ptgl agar menunjuk array tgl_lahir sehingga penulisan
instruksi penampilan isi array tgl_lahir dapat diubah menjadi
ptgl= tgl_lahir;
for(i=0;i<3;i++)
printf(“%d*(ptgl+i));
Jurusan Matematika
Universitas Brawijaya Malang
32
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
Contoh Program 5
#include"stdio.h"
#include"conio.h"
void main()
{static int tgl_lahir[]={24,6,1965};
int i;
int *ptgl;
clrscr();
ptgl=tgl_lahir;
for(i=0;i<3;i++)
printf("%d\n",*(ptgl+i));
getch();
}
Output setelah program dijalankan
24
6
1965
Secara umum operasi pointer bisa diterangkan sebagai berikut. Katakanlah a adalah suatu
array, dan pa adalah pointer yang menunjuk array a, maka
*(pa+i)
Akan menyatakan elemen array dengan indeks sama dengan i. Jadi
*(pa+0) identik dengan a[0]
*(pa+1) identik dengan a[1]
*(pa+2) identik dengan a[2]
Ungkapan seperti
pa+i
Memiliki arti “tambahkan nilai pa (berisi alamat) dengan i kali ukuran dari obyek yang
ditunjuk oleh pa”. Kalau pa dideklarasikan sebagai
int *pa
Maka obyek dari pa adalah data int.
Cara lain dalam menampilkan isi suatu array yaitu dengan menaikkan isi variabel pointer
memakai operator ++. Contoh berikut ,erupakan bentuk lain dari program 5. Pada program
ini
*(ptgl+i)
Diganti menjadi
ptgl++
Contoh Program 6
#include"stdio.h"
#include"conio.h"
void main()
{static int tgl_lahir[]={24,6,1965};
int i;
int *ptgl;
clrscr();
Jurusan Matematika
Universitas Brawijaya Malang
33
Modul Praktikum Pemrograman Dasar dengan Bahasa C
2012
ptgl=tgl_lahir;
for(i=0;i<3;i++)
printf("%d\n",*(ptgl+i));
getch();
}
Output setelah program dijalankan
24
6
1965
Latihan
1. Apa output dari program berikut:
#include"stdio.h"
#include"conio.h"
void main()
{int z,s,*pz,*ps;
z=20;
s=30;
pz=&z;
ps=&s;
*pz=*pz+*ps;
printf("z = %d,s=d\n",z,s);
getch();
}
Jurusan Matematika
Universitas Brawijaya Malang
34
Download