Dynamic Blinkie Text Generator at TextSpace.net

Feedburner

I heart FeedBurner

Rabu, 30 Maret 2016

Materi awal react JS

React JS (Pengenalan)

ReactJS merupakan sebuah library dari facebook yang dapat digunakan untuk membangun antarmuka pengguna. Pada bagian ini kita akan mencoba menggunakan React untuk membangun aplikasi sederhana, untuk melihat konsep-konsep inti yang ditawarkan oleh React.
Sebelum mulai mencoba menggunakan React, beberapa prasyarat yang diperlukan yaitu:
  1. React Starter Kit untuk berbagai file dari React
  2. jQuery, sebagai library pendukung
Jika sudah mengambil kedua kebutuhan di atas, ekstrak React Starter Kit ke dalam sebuah direktori dan jalankan sebuah web server lokal (misal: http-server) di dalamnya. Seluruh eksperimen kita akan dijalankan dari direktori ini.

Hello, React!

Untuk memulai eksperimen, kita akan langsung mencoba membuat sebuah halaman sederhana dengan menggunakan ReactJS. Buat sebuah file dengan nama index.html di dalam direktori utama starter kit ReactJS, dan isikan dengan kode berikut:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
    <head>
        <script src="build/react.js"></script>
        <script src="build/JSXTransformer.js"></script>
    </head>
    <body>
        <div id="content"></div>
        <script type="text/jsx">
            React.render(
                <h1>Hello, world!</h1>,
                document.getElementById('content')
            );
        </script>
    </body>
</html>
Buka index.html pada browser dan lihat hasil eksekusinya.
_images/1-hello-world.png Apa yang baru saja kita lakukan?
Pada bagian <head> dari index.html kita memasukkan semua modul Javascript yang dibutuhkan oleh ReactJS. <div id="content"> merupakan elemen yang akan menampung antarmuka yang kita hasilkan dengan menggunakan ReactJS. React.render merupakan fungsi utama dari ReactJS, yang akan menggambarkan antarmuka yang kita buat. Fungsi ini menerima dua buah argumen:
  1. Argumen pertama merupakan bentuk dari keluaran antarmuka yang ingin kita buat. Perhatikan bagaimana kita menggunakan sintaks yang mirip dengan HTML di sini. Kode <h1>Hello, world!</h1> yang kita isikan bukan HTML, melainkan sebuah sintaks khusus yang bernama JSX. Perhatikan juga bahwa kita menggunakan <script type="text/jsx"> pada awal tag <script>. Penjelasan lebih lanjut mengenai JSX akan kita tambahkan nanti.
  2. Parameter kedua menerima elemen DOM tempat kita ingin menampilkan keluaran dari elemen pertama. Parameter ini cukup gamblang, dan kita hanya mengirimkan elemen DOM standar yang didapat dari document.getElementById di sini.
Bentuk awal dari penggunaan ReactJS memang cukup sederhana. Kita akan melihat bagaimana hampir keseluruhan pengembangan dari ReactJS berdasar dari model sederhana ini nantinya.

Kode ReactJS pada File Terpisah

Jika diinginkan, kita juga dapat memisahkan kode JSX kita pada sebuah file terpisah, layaknya kita memisahkan kode javascript biasa pada file lain. Misalnya, kita dapat membuat sebuah file src/helloworld.js dengan isi:
1
2
3
4
React.render(
    <h1>Hello, world!</h1>,
    document.getElementById('content')
);
Dan tentunya kita harus menggantikan tag script pada index.html menjadi:
1
<script type="text/jsx" src="src/helloworld.js"></script>
Dapat dilihat bagaimana tidak terdapat perbedaan mencolok antara penggunaan javascript dengan JSX, selain pada bagian di mana JSX dapat menerima kode yang mirip HTML di dalamnya.

Kompilasi JSX ke Javascript

