• Tidak ada hasil yang ditemukan

Praktikum Dasar Pemrograman 2014 MODUL 3: Array dan String

N/A
N/A
Protected

Academic year: 2021

Membagikan "Praktikum Dasar Pemrograman 2014 MODUL 3: Array dan String"

Copied!
15
0
0

Teks penuh

(1)

Praktikum Dasar Pemrograman 2014 MODUL 3: Array dan String Konsep Dasar Array

Adalah kumpulan data bertipe sama yang menggunakan nama sama. Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan indexnya.

a. Array Satu Dimensi

Merupakan kumpulan data yang bernama sama dengan pembeda sebuah indeks.

Contoh penggunaan array satu dimensi:

Array pertama kali dideklarasikan seperti halnya variabel biasa, tetapi dengan kapasitas di dalam kurung siku, isi array yang bisa diakses adalah antara 0 sampai kapasitas-1, jadi jika mendeklarasikan array berkapasitas 10, indeks yang bisa diakses hanya indeks 0 sampai 9. Kemudian assign dan akses isi array sama dengan variabel biasa, tetapi menggunakan indeks.

Mengapa perlu array? Andaikan kita membutuhkan 1000 inputan data, kita tidak

perlu membuat deklarasi variabel a1 hinga a1000, kita cukup menuliskan 1 variabel a

dengan tipe array berkapasitas 1000.

(2)

Contoh program tanpa array:

Bayangkan kita tidak hanya memasukkan 5 data, melainkan 1000 data, bagaimana kita mendeklarasikan semuanya dalam variable dan kemudian mencetaknya?

Maka dari itulah array digunakan.

Contoh program menggunakan array:

(3)

b. Array Multidimensi

Array Multidimensi adalah array yang dapat menampung lebih dari satu array.

Apabila array satu dimensi hanya memiliki sebuah index, array multidimensi memiliki dua atau lebih index untuk mengakses seluruh elemen dalam array tersebut. Contoh program dengan array dua dimensi:

Apabila program diatas dibuat dengan menggunakan array satu dimensi, maka

setiap baris pada matriks tersebut harus dideklarasikan sebagai variabel yang berbeda

(misal: matriks1[100], matriks2[100], matriks3[100], dst). Tentunya hal ini akan sangat

sulit diimplementasikan ditambah lagi apabila baris pada matriks ditentukan oleh user

yang menggunakan program dan jumlah baris tersebut sangat besar.

(4)

Konsep Dasar String

String adalah tipe data yang menyimpan kumpulan karakter/simbol. Dalam bahasa pemrograman C, suatu string dideklarasikan sebagai array yang bertipe char.

Contoh pendeklarasian string (1):

Contoh di atas akan mendeklarasikan string bernama array dengan kapasitas 5 karakter, di mana array[0] = „H‟, array[1] = „a‟, array[2] = „l‟, array[3] = „o‟, dan array[4] = „\0‟.

Perhatikan bahwa array[4] berisi karakter „\0‟ (null character), padahal dalam konstanta string di atas tidak ada karakter tersebut. Dalam bahasa C, null character digunakan untuk menandakan akhir dari sebuah string.

Contoh pendeklarasian string (2):

Contoh di atas akan mendeklarasikan string bernama array yang dapat

menampung maksimal 10 karakter, termasuk null character.

(5)

Untuk menerima inputan string dari user, kita dapat menggunakan scanf atau gets.

Perintah scanf akan membaca inputan string dari user dan berhenti ketika ada spasi, enter (newline) ataupun interupsi dari pengguna. Sedangkan gets akan membaca satu baris kumpulan karakter hingga enter atau interupsi dari pengguna.

Contoh source code penggunaan scanf untuk membaca string:

Contoh di atas apabila dijalankan:

(6)

Contoh penggunaan gets untuk membaca string:

Contoh di atas apabila dijalankan:

String yang dibaca dengan mengunakan scanf atau gets akan secara otomatis

memiliki null character di akhir stringnya.

(7)

Fungsi-Fungsi String

Dalam bahasa pemrograman C, terdapat library yang dibuat dengan tujuan memudahkan pengguna dalam mengolah string. Library tersebut tersimpan dalam string.h, oleh karena itu, untuk mengakses library ini, diperlukan tambahan, yaitu:

#include <string.h>

Berikut adalah fungsi-fungsi yang dibagi berdasarkan kegunaannya dalam mengolah sebuah string (diambil dari www.cplusplus.com):

1. Copying :

a. memcpy (Copy block of memory) b. memmove (Move block of memory) c. strcpy (Copy string)

d. strncpy (Copy characters from string) 2. Concatenation :

a. strcat (Concatenate strings)

b. strncat (Append character from string) 3. Comparison :

a. memcmp (Compare two blocks of memory) b. strcmp (Compare two strings)

c. strcoll (Compare two strings using locale) d. strncmp (Compare characters of two strings) e. strxfrm (Transform string using locale) 4. Searching :

