i
Praktikum 1 Instalasi Environment untuk Development
A. Environment Development
Tujuan Pembelajaran
1. Mengetahui environment dasar untuk melakukan development suatu aplikasi, dalam
hal ini mencakup web application.
1.1 Pendahuluan
Meskipun Environment Setup bukan merupakan elemen dari setiap Bahasa
Pemrograman, ini adalah langkah pertama yang harus diikuti sebelum memulai untuk
menulis sebuah program.
perlu menyiapkan perangkat lunak yang diperlukan, yaitu instalasi di PC yang akan
digunakan untuk menulis program komputer, meng Compile, dan menjalankannya. Misalnya,
jika Anda perlu menggunakan Internet, maka Anda memerlukan penyiapan berikut pada
perlengkapan anda :
Tujuan dari pengujian unit adalah mengisolasi setiap bagian dari program dan
menunjukkan bahwa bagian-bagian individu (unit-unit tersebut) adalah benar. Di dalam
procedural programming methodology, sebuah unit adalah sebuah function atau sebuah
procedure.
1
1.2 Latihan
Instalasi XAMPP untuk environment pemrograman aplikasi berbasis web.
1. Pastikan telah mengunduh installer XAMPP dari website tersebut, biasanya memiliki
nama xampp-win32-xxxxxx.exe untuk sistem operasi windows.
2. Kemudian akan muncul tampilan berikut :
2
4. Pilih direktori untuk menginstalasi XAMPP. Disarankan untuk tidak memilih
direktori C: dan pilih direktori lainnya.
3
7. Setelah berhasil diinstal, akan muncul notifikasi untuk langsung menjalankan control
panel. Silakan klik Finish.
8. Silakan buka aplikasi XAMPP kemudian klik tombol Start pada Apache dan MySQL.
Jika berhasil dijalankan, Apache dan MySQL akan berwarna hijau seperti gambar di
bawah ini.
4
Untuk melakukan pengecekan, silakan akses http://localhost.
Instalasi composer untuk media pemasangan dependency, unit testing dan lain – lain.
5
4. Selanjutnya akan diminta untuk menentukan lokasi file php (file php.exe) yang akan
digunakan pada command line (PHP CLI- Command Line Interface) File tersebut
biasanya berada di dalam folder php. Jika sobat menggunakan XAMPP, misal
E:\xampp, maka lokasi file ini ada di dalam E:\xampp\php, contoh
E:\xampp\php\php.exe
5. Selanjutnya tentukan apakah koneksi internet menggunakan proxy. Misal seperti pada
sebuah kantor dimana koneksi internetnya terpusat pada proxy tertentu. Jika
menggunakan proxy, centang pilihan “Use a proxy server to connect to internet” dan
tulis alamat proxy tersebut beserta portnya, misal: 12.13.65.250:8080
6
6. Selanjutnya muncul jendela review settings yang akan dijalankan, klik Install untuk
melanjutkan.
7
8. Terdapat jendela pemberitahuan bahwa telah terjadi perubahan pada windows
environment, perubahan ini dimaksudkan agar composer dapat dijalankan pada
command prompt.
8
10. Proses instalasi selesai, klik Finish untuk menutup jendela instalasi.
11. Selanjutnya tes apakah composer sudah terinstall dengan baik. Buka command
prompt dan jalankan perintah composer --version, jika berhasil, maka akan muncul
tampilan seperti gambar berikut:
9
B. Penggunaan Composer
Tujuan Pembelajaran
1. Memahami fungsi composer
1.3. Pendahuluan
Dalam beberapa tahun belakangan, terjadi perubahan yang sangat signifikan dalam
dunia pemrograman php. Yakni munculnya dependencies manager yang bernama composer.
Composer adalah sebuah project open source yang dimotori oleh Nils Adermann dan Jordi
Boggiano. Project composer ini dihost di github (https://github.com/composer/composer)
tercatat sejak tanggal 3 April 2011 dan masih aktif sampai sekarang.
Kehadiran composer membuat ngoding php jadi lebih terstruktur dan lebih rapi.
Banyak programmer terbiasa dengan bahasa pemrograman yang terstruktur, ketika pindah ke
php, menemukan banyak hal yang rancu. Terutama dalam memanajemen struktur hirarki
project. Sehingga membutuhkan usaha lebih untuk menerapkan konsep OOP yang baik dalam
php.
Hal ini bisa terjadi karena –seperti yang tahu– , bahwa dalam bahasa pemrograman
php, pada setiap kali request, maka hanya ada satu file php saja yang dieksekusi. Hanya satu
file saja. Dan jika ingin mengakses file lain yang terpisah seperti misalkan memanggil
function di file lain atau membuat instan dari kelas yang filenya terpisah, maka perlu meng-
include atau require file yang bersangkutan sehingga seolah-olah file yang terpisah tadi jadi
satu dengan file yang request user sedang mengarah kepadanya. Dengan composer dan
autoload-nya serta namespace, bisa bebas mengakses file-file php tanpa harus ribet meng-
include atau me-require semua file atau class yang butuhkan, autoload dari composer sudah
melakukan semua itu out of the box. Sehingga oop dalam php benar-benar makes sense.
10
membutuhkan library C versi sekian. benar-benar akan mendapatkan masalah yang rumit
jika tidak jeli dalam mengantur dependencies dalam project. Dan kabar baiknya, composer
hadir untuk menyederhanakan masalah tersebut! cukup memasang library A dengan
composer, maka semua library yang dibutuhkan oleh library A akan otomatis dipasang juga
oleh composer. Dan juga tidak perlu repot-repot merequire atau meng-include file library
satu per satu.
1.4. Latihan
Ini adalah contoh bagaimana composer bekerja sebagai dependency manager. Contoh
yang akan dilakukan adalah dengan instalasi package PHP minify yang digunakan untuk
kompresi file javascript.
Buka command prompt dan arahkan cursor ke direktori dimana kita akan menginstall
aplikasi/package tersebut, misal di E:\xampp-7.0.6\htdocs\minify\src,
11
Untuk memastikan proses instalasi berhasil, buka folder dimana kita menginstall package
1.5. Tugas
Buatlah laporan untuk praktikum modul 1 dengan baik dan benar.
12
Praktikum 2 Unit Testing
Tujuan Pembelajaran
1. Memahami mampu melakukan instalasi Unit Testing.
2.1. Pendahuluan
Unit Testing adalah pengujian sebuah fungsi, kelas, interface, prosedur dari sebuah
aplikasi yang bersifat code. Unit Testing adalah sebuah metode yang masing-masing unit dari
kode diuji untuk menentukan apakah fungsi dari kode-kode tersebut berjalan dengan baik
atau tidak.
Unit Testing biasanya dibuat oleh programmer untuk memastikan kode yang
dibuatnya memenuhi persyaratan dan sesuai yang diharapkan.
Tujuan dari Unit testing adalah untuk memisahakan setiap bagian dari kode program
tersebut agar lebih mudah dalam debug apabila ada bug
Metode pengujian yang digunakan unit testing adalah White Box Testing
PHP:
PHP Unit Testing Framework : Menghasilkan ASCII, XML atau output XHTML dan
berjalan dari baris perintah.
CodeCeption
Java
JUnit
13
TestNG : dapat mencakup unit test, tes fungsional, dan tes integrasi. Memiliki fasilitas
untuk membuat bahkan tidak ada-fungsional tes (sebagai tests loading, tes waktunya)
2.2. Latihan
1. Buatlah folder baru di dalam c:\xampp\htdocs\ beri nama misalkan “phpunit”
2. Buka Command Prompt, arahkan directory ke alamat folder yang telah dibuat
sebelumnya. Misalkan
c:\xampp\htdocs\phpunit.
4. Setting Environment Variable, pada bagian Path, tambahkan alamat bin yang ada
dalam folder yang telah dibuat sebelumnya.
14
5. Tutup CMD, lalu buka kembali, setelah itu test apakah phpunit sudah terinstall
dengan baik atau tidak, dan bisa dijalankan di seluruh directory dengan cara
menjalankan instruksi :
phpunit –version
15
6. Jika sudah bisa muncul, maka phpunit berhasil diinstalasi
2.3. Pendahuluan
Setelah instalasi awal dan konfigurasi PHPUnit untuk sebuah proyek baru. Ada
beberapa konvensi yang dapat digunakan oleh PHPUnit, dan dapat membuat tes sederhana.
Itu, bagaimanapun, memperkenalkan Anda ke pernyataan paling dasar dari PHPUnit yaitu
dengan - assertTrue ().
ASSERTIONS
Apa itu assestion? Wikipedia mendefinisikan sebuah asertion sebagai sebuah predikat
(pernyataan benar-salah) ditempatkan dalam sebuah program untuk menunjukkan bahwa
pengembang berpikir bahwa predikat selalu benar di coding itu.
Contoh awal,
Pengujian apakah instruksi bernilai benar akan menegaskan ke true (jika (true ==
true)). apa yang Anda lihat adalah apa yang Anda dapatkan dengan pernyataan.
Jika menghasilkan salah itu benar (jika (salah == benar)), kita akan mendapatkan hasil
tes yang gagal:
public function testTrueIsTrue() { $foo = false; $this->assertTrue($foo); }
Hampir sama dengan assertion atau pengujian true, sintax yang digunakan adalah
assertFalse. Seperti berikut.
public function testFalseIsFalse() { $foo = false; $this->assertFalse($foo); }
16
PHPUnit mempunyai 90 jenis asersitions, jika Anda menggunakan IDE yang tepat,
Anda tidak perlu menghafal semuanya, dapat diakses melalui $ this-> assert *. Anda juga
tidak perlu menggunakan semuanya. Assertion yang sering digunakan diantaranya adalah
assertArrayHasKey (), assertEquals (), assertFalse (), assertSame () and assertTrue ().
2.4. Latihan
Introduction
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan FirstTest.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
phpunit FirstTest.php
17
4. Dalam file FirstTest.php, rubah nilai $foo menjadi false.
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan StackTest1.php dengan isi sebagai berikut
<?php
//Using the @depends annotation to express dependencies
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
18
/**
* @depends testEmpty
*/
public function testPush(array $stack)
{
array_push($stack, 'foo');
$this->assertSame('foo', $stack[count($stack)-1]);
$this->assertNotEmpty($stack);
return $stack;
}
/**
* @depends testPush
*/
public function testPop(array $stack)
{
$this->assertSame('foo', array_pop($stack));
$this->assertEmpty($stack);
}
}
?>
phpunit StackTest1.php
19
5. Jalankan kembali dalam cmd, phpunit StackTest1.php
2.5. Tugas
Buatlah laporan untuk praktikum modul 2 dengan baik dan benar.
20
Praktikum 3 Menjalankan Pengujian dalam PHPUnit 2
Tujuan Pembelajaran
Pendahuluan
3.1. Latihan
Data Provider
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan DataTest.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
21
3. Kemudian jalankan testcase dengan cara menuliskan instruksi sebagai berikut
phpunit DataTest.php
22
3.2. Tugas
Buatlah pengujian untuk operasi pengurangan seperti contoh latihan diatas.
23
Praktikum 4 Menjalankan Pengujian dalam PHPUnit 3
Tujuan Pembelajaran
4.1. Pendahuluan
Tabel berikut menunjukan method yang tersedia untuk digunakan dalam melakukan
pengujian output.
Method Meaning
void expectOutputRegex(string $regularExpression) Set up the expectation that the output
matches a $regularExpression.
void expectOutputString(string $expectedString) Set up the expectation that the output is
equal to an $expectedString.
bool setOutputCallback(callable $callback) Sets up a callback that is used to, for
instance, normalize the actual output.
string getActualOutput() Get the actual output.
4.2. Latihan
Testing Output
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan OutputTest.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
class OutputTest extends TestCase
{
public function testExpectFooActualFoo()
{
$this->expectOutputString('foo');
print 'foo';
}
public function testExpectBarActualBaz()
{
$this->expectOutputString('bar');
print 'baz';
}
}
?>
24
2. Buka CMD, kemudian arahkan directory ke bin phpunit
phpunit OutputTest.php
25
Error Output
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan DiffTest.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
class DiffTest extends TestCase
{
public function testEquality() {
$this->assertSame(
[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 6]
);
}
}
?>
phpunit DiffTest.php
26
4. Dalam file DiffTest.php, rubah nilai dari Array yang kedua (line 9) menjadi
sebagai berikut.
27
4.3. Tugas
Buatlah suatu class testing untuk menguji apakah tampilan yang dihasilkan
berupa “Universitas Jenderal Achmad Yani” (seperti pada latihan 1), dan satu
Array berisi susunan NIM Anda (seperti pada latihan 2), dan test pertama
menjadi dependencies untuk test berikutnya.
28
Praktikum 5 Stub Test
Tujuan Pembelajaran
Pendahuluan
5.1. Latihan
Stub
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan MyClass.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
class MyClass
{
public function MyMethod()
{
return "hello";
}
}
?>
2. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan StubTest1.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
include "MyClass.php";
class StubTest1 extends TestCase
{
public function testStub()
{
$stub = $this->createMock(MyClass::class);
$stub->method('MyMethod')->willReturn("foo");
$this->assertSame("foo", $stub->MyMethod());
}
}
?>
29
4. Kemudian jalankan testcase dengan cara menuliskan instruksi sebagai berikut
phpunit StubTest1.php
5.2. Tugas
Buatlah laporan untuk praktikum modul 5 dengan baik dan benar.
30
Praktikum 6 Assertions
Tujuan Pembelajaran
Pendahuluan
6.1. Latihan 1
Testable Class
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan Testable.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
class Testable
{
public $trueProperty = true;
public $resetMe = true;
2. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan TestableTest.php dengan isi sebagai berikut
31
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
include "Testable.php";
phpunit TestableTest.php
32
True or False
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan TestableTest1.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
include "Testable.php";
phpunit TestableTest1.php
33
MathMagic
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan TestableTest2.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
include "Testable.php";
34
{
$valueOne = 4;
$valueTwo = 2;
$this->assertGreaterThan($valueTwo,$valueOne);
}
public function testLessThanOrEqual()
{
$valueOne = 4;
$valueTwo = 2;
$this->assertLessThanOrEqual($valueTwo,$valueOne);
}
public function testAreObjectsEqual()
{
$testTwo = new Testable();
$this->_testable->resetMe = false;
$this->assertEquals($this->_testable,$testTwo);
}
}
?>
phpunit TestableTest2.php
35
String
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan TestableTest3.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
include "Testable.php";
36
$this->assertStringMatchesFormatFile('/path/to/textfie.txt','foo');
}
}
?>
phpunit TestableTest3.php
37
6.2. Latihan 2
Mix Test Class
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan TestableTest4.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
include "Testable.php";
}
?>
phpunit TestableTest4.php
38
assertArrayHasKey()
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan ArrayHasKeyTest.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
class ArrayHasKeyTest extends TestCase
{
public function testFailure()
{
$this->assertArrayHasKey('foo', ['bar' => 'baz']);
}
}
?>
phpunit ArrayHasKeyTest.php
39
assertArrayHasKey()
1. Buatlah file baru di folder bin pada phpunit yang sebelumnya telah diinstal. Beri
nama dengan ArrayHasKeyTest.php dengan isi sebagai berikut
<?php
namespace PHPUnit\Framework;
use PHPUnit\Framework\TestCase;
class ArrayHasKeyTest extends TestCase
{
public function testFailure()
{
$this->assertArrayHasKey('foo', ['bar' => 'baz']);
}
}
?>
phpunit ArrayHasKeyTest.php
40
6.3. Tugas
Buatlah laporan untuk praktikum modul 6 dengan baik dan benar.
41