PERCOBAAN 8

 

VARIABEL DAN FUNGSI STRING

TUJUAN

Mempelajari penggunaan  variable string yang dipadukan dengan fungsi-fungsinya untuk pengolahan data string, seperti  strcat(),  strlen(),  strcpy(), dan sebagainya.

 

TEORI DASAR

Suatu karakter string adalah terdiri dari beberapa karakter (dengan karakter) yang diakhiri dengan karakter khusus ‘\0’ ( null). Suatu konstanta string adalah karakter string yang dituliskan diantara tanda petik ganda (“), seperti digunakannya pada fungsi printf() ata  puts(). Konstanta karakter string mempunyai kelas penyimpan static, sehingga bila digunakan di dalam fungsi, maka nilainya tidak akan berubah selama program aktif.

 

PROGRAM PERCOBAAN

8.4.1

Mengamati penggunaan variabel array berukuran bebas “[]” untuk melewatkan suatu variabel string ke dalam fungsi. Untuk dapat melewatkan suatu nilai konstanta atau variabel yang tidak diketahui panjangnya, maka digunakan array dengan ukuran bebas. Meskipun digunakan variabel berukuran kosong, compiler akan tahu berapa jumlah elemen yang dimasukkan dalam suatu variabel. Program 8.4.1 ini adalah untuk menghitung berapa panjang dari karakter string , dengan acuan karakter ‘\0’ (null)

 

/* Nama File : STRING.c  */

int panjang_str(char string[])
{

int hitung=0

while (string[hitung] != ‘\0’) ++ hitung;

return (hitung);

}

 

void main ()

{

static char kata0[]={‘b’ , ‘e’ , ‘l’ , ‘a’ , ‘j’ , ‘a’ , ‘r’ , ‘\0’};

static char kata1[]={‘f’ , ‘u’ , ‘n’ , ‘g’ , ‘s’ , ‘i’ , ‘\0’};

static char kata2[]={‘s’ , ‘t’ , ‘r’ , ‘i’ , ‘n’ , ‘g’ , ‘\0’};

 

printf(“Panjang string 0 = %d\n”, panjang_str(kata0));

printf(“Panjang string 1 = %d\n”, panjang_str(kata1));

printf(“Panjang string 2 = %d\n”, panjang_str(kata2));

 

getch();

}

 

8.4.2

#include<stdio.h>
#include<conio.h>
void main ()
{
char nama [50], jawab[15];
static char salam[] = “Assalamuaikum, “;
    puts(“Masukkan nama anda : “);
gets(nama);
    puts(“”);
    puts(“\n\nSiapakah nama wayang yang tidak bisa duduk? “);
gets(jawab);
    puts(“”);
    if(strlen(salam) + strlen(nama) <= 50){
strcat(salam, nama);
printf(“%s”, salam);
}
    static char wayang[] = “BimaSena”;
    if(strcmp(jawab, wayang)==0){
printf(“\nJawaban anda benar! Hebat!”);
}
else {
printf(“\nJawaban anda salah!”);
printf(“\nJawabannya adalah %s”, wayang);
}
}
8.4.3
#include<stdio.h>
#include<conio.h>
#define MAX 256
void main ()
{
int i, jumkar;
static char teks[MAX];
    printf(“PROGRAM PENGHITUNG KALIMAT.”);
start:
printf(“\n\nMasukkan suatu kalimat (maks 255 karakter) : “);
scanf(“%c”, &teks[MAX]);
fgets(teks, sizeof teks, stdin);
    jumkar =  0;
for(i=0; teks[i]; i++)
jumkar ++;
    printf(“\nJumlah karakter = %d\n”, jumkar);
    goto start;
}
8.4.4
#include<stdio.h>
#include<conio.h>
void main ()
{
char str1[50], str2[50], kar, *po;
puts(“Isi dari str1 = “);
gets(str1);
puts(“Isi dari str2 = “);
gets(str2);
printf(“\n\nPosisi huruf pada string dapat dicari”);
printf(“menggunakan rumus p = strchr(str2,kar)\n”);
kar=’G’;
po=strchr(str2,kar)-str2;
printf(“\nKarakter %c terletak pada kolom ke %d”,kar,po);
getch();

}

 

 

TUGAS

8.5.1

Argumen untuk fungsi harus berisi  string sumber,  string  yang disisipkan, dan posisi dari string  string sumber dimana string disisipkan.

Hasil :

