Tutorial Strings di Dart untuk Pemula

Wednesday, 29 May 2024 6 read minutes

Cover Article

Dalam menulis sebuah kode kita sering kali menggunakan String. String adalah tipe data yang digunakan untuk menyimpan teks. Di Dart, String adalah objek yang diwakili oleh kelas String. Strings sangat penting dalam pengembangan aplikasi karena mereka digunakan untuk menyimpan dan memanipulasi teks, seperti nama, alamat, pesan, dan lainnya.

Strings di Dart dapat dibuat menggunakan tanda kutip tunggal (') atau tanda kutip ganda ("). Kita juga dapat menggunakan tanda kutip tiga untuk membuat string multi-baris.

void main() {
  String singleQuote = 'Ini adalah string dengan tanda kutip tunggal';
  String doubleQuote = "Ini adalah string dengan tanda kutip ganda";
  String multiLine = '''Ini adalah string
  multi-baris yang dibuat
  menggunakan tanda kutip tiga''';

  print(singleQuote);
  print(doubleQuote);
  print(multiLine);
}

Menggabungkan Strings di Dart

Menggabungkan strings adalah operasi dasar yang sering digunakan dalam pemrograman untuk membentuk teks yang lebih panjang dari beberapa teks yang lebih pendek. Di Dart, kita dapat menggabungkan strings dengan berbagai cara, termasuk menggunakan operator + dan interpolasi string menggunakan $.

Operator + adalah cara yang sederhana dan langsung untuk menggabungkan dua atau lebih strings. Setiap kali kita menggunakan operator +, kita membuat string baru yang merupakan gabungan dari dua strings yang dioperasikan.

void main() {
  String firstName = 'John';
  String lastName = 'Doe';

  // Menggabungkan menggunakan operator +
  String fullName1 = firstName + ' ' + lastName;
  print('Full name (operator +): $fullName1'); // John Doe
}

Interpolasi string adalah fitur yang memungkinkan kita memasukkan nilai variabel atau ekspresi ke dalam string. Di Dart, interpolasi string dilakukan dengan menggunakan $ diikuti oleh nama variabel di dalam string. Jika ekspresi lebih kompleks, kita dapat menggunakan ${} untuk memasukkan ekspresi di dalam string.

void main() {
  String firstName = 'John';
  String lastName = 'Doe';

  // Menggabungkan menggunakan interpolasi string
  String fullName2 = '$firstName $lastName';
  print('Full name (interpolasi): $fullName2'); // John Doe
}

Karakter dalam String di Dart

Mengakses karakter individual dalam string adalah operasi dasar yang sering digunakan dalam berbagai aplikasi, seperti pemrosesan teks, validasi input, dan manipulasi string. Di Dart, kita dapat mengakses karakter dalam string menggunakan indeks. Indeks dalam string Dart bersifat zero-based, artinya indeks pertama adalah 0, indeks kedua adalah 1, dan seterusnya.

Untuk mengakses karakter tertentu dalam string, kita cukup menggunakan tanda kurung siku [] dengan indeks karakter yang ingin kita akses.

void main() {
  String message = 'Hello';

  print(message[0]); // H
  print(message[1]); // e
  print(message[2]); // l
  print(message[3]); // l
  print(message[4]); // o
}

Namun, jika kamu mencoba mengakses indeks yang berada di luar panjang string, Dart akan melempar RangeError.

void main() {
  String message = 'Hello';

  // Mengakses indeks di luar batas
  try {
    print(message[5]);
    // Error: RangeError (index): Invalid value: Not in range 0..4, inclusive: 5
  } catch (e) {
    print('Error: $e');
  }
}

Didalam string kita juga dapat menggunakan loop untuk mengakses setiap karakter dalam string. Loop sangat berguna jika kita perlu memproses atau memanipulasi setiap karakter dalam string.

void main() {
  String message = 'Hello';

  for (int i = 0; i < message.length; i++) {
    print('Character at index $i: ${message[i]}');
  }
}

Perlu diingat bahwa strings di Dart adalah objek yang tidak dapat diubah (immutable). Ini berarti kita tidak dapat mengubah karakter dalam string secara langsung. Namun, kita dapat membuat string baru dengan karakter yang diubah.

void main() {
  String message = 'Hello';

  // Mengubah karakter pertama menjadi 'J'
  String newMessage = 'J' + message.substring(1);
  print(newMessage); // Jello
}

Dart juga mendukung karakter Unicode, yang memungkinkan Anda bekerja dengan berbagai simbol, emoji, dan karakter dari berbagai bahasa.

void main() {
  String message = 'Hello 👋';

  for (int i = 0; i < message.length; i++) {
    print('Character at index $i: ${message[i]}');
  }
}

Properti dan Metode String

Dart menyediakan berbagai properti dan metode yang memungkinkan manipulasi strings dengan cara yang mudah dan efisien.

  1. Metode length

    Properti length mengembalikan panjang string, yaitu jumlah karakter yang ada dalam string tersebut.

     void main() {
       String text = ' Dart Programming ';
       print('Length: ${text.length}'); // 18
     }
    

    Pada kode diatas kita melihat bahwa panjang string text adalah 18 karakter, termasuk spasi di awal dan akhir.

  2. Metode toUpperCase()

    Metode toUpperCase() mengonversi semua karakter dalam string menjadi huruf besar.

     void main() {
       String text = ' Dart Programming ';
       print('Uppercase: ${text.toUpperCase()}');
       //  DART PROGRAMMING 
     }
    

    Pada kode diatas kita melihat bahwa semua huruf dalam string text dikonversi menjadi huruf besar.

  3. Metode toLowerCase()

    Metode toLowerCase() mengonversi semua karakter dalam string menjadi huruf kecil.

     void main() {
       String text = ' Dart Programming ';
       print('Lowercase: ${text.toLowerCase()}');
       //  dart programming 
     }
    

    Pada kode diatas kita melihat bahwa semua huruf dalam string text dikonversi menjadi huruf kecil.

  4. Metode contains()

    Metode contains() memeriksa apakah string mengandung substring tertentu dan mengembalikan nilai boolean.

     void main() {
       String text = ' Dart Programming ';
       print('Contains "Dart": ${text.contains('Dart')}'); // true
     }
    

    Pada kode diatas kita melihat bahwa string text mengandung substring "Dart", jadi contains('Dart') mengembalikan true.

  5. Metode substring()

    Metode substring() mengembalikan bagian dari string yang dimulai dari indeks awal (inclusive) hingga indeks akhir (exclusive).

     void main() {
       String text = ' Dart Programming ';
       print('Substring (0, 4): ${text.substring(0, 4)}');
       //  Dar
     }
    

    Pada kode diatas kita melihat bahwa mengambil substring dari indeks 0 hingga 3, menghasilkan " Dar".

  6. Metode replaceAll()

    Metode replaceAll() mengganti semua kemunculan substring tertentu dengan substring lain.

     void main() {
       String text = ' Dart Programming ';
       print('Replace "Dart" with "Flutter": ${text.replaceAll('Dart', 'Flutter')}');
       //  Flutter Programming 
     }
    

    Pada kode diatas kita melihat bahwa kita bisa mengganti semua kemunculan "Dart" dengan "Flutter".

  7. Metode split()

    Metode split() untuk membagi string menjadi daftar substring berdasarkan pembatas tertentu.

     void main() {
       String text = ' Dart Programming ';
       print('Split by space: ${text.split(' ')}'); // [, Dart, Programming, ]
     }
    

    Pada kode diatas kita melihat bahwa membagi string text menjadi daftar substring berdasarkan spasi. Hasilnya adalah daftar yang berisi ["", "Dart", "Programming", ""].

  8. Metode trim()

    Metode trim() digunakan untuk menghapus spasi dari awal dan akhir string.

     void main() {
       String text = ' Dart Programming ';
       print('Trimmed: ${text.trim()}'); // Dart Programming
     }
    

    Pada kode diatas kita melihat cara menghapus spasi dari awal dan akhir string text.

Parsing String keint dan double

Mengonversi string ke tipe data lain sering diperlukan dalam pemrograman. Dart menyediakan metode parse dan tryParse untuk mengonversi string ke int atau double.

Metode parse digunakan untuk mengonversi string ke int atau double. Jika string yang diberikan tidak valid, metode ini akan melemparkan pengecualian (exception).

void main() {
  String intString = "123";
  String doubleString = "123.45";

  int intValue = int.parse(intString);
  double doubleValue = double.parse(doubleString);

  print('Parsed int: $intValue'); // 123
  print('Parsed double: $doubleValue'); // 123.45
}

tryParse

Metode tryParse digunakan untuk mengonversi string ke int atau double, tetapi tidak melemparkan pengecualian jika string tidak valid. Sebaliknya, metode ini mengembalikan null jika parsing gagal.

void main() {
  String validIntString = "123";
  String invalidIntString = "abc";
  String validDoubleString = "123.45";
  String invalidDoubleString = "abc.45";

  int? intValue = int.tryParse(validIntString);
  int? invalidIntValue = int.tryParse(invalidIntString);
  double? doubleValue = double.tryParse(validDoubleString);
  double? invalidDoubleValue = double.tryParse(invalidDoubleString);

  print('Parsed int: $intValue'); // 123
  print('Parsed invalid int: $invalidIntValue'); // null
  print('Parsed double: $doubleValue'); // 123.45
  print('Parsed invalid double: $invalidDoubleValue'); // null
}

Strings adalah bagian integral dari pengembangan aplikasi dan Dart menyediakan berbagai cara untuk bekerja dengannya. Dengan memahami cara membuat, menggabungkan, memanipulasi, dan mengonversi strings, kita dapat menangani berbagai kebutuhan teks dalam aplikasi kita dengan lebih efektif dan efisien. Strings di Dart adalah objek yang kaya dengan banyak metode yang membuat pekerjaan dengan teks menjadi mudah dan intuitif.

section icon
section title icon recents articles
Latest Articles just for you

Stay updated with the latest articles crafted to enhance your knowledge.
Discover new insights and stay ahead with our recent content.

Card image cap
Cara Menulis Kode Dart yang Berkualitas dengan Mudah
Monday, 30 September 2024

Pada artikel ini, kamu akan menjelajahi panduan Effective Dart, yang berisi aturan-aturan emas dalam menulis kode Dart berkualitas. Ini bukan hanya soal membuat kode bisa berjalan, tetapi juga soal menciptakan kode yang rapi, mudah dipahami, dan meny...

Read more
Card image cap
Memahami Konsep Asynchronous Process pada Dart
Tuesday, 17 September 2024

Pada era teknologi saat ini, aplikasi modern semakin membutuhkan kecepatan dan efisiensi, terutama ketika berurusan dengan berbagai operasi yang memerlukan waktu seperti pengambilan data dari API, membaca file, atau bahkan menunggu respons dari serve...

Read more
Card image cap
Mengenal Dart Type System: Panduan Lengkap
Tuesday, 10 September 2024

Sistem tipe atau type system merupakan inti dari sebuah bahasa pemrograman yang membantu menjaga keandalan dan ketepatan kode. Dalam Dart, type system memainkan peran penting dalam memastikan bahwa kode dieksekusi secara aman dan bebas dari kesalahan...

Read more
Card image cap
Memahami Gaya Pemrograman Fungsional di Dart: Konsep dan Penerapannya
Saturday, 27 July 2024

Functional Programming (FP) adalah paradigma pemrograman yang memanfaatkan fungsi matematika murni untuk menyelesaikan tugas komputasi. Dalam FP, fokus utama adalah pada "apa" yang harus diselesaikan daripada "bagaimana" cara menyelesaikannya, sepert...

Read more