Jika ingin, kita dapat juga melakukan kompilasi JSX ke javascript, yang pada kode sebelumnya dilakukan oleh JSXTransformer.js secara otomatis dan langsung. Kompilasi tentunya akan menghemat waktu eksekusi kode, karena browser dapat langsung membaca kode javascript yang kita berikan tanpa perlu melakukan transformasi dari JSX ke javascript lagi. Kompilasi dari JSX ke javascript dapat dilakukan dengan menggunakan tools yang telah disediakan ReactJS, melalui platform NodeJS.
Untuk dapat melakukan kompilasi, pertama-tama kita harus melakukan instalasi tools:
1
npm install -g react-tools
Kita kemudian dapat mengubah src/hellworld.js yang berisi JSX menjadi javascript dengan perintah:
1
jsx --watch src/ out/
Tentunya karena kita telah memiliki hasil kompilasi JSX, kita tidak lagi perlu menggunakan JSXTransformer.js pada HTML kita, dan kita juga dapat langsung memasukkan hasil kompilasi seperti berikut:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<!DOCTYPE html>
<html>
    <head>
        <script src="build/react.js"></script>
        <!-- Tidak ada lagi JSXTransformer.js -->
    </head>
    <body>
        <div id="content"></div>
        <script src="out/helloworld.js"></script>
    </body>
</html>
Perhatikan juga bagaimana kita tidak lagi memasukkan type="text/jsx" pada tag <script>. Isi dari out/helloworld.js sendiri adalah seperti berikut:
1
2
3
4
React.render(
    React.createElement('h1', null, 'Hello, world!'),
    document.getElementById('content')
);
Dengan hanya perbedaan pada bagian sintaks JSX saja. Tentunya kita juga dapat langsung menggunakan pemanggilan fungsi seperti yang ada pada file hasil kompilasi ini jika mau.

Pembangunan Elemen Antarmuka ReactJS

ReactJS merupaakn sebuah library yang berbasis komponen. Hal ini menyebabkan kita harus mengembangkan sebuah elemen antarmuka komponen demi komponen. Kita akan langsung melihat bagaimana kita dapat mengembangkan sebuah komponen ReactJS sederhana dengan menggunakan fungsi-fungsi yang ada.
Aplikasi percobaan yang akan kita bangun adalah sebuah todo list (TDL) sederhana, yang menyimpan catatan berbagai hal yang akan kita lakukan. Tampilan aplikasi sangat sederhana:
_images/2-todolist-fin.png TDL yang akan kita kembangkan ini akan terdiri dari tiga buah komponen, yaitu
  1. komponen yang menerima masukan pengguna untuk menambahkan data baru,
  2. komponen yang menampilkan semua tugas pengguna yang telah tercatat dalam sistem, dan
  3. komponen utama TDL yang menampung kedua komponen sebelumnya.
Jika diilustrasikan, pembagian komponen kita dapat dilihat seperti gambar berikut:
_images/3-todolist-comp.png Langsung saja, kita dapat mulai membangun elemen antarmuka TDL ini dari file HTML yang diperlukan. Buat sebuah file todo.html dan isikan dengan kode berikut:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Todolist React</title>
</head>
<body>
    <div id="content"></div>

    <script src="build/react.js"></script>
    <script src="build/JSXtransformer.js"></script>

    <script type="text/jsx" src="src/todolist.js"></script>
</body>
</html>
HTML yang dibuat cukup standar. Sekarang kita akan membuat file javascript yang dibutuhkan, yaitu src/todolist.js:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
var TodoForm = React.createClass({
    render: function () {
        return (
            <div className="todoForm">
                <label htmlFor="todoInput">
                    Tambahkan Data:
                </label>
                <input type="text" id="todoInput" className="inputForm" />
            </div>
        );
    }
});

React.render(
    <TodoForm />,
    document.getElementById("content")
);
Jalankan kode dan lihat apa yang kita dapatkan:
_images/4-todolist-form.png Apa yang baru saja terjadi?
Pertama, kita membuat sebuah komponen baru di dalam ReactJS dengan menggunakan method React.createClass. Method ini menerima sebuah parameter berupa objek yang dapat memiliki banyak method. Untuk contoh awal ini, kita hanya mengirimkan satu buah method: render. render merupakan method yang mengembalikan komponen React yang nantinya akan diubah menjadi HTML.
Elemen <div className="todoForm"> yang kita kembalikan bukan merupakan elemen DOM murni yang dikenali langsung oleh browser. Sebagai kode JSX, kita dapat menganggap elemen ini merupakan elemen DOM khusus milik React, yang nantinya akan diterjemahkan menjadi HTML. Perhatikan bagaimana untuk menambahkan kelas pada elemen kita menggunakan atribut className, bukan class seperti pada HTML standar. Hasil kembalian fungsi ini akan diubah menjadi HTML oleh React.render pada waktunya, dan hasil keluaran HTML ini relatif aman. React tidak menghasilkan string HTML sehingga kita terlindungi dari serangan XSS.
Setiap kali kita telah membuat komponen baru melalui React.createClass, kita kemudian dapat menyimpan komponen ini ke dalam sebuah variabel. Nama dari variabel ini kemudian akan menjadi komponen baru dari React, yang dapat digunakan sebagai markup buatan sendiri dalam JSX. Karena hal ini lah kita dapat langsung mengirimkan komponen yang baru kita buat sebagai <TodoForm /> ke React.render. Kita bahkan dapat menggunakan <TodoForm /> di dalam nilai kembalian komponen lainnya.
Untuk mengirimkan data ke dalam komponen React, kita juga dapat menambahkan atribut ke dalam elemen yang baru saja kita buat. Atribut ini dapat diisikan dengan nama apapun, selama tidak bertabrakan dengan atribut standar HTML. Pengisian atribut ke dalam elemen dilakukan dengan mengguankan pemisah {}, seperti berikut:
1
2
3
4
5
6
var judul = "Tambahkan Data";

