Text
Staging, sit dan uat
Halo semuanya :)
Apa kabar semuanya? Minggu-minggu terakhir kuliah selalu membuat batin lebih sakit hahaha... jadi semoga kalian baik-baik saja ya.
Singkat aja nih, aku mau bahas staging, sit dan uat.
Dalam proyek ppl saya, staging menggunakan 192.168.90.80 yang diambil dari branch develop
sit
uat
staging : http://www.commonplaces.com/blog/web-development-what-is-staging/
0 notes
Text
Epic Things in Atom
I love her, Atom by Atom, one burning cell at a time - Kami Garcia
I’d like to share how I turned to love this text editor, Atom.If you are a beginner developer who still figure out which text editor you should use, I would like to recommend Atom.
You could visit: Atom ~ and install it
In Atom there are a loooott of packages that can help you to gain productivity when you code.
You can check your Settings in File > Settings
Among all packages in Atom, I’d like to recommend few package
1. Atom-beautify
This gorgeous package is made to beautify the code as the standard convention, indentations, and so on.
2. file-icons
This is to make the icons in the tree folder looks epic!
3. Minimap
This made the Atom looks like SublimeText
4. Hightlight-selected
5. Dockblockr
6. Emmet
7. linter
8. pigments
9. html-preview
10.
And many others...
There are also installation for theme: syntax and UI.
I know it doesn’t look like so much useful since idk maybe some of you may already know. hehehe
Have fun coding!
0 notes
Text
API
Halo-halo.. mau nulis lagi nih. Tapi sebetulnya banyak juga tulisan sebelumnya yang belum selesai hehehe. Karena sebetulnya saya nulis sambil belajar jadi kalau belajarnya ga selesai ya nulisnya juga ga selesai huehehehe.
Saat ini saya mau coba share tentang API. Jadi API (Application Programming Interface) merupakan suatu “penghubung” yang memungkinkan suatu aplikasi untuk berinteraksi dengan aplikasi lainnya dan berbagi data. Contoh pemakaian API diproject saya yaitu PPLA2 ini adalah saat login, jadi aplikasi ini mendapatkan data mahasiswa yang login dari sso.
Oiya ada juga yang namanya RESTful API, nah ini merupakan implementasi dari API, semacam software arsitektur yang berjalan dengan teknologi WWW.
Komponen RESTful API terdiri dari :
desain url : RESTful API diakses menggunakan teknologi www sehingga penamaan dan struktur url yang konsisten akan menghasilkan API yang baik
http verbs : method yang biasa digunakan adalah GET dan POST namun RESTful API juga dapat menggunakan PUT dan DELETE
http status code : setiap pemanggilan menggunakan www kita akan mendapatkan status code. secara umum status code ada 3 yaitu 2xx (Permintaan sukses), 4xx (Oops, terdapat kesalahan pada sisi client), 5xx (Oops, terdapat kesalahan pada sisi server)
format response : dulu memakai xml namun pada tahun 2011 penggunaan xml menurun drastis dan digantikan dengan JSON karena json lebih mudah diurai dan prosesnya cepat serta data trasnport lebih kecil
Versioning : versioning dibutuhkan agar pengguna tetap dapat menggunakan API ketika API tersebut sedang diupdate
referensi : http://slides.com/ferrisutanto/mengenal-restful-api#/
0 notes
Text
Sprint 2 - Restart everything!
Long time no see, pals!
Here I’m again want to tell you about thing I have done. Wait, wait. What have you done exactly, Ai? Well, I have done nothing big. So Sad :(
so, I’m not gonna tell you about things i have done in this post, cause i just want to curhat in here hehe.
These two weeks is a real busy week for me. After recovering from my illness, I have like a really big amount of things to do because i wasted almost two weeks because of my illness :(
OH WELL, i want to tell you about some-very-important-for-me-but-not-to-you I Can’t push and pull my git using UI’s internet connection!!!!!! I spent my whole time in UI, then how can I do my ppl-related-things without push and pull to and from my team’s repo?!?! Laugh at me, human! :((A n d this is the end of this post. i just want to curhat about my illness and my-almost-useless-git! heheBye guys. have a good day!
0 notes
Text
Fitur -- Login using OAuth UI
Halo-halo... Apa kabar semuanya? Post kali ini akan lebih ke teknis nih, semoga penjelasannya cukup jelas yaa... :”)
Jadi sistem yang kami buat ini kan adalah pemira ui (pemilihan raya universitas indonesia) yang artinya pengguna dari sistem ini pun adalah masyarakat ui. Masyarakat ui biasanya mempunyai akun juita. Nah akun juita ini digunakan untuk masuk ke dalam sistem kami.
Berikut tampilan awal ketika ingin login ke dalam sistem kami
Untuk menggunakan OAuth, pertama kamu harus menambahkan kode berikut pada file composer.json yang ada didalam project laravel kamu ya..
"require " : {
...
"prakashdivyy/laravel-oauth2-ui": "*",
...
}
Setelah itu lakukan composer update. Jika sudah kamu harus menambahkan kode berikut ke dalam providers array didalam config/app.php
'providers' => [
...
PrakashDivy\Laravel\OAuth2\UI\UIServiceProvider::class,
..
]
Selanjutnya tambahkan aliases, masih didalam config/app.php
'aliases' => [
...
'UI' => PrakashDivy\Laravel\OAuth2\UI\Facades\UI::class,
..
]
Terakhir untuk setupnya kamu dapat jalankan kode berikut
php artisan vendor:publish
Setelah settingannya selesai maka aku akan menjelaskan contoh penggunaanya pada project kami
sebelum lanjut ke koding terlalu dalam saya akan jelaskan sedikit yaa, setelah kita berhasil login kita akan mendapatkan sebuah token, jika tidak ada token maka kita dinyatakan belum login atau sudah logout.
Nah ini langsung ke kodenya yaa..
Pertama kita bikin controllernya dlu ya, misalkan namanya LoginController.php
<?php
namespace App\Http\Controllers;
use Validator; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\ThrottlesLogins; use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Session; use PrakashDivy\Laravel\OAuth2\UI\Facades\UI; use App\Admin;
class LoginController extends Controller { public function index() { return view('login'); //Menampilkan view form login seperti gambar diatas }
public function store(Request $request) {
$username = $request['username']; $password = $request['password']; $accessToken = UI::getAccessToken('password',[ 'username' => $username, 'password' => $password ]); //Jika berhasil login maka kita mendapat token
$admin=Admin::where('name', 'ilike', $username)->count();
if($admin == 1){ $request->session()->put('token',$accessToken); return redirect()->to('show'); } else { echo "Admin tidak ditemukan"; }
if(!$request->session()->has('token')) { return abort(400, 'Authorization code not available'); }
}
public function logout (Request $request) { if($request->session()->has('token')) {
$request->session()->flush(); //Untuk logout dari sistem maka kita dapat menghapus token yang ada if(!$request->session()->has('token')) { return redirect()->to('/'); }
}
}
}
Setelah controllernya sudah selesai, maka kita dapat membuat routenya
Route::get('/', 'LoginController@index'); Route::post('/login','LoginController@store'); Route::get('/logout', 'LoginController@logout');
Setelah route selesai maka kita dapat membuat viewnya. Untuk viewnya dibebaskan kepada kalian. Intinya hanya membuat form biasa saja seperti dibawah ini
<div class="row center"> <form class="form" role="form" method="POST" action="{{ url('/login') }}"> {{csrf_field()}} <div class="input-field col s12"> <input type="text" class="validate" name="username"> <label for="username">Username</label> </div> <div class="input-field col s12"> <input type="password" class="validate" name="password"> <label for="password">Password</label> </div> <button type="submit" class="btn btn-flat red accent-3 waves-effect white-text right" name="submit">Login</button> </form> </div>
Nah sekian proses implementasi login menggunakan OAuth UI. Semoga bermanfaat :)
0 notes
Text
Unit Testing
Kali ini kita akan membahas mengenai unit testing. Apakah unit testing itu? Mengapa di dalam TDD kita diharuskan mengimplementasi unit testing?
Unit testing adalah komponen dari tes-driven development (TDD), metodologi pragmatis yang mengambil pendekatan teliti untuk membangun produk dengan cara pengujian terus-menerus dan revisi. Test-driven development mengharuskan kita membuat unit test yang gagal terlebih dahulu. Kemudian menulis kode dan refactor aplikasi sampai tes berhasil. TDD biasanya menghasilkan code base eksplisit dan diprediksi. Unit testing hanya melibatkan karakteristik yang penting untuk kinerja unit yang diuji. Hal ini mendorong kita untuk memodifikasi source code tanpa kekhawatiran segera tentang bagaimana perubahan tersebut mungkin mempengaruhi fungsi unit lain atau program secara keseluruhan. Setelah semua unit dalam sebuah program telah bekerja dengan cara yang paling efisien dan bebas dari kesalaha, komponen yang lebih besar dari program dapat dievaluasi dengan cara pengujian integrasi. Unit testing memang memiliki learning curve yang curam. Tim pengembangan perlu belajar apa unit testing, bagaimana untuk menguji unit, apa yang harus unit test dan bagaimana menggunakan perangkat lunak otomatis untuk memudahkan proses secara terus-menerus. Manfaat besar unit testing adalah bahwa sebelumnya masalah diidentifikasi, semakin sedikit compound error terjadi. Sebuah compound error adalah sesuatu yang tampaknya tidak melanggar apa-apa pada awalnya, tapi akhirnya bertentangan dengan hal lain seiring berjalannya waktu dan menghasilkan masalah.
0 notes
Text
Agile
Halo halo... sekarang aku mau membahas agile manifesto dan agile principles. Sebelumnya aku mau sharing dulu nih mengenai agile, jadi agile itu salah satu metode software development. Lalu apa istimewanya agile method ini? Agile method sebetulnya kumpulan dari beberapa metodologi pengembangan perangkat lunak yang berfokus pada pengembangan software dalam jangka pendek dimana diharapkan para developer dapat beradaptasi dengan cepat akan perubahan permintaan mengenai software yang sedang dikembangkan.
Agile software development mempunya value yang dijelaskan dalam Agile Manifesto dan diimplementasikan dalam 12 prinsip.
Agile Manifestio mempunyai 4 nilai :
Individuals and interactions -- Interaksi antar anggota tim sangatlah penting karena tanpa adanya interaksi yang baik maka software yang dibuat bisa saja tidak selesai dengan baik.
Working software -- software yang berfungsi lebih penting daripada yang lainnya, dalam hal ini dokumentasinya. Software yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap karena harus ada software yang dideliver kepada klien
Customer collaboration -- atau biasa dikenal kolaborasi dengan klien, kolaborasi dengan klien sangat penting karena dalam proses software development akan terus ada fungsi-fungsi perangkat lunak yang harus dibicarakan kepada klien mengenai perkembangannya. Sehingga kolaborasi denga klien sangatlah penting.
Responding to change -- Agile development methods berfokus terhadap kecepatan tim menangani masalah apabila klien menginginkan suatu perubahan pada saat pengembangan proses perangkat lunak
Selanjutnya akan aku jelaskan mengenai Agile Principles. Ada 12 prinsip dalam agile software development method yaitu:
Memuaskan klien dengan menghasilkan software yang baik dengan cepat dan kontinu
Memanfaatkan perubahan untuk keuntungan kompetitif klien
Menghasilkan software yang yang bekerjanya secara kontinu
Orang bisnis dan developers harus berkerjasama sepanjang project
Memberikan support serta kepercayaan kepada anggota tim
Komunikasi yang paling efektif adalah tatap muka / langsung
Software yang bekerja dengan baik merupakan ukuran kemajuan yang utama
Menggalakkan pengembangan berkelanjutan. Sponsor-sponsor, pengembang-pengembang, dan pengguna-pengguna dapat mempertahankan kecepatan tetap secara berkelanjutan.
Attention yang kontinu terhadap keunggulan teknis dan design yang baik akan meningkatkan Agility
Kesederhanaan adalah hal yang penting
Arsitektur, kebutuhan dan rancangan software yang terbaik muncul dari tim yang dapat mengorganisir diri sendiri
Secara berkala, developers harus berefleksi tentang bagaimana menjadi lebih efektif yang nantinya harus menyesuaikan dengan pekerjaan mereka
Nah gitu deh kira-kira agile manifesto dan agile principle. FYI aja, PPL kami menggunakan metode agile yaitu SCRUM.
0 notes
Text
Clean Code
Halo teman-teman... :)
Jadi hari ini mau cerita tentang clean code. Clean code sendiri pengertiannya banyak banget, tiap orang beda-beda. Dari sumber yang saya baca, penulis tersebut menuliskan pengertian clean code dari Bjarne Stroustrup (profesor di bidang ilmu komputer di Texas A&M University). Menurut beliau clean code adalah...
I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled optimizations. Clean code does one thing well.
Nah sudah mulai ada bayangan kan clean code itu yang seperti apa? Lalu kenapa harus clean code? toh kadang tanpa pusing memikirkannya pun program kita bisa tetap jalan. Jadi setelah googling, biasanya clean code itu digunakan di dalam metode pengembangan software yang adaptif, dimana kebutuhan sistem bisa selalu berubah dan bertambah. Salah satu metode pengembangan software yang menggunakan clean code adalah agile methodology.
Masih ga nangkep alasan menggunakan clean code? Nah biasanya alasan menggunakan clean code adalah untuk komunikasi dan kolaborasi. Nah loh hubungannya sama pembuatan software apaan?
Pernah kebayang ga sih in real life tuh software development jarangggggg banget dilakukan oleh seorang diri makanya biasanya dikerjakan oleh tim. Bisa aja dalam satu module dikerjakan oleh banyak orang sehingga jika tiap orang punya standar code yang berbeda-beda maka kemungkinan program tersebut akan bug pasti besar (notes: saya sudah mengalami sendiri) Kalau menerapkan clean code kan effort yang dikeluarkan akan lebih sedikit jika ingin memodifikasi sesuatu. Contoh kita tidak sulit menjelaskan tiap kode kepada programmer lain. Jelas kan kalau alasan menggunakaan clean code itu untuk komunikasi dan kolaborasi?
Syarat sebuah code dikatakan clean itu apa sih? disini aku coba sebutin beberapa ya... sisanya bisa explore lebih jauh :)
Low Coupling and High Cohession -- sebuah kode dibuat seminim mungkin depedensinya dengan yang lain. Jadi jika ada yang salah maka bagian yang salah saja yang harus diperbaiki. Tetapi tingkat kohesi didalam sebuah class harus tinggi.
Class-class kecil -- Jangan membuat class atau fungsi yang terlalu panjang karena semakin panjang classnya kemungkinan bugsnya lebih tinggi dan bisa juga tingkat kohesinya menjadi rendah
DRY (Don’t Repeat Yourself) -- Hindari duplikasi. Jangan membuat class atau fungsi yang sama dalam sebuah code
Nama yang sesuai -- Berikan nama variable, fungsi dan class yang sesuai dengan tujuannya
Konsisten -- Mengikuti konvensi yang sudah ditetapkan. Misal aturan penamaan jika lebih dari satu kata akan seperti apa, nama table dalam database, satu indentasi sama dengan berapa spasi dll
Tanpa komentar -- Code yang baik biasanya tanpa komentar pun pasti dapat dipahami.
Untuk gambaran clean code vs dirty code saya lampirkan beberapa contoh dari internet hehe
sumber : https://www.smashingmagazine.com/2008/11/12-principles-for-keeping-your-code-clean/
0 notes
Text
Sprint 1 : Week 2 & 3 - Continuous Integration
Halo again hehehe! Meet me again and again here.
Well, in this post, i’m going to tell you about the continuous integration. well, what is continuous integration?
Our team use gitlab ci for doing the integration!
I have made the script for continuous integration, delivery, and development. but somehow, i failed as usual. So sad! :(
0 notes
Text
Week 4 and 5 - So Many Chores, So Little Work
Blog saya baru diupdate hari ini karena sebuah alasan, yaitu progres yang amat kecil dari 2 minggu tersebut. Selama 2 minggu tersebut progres saya masih seputar backlog chores yang diamanahkan kepada saya, yaitu menyiapkan environment DBMS untuk stagging di server dan menyiapkan script provisioning server, deployment, siap install dan run on stagging server.
Setelah mendapatkan server kosong saya menyiapkan environment server tersebut dengan menginstall postgre ke dalam server dan membuat databasenya. Serta menginstall nginx untuk web server. Setelah itu semua, saya menganggap task menyiapkan environment DBMS untuk stagging sudah selesai, tinggal menunggu review dari rekan-rekan.
Saya pun beralih ke task selanjutnya, menyiapkan script provisioning server, deployment, siap install dan run on stagging server. Di sini terjadi kendala, karena task ini bersinggungan dengan berbagai task lainnya yang berhubungan dengan script. saya membuat script deployment dan tanpa disengaja rekan saya juga mengerjakan hal yang sama, terjadilah conflict, dan pada akhirnya diputuskan untuk menggunakan kode yang digunakan rekan saya tersebut. Hingga saat ini pengembangan script tersebut masih dilaksanakan.
0 notes
Text
Sprint 1 : Week 2 & 3 - Server Configuration
Halo again pals!
Here I’m again telling you guys about my progress during these weeks. This time, I’m going to tell you about server configuration that i have done. Here we go again!
Server
In this project, Prakash as product owner has given my team 3 servers. One for staging, one for UAT, and one for SIT.
My first question was, ‘what’s the difference between them, huh?’
So, i was searching all over the internet, and asking my friend around bout the differences between those three. And here’s my conclusion:
Staging - for development
SIT - ....
UAT - .....
But, the next question appeared, ‘how to access those three?’
OpenVPn
Prakash told us that to access the server he gave us, we must access ui vpn before. And he also told us to use openvpn to access ui.vpn.
So I downloaded openvpn from its website, and viola, the following pic is what i got that time :
Access server via Putty
Since I’m windows user, i have to open putty and ssh to server every time i want to access it.
Here’s the pic of the staging server :
Those servers were basically empty. So, we have to configure them.
Server Configuration
So, the first thing that i did on the staging server was installing this and that.
I installed php(and all the files relate to it) , postgresql, nginx, composer, and others basic staff. Well, that was not very easy honestly because i wasn‘t very good at using debian jessie. So i had to search all over the internet again and again.
And i forgot to screen shoot my works:((
After installing some basic programs, i set the database environment because our team need it to make the script works.
Here’s what i have done :
Try to connect gitlab and server
I tried my best to connect my gitlab and staging server, but somehow i failed. Because there was a lack of knowledge i had and i followed the wrong tutorial (no, the tutorial is right, i was wrong). So sad because i spent so many times for nothing :((
Well, that’s what i have done with the servers. Thank you. Let’s meet on the next post about gitlab-ci.
Bye. Have a nice day.
Yours,
Ai
0 notes
Text
5# Understanding Agile
I think Agile Software Development is a huge discovery and cant gratitude more that I don't live in the era before Agile comes. In addition, our PPL project is also implement Scrum .
Agile Software development has its value which explained by Agile Manifesto and implemented through 12 principles.
Agile Manifesto has 4 core value
Individuals and interactions
Working Software
Customer Collaboration
Responding to change
You can explore more in this link.
Agile 12 Principles
You also can explore more in this link.
However, you can check #Ai post about this. She already wrote this topic down.
Subway Map to Agile Practices
When Ai say that one of Agile Practices is Scrum. I just realized that like “Oh.... it is”. hehehe.
To understand more you can see this

Well, it’s quiet blurred so, for more high resolutions picture, you can click this link. From the subway map above, we can see that Scrum Line is the red line.
Reference:
https://www.agilealliance.org/agile101/subway-map-to-agile-practices/
0 notes
Text
4# Unit Test: F.I.R.S.T Principles
Last Thursday, we have this lecture from partner in industry, KMKLabs. I found myself interested when the instructor explained about Clean Code. So, i tried to browse in well-known massive search engine, Google. There, I found about F.I.R.S.T Principles. It takes milliseconds for me to just click it out and read the page.
It is a principles for high standard unit testing. In Clean Code book, it will be detailed in chapter 9.
F.I.R.S.T stands for
Fast
Isolated/Independent
Repeatable
Self-Validating
Well, let me explain little that I read and understand.
FAST
Quick, negation of slow, yap! Fast! The test must be fast.
If you hesitate to run the tests after a simple one-liner change, your tests are far too slow. Make the tests so fast you don't have to consider them.
I understand what they mean fast is because the test isn't running for only few functions. There will be tons of functions that need to be tested. However, I am amazed that the test need to run faster than a second, faster than a half second or quarter-second. It’s quite fast then..
ISOLATED/INDEPENDENT
A test method should do the 3 As: stands for Arrange, Act, and Assert.
Arrange: The data used in a test should not depend on the environment in which the test is running. All the data needed for a test should be arranged as part of the test.
Act: Invoke the actual method under test.
Assert: A test method should test for a single logical outcome, implying that typically there should be only a single logical assert. A logical assert could have multiple physical asserts as long as all the asserts test the state of a single object. In a few cases, an action can update multiple objects
Each test class name and test method name should notified what is wrong and where. So, the tests isolate failures. If it isn't, then it should be replaced by smaller and more-specific test.
REPEATABLE
The test has to be able to be run repeatedly without any intervention. It also may not depend on any data in the environment in which it is run because those resources might not always be available.
SELF-VALIDATING
The test needs to inspect fail or pass by itself. So there is no manual inspection needed to check whether the test has passed or failed.
TIMELY
This is how TDD should be done. The test needs to be made immediately before the function has been made. It is like what TDD taught, Test Driven Development.
My team has not implemented this, yet we are working on it.
References:
http://agileinaflash.blogspot.co.id/2009/02/first.html
https://github.com/ghsukumar/SFDC_Best_Practices/wiki/F.I.R.S.T-Principles-of-Unit-Testing
0 notes
Text
The Importance of Testing
Halo halo... Hari ini mau cerita soal Testing nih. Mulai dari tipenya dulu ya..
Tipe dari testing:
White box testing
Unit Testing
Incremental integration testing
Integration testing
Functional testing
System testing
End-to-end testing
Sanity testing
Regression testing
Acceptance testing
Load testing
FYI saja, mungkin kalau googling mengenai tipe testing pasti banyak banget nih yang beda-beda, kalau menurut ku sih balik lagi ke kebutuhan masing-masing ya. List diatas pun bukan berarti semuanya dibutuhkan oleh team ppl ku. Jadi jangan diambil pusing hehe.. Kamu bisa cari tau lebih lanjut disini
Setelah tau tipenya, kita juga harus tau kenapa testing itu penting dilakukan.
Saat ini perkembangan pengguna teknologi sangatlah cepat dan mereka menginginkan produk (dalam hal ini software) yang release dan updatenya juga cepat, hal ini pun dibarengi dengan ketidakinginan menggunakan software yang defected. Jelas lah ya siapa juga yang mau menggunakan software yang masih ada bugnya. Tapi bukan berarti suatu software bebas bug, tapi meminimalkan bug yang ada. Nah untuk meminimalkan bugnya berarti kita harus tau ada bug atau tidak. Untuk tau ada atau tidak itu berarti harus TESTING. eaaa...
Nah apasih keuntunganya software testing di Software Development Life Cycle (SDLC) :
Testing harus di lakukan diawal tahap SDLC, karena cost untuk fixing bugnya lebih besar jika tidak dilakukan di awal proses
Saat ini, kompetisi di “pasar” sangat tinggi, hanya produk yang kulitasnya bagus yang dapat bertahan. Sehingga untuk memastikan suatu produk memiliki kualitas yang tetap baik testing merupakan kunci dari SDLC
Membuat software yang bebas dari bug itu tidak mungkin tapi melakukan testing itu penting
Nah segitu aja dulu ya.. Nanti aku akan coba lanjutkan lagi :)
0 notes
Text
Sprint 1 : Week 2 + Week 3 - TDD and Agile
This week is my 3rd week in this very first sprint, but i think that i have not been progressing much:( Let me tell you about this and that i have been doing lately. Here we go!
In this post, I’m going to tell you guys about Test Driven Development a.k.a TDD and agile.
Test Driven Development
What is TDD? a new kind of cookie? name of a cake? he. crunchy hehehe.
"Test-driven development" refers to a style of programming in which three activities are tightly interwoven: coding, testing (in the form of writing unit tests) and design (in the form of refactoring). (https://www.agilealliance.org/glossary/tdd/)
TDD process:
Add a Test
Run all tests and see if the new one fails
Write some code
Run tests and Refactor code
Repeat
Agile
Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing and cross-functional teams. Agile methods generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.
Agile manifesto
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Costumer collaboration over contract negotiation
Responding to change over following a plan
Agile Principle
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity--the art of maximizing the amount of work not done--is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
and one of many agile type is SCRUM that we use here in PPL.
0 notes
Text
Unit Testing dan Code Coverage 2.0
Halo halo... Jadi ternyata sudah seminggu dari terakhir ngeblog mengenai code coverage. Sebetulnya dalam seminggu ini bukan berarti aku ga ngapa-ngapain. TAPIIII.... aku banyak melakukan kesalahan, contohnya salah baca referensi yang akhirnya malah menyesatkan :”
Pelajarannya adalah : Jika sudah error berkali-kali, coba tanya ke lebih banyak teman! jangan hanya googling! :””
0 notes
Text
Week 4-5, So many time, so little achivements
Dua minggu lamanya saya blm update blog ppl, dan dalam 2 minggu tersebut sudah lumayan banyak hal yang dilakukan namun ttp blm masuk pada tahap produksi.
Hal-hal yang sudah saya lakukan dalam 2 minggu terakhir masih dapat dikategorikan dalam bagian backlog chores lagi, dimulai dengan menginstall composer untuk laravel, melakukan tutorial sederhana gitlab-ci yang diberikan oleh scele, menginstall nginx serta memperdalam bagian script yaml untuk run test nanti, selain waktu dan jadwal, hal yang saya lakukan masing-masing memiliki kendala sendiri. (kecuali composer, sebuah berjalan dengan lancar)
Menginstall composer berjalan dengan cukup lancar dan sekarang dalam environment local saya sudah ada composer yang terinstall di dalamnya

Berikut merupakan bukti composer yang sudah terinstall bersama versinya.
Setelah menginstall composer tersebut, saya mulainya memperdalam bagian sript run test yang merupakan task yang saya dapat, hal pertama yang saya lakukan adalah belajar script yang akan dipakai nanti untuk run test nya, dan script yang akan dipakai nanti adalah script yaml, karena kita menggunakan gitlab yang menggunakan yaml sebagai script runnya.
Script run yaml terserbut juga serbaguna, tidak hanya untuk run deployment hasil yang sudah di push, namun juga dapat meng-run unit testing yang nanti akan dibuat.

Pada screenshot diatas merupakan hasil dari tutorial yml yang diberikan dari scele, pada awal2 tutorial terdapat kesalahan yang sangat basic namun saya blm ketahuim yaitu yaml tidak membolehkan pemakaian tab pada scriptnya, namun saya memakainya sehingga error yang dikeluarkan merupakan syntax error, dan saya membutuhkan 2 kali run test untuk menyadarinya :D setelah problem itu selesai selebihnya tidak ada error yang menonjol, hanya common error seperti salah push dan dsb.
Setelah itu teman saya mengontak saya memberitahu bahwa dia tidak sengaja menginstall apache pada server yang seharusnya adalah nginx, dia sudah mencoba untuk menghapusnya namun tak bisa, jadi dia meminta bantuan. Saya mencoba membantu menghilangkan apache dari server namun ternyata juga tidak bisa, hal ini dikarenakan ternyata ada file html apache yang masih ada dalam sistem sehingga terlihat seperti apachenya masih berjalan, padahal tidak, setelah menghapus manual file yang menyebabkan masalah sepele tadi penginstalan nginx berjalan dengan lancar.
Lalu dikarenakan pada akhir minggu keempat terdapat acara keluaraga yang sangat penuh jadwalnya, saya terpaksa menunda pembelajaran script yaml yang lebih lanjut. Namun setelah acaranya selesai saya melakukan pembelajaran yaml, meskipun hanya sedikit hal ini penting karena yang dipelajari merupakan yang akan digunakan dalam proyek nanti, ini adalah link web yang saya pelajari;
https://laracasts.com/discuss/channels/testing/laravel-ci-testing-with-gitlab
didalam web itu diberitahu bagaimana membuat script yml unutk php, meskipun begitu blm semua yang ada didalam web tersebut saya mengerti.
Tidak banyak hal yang telah dilakukan oleh saya dalam waktu kurun 2 minggu ini, apalagi soal implementasi. Blm terlaksana karena jadwal yang sangat padat. Namun bukan berarti tidak terlaksana. Pada post blog selanjutnya saya akan menuntaskan yaml yang menjadi script run test proyel ppl saya, sehingga sudah ada implementasi nyata dan bagian produksi sudah dapat dimulai, aslinya saya ingin mengerjakan task saya yang membuat halaman login, namun karena blm ada branding yang dilakukan jadi saya blm bisa melakukanya.
Sekian hal yang telah saya lakukan dalam 2 minggu, nantikan blog selanjutnya.
0 notes