Skip to main content

Menggunakan OMDB API Dengan HTML & JavaScript

Selamat malam coders...

pada postingan kali ini saya akan sharing cara menggunakan OMDb API, OMDb API merupakan API penyedia data-data film dari seluruh dunia, agar bisa menggunakan API dari OMDb ini kita harus generate API key terlebih dahulu di websitenya http://www.omdbapi.com/ setelah membuka websitenya pilih menu API Key dan pilih yang Free kemudian isikan email, nama dan untuk bagian Use isi saja dengan Education setelah itu klik submit maka teman-teman akan mendapatkan email dari OMDb nya berupa API key yang akan teman-teman gunakan untuk mengkses API-nya dan jangan lupa klik link activate yang di email dan API OMDb sudah siap kita akses.




selanjutnya kita buat folder baru dengan nama movie dan penyimpanan foldernya terserah teman-teman mau simpan di drive mana saja boleh, lalu didalam folder movie tambah folder assets dan didalam folder assets simpan file css dan js dari bootstrap karena kita akan menggunakan bootstrap untuk layout-nya.

tambah file dengan nama index.html di folder movie dan source codenya sperti berikut :


<!DOCTYPE html>
<html>
<head>
    <title>Rest API</title>
    <link rel="stylesheet" href="assets/css/bootstrap.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>

  <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    <div class="container">
      <a class="navbar-brand" href="">Movie Zone</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
    </div>
  </nav>
  

  <div class="container mt-3">
    <div class="row justify-content-center">
      <div class="col-md-8">
        <div class="input-group mb-3">
          <input type="text" id="search-text" class="form-control" placeholder="Input Movie Title" aria-label="Recipient's username" aria-describedby="button-addon2">
          <div class="input-group-append">
            <button class="btn btn-primary ml-2" type="button" id="btn-search">Search <i class="fa fa-search"></i></button>
          </div>
        </div> 
      </div>
    </div>
    <hr>

    <div class="row" id="movie-list">        

    </div>
  </div>

  <!-- Modal -->
  <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLabel">Movie Details</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">

        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        </div>
      </div>
    </div>
  </div>

  <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
  <script src="assets/js/bootstrap.js"></script>
  <script src="assets/js/script.js"></script>
</body>
</html>


lalu didalam folder assets/js tambah file javascript baru dengan nama script.js


$('#search-text').on('keyup', function(e){
    if(e.keyCode == 13)
    { 
        searchMovies();
    }
})

$('#btn-search').on('click', function(e){
    searchMovies();
})

$('#movie-list').on('click', '#btn-details', function(e){
    $.ajax({
        url:'http://www.omdbapi.com',
        type:'GET',
        dataType:'json',
        data:{
            'apikey' : 'ec38fba9', //API Key
            'i' : $(this).data('id') //Parameter i untuk pencarian film berdasarkan id film  / omdbID
        },
        success: function(result){
            if(result.Response === "True"){
                $('.modal-body').html('');
                $('.modal-body').append(`
                    <div class="container-fluid">
                        <div class="row">
                            <div class="col-md-4">
                                <img src="` + result.Poster + `" class="img-fluid">
                            </div>
                            <div class="col-md-8">
                                <ul class="list-group">
                                  <li class="list-group-item"><h4>`+ result.Title +`</h4></li>
                                  <li class="list-group-item">Released : `+ result.Released +`</li>
                                  <li class="list-group-item">Genre : `+ result.Genre +`</li>
                                  <li class="list-group-item">Writer : `+ result.Writer +`</li>
                                  <li class="list-group-item">Actors : `+ result.Actors +`</li>
                                  <li class="list-group-item">Production : `+ result.Production +`</li>
                                  <li class="list-group-item">Plot : `+ result.Plot +`</li>
                                </ul>
                            </div>
                        </div>
                    </div>    
                `);
            }
        }
    });
})