React.render(
    <TodoForm teks={judul} />,
    document.getElementById("content")
);
Kita kemudian dapat mengakses nilai atribut ini dengan menggunakan properti props pada objek yang dikirimkan ke React.createClass:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
var TodoForm = React.createClass({
    render: function () {
        return (
            <div className="todoForm">
                <label htmlFor="todoInput">
                    { this.props.teks }
                </label>
                <input type="text" id="todoInput" className="inputForm" />
            </div>
        );
    }
});
Penggabungan beberapa komponen dalam React juga dilakukan dengan cukup natural: hanya dengan menggunakan komponen-komponen yang telah kita kembangkan layaknya sebuah tag HTML biasa. Pertama, mari kita buat komponen baru untuk menampung semua data yang ada:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// data boleh berasal dari mana saja.
// asumsikan data sudah didapatkan.
var data = [
    {content: "Beli Telur", tag: "belanja"},
    {content: "Tugas Javascript", tag: "kuliah"},
    {content: "This War of Mine", tag: "game"},
    {content: "Doraemon", tag: "film"}
];

var List = React.createClass({
    render: function () {
        var listData = this.props.data.map(function (data) {
            return (
                <li>{data.content}, tag: {data.tag}</li>
            );
        });

        return (
            <ul className="list">
                {listData}
            </ul>
        );
    }
});
Elemen List yang kita kembangkan melakukan sesuatu yang menarik. Data yang kita peroleh, berupa array dari objek, dipetakan menjadi array dari elemen <li> JSX pada variabel listData. listData kemudian langsung kita masukkan sebagai nilai literal di dalam <ul> yang dikembalikan, dan React secara otomatis mengetahui apa yang harus dilakukan dengan array <li>!
Penggabungan List dan TodoForm dapat dilakukan dengan cukup alami:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
var TodoList = React.createClass({
    render: function () {
        return (
            <div className="TodoList">
                <h1>Todo List</h1>
                <TodoForm teks="Tambahkan Data : " />
                <List data={this.props.data} />
            </div>
        );
    }
});

React.render(
    <TodoList data={data} />,
    document.getElementById("content")
);
Perlu dicatat bahwa sebuah elemen yang dikembalikan oleh komponen React hanya boleh terdiri dari satu elemen terluar. Hal ini berarti kode berikut:
1
2
3
4
5
6
7
8
var TodoList = React.createClass({
    render: function () {
        return (
            <TodoForm teks="Tambahkan Data : " />
            <List data={this.props.data} />
        );
    }
});
Tidak akan dapat berjalan dan memberikan kesalahan kompilasi. Untuk menanggulangi hal ini pastikan untuk selalu membuat elemen pembungkus agar hanya terdapat satu elemen terluar saja.

Mengambil Data Dari Server

Aplikasi web umumnya tentunya tidak menyimpan data di dalam array secara lokal seperti contoh pada bagian sebelumnya. Yang biasanya terjadi adalah pengambilan data dilakukan melalui sisi server. Untuk dapat melakukan hal ini, kita akan melakukan dua hal. Pertama, pada todo.html kita akan menambahkan jQuery:
1
2
3
4
5
<head>
    <script src="build/jquery-2.1.1.min.js"></script>
    <script src="build/react.js"></script>
    <script src="build/JSXTransformer.js"></script>
