Library dalam bahasa pemrograman merupakan kumpulan instruksi pemrograman dalam bentuk function (fungsi), class, constant, typedef, property yang siap untuk dipakai. Dart memiliki sekumpulan library bawaan yang berguna untuk menyimpan function (fungsi), class, constant, typedef, property yang sering digunakan.
Mengimport Library
Kata kunci import digunakan untuk mengimport suatu library ke dalam suatu aplikasi Dart. Sebuah file script Dart dapat memiliki beberapa pernyataan import untuk mengimport beberapa library sekaligus.
Berikut adalah cara penulisan untuk mengimpor library dengan menggunakan Dart.
import 'URI'
Perhatikan potongan kode berikut :
import 'dart:io'
import 'package:lib1/libfile.dart'
Jika Anda ingin menggunakan hanya sebagian dari isi sebuah library, Anda dapat mengimpor library secara selektif. Berikut adalah cara penulisan untuk melakukan hal tersebut :
import 'package: lib1/lib1.dart' show foo, bar;
// Hanya mengimport foo dan bar.
import 'package: mylib/mylib.dart' hide foo;
// Mengimport semua isi library kecuali foo
Beberapa library yang umum digunakan dapat dilihat di bawah ini
No | Library & Deskripsi |
---|---|
1 | dart: io Berisi fungsi-fungsi untuk mengelola File, Socket, HTTP, dan dukungan I/O lainnya untuk aplikasi server. Libary ini tidak berfungsi di aplikasi berbasis browser. Library ini diimpor secara default. |
2 | dart: core Libarary bawaan dan default untuk bahasa pemrograman Dart dan berisis class, function, typedef, constant dan property inti dari bahasa pemrograman Dart. Library ini diimpor secara otomatis. |
3 | dart: math Library yang berisi semua class, fungsi, typedef, constant dan property yang berhubungan dengan operasi matematika. |
4 | dart: convert Library Encoder dan Decoder untuk mengubah dan representasi format data yang berbeda-beda, termasuk JSON dan UTF-8. |
5 | dart: typed_data Libarary yang menangani data yang berukuran tetap, misal unsigned 8 byte integers. |
Menggunakan Library
Berikut contoh mengimpor library bawaan dart: math kemudian melakukan pemanggilan fungsi sqrt() dengan menggunakan library math. Fungsi ini mengembalikan akar kuadrat dari bilangan yang diberikan kepadanya.
import 'dart:math';
void main() {
print("Akar kuadrat dari 36 adalah: ${sqrt(36)}");
}
Kode di atas akan mengembalikan output berikut:
Akar kuadrat dari 36 adalah: 6.0
Encapsulation Menggunakan Library
Dart dapat menambahkan awalan underscore ( _ ) pada pengenalnya untuk menandai komponen-komponen yang bersifat private. Secara sederhana, libraryDart dapat membatasi akses terhadap isi library tersebut (baik class, function, typedef dll) dari pemakaian aplikasi lain yang menggunakan library tersebut. Konseo ini disebut juga sebagai encapsulation. Berikut ada cara penulisan komponen dalam library yang bersifat private.
Cara Penulisan
_identifier
Contoh
Pertama, tentukan sebuah library dengan sebuah fungsi yang bersifat private. Masukkan kode dibawah ini ke dalam file baru dengan nama test.dart
library loggerlib;
void _log(msg) {
print("Method log dipanggil didalam loggerlib msg:$msg");
}
Selanjutnya, import library yang telah di buat diatas
import 'test.dart' as web;
void main() {
web._log("Halo dari webloggerlib");
}
Kode di atas akan mengembalikan output berikut :
: Error: Method not found: '_log'.
main.dart:4
web._log("Halo dari webloggerlib");
^^^^
Membuat Library
Dart juga memungkinkan Anda untuk menggunakan kode Anda sendiri sebagai Library. Membuat Library melibatkan langkah-langkah berikut:
Langkah 1: Mendeklarasikan Library
Untuk secara eksplisit mendeklarasikan library, gunakan library statement. Cara penulisan untuk mendeklarasikan library adalah sebagai berikut :
library namaLibrary
// masukkan konten library disini
Langkah 2: Menghubungkan Library
Anda dapat menghubungkan library dengan dua cara:
- Dalam direktori yang sama
import 'namaLibrary'
- Dari direktori yang berbeda
import 'dir/namaLibrary'
Contoh: Membuat Library
Pertama, mari kita definisikan library, calculator.dart.
library calculator_lib;
import 'dart:math';
//import statement setelah statement library
int add(int nomorPertama,int nomorKedua){
print("Di dalam method add dari library Calculator") ;
return nomorPertama+nomorKedua;
}
int modulus(int nomorPertama,int nomorKedua){
print("Di dalam method modulus dari library Calculator") ;
return nomorPertama%nomorKedua;
}
int random(int no){
return new Random().nextInt(no);
}
Selanjutnya, kita akan mengimpor library calculator.dart.
import 'calculator.dart';
void main() {
var num1 = 10;
var num2 = 20;
var sum = add(num1,num2);
var mod = modulus(num1,num2);
var r = random(10);
print("$num1 + $num2 = $sum");
print("$num1 % $num2= $mod");
print("nomor random $r");
}
Program ini seharusnya menghasilkan output berikut:
Di dalam method add dari library Calculator
Di dalam method modulus dari library Calculator
10 + 20 = 30
10 % 20= 10
nomor random 8
Library Prefix
Jika Anda mengimpor dua library dengan pengenal yang sama akan terjadi konflik, maka Anda dapat menentukan awalan untuk satu atau kedua library tersebut. Gunakan kata kunci ‘as‘ untuk menentukan awalan.
Cara Penulisan
import 'library_uri' as prefix
Contoh
Pertama-tama, mari kita definisikan sebuah library: loggerlib.dart.
library loggerlib;
void log(msg){
print("Method log dipanggil di dalam loggerlib msg:$msg");
}
Selanjutnya, kita akan mendefinisikan sebuah library lain: webloggerlib.dart.
library webloggerlib;
void log(msg){
print("Method log dipanggil di dalam webloggerlib msg:$msg");
}
Selanjutnya, kita akan mengimpor library dengan awalan menggunakan kata kunci as.
import 'loggerlib.dart';
import 'webloggerlib.dart' as web;
// prefix menghindari bentrokan nama fungsi
void main(){
log("halo dari loggerlib");
web.log("halo dari webloggerlib");
}
Program yang telah dibuat di atas akan mengembalikan output
Method log dipanggil di dalam loggerlib msg:halo dari loggerlib
Method log dipanggil di dalam webloggerlib msg:halo dari webloggerlib
Tutorial sebelumnya : Dart Typedef
Tutorial setelahnya : Dart Asynchronous
Semua Tutorial Dart : Tutorial Dart