function searchMovies(){
    $.ajax({
        url:'http://www.omdbapi.com',
        type:'GET',
        dataType:'json',
        data:{
            'apikey' : 'ec38fba9', //API Key
            's' : $('#search-text').val() //Parameter s pencarian film berdasarkan judul
        },
        success: function(result){
            let movies = result.Search;
            $('#movie-list').html('');
            if(result.Response == "True"){
                $.each(movies, function(i, data){
                    $('#movie-list').append(`<div class="col-md-4 mb-3">
                        <div class="card" style="width: 18rem;">
                        <img src="`+ data.Poster +`" class="card-img-top" height="300px">
                        <div class="card-body"><h5 class="card-title">`+ data.Title +`</h5>
                        <p class="card-text">Year : `+ data.Year +`</p>
                        <a href="#" class="btn btn-primary" id="btn-details" data-id="`+ data.imdbID +`" 
                        data-toggle="modal" data-target="#exampleModal">Show Details</a>
                        </div></div></div>
                    `);
                })
            }else{
                $('#movie-list').append(`
                    <div class="col-sm-12 text-center">
                        <h1>`+ result.Error +`</h1>
                    </div>
                `);
            }
        }
    });

    $('#search-text').val("");
}


untuk melihat parameter-parameter yang disediakan oleh OMDb API-nya bisa teman-teman lihat di menu Usage di website-nya.






jika sudah coba jalankan di browser dan lihat hasilnya :





untuk detailnya seperti berikut :



semoga bermanfaat sharing kali ini :D



Comments

  1. Saya sudah copy-paste sesuai dengan yang dimaksud hanya ganti API key tapi kok gak keluar hasil search-nya ya?

    ReplyDelete

Post a Comment

Popular posts from this blog

PHP MySql CRUD Dengan Konsep MVC

Pada postingan kali ini saya akan sharing cara membuat CRUD dengan php menggunakan konsep MVC, ok langsung saja buka code editor (saya menggunakan sublime text) dan buat folder baru dengan nama phpmvc didalam folder htdocs kalian dan tambah folder seperti berikut :  Setelah itu kita siapkan database di mysql, buat database dengan nama phpmvc dan tablenya seperti gambar berikut : tambahkan file config.php didalam folder app/config : <?php define('BASEURL', 'http://localhost:8181/phpmvc/public'); define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'phpmvc'); kemudian tambahkan 3 file controller didalam folder app/controllers, yaitu Home, About, dan Mahasiswa : Home.php <?php class Home extends Controller { public function index() { $data['nama'] = $this->model('User_model')->getUser()...

Cara Sederhana Multi Insert Data Dengan PHP - MySQL

Pada postingan kali ini saya akan share cara melakukan insert lebih dari satu data dengan menggunaka PHP- Jquery dan MySQL. Pertama buat database di MySQL dan table, disini saya membuat database dengan nama db_latihan dan table dengan nama t_barang dengan struktur table seperti berikut : Setelah membuat database dan table selanjutnya membuat project PHP, project PHP nya saya buat dengan nama multi-insert, lalu didalam folder ini saya membuat dua file yaitu index.php dan insert.php . Source code index.php seperti berikut : <! doctype   html > < html   lang = "en" >    < head >      <!-- Required meta tags -->      < meta   charset = "utf-8" >      < meta   name = "viewport"   content = "width=device-width, initial-scale=1" >      <!-- Bootstrap CSS -->      < link ...

Laravel - Sistem Informasi Perpustakaan Sederhana Laravel

Postingan kali saya akan sharing membuat aplikasi perpustakaan sederhana menggunakan laravel 5.8, dimana terdapan menu Anggota, Kategori Buku, Daftar Buku dan Transaksi (Peminjaman/Pengembalian Buku). ok langsung saja kita buat project laravel dengan nama perpus : composer create-project --prefer-dist laravel/laravel perpus setelah create project laravel-nya selesai kita buat database melalui localhost/phpmyadmin dengan nama db_perpus, lalu kita buka project laravel dengan code editor disini saya menggunakan visual studio code. Setelah project kita buka dengan code editor, pertama kita atur koneksi database yang ada di file .env, kita rubah menjadi seperti berikut : note : untuk db_username dan db_password di sesuiakan dengan configurasi masing-masing. Selanjutnya kita tambahkan 4 buah data migration yaitu : table_anggota, table_kategori, table_buku, table_transaksi, kita buka terminal dan jalankan command berikut :  php artisan make:migration crea...