</head>
Kita kemudian perlu membuat file data.json yang isinya tidak berbeda jauh dengan variabel data yang kita buat sebelumnya:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[
    {
        "content": "Beli Telur",
        "tag": "belanja"
    },
    {
        "content": "Tugas Javascript",
        "tag": "kuliah"
    },
    {
        "content": "This War of Mine",
        "tag": "game"
    },
    {
        "content": "Doraemon",
        "tag": "film"
    }
]
Data pada data.json ini nantinya yang akan kita ambil dari sever. Selanjutnya, kita tidak akan langsung menggunakan variabel data lagi untuk mengisikan list. Kita akan mengirimkan URL data yang diperlukan saja.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
var TodoList = React.createClass({
    render: function () {
        return (
            <div className="TodoList">
                <h1>Todo List</h1>
                <TodoForm teks="Tambahkan Data : " />
                <List url={this.props.url} />
            </div>
        );
    }
});

React.render(
    <TodoList url="./data.json" />,
    document.getElementById("content")
);
Selanjutnya, kita perlu memperbaharui komponen List seperti berikut:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var List = React.createClass({
    loadData: function () {
        $.ajax({
            url: this.props.url,
            dataType: 'json',
            success: function (data) {
                this.setState({data: data})
            }.bind(this),
            error: function (xhr, status, err) {
                console.log(xhr);
                console.log(status);
                console.log(err);
            }.bind(this)
        });
    },
    getInitialState: function () {
        return { data: [] }
    },
    componentDidMount: function () {
        this.loadData();
    },
    render: function () {
        var listData = this.state.data.map(function (data) {
            return (
                <li>{data.content}, tag: {data.tag}</li>
            );
        });

        return (
            <ul className="list">
                {listData}
            </ul>
        );
    }
});
Terdapat beberapa method tambahan yang digunakan di sini. Pertama, method loadData merupakan method buatan kita untuk mengambil data dari server. loadData cukup sederhana, hanya melakukan pengambilan data melalui fungsi $.ajax dari jQuery.
Pada aplikasi kita sejauh ini, setiap komponen yang kita kembangkan menampilkan dirinya berdasarkan props yang kita kirimkan. Nilai props tidak dapat berubah isinya. props dikirimkan oleh komponen teratas, dan “dimiliki” oleh komponen tersebut. Karena hanya dikirimkan kepada objek, maka nilai props tidak dapat diubah. Jika ingin mengubah data untuk mendapatkan interaktifitas aplikasi, kita perlu menggunakan mekanisme khusus yang disediakan React. this.state merupakan komponen privat yang dapat diganti isinya dengan memanggil this.setState. Ketika nilai state diperbaharui, komponen React akan secara otomatis diperbaharui juga (fungsi render dipanggil kembali).
Fungsi render sendiri dituliskan sebagai fungsi deklaratif milik this.props dan this.state. Hal ini menjadikan komponen antarmuka selalu konsisten dengan interaksi pengguna.
Data dari this.state sendiri kita inisialisasi melalui fungsi getInitialState. Nilai yang dikembalikan getInitialState akan menjadi nilai awal dari this.state. Fungsi ini dijamin oleh React hanya akan berjalan sekali selama masa hidup komponen.
Method componentDidMount dipanggil secara otomatis oleh React ketika komponen digambarkan. Kita memanggil this.setState di sini agar data diperbaharui secara dinamis. Array data yang lama kita gantikan dengan data yang diambil dari server, dan komponen (UI) akan secara otomatis memperbaharui dirinya sendiri. Karena ini, kita dapat dengan mudah mengimplementasikan live update, dengan teknik polling:
1
2
3
4
componentDidMount: function () {
    this.loadData();
    setInterval(this.loadData, 2000);
},
Tentu saja kita dapat mengimplementasikan metode live update yang lebih baik, misalnya dengan menggunakan WebSocket di bagian ini.

Selasa, 29 Maret 2016

E-Book Jaringan Lengkap

Download di website:
http://sedotcode.blogspot.co.id/p/ebook-super-lengkap-jaringan-komputer.html

Minggu, 27 Maret 2016

Tutorial Android

Referensi pembelajaran android :
http://blogciqwan.com/belajar-android/video-tutorial-aplikasi-android-koneksi-mysql/

Kamis, 17 Maret 2016

Use Case Diagram