a. memchr (Locate character in block of memory) b. strchr (Locate first occurrence of character in string) c. strcspn (Get span until character in string)

d. strpbrk (Locate characters in string)

e. strrchr (Locate last occurrence of character in string) f. strspn (Get span of character set in string)

g. strstr (Locate substring)

h. strtok (Split string into tokens) 5. Other :

a. memset (Fill block of memory)

b. strerror (Get pointer to error message string)

c. strlen (Get string length)

(8)

a. Fungsi strcpy

char * strcpy ( char * destination, const char * source );

Fungsi strcpy digunakan untuk melakukan copy dari sebuah string ke string lainnya. Contoh penggunaan dalam kode program:

b. Fungsi strcat

char * strcat ( char * destination, const char * source );

Fungsi strcat digunakan untuk melakukan penempelan sebuah string pada akhir

suatu string tertentu. Contoh penggunaan dalam kode program:

(9)

c. Fungsi strcmp

int strcmp ( const char * str1, const char * str2 );

Fungsi strcmp digunakan untuk melakukan pembandingan sebuah string dengan string yang lain. Return value dari fungsi ini dapat berupa bilangan negatif, nol ataupun positif. Jika fungsi ini mengembalikan nilai negatif, maka str1 memiliki tingkat leksikoglafi lebih kecil dari str2. Sedangkan jika fungsi ini mengembalikan nilai postifi, maka str1 memiliki tingkat leksikografi lebih besar dari str2. Terakhir, jika return value nya nol, maka str1 sama dengan str2. Berikut adalah contoh penggunaan fungsi ini dalam kode progam:

d. Fungsi strlen

size_t strlen ( const char * str );

Fungsi strlen digunakan untuk mengetahui panjang dari sebuah string.

(10)

Implementasi Array dan String

● Latihan 1: Mahasiswa Berprestasi

● Latihan 2: Matrix Spin

● Latihan 3: Mesin Pencari

● Latihan 4: String Combination

Latihan 1: Mahasiswa Berprestasi Deskripsi

Di suatu universitas, sedang berlangsung pemilihan mahasiswa berprestasi.

Karena lagi sibuk dengan suatu hal lain, pihak universitas kewalahan untuk menentukan pemenangnya. Oleh karena itu, pihak universitas meminta bantuanmu untuk membuat program yang dapat menampilkan nilai mahasiswa dan menentukan rata-rata nilai akademik dari mahasiswa yang mendaftar menjadi mahasiswa berprestasi tersebut.

Format Masukkan

Baris pertama berisi N dan M, jumlah pendaftar dan banyaknya nilai dari masing- masing pendaftar, 1 <= N, M <= 10.

N baris berikutnya berisi M bilangan yang menunjukkan nilai dari mahasiswa ke-i, nilai dari tiap mahasiswa antara 0 dan 100.

Format Keluaran

Keluaran berupa nilai serta rata-rata dari setiap mahasiswa.

Langkah Pengerjaan

1. Buat source file baru dari IDE anda, beri nama misal mawapres.c

2. Deklarasikan variabel yang dibutuhkan untuk menampung nilai-nilai dari

mahasiswa yang kita inginkan.

(11)

4. Buat perulangan untuk memasukkan nilai dari N mahasiswa, dengan masing- masingnya terdapat M nilai, mulai dari mahasiswa ke-0 sampai ke-(N-1), dan nilai ke-0 sampai dengan ke-(M-1).

5. Dari soal, diminta juga nilai rata-rata untuk setiap mahasiswa, masukkan ke variabel RRata. Modifikasi potongan kode pada langkah ke-4 untuk mendapatkan rata-rata tiap mahasiswa. Sehingga potongan kode dari langkah ke-4 menjadi seperti dibawah ini.

6. Buat perintah perulangan kembali untuk mencetak ke layar, variabel “nilai” ke-0

sampai M-1 untuk mahasiswa ke-0 sampai N-1, jangan lupa tampilkan juga rata-

rata dari tiap mahasiswa.

(12)

7. Ujilah keberhasilan program Anda!

Latihan 2: Matrix Spin Deskripsi

Pada suatu hari, adik anda yang duduk di bangu SMA, diberikan sebuah soal oleh guru Matematika nya. Diberikan sebuah matriks ukuran N x N, adik anda disuruh untuk memutar matriks tersebut 90 derajat searah jarum jam. Karena anda sedang belajar tentang pemrograman, anda tertantang untuk membuat versi console dari soal adik anda tersebut. Tentu saja, adik anda akan merasa terbantu dengan program yang Anda buat.

Format Masukkan

Baris pertama berisi N, ukuran dari matriks tersebut, 1 <= N <= 10.

N baris berikutnya berisi N bilangan yang menunjukkan isi dari matriks tersebut, nilai dalam matriks tersebut berada di antara 0 dan 1000.

Format Keluaran

Keluaran berupa matriks yang telah diputar 90 derajat searah jarum jam.