#include <stdio.h>
#include <string.h>
#define MAX 256
main()
{
int i, jumkar;
static char a[MAX];
char b[50],c;
int x,y,z;
printf(“PROGRAM KALIMAT YANG MENGGANTUNG”);
awal:
printf(“\n\nMasukkan suatu kalimat (maks 255 karakter) : “);
scanf(“%c”, &a[MAX]);
    fgets(a,sizeof a, stdin);
    jumkar =  0;
for(i=0; a[i]; i++)
jumkar ++;
    printf(“\nJumlah karakter = %d\n”, jumkar);
printf(“\nMasukkan kata yang disisipkan : “);
gets(b);
    printf(“\nMenyisipkan karakter pada posisi ke (jumlah karakter – 1) : “);
scanf(“%d”, &z);
    puts(“”);
    for(y=0;y<strlen(a);y++)
{
printf(“%c”, a[y]);
if(y==z)
for(x=0;x<strlen(b);x++)
{
printf(“%c”,b[x]);
}
}
printf(“%c”,a[y]);
goto awal;
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

8.5.2

Membuat Program untuk menentukan suatu kalimat Palindrom atau bukan.

Hasil :

#include <stdio.h>
#include <string.h>
tulis(char kal[])
{
int b = strlen(kal) – 1;
if (kal[b] == ‘\n’)
(kal[b] = ‘\0’);
}
main()
{
int MAX = 20;
char kal[MAX], pol[MAX];
puts(“PROGRAM UNTUK MENGECEK POLINDROM”);
awal:
printf(“\n\nMasukkan kalimat atau kata (maks = %d karakter) : “,MAX);
fgets(kal,sizeof kal, stdin);
tulis(kal);
strcpy(kal,pol);
strrev(pol);
if(strcmp(kal,pol) == 1)
puts(“Kalimat atau kata tersebut MERUPAKAN POLINDROM”);
else
puts(“Kalimat atau kata tersebut BUKAN POLINDROM”);
getchar();
goto awal;
}
  • Facebook
  • Twitter
  • Google+
  • Pinterest
8.5.3
Membuat Program Pengelompok setiap Karakter pada suatu Kalimat.
Hasil :
#include <stdio.h>
#include<conio.h>
#include <string.h>
int bsr, kcl, tnd, agk, htg;
int start(char kal[])
{
 kcl = bsr = agk = tnd = htg = 0;
for (htg; kal[htg]; htg++)
{
if(kal[htg] >= ‘a’ && kal[htg] <= ‘z’)
kcl++;
else if(kal[htg] >= ‘A’ && kal[htg] <= ‘Z’)
bsr++;
else if(kal[htg] >= ‘0’ && kal[htg] <= ‘9’)
agk++;
else if(kal[htg] == ‘ ‘)
kcl+=0;
else
tnd++;
}
}
char co(char xo[])
{
int y = strlen(xo) – 1;
if (xo[y] == ‘\n’)
xo[y] = ‘\0’;
return (xo);
}
void main()
{
int MAX = 100;
char kal[MAX];
printf(“PROGRAM PENGELOMPOK KARAKTER PADA KALIMAT”);
awal:
puts(“\n\nInput Kalimat yang kamu inginkan ! \n\n”);
fgets(kal,kal,stdin);
start(kal);
co(kal);
tnd-=1;
printf(“\nMaka :\nHuruf BESAR = %d\nHuruf KECIL = %d\nANGKA = %d\nTANDA BACA = %d”, bsr,kcl,agk,tnd);
getchar();
goto awal;
}
 
  • Facebook
  • Twitter
  • Google+
  • Pinterest
8.5.4
Membuat program dengan menampilkan tiap baris pada posisi koordinat tertentu.
Hasil Percobaan :
#include <stdio.h>
#include <string.h>

main(){
    char kal[100];
int k,l,m,n;
int  o = strlen[kal] – 1;
printf(“Masukkan kalimat : “);
fgets(kal,kal,stdin);
if(kal[o] == ‘\n’)
kal[o] = ‘\0’;
return(kal);
for(l=0; l <= strlen(kal); l++)
{
m = strlen(kal)-k;
n++;
for(k=0; k < l; k++)
{
gotomn(m,n);
printf(“%c”, kal[k]);
m++
}
}
}
void gotomn(int m, int n)
{
COORD coord;
coord.M = m;
coord.N = n;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HADLE), coord);
}