Anda di halaman 1dari 18

LAPORAN PRAKTIKUM 3

“String Handling”

Nama
Muhammad Putra Pratama
NIM
(200204622034)
Prodi
D4 – Teknik Elektro GCS

FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
KONS. SOFTWARE ENGINEERING
UNIVERSITAS NEGERI MAKASSAR
A. Judul Praktikum

Judul Praktikum : “String Handling”

B. Landasan Teori

Bahasa pemrograman C memiliki seperangkat fungsi yang


mengimplementasikan operasi pada string di perpustakaan
standarnya. Berbagai operasi, seperti penyalinan, penggabungan,
tokenisasi, dan pencarian didukung.
String didefinisikan sebagai urutan unit kode yang berdekatan
yang diakhiri oleh unit kode nol pertama (sering disebut unit kode
NULL). Ini berarti string tidak dapat berisi unit kode nol, karena yang
pertama terlihat menandai akhir string. Panjang string adalah jumlah
unit kode sebelum unit kode nol. Memori yang ditempati oleh string
selalu satu unit kode lebih dari panjangnya, karena ruang diperlukan
untuk menyimpan terminator nol.
Secara umum, istilah string berarti string yang unit kodenya
bertipe char, tepatnya 8 bit pada semua mesin modern. C90
mendefinisikan string lebar yang menggunakan unit kode tipe
wchar_t, yaitu 16 atau 32 bit pada mesin modern. Ini dimaksudkan
untuk Unicode tetapi semakin umum untuk menggunakan UTF-8
dalam string normal untuk Unicode sebagai gantinya.
String diteruskan ke fungsi dengan melewatkan pointer ke unit
kode pertama. Karena char* dan wchar_t* adalah tipe yang berbeda,
fungsi yang memproses string lebar berbeda dari fungsi yang
memproses string normal dan memiliki nama yang berbeda.
String literal ("teks" dalam kode sumber C) dikonversi ke array
selama kompilasi. Hasilnya adalah larik unit kode yang berisi semua
karakter ditambah unit kode nol di belakangnya. Di C90 L "teks"
menghasilkan string lebar. Literal string dapat berisi unit kode nol
(salah satu caranya adalah dengan memasukkan \0 ke dalam
sumber), tetapi ini akan menyebabkan string berakhir pada titik itu.
Sisa dari literal akan ditempatkan di memori (dengan unit kode nol
lainnya ditambahkan ke akhir) tetapi tidak mungkin untuk mengetahui
unit kode tersebut diterjemahkan dari literal string, oleh karena itu
kode sumber tersebut bukan literal string.

C. Praktikum

1. Activity 1

Analisis

Kita dapat mengakses tipe data ‘char’ pada ‘string’.


Berikut cara yang bisa dilakukan.

tetapkan varible string dan masukkan value-nya.


disini saya akan menetapkan nama variabel
myName dan valuenya putrapratama
string myName = "putrapratama";

selanjutnya, kita dapat memanggil char dan


menetapkan equals ( = ) pada myName, namun
tambahkan semicolon ( [ ] ). Semicolon menandakan
kita mengakses string myName menggunakan
metode array. Dan dalam semicolon kita ingin
mengakses index ke-5.

string myName = "putrapratama";


char x = myName[5];

Jangan lupa memanggil Console.Write(); untuk


menampilkan hasilnya pada console.

string myName = "putrapratama";


char x = myName[5];

Console.Write(x);

Setelah itu coba kita run.

Penjelasan kenapa outputnya p, karna index ke-5


dari nama putrapratama.
p u t r a p r a t a m a

0 1 2 3 4 5 6 7 8 9 10 11

2. Activity 2

Buatlah sebuah program C# yang mana user dapat


menginput kalimat untuk mencari kata pada kalimat
tersebut. Program harus menampilkan jumlah kata
pada kalimat itu.

Analisis

Pada case ini, kita menggunakan while untuk


melakukan looping dan kita memvalidasi menggunakan
if-else. Kita menginisialisi variable terlebih dahulu
sebelum melangkah ke kode utama.

Screenshoot Hasil
Kode Program

static void Main(string[] args)