Use case diagram ialah model fungsional sebuah system yang menggunakan actor dan use case. Use case adalah layanan (services) atau fungsi-fungsi yang disediakan oleh system untuk penggunanya (Henderi et al, 2008).
Use Case Diagram menggambarkan fungsionalitas yang diharapkan dari sebuah system. Yang tekankan adalah “apa” yang dubuat system, dan bukan “bagaimana” sebuah use case menerangkan sebuah interaksi antar actor dengan system. Use case merupakan sebuah pekerjaan tertentu, misal :login ke system, meng-create sebuah daftar belanja, dsb. Seorang sebuah actor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan system untuk melakukan pekerjaan-pekerjaan tertentu.
Use Case Diagram dapat sangat membantu bila kita sedang menyusun requitment sebuah system, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada system. Sebuah use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsional yang common.
Sebuah use case juga dapat meng-exted use case lain dengan behavior-nya sendiri. Sementara hubungan generalisasi antar use case mennjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.

Deskripsi Use Case Diagram

  1. Sebuah use case adalah dimana system digunakan untuk memenuhi satu atau lebih kebutuhan pemakai.
  2. Use case merupakana awal yang sangat baik untuk setiap fase pengembangan berbasis objek, design testing, dan dokumentasi.
  3. Use case menggambarkan kebutuhan system dari sudut pandang di luar system.
  4. Use case menentukan nilai yang diberikan system kepada pemakainya.
  5. Use case hanya menetapkan apa yang seharusnya dikerjakan oleh system, yaitu kebutuhan fungsional system.
  6. Use case tidak untuk menentukan kebutuhan nonfungsional, misal : sasaran kerja, bahasa pemrograman, dsb.

Komponen-Komponen yang terlibat dalam Use Case Diagram :

  • Actor
Pada dasarnya actor bukanlah bagian dari diagram, namun untuk dapat terciptanya suatu use case diagram diberikan beberapa actor dimana actor tersebut menjelaskan seseorang atau sesuatu (sperti perangkat, system lain) yang berinteraksi dengan system. Sebuah actor mungkin hanya memberikan informasi inputan pada system, hanya menerima informasi dari system atau keduanya menerima dan member informasi pada system, actor hanya berinteraksi dengan use case tetapi tidak memiliki control atas use case. Actor digambarkan secara umum atau spesifik, dimana untuk membedakannya anda dapat menggunakan relationship.
Ada beberapa kemungkinan yang menyebabkan actor tersebut terkait dengan system antara lain :
  1. Yang berkepentingan terhadap system dimana adanya arus informasi baik yang diterima maupun yang dia inputkan ke system.
  2. Orang ataupun pihak yang akan mengelola system tersebut.
  3. External resource yang digunaka oleh system
  4. System lain yang berinteraksi dengan system yang akan dibuat
  • Use Case
Merupakan gambaran fungsional dari suatu system, sehingga customer atau pengguna system paham dan mengerti mengenai kegunaan system yang akan dibangun.
Cara menentukan Use Case dalam suatu system :
  1. Pola prilaku perangkat lunak aplikasi
  2. Gambaran tugas dari sebuah actor.
  3. System atau benda yang memberikan suatu nilai kepada actor.
  4. Apa yang dikerjakan oleh suatu perangkat lunak (* bukan bagaimana mengerjakannya).
  • Relasi Dalam Use Case
Ada beberapa relasi yang terdapat pada use case diagram
  1. Assoclation , hubungan link antar element
  2. Generalization, disebut juga inheritance (pewarisan), sebuah elemen yang merupakan spesialisasi dari elemen lainnya.
  3. Dependency, sebuah elemen tergantung dari beberapa cara kepada elemen lainnya.
  4. Aggregation, bentuk asosiation dimana sebuah elemen berisi elemen lainya.
  • Tipe relasi yang mungkin terjadi pada use case diagram :
  1. <<include>>, yaitu sifat yang harus terpenuhi agar sebuah event dapat terjadi, dimana pada kondisi ini sebuah use case adalah bagian dari use case lainya.
  2. <<extends>>, yaitu kelakuan yang hanya berjalan dibawah kondisi tertentu seperti menggerakan alarm.
  3. <<communicates>>, ditambahkan untuk asosiasi yang menujukan asosiasinya dalah communicates association. Ini merupakan pilihan asociasi hanya tipe relationship yang di bolehkan untuk actor dan use case.

