cimahi
MODUL PEMROGRAMAN 1/C++
BAB V, VI
ARRAY, STRING V. String ( K a l i m a t ) Dalam bahasa C tidak ada tipe data khusus untuk menyimpan string. String biasanya disimpan sebagai larik dari karakter-karakter. Berbeda dengan bahasa Pascal, string pada bahasa C merupakan
sebuah null-terminated
string,
sehingga
kapasitasnya
hanya
dibatasi
oleh
kapasitas memori komputer. Seperti pada tipe data larik pada bahasa C, pengguna dapat memberikan batas maksimum karakter yang dapat ditampung.
String: array karakter diakhiri oleh
karakter NULL
string dalam /
output: printf ("% s", S) , scanf ("% s", S)
string.h :
koleksi fungsi untuk manipulasi string
ada standar operator untuk tugas string dan perbandingan! (ingat: string adalah array!)
Contoh kode C yang menggunakan tipe data string: //nama file : string1.dev.cpp #include <stdio.h> #include
main() { char nama[20], alamat[20]; printf("NAMA :"); gets(nama); printf("ALAMAT :"); gets(alamat); printf("\n======== ==================\n"); printf("Nama mahasiswa : %s\n", nama); printf("Alamat rumah : %s", alamat); getche(); }
//strcmp = untuk mencocokan 2 atau lebih string #include <stdio.h> #include #include <string.h> main() { char kunci[]="melati"; char kata[10] ; do{ printf("\nTebak bunga favorit saya :"); gets(kata); } while (strcmp(kunci, kata)!=0); printf("Jawaban Benar!"); getche(); }
[email protected]
1
cimahi
MODUL PEMROGRAMAN 1/C++ //strcpy = untuk menyalin sebuah string menjadi string lain #include <stdio.h> #include #include <string.h> main() { int i=0; char kalimat[]="STT Indonesia"; char kata1[30], kata2[30]; strcpy(kata1,kalimat); strcpy(kata2,"Tanjungpinang"); printf("kalimat : %s\nkata1 : %s\nkata2
: %s\n", kalimat, kata1,kata2);
getche(); }
//strcat = untuk menggabungkan 2 atau lebih string menjadi string baru #include <stdio.h> #include #include <string.h> main() { char kalimat[50]; strcpy(kalimat,"materi dev c++ programming : "); strcat(kalimat,"looping, "); strcat(kalimat,"sequence, "); strcat(kalimat,"selection"); printf("%s",kalimat); getche(); }
// isdigit = untuk mengechek apakah seluruh kalimat adalah angka #include <stdio.h> #include #include main() { int i=0; //char kalimat[]="STT Indonesia"; char kalimat[30]; printf("masukan kalimat :");gets(kalimat); while(kalimat[i]) { if (isdigit(kalimat[i])) printf("karakter %c angka\n", kalimat[i]); else printf("karakter %c bukan angka\n", kalimat[i]); i++; } getche(); }
[email protected]
2
cimahi
MODUL PEMROGRAMAN 1/C++ // isalpha = untuk mengechek apakah seluruh karakter adalah alfhabet #include <stdio.h> #include #include main() { int i=0; //char kalimat[]="STT Indonesia"; char kalimat[30]; printf("masukan kalimat
:");gets(kalimat);
while(kalimat[i]) { if (isalpha(kalimat[i])) printf("karakter %c alfhabet\n", kalimat[i]); else printf("karakter %c bukan alfhabet\n", kalimat[i]); i++; } getche(); }
VI.
ARRAY
( Larik/senarai )
Array adalah sekumpulan elemen bertipe sama yang mempunyai sebuah nama dan setiap elemennya mengacu pada index. Yang harus diperhatikan dalam pendeklarasian array adalah : nama array, dimensi array, ukuran array. Dalam bahasa C batas minimum nilai indeks selalu 0 . Pendeklarasian array ada 2:
Array static ukurannya ditentukan saat kompilasi Contoh deklarasi :
char data[]={'A','B','C'}; int matriks[2][2]={{1,2},{3,4}} float TabX[10] = {5,3,4,6,2,1,7,9,10,8};
Array dinamis ukurannya didefinisikan saat run time dengan perintah alokasi memori. Index array dimulai dari 0 jadi jika kita deklarasikan :
.
[email protected]
3
cimahi
MODUL PEMROGRAMAN 1/C++
Jenis-jenis array
2.
Array 2 dimensi Array 2 indeks disebut array dua berdimensi atau matriks. Yang harus diperhatikan dalam array : nama array, dimensi array dan ukuran array. int data[3][4]; index pada baris ke-0 kolom ke-2 index pada baris ke-1 kolom ke-2
int data[3][4]={{1,2,3},{1,1,1},{3,3,3},{7,7,7}}; isi array index pada baris ke-0 kolom ke-2
3. Array berdimensi banyak Array ini seperti array dimensi dua tetapi dapat memiliki ukuran yang lebih besar. Sebenarnya array dimensi banyak ini tidak terlalu sering digunakan, tetapi sewaktu-waktu kalau dimensi yang dibutuhkan banyak, maka array ini sangat memegang peranan yang penting. Int kotak[2][3][4]; Deklarasi tipe data array dengan nama kotak, tipe integer, berdimensi satu dengan ukuran 10 elemen. Selanjutnya data diinputkan dan ditampilkan menggunakan looping for.
[email protected]
4
cimahi
MODUL PEMROGRAMAN 1/C++
contoh deklarasi array //deklarasi array statis #include <stdio.h> #include main() { /* Mengisi elemen array */ char data[]={'A','B','C'}; int bil[3]={1,7,7};
/*Menampilkan data dari array */ printf("%c %c %c",data[0], data[1], data[2]); printf("\n"); printf("%d ",bil[0]); printf("%d ",bil[1]); printf("%d ",bil[2]); getche(); }
//nama file : add_statis.dev.cpp #include <stdio.h> #include main() { int i,j, C[2][2]; int A[2][2]={{1,7},{0,4}}; int B[2][2]={{2,7},{2,2}}; printf("Hasil penjumlahan matrik A dan B\n"); for(i=0;i<2;i++) { for(j=0;j<2;j++) C[i][j]= A[i][j]+B[i][j]; } for(i=0;i<2;i++) { for(j=0;j<2;j++) printf(" %d ",C[i][j]); printf("\n"); } getche(); } getche(); }
1. Menampilkan pengulangan inputan elemn array dan menampilkannya kembali //nama file : array_dinamis.cpp #include <stdio.h> #include main () { int A[5][5], int i ; printf("Masukan data\n"); for (i=0;i<5;i++) { printf("input data ke %i: ",i ); scanf("%d",&A[i]); } printf("\nTampil inputan : \n"); for (i=0;i<5;i++) { printf("%d ", A[i]); } printf("\n"); getche(); }
[email protected]
5
cimahi
MODUL PEMROGRAMAN 1/C++
2. Menentukan bilangan array pada setiap elem array //nama file : terbesar.dev.cpp #include <stdio.h> #include main() {int i, terbesar, bil[5]; printf("Input 5 Bilangan\n\n"); terbesar=0; for(i=0;i<5;i++) { printf("Bilangan : "); scanf("%d",&bil[i]); if (bil[i]>terbesar)// check terbesar=bil[i];
}
printf("\nbilangan terbesar : %d\n",terbesar); getche(); }
3. Penjumlahan 2 bauh matrik berordo 2x2 //tugas teknik informatika A #include<stdio.h> #include main() { int i, j, B[2][2], A[2][2],C[2][2]; printf("Masukkan elemen matrix A[2x2]\n"); for (i=0; i<2; i++) { for (j=0; j<2; j++) { printf("A[%d,%d] = ", i, j); scanf("%d", &A[i][j]); } } printf("\nMatrik A[2x2]\n");/* TAMPILKAN MATRIK A */ for (i=0; i<2; i++) { for (j=0; j<2; j++) {
printf(" %d ", A[i][j]);
printf("\n"); } scanf("%d", &B[i][j]); } }
[email protected]
}
6
cimahi
MODUL PEMROGRAMAN 1/C++
printf("Masukkan elemen matrix B[2x2]\n"); for (i=0; i<2; i++) { for (j=0; j<2; j++) { printf("B[%d,%d] = ", i, j); scanf("%d", &B[i][j]); } } printf("\nMatrik B[2x2]\n"); /* TAMPILKAN MATRIK B */ for (i=0; i<2; i++) { for (j=0; j<2; j++) printf(" %d ", B[i][j]); printf("\n"); } printf("==matrik A[2][2] + matrik B[2][2]==\n"); //hasil penjumlahan for(i=0;i<2;i++) { for(j=0;j<2;j++) C[i][j]= A[i][j]+B[i][j]; } for(i=0;i<2;i++) { for(j=0;j<2;j++) printf(" %d ",C[i][j]); printf("\n"); } getche(); }
LATIHAN STRING DAN ARRAY 1. Buatlah program : Jika password=”stt indonesia” Input jurusan anda : jika teknik informatika muncul gelar “SARJANA TEKNIK” jika sistem informasi muncul gelar “SARJANA KOMPUTER” jika komputer akuntansi muncul gelar “SARJANA KOMPUTER” selain itu “tidak bergelar” jika password =”pph” input penghasilan : jika penghasilan < 1000000 pajak=0,020 x penghasilan jika penghasilan antara 1000000-2000000 pajak=0,015 x penghasilan jika penghasilan >2000000 pajak=0,01 x penghasilan penghasilan=penghasilan-pajak jika password selain “stt indonesia” dan “pph “maka muncul “anda kurang beruntung” 2. Buatlah program untuk menampilkan perhitungan matrik transpos, dimana jumlah baris dan kolom diinput dinamis/ tidak ditentukan! 3. Buatlah program untuk menentukan nilai determinan dari matrik yang berordo2x2! [email protected]
7