Contoh Input 2

1 2 3 4

Contoh Output

(13)

Latihan 3: Mesin Pencari Deskripsi

Anda adalah seorang programmer yang handal. Suatu hari, anda mendapatkan proyek dari seorang klien yang menginginkan sebuah mesin pencari kata dari jaringan internet yang hanya mau mencari kata-kata yang sama persis. Selain itu, klien juga meminta untuk mengetahui sebarapa populer-kah kata tersebut. Karena sedang membutuhkan uang, maka Anda pasti menerima proyek yang diberikan klien anda tersebut.

Format Masukkan

Baris pertama berisi sebuah integer N, banyaknya kata yang ada dalam sebuah jaringan internet. 1 <= N <= 100.

N baris berikutnya berisi sebuah kata S, yang menunjukkan kata yang tersedia di sebuah jaringan internet. 1 <= |S| <= 20.

Baris terakhir berisi sebuah kata Q, yang Anda masukkan untuk mencoba keberhasilan mesin pencari yang Anda buat. 1 <= |Q| <= 20.

Format Keluaran

Keluaran berupa jumlah kali muncul kata tersebut dalam jaringan internet yang ada.

Langkah Pengerjaan

1. Buat source file baru dari IDE anda, beri nama misal searchengine.c

2. Deklarasikan variabel-variabel yang dibutuhkan dalam mesin pencari Anda.

Jangan lupa untuk menambahkan library string.h yang salah satu fungsinya

digunakan untuk membandingkan string.

(14)

3. Berikan prompt untuk menerima masukkan dari user sesuai permintaan klien, karena kata dalam jaringan internet tidak pasti, tergantung dari masukkan user, gunakan perulangan.

4. Lalu inputkan kata yang mau kita cari tingkat popularitasnya. Kemudian cari tingkat popularitas dari kata tersebut dengan membadingkan satu-persatu kata tersebut dalam jaringan internet yang ada. Jangan lupa menggunakan fungsi yang sudah disediakan.

5. Tampilkan tingkat popularitas dari kata tersebut.

6. Ujilah keberhasilan program Anda!

(15)

Latihan 4: String Combination Deskripsi

Karena bosan dengan hal-hal yang sudah Anda alami selama ini, Anda menantang diri Anda untuk membuat program yang dapat mengkombinasikan kata yang ada menjadi kalimat-kalimat acak dengan menggunakan semua kata yang ada.

Format Masukkan

Baris pertama berisi N, banyaknya jumlah kata yang akan dikombinasikan oleh program anda. 2 <= N <= 3.

N baris berikutnya berisi sebuah kata S, yang menunjukkan kata yang akan dikombinasikan nantinya. 0 <= |S| <= 20.

Dianggap tidak akan ada kata yang sama persis.

Format Keluaran

Keluaran berupa kalimat-kalimat acak yang mungkin terbentuk dari kata-kata yang ada.

Contoh Input 2

Aku Kamu

Contoh Output Aku Kamu Kamu Aku Contoh Input 3

Aku Kamu

<3

Contoh Output Aku Kamu <3 Aku <3 Kamu Kamu Aku <3 Kamu <3 Aku

<3 Aku Kamu

<3 Kamu AKu

Referensi

Dokumen terkait

Berdasarkan keterangan di atas, Majelis Hakim Pengadilan Niaga Jakarta Pusat memutuskan bahwa PT KLMI telah memenuhi syarat permohonan pailit dan

Pada SAP 2000 hal ini bias dianalisis dengan memutar sumbu gording hingga posisi tetap sesuai dengan kenyataan yang terjadi dan beban mati, hidup dan hujan tetap dimasukkan

Penelitian ini bertujuan mendeskripsikan pemerolehan klausa relatif pemelajar BIPA tingkat madya, yang mencakup (a) bentuk klausa relatif, (b) urutan pemerolehan klausa relatif,

(2) Pengelolaan database kependudukan oleh satuan kerja perangkat daerah provinsi yang membidangi urusan kependudukan dan pencatatan sipil sebagaimana dimaksud dalam Pasal 40

lahan dan faktor yang mempengaruhinya atau faktor determinan. Penelitian berlokasi di HouayXai District, Bokeo Province, Laos. Hasil pemetaan menunjukkan perubahan

Kepada Jemaat yang baru pertama kali mengikuti ibadah dalam Persekutuan GPIB Jemaat “Immanuel” Depok dan memerlukan pelayanan khusus, dapat menghubungi Presbiter yang

Hasil dari kombinasi metode tersebut menunjukkan performa yang lebih baik daripada menggunakan kombinasi algoritma C4.5 dan PCA, serta algoritma C4.5 saja untuk kasus

Ia juga mengatakan, ada be- berapa potensi terjadinya pe- mungutan suara ulang, misalnya jika lebih dari satu pemilih yang tidak terdaftar dalam DPT, DPTb, dan tidak memiliki KTP-