Langkah- langkah Pembuatan Use Case Diagram

  • Actor
  1. Tempatkan actor utama dipojok kiri atas, karna sebagian besar rancangan system mengutamakan pelanggan, maka actor utama pelanggan adalah nasabah, klien, siswa/mahasiswa, dsb.
  2. Gambarkan actor utama dengan Use Case
  3. Berilah nama actor dengan kata benda tunggal
  4. Actor minimal harus terhubung dengan satu Use Case.
  5. Berilah nama actor sesuai dengan perannya terhadap model bukan jabatannya.
  6. Tambahkan <<system>> pada actor berjenis system
  7. Jangan menghubungkan langsung antar actor satu dengan yang lainya (kecuali generalisasi). Actor satu dengan dengan yang lain harus terhubung melalui use case
  8. Tambahkan actor “waktu (time)”untuk system yang terjadwal otomatis.
  • Use Case
Buatlah nama use case sejelas mungkin dan orientasikan kepada stakeholder/klien bukan peancangan system.
Susunlah use case berdasarkan urutan dari atas kebawah untuk mempermudah pembacaan.
Relasi
  1. Hindari penggunaan anak panah antar actor dan use case kecuali salah satunya bersifat pasif.
  2. Gunakan <<include>> jika kita yakin suatu use case harus melibatkan use case lain
  3. Gunakan <<extend>> jika use case memungkinkan melibatkan use case lain.
  4. Gunakan <<extend>> sperlunya jika kebanyakan <<extend>> membuat diagram sulit dibaca
  5. Gunakan kata “include” dan “extend” bukannya “includes dan “extends”.
  6. Tempatkan included use case disebelah kanan use case dasar,
  7. Tempatkan extend use case dibawah use case dasar.
  8. Tempatkan generalisasi use case dibawah actor induk
  9. Tempatkan generalisasi actor dibawah induk.
  10. Hindari pembuatan use case lebih dari dua tingkat.

Squence Diagram UML

Artikel sengaja di post supaya berguna untuk semuanya dalam mata kuliah Analisis Desain Berbasis Object (ADBO) jurusan Sistem Informasi. Yaaa sekalian juga karena kebetulan dapet tugas presentasi tentang Sequence Diagram. Padahal dapet giliran kelompok terakhir dari 10 klompok dan tugas diberikan baru kuliah hari ini, mumpung lagi rajin :p


Oke langsung ke materi .......
Pengertian Sequence Diagram
Sebuah diagram yang menggambarkan interaksi antar objek di dalam sebuah system. Interaksi tersebut berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri dari dimensi horizontal (objek-objek) dan dimensi vertical (waktu).


Dimensi   vertikal   adalah   poros   waktu,   dimana   waktu   berjalan ke  arah  bawah. Sedangkan dimensi horizontal merepresentasikan objek-objek individual. Tiap objek (termasuk actor) tersebut mempunyai waktu aktif yang direpresentasikan dengan kolom vertikal yang disebut  dengan  lifeline. Pesan  (message)  direpresentasikan  sebagai  panah  dari  satu lifeline ke lifeline yang lain. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class.
Komponen diagram sequence :
1.   Object adalah Komponen yang digunakan sebagai objek – objek yang akan digunakan di dalam membuat diagram.
2.       Stimulus merupakan komponen yang menandai hubungan komunikasi antara dua buah objek. 
      Komunikasi yang terjadi berupa pengiriman pesan (message).
3.      SelfStimulus merupakan fungsi yang sama dengan Stimulus, hanya saja pengiriman pesan dilakukan
      kepada dirinya sendiri (objek itu sendiri), buka antar objek.
4.    Actor adalah Perwakilan dari orang luar, proses atau hal yang berinteraksi dengan  sistem,  subsistem  ataupun  class.
Tujuan penggunaan sequence diagram :
1.   Mengkomunikasikan requirement kepada tim teknis karena diagram ini dapat lebih mudah untuk dielaborasi menjadi model design.
2.   Merupakan diagram yang paling cocok untuk mengembangkan model deskripsi use-case menjadi spesifikasi design.
3.        Analisa dan desain, memfokuskan pada identifikasi method didalam sebuah system. Sequence diagram biasanya dipakai untuk memodelkan :
·      Deskripsi tentang system yang ada pada sebuah / beberapa use case pada use case diagram, yang menggambarkan hubungan antara actor dan use case diagram.
·      Logika dari method (operation, function atau procedure).
·      Logika dari service (high level method).
Istilah dalam Sequence Diagram :
1.        Participant
Obyek yang terkait dengan sebuah urutan proses.
2.        Lifeline
Menggambarkan daur hidup sebuah obyek.
3.        Activation
Suatu titik waktu dimana sebuah obyek mulai berpartisipasi didalam sebuah sequence.
4.        Time
Elemen penting dalam sequence diagram konteksnya adalah urutan, bukan durasi.
5.        Return
6.   Suatu hasil kembalian sebuah operasi, tetapi boleh tidak ditulis jika tidak ada perbedaan dengan Getternya.
Contoh Diagram Sequence