{
string str;
int i, wrd, l;

Console.Write("\n\nCount the total number of


words in a string :\n");

Console.Write("-----------------------------------------------------
-\n");
Console.Write("Input the string : ");
str = Console.ReadLine();

l = 0;
wrd = 1;

/* loop till end of string */


while (l <= str.Length - 1)
{
/* check whether the current character is
white space or new line or tab character*/
if (str[l] == ' ' || str[l] == '\n' || str[l] == '\t')
{
wrd++;
}

l++;
}
Console.Write("Total number of words in the
string is : {0}\n", wrd);
}

3. Activity 3

Buatlah sebuah program C# yang mana kita akan


mengganti kata “brown” dalam kata “The quick brown
fox jump over the lazy dog” menjadi kata “orange”.

Analisis

Pada case ini, kita dapat menggunakan fungsi dari


library C#, yaitu .Replace(“oldstring”, “newstring”).
Fungsi ini akan kita panggil ketika kita ingin
menampilkan output.

Pertama, kita buat sebuah variable string yang isinya


“The quick brown fox jump over the lazy dog”.
Kemudian kita membuat perintah Console.WriteLine
untuk menampilkan ke konsol, pada value nya kita
panggil str dan kemudian replace.

Screenshoot Hasil
Kode Program

static void Main(string[] args)


{
string str = "The quick brown fox jump over the
lazy dog";

Console.WriteLine(str.Replace("brown",
"orange"));
}

4. Activity 4

Tulis sebuah kode C# yang equivalent ke tampilan


sebuah hasil dibawah tanpa menggunakan string
format.

Analisis
Sebauh string format adalah metode yang memberikan
kita dapat memberikan sebuah varible tambahan pada
string.

Pada case ini kita diarahkan untuk menggunakan kode


pada contoh tanpa menggunakan method string format

Screenshot Hasil

Kode Program

static void Main (string[] args)


{
string composite = "Name={0,-20} Credit Limit
={1,15:C}";
Console.WriteLine((composite, "Marry", 500));
Console.WriteLine((composite, "Elizabeth",
20000));
}
5. Activity 5

Buatlah sebuah program C# yang mana akan


determinan jika diberikan sebuah kata palindrome

Analisis

Pada case ini, kita ingin melakukan user input terlebih


dahulu untuk menentukan kata yang ingin kita validasi.
Selanjutnya setelah user input, kita menggunakan
fungsi ToLower yg tujuannya ketika user mengimput
string yg random capitalize dapat di konversi ke
lowercase. Setelah itu kita dapat menetapkan algoritma
palindrome string;

1. Melakukan looping, yang mana pengondisiannya


jika variable i < panjang data / 2 (dibagi dua). Kita
ketahui bahwa palindrome terdiri dari huruf ganjil
(contohnya katak, kodok, dll). Kita bisa melakukan
pengondisian jika string yg diinput user adalah genap,
maka akan keluar dari looping.

2. Kita dapat melakukan pengondisian, jika inputan


user tidak sama dengan panjang input – i – 1, maka
kita return flagnya false. Kita tidak perlu menetapkan
value untuk else karna else akan melanjutkan ke
proses berikutnya. Dan jika kondisi benar, kita akhiri
kodenya dengan break.

3. Jika if sebelumnya menghasilkan else, maka kita


lanjut ke pengondisian. jika flag bernilai true, maka
tampilkan ke konsol “is palindrome” dan jika
keadaannya salah maka “not palindrome”.

Screenshot Hasil

Kode Program

static void Main(string []args)


{
String word;

Console.Write("Enter your word = ");


word = Console.ReadLine();

word = word.ToLower();

Boolean flag = true;

for (int i =0; i < word.Length / 2; i++)


{
if (word[i] != word[word.Length-i-1])
{
flag = false;

break;
}
}
if (flag)
{
Console.WriteLine("is palindrome");
} else
{
Console.WriteLine("not palindrome");
}
}

6. Activity 6

Apa kelebihan dari menggunakan StringBuilder


dibanding menggunakan string class.

Analisis

Keuntungan dari StringBuilder adalah


1) Kinerja dari StringBuilder jauh lebih baik dibanding
string class.
2) StringBuilder relatif mudah untuk menjalankan
analisis kinerja pada kode anda untuk melihat
dimana anda menghabiskan waktu, dan
memodifikasinya untuk digunakan dimana
stringbuilder diperlukan.
7. Activity 7

Buatlah sebuah program C# yang mana akan


menerapkan StringBuilder dengan nilai dari 1 sampi 50
dan setiap nilai diantarai dengan koma. Lihat contohnya

Analisis

Pada case ini kita diarahkan untuk


mengimplementasikan StringBuilder kedalam kode kita.
Saya menggunakan metode For untuk melakukan
looping integernya (dari 1-49) dan untuk koma-nya (,)
saya gunakan StringBuilder.

Screenshot Hasil
Kode Program
class StringBuilderAppendLine
{
public static void Main()
{
StringBuilder s = new StringBuilder();
s.Append(",");
for (int i=0; i < 50; i++)
{
Console.Write(i);
Console.Write(s);
}
}
}
8. Activity 8

GUID sering digunakan dimana? jelaskan jawabanmu


dengan contoh.

Analisis

GUID (Globally Unique Identifier) adalah sebuah 128-


bit text string yang mengindtifikasikan ID (identification).
Kita bisa melihat contoh penggunaan GUID pada user
account.

9. Activity 9

Apa perbedaan antara statement 1 dan statement 2?


Yang mana statement yg merupakan refferential
equality?
Analisis

Perbedaan antara statement 1 dan 2 adalah

Pada statement 1 menggunakan value dan statement 2


menggunakan refferential equality.

Referential Equality dapat memiliki persamaan


referensi karena ketika turunan dari tipe nilai ditetapkan
ke variabel, salinan nilai dibuat.

10. Activity 10

Mengapa hasil tidak sama?


Analisis

Hasilnya tak sama karna


Objek tipe nilai tidak dapat memiliki persamaan
referensi karena ketika turunan dari tipe nilai ditetapkan
ke variabel, salinan nilai dibuat

11. Activity 11

Kode Program

using System;
using System.Collections.Generic;
using System.Net.Mail;

namespace Lesson_3_Muhammad_Putra_Pratama
{
class Program
{
public static void Main(string []args)
{
var emailAddresses = new List<string>
{
// Valid email addresses
"putra@example.com",
"putra.pratama@example.net",
"putra@example.co.uk",
"putra@example",

// Invalid email addresses


"putra.example.com",
"putra@pratama@example.net",
"putra@.example.co.uk"
};

Console.Title = "Email address validation";

foreach (var emailAddress in emailAddresses)


Console.WriteLine($"{emailAddress,-37} --> {(IsValid(emailAddress) ?
"Valid" : "Invalid")}");

Console.ReadLine();
}

private static bool IsValid(string email)


{
var valid = true;

try
{
var emailAddress = new MailAddress(email);
}
catch
{
valid = false;
}

return valid;
}
}

Anda mungkin juga menyukai