Pada contoh diagram sequence di bawah ini terdapat 1 administrator dan 3 objek, yaitu: Layar login, cek user, data user, menu utama. Pertama-tama administrator akan masuk ke layar login dengan menggunakan User ID dan Password(). Dari Layar login, admin akan melakukan cek user dengan memasukkan User ID dan Password(). Setelah melakukan cek user, admin akan memasukkan user ID dan password sekali lagi untuk melihat data user. User ID dan Password yang dimasukkan admin sebanyak 3 kali, digunakan untuk melakukan validasi. Validasi ini bertujuan untuk membuka menu utama(). (Rid - 1688)






Contoh lain Squance Diagram

Logika :

Pelayan memberikan daftar menu ke pelanggan
Setelah pelanggan menerima daftar menu pelanggann memesan menu ke pelayan
Kemudia pesanan pelanggan diberikan pelayan ke pada koki yang kemudian koki memasak pesanan pelanggan
Setelah makanan selesai dimasak, makanan di berikan lagi ke pelayan yang kemudian diserahkan ke pelanggan
Ketika pelanggan memakan pesanan pelayan memberikan daftar pesanan ke kasir
Kasir langsung menghitung jumlah pembayaran, seteah selesai menghitung kasir memberikan tagihan ke pelayan .
Setelah pelanggan selesai makan, pelanggan meminta tagihan ke pelayan yang kemudian pelayan langsung memberikan kepada pelanggan.
Setelah diterima oleh pelanggan, pelanggan langsung menuju kasir untuk dibayar.

Class Diagram

LP UML 1 (Class diagram, Sequence diagram, dan Collaboration diagram)


 Class diagram, Sequence diagram, dan Collaboration diagram

1. Jelaskan apa yang dimaksud dengan class diagram, sequence diagram, dan collaboration diagram?
2. Berikan contoh masing-masing diagram tersebut?

Jawaban
1. Diagram kelas adalah diagram UML yang menggambarkan kelas-kelas dalam sebuah sistem dan hubungannya antara satu dengan yang lain, serta dimasukkan pula atribut dan operasi. Class diagram merupakan diagram yang selalu ada di permodelan sistem berorientasi objek. Class diagram menunjukkan hubungan antar class dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan. Class diagram berfungsi untuk memodelkan struktur kelas.

Sequence Diagram adalah diagram untuk memodelkan pengiriman pesan (message) antar objects. Sequence diagram menjelaskan secara detail urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case: interaksi yang terjadi antar class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi.

Collaboration Diagram adalah diagram untuk memodelkan interaksi antar objects. Collaboration diagram dipakai untuk memodelkan interaksi antar object di dalam sistem. Berbeda dengan sequence diagram yang lebih menonjolkan kronologis dari operasi-operasi yang dilakukan, collaboration diagram lebih fokus pada pemahaman atas keseluruhan operasi yang dilakukan oleh object.

2. class diagram
Sequence diagram

Collaboration Diagram

Sabtu, 12 Maret 2016

Direction Maps API google maps

Cara Membuat Direction Map Dengan API Google Maps - Kali ini kita akan membuat map yang dilengkapi dengan direction. Direction atau petunjuk arah adalah petunjuk jalur atau path lintasan yang harus di lalui dari alamat suatu lokasi menuju alamat lokasi lainnya. Dengan menggunakan fitur Directions service yang sudah dimiliki oleh API Google Maps kita dapat dengan mudah membuat petunjuk arah menuju suatu lokasi. Jika sebelumnya kita melakukan pencarian kordinat lokasi kali ini kita membuat map yang membantu kita mendapatkan petujuk arah ke lokasi tersebut. Untuk lebih jelansya langsung saja ke prakteknya.
Untuk menulisakan script anda dapat menggunakan apa saja bebas, contoh : Notepad, Notepad++, Dreamwaver, NetBeans, Eclipse.

HTML

Jika anda belum membuat folder Google_maps buatlah sebuah folder dengan nama Google_maps kemudian buat sebuah file HTML dengan nama driection.html kemudian masukan script :
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>Geocoding service</title>
    <style>
   html { height: 100% }
   #panel{padding:5px;}
      .input {
   height: 25px;
   padding: 2px;
   width: 200px;
      }
   #btn{
     height: 31px;
     background: #267BA8;
     border: none;
     padding: 5px;
     color: #fff;
   }
   #map-canvas { height: 400px; width:100%; }
   *{
   margin: 0;
   padding: 0;
  }
  body {
   text-align:center;
   background-color:#61b3de;
   font-family:Arial, Helvetica, sans-serif;
   font-size:80%;
   color:#666;
  }
  .wrap {
   background: #f3f8fb;
   width:730px;
   margin:30px auto;
   border: 4px dashed #61b3de;
   border-radius:4px;
   padding: 20px 5px;
  }
  h1 {
   font-family:Georgia, "Times New Roman", Times, serif;
   font-size:24px;
   color:#645348;
   font-style:italic;
   text-decoration:none;
   font-weight:100;
   padding: 10px;
  }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
    <script>
  var directionsDisplay;
  var directionsService = new google.maps.DirectionsService();
  var map;
   
  function initialize() {
    directionsDisplay = new google.maps.DirectionsRenderer();
    var latlng = new google.maps.LatLng(-6.187931, 107.031279);
    var mapOptions = {
   zoom: 12,
   center: latlng
    }
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    directionsDisplay.setMap(map);
  }
 
  function calcRoute() {
    var start = document.getElementById('start').value;
    var end = document.getElementById('end').value;
    var request = {
     origin:start,
     destination:end,
     travelMode: google.maps.TravelMode.DRIVING
    };
    directionsService.route(request, function(response, status) {
   if (status == google.maps.DirectionsStatus.OK) {
     directionsDisplay.setDirections(response);
   }
    });
  }
 
  google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
 <div class="wrap">
  <h1>Jin Toples Programming</h1>
  <h1>Membuat Drections Map dengan API Google Maps</h1>
  <div id="panel">
    <input class="input" id="start" type="text" value="Kebalen, bekasi">
    <input class="input" id="end" type="text" value="Universitas bhayangkara, bekasi">
    <input id="btn" type="button" value="Search" onclick="calcRoute()">
  </div>
  <div id="map-canvas"></div>
 </div>
  </body>
</html>
Perhatikan baris kode ini :
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function calcRoute() {
    var start = document.getElementById('start').value;
    var end = document.getElementById('end').value;
    var request = {
     origin:start,
     destination:end,
     travelMode: google.maps.TravelMode.DRIVING
    };
    directionsService.route(request, function(response, status) {
   if (status == google.maps.DirectionsStatus.OK) {
     directionsDisplay.setDirections(response);
   }
    });
  }
Ini adalah fungsi yang berjalan ketika anda menekan tombol search, fungsi ini adalah direction service yang kita gunakan untuk menemukan jalur dari titik start menuju titik end. 
Perhatikan pada baris kode di atas :
?
1
2
3
4
5
var request = {
     origin:start,
     destination:end,
     travelMode: google.maps.TravelMode.DRIVING
    };
origin adalah titik awal yang didapat dari var start berisi nilai inputan dengan id start
destination adalah titik tujuan yang didapat dari var end berisi nilai inputan dengan id end
travelMode adalah mode perjalanan yang anda lakukan apakah menggunakan mobil, sepeda, jalan, dll.
Anda dapat mencobanya sekarang dengan cara membukanya di browser anda, disarankan membukanya dengan browser Chrome atau Mozilla, jangan menggunakan IE Bkakakak.... jika di IE tidak jalan saya sudah tidak heran.
Apabila masih ada yang binggung anda juga dapat membacanya dari refrensi langsung di dokumentasi Directions Services API Google Maps di sini : CEK TKP
Selanjutnya kita bertemu lagi membahas Maps dengan direction atau petunjuk arah dari suatu lokasi ke lokasi lain yang di lengkapi dengan teks petunjuk kapan jarak anda berbelok.

Baca disini : Cara Membuat Text Direction Map Dengan API Google Maps
Direction Map Dengan API Google Maps anda sekarang sudah selesai, baca juga tutorial program HTML dan Javascript lainnya.