Friday, April 10, 2020

Kompres dan Tata Ulang Kode CSS, HTML dan JavaScript Kalian dengan Alat Ini

Saya membuat proyek baru berupa situs web berisi kumpulan alat untuk mengompres kode HTML, CSS dan JavaScript secara daring. Saat ini sudah tersedia alat pengompres kode HTML, CSS, JavaScript dan JSON. Untuk ke depannya mungkin akan Saya tambahkan alat-alat kompresi yang lain. Halaman web alat dapat kamu kunjungi melalui tautan https://minify.js.org

Selain alat pengompres, alat untuk menata ulang kode-kode yang sudah dikompres juga tersedia. Saat ini sudah tersedia alat penata kode HTML, CSS, JavaScript dan JSON. Halaman web alat dapat kamu kunjungi melalui tautan https://tidy.js.org

Berikut ini adalah kode-kode pihak ke tiga yang Saya gunakan untuk membuat alat-alat tersebut:

Sebelumnya Saya pernah membuat situs web kumpulan alat serupa pada repositori https://github.com/taufik-nurrohman/mini-web-tools. Tapi dengan adanya situs web yang baru, repositori tersebut kemungkinan besar akan Saya arsipkan. Silakan beri komentar dan saran mengenai alat-alat ini, simpan tautan ke penanda buku, dan bagikan ke teman-teman yang lain kalau kamu merasa bahwa alat-alat ini bermanfaat untuk kamu dan untuk mereka. Terima kasih ♥

Labels: , , , , , ,

Saturday, April 4, 2020

Pilih Mana: Memuat JSON Blogger dengan Metode Tradisional atau dengan Metode AJAX?

Menambahkan parameter alt dengan nilai json atau json-in-script pada URL umpan blog akan memberikan hasil keluaran data berupa JSON. Pengembang bisa memanfaatkan data tersebut untuk membuat gawai blog. Namun untuk bisa memproses data, kita perlu menemukan cara untuk menampung data tersebut ke dalam parameter fungsi:

function recentPosts(json) {
    // Ubah data `json` menjadi gawai di sini…
}

recentPosts( /* Masukan data JSON di sini… */ );

Metode Tradisional

Blogger memberikan akses kepada para pengembang untuk memproses data yang diberikan melalui parameter callback. Dengan menyatakan nama fungsi pada parameter tersebut, maka hasil keluaran JSON mentah yang diberikan akan dilengkapi dengan kode eksekusi fungsi yang membungkus data JSON tersebut. Sebenarnya tidak ada hal yang ajaib dalam sistem pemuatan data seperti itu. Tanpa parameter callback, hasil keluaran yang akan diberikan adalah seperti ini:

{
  "version": "1.0",
  "encoding": "UTF-8",
  "feed": { … }
}

Sedangkan ketika menggunakan parameter callback dengan nilai recentPosts, maka hasil keluaran yang akan diberikan adalah seperti ini:

recentPosts({
  "version": "1.0",
  "encoding": "UTF-8",
  "feed": { … }
});

Sehingga ketika umpan blog berhasil dimuat, maka data yang akan termuat bukan hanya terdiri dari JSON saja tetapi juga fungsi global yang memproses data JSON tersebut pada saat yang bersamaan ketika JSON termuat:

<!-- Tanpa eksekusi fungsi -->
<script src="/feeds/posts/summary?alt=json"></script>

<!-- Dengan eksekusi fungsi -->
<script src="/feeds/posts/summary?alt=json&amp;callback=recentPosts"></script>

Menerapkan metode seperti ini bukan berarti tidak memiliki kekurangan. Karena umpan blog perlu menerima nama fungsi yang bersifat global, maka kita harus mengaitkan fungsi gawai yang kita buat pada objek window. Satu-satunya cara yang bisa kita lakukan adalah dengan mendeklarasikan fungsi tersebut pada bagian terluar dari berkas JavaScript, atau dengan mendeklarasikan fungsi tersebut sebagai salah satu properti dari window jika fungsi tersebut berada di dalam fungsi-fungsi yang lain:

// Metode 1
function recentPosts(json) { … }

// Metode 2
window.recentPosts = function(json) { … };

// Metode 3
(function(w) {
    w.recentPosts = function(json) { … };
})(window);

// Metode 4
function start() {
    function createRecentPostsFunction() {
        function a() { … }
        function b() { … }
        function c() {
            window.recentPosts = function(json) { … };
        }
        a();
        b();
        c();
    }
    function hasRecentPostsFunction() {
        return 'recentPosts' in window && 'function' === typeof window.recentPosts;
    }
    if (!hasRecentPostsFunction()) {
        createRecentPostsFunction();
    }
}

start();

Karena JavaScript memungkinkan kita untuk menimpa fungsi yang telah dibuat sebelumnya dengan cara membuat fungsi yang baru (atau membuat variabel) menggunakan nama yang sama, maka akan sangat mudah bagi fungsi tersebut untuk mengalami konflik-konflik penamaan seperti ini:

<!-- Kode pihak ke 1 (kamu) -->
<script>
function recentPosts(json) { … }
</script>

<!-- Kode pihak ke 3 (orang lain) yang akan merusak fungsi `recentPosts()` -->
<script>
var recentPosts = null;
</script>

<!-- Di sini akan muncul pesan kesalahan “TypeError: recentPosts is not a function” -->
<script src="/feeds/posts/summary?alt=json&amp;callback=recentPosts"></script>

Ada dua cara yang dapat kamu lakukan untuk menghindari masalah tersebut. Cara yang pertama adalah dengan mendeklarasikan fungsi recentPosts sebagai konstanta agar nama fungsi tersebut tidak bisa digunakan lagi di tempat lain setelah konstanta tersebut dinyatakan:

<script>
const recentPosts = json => { … };
</script>

<!-- Akan muncul pesan kesalahan “SyntaxError: redeclaration of const recentPosts” -->
<script>
function recentPosts(json) { … };
</script>

<!-- Akan muncul pesan kesalahan “SyntaxError: redeclaration of const recentPosts” -->
<script>
let recentPosts = json => { … };
</script>

<!-- Akan muncul pesan kesalahan “SyntaxError: redeclaration of const recentPosts” -->
<script>
const recentPosts = json => { … };
</script>

Cara yang ke dua adalah dengan membuat nama fungsi yang tidak permanen dan bersifat acak. Cara di bawah ini memungkinkan kita untuk membuat fungsi global yang bisa berubah-ubah namanya setiap kali halaman dimuat, sehingga akan memperkecil kemungkinan pihak lain untuk mendeklarasikan fungsi gawai dengan nama yang sama:

let id = Math.floor(Math.random() * 1000),
    node = document.createElement('script');

window['recentPosts_' + id] = json => { … };

node.src = '/feeds/posts/summary?alt=json&callback=recentPosts_' + id;

document.head.appendChild(node);

Metode AJAX

Memuat data menggunakan AJAX relatif lebih praktis, walaupun dari segi sintaks mungkin akan terlihat rumit bagi orang-orang yang belum terbiasa. Kamu bisa menggunakan fungsi ini sebagai contekan selama kamu masih belum menguasai konsep AJAX. Dengan menggunakan AJAX, kamu tidak perlu menambahkan parameter callback karena data yang dimuat nantinya akan secara otomatis tertampung ke dalam parameter fungsi untuk menyatakan kesuksesan proses pemuatan data. Kamu bisa menggunakan XMLHttpRequest atau fetch. Pilih salah satu:

let xhr = new XMLHttpRequest;

// Buka tautan umpan dengan metode `GET`
xhr.open('GET', '/feeds/posts/summary?alt=json', true);

// Atur tipe respons sebagai JSON, bukan teks
xhr.responseType = 'json';

// Proses manipulasi data dilakukan di dalam acara `readystate`
xhr.addEventListener('readystate', function() {
    if (4 === this.readyState && 200 === this.status) {
        let json = this.response;
        // Ubah data `json` menjadi gawai mulai dari sini…
    }
}, false);

// Memulai permintaan data!
xhr.send();
// Memulai permintaan data!
fetch('/feeds/posts/summary?alt=json').then(response => {
    return response.json(); // Atur tipe respons sebagai JSON, bukan teks
}).then(json => {
    // Ubah data `json` menjadi gawai mulai dari sini…
});

Pakai jQuery juga bisa! Tapi akhir-akhir ini jQuery sudah ketinggalan zaman:

$.ajax({
    type: 'GET',
    url: '/feeds/posts/summary?alt=json',
    dataType: 'json'
}).done(function(json) {
    // Ubah data `json` menjadi gawai di sini…
});
$.get('/feeds/posts/summary?alt=json', function(json) {
    // Ubah data `json` menjadi gawai di sini…
}, 'json');

Mengeksekusi fungsi recentPosts() melalui respons AJAX dapat dilakukan dengan cara seperti ini:

xhr.addEventListener('readystate', function() {
    if (4 === this.readyState && 200 === this.status) {
        recentPosts(this.response);
    }
}, false);
fetch('/feeds/posts/summary?alt=json').then(response => response.json()).then(recentPosts);
$.ajax({
    type: 'GET',
    url: '/feeds/posts/summary?alt=json',
    dataType: 'json'
}).done(recentPosts);
$.get('/feeds/posts/summary?alt=json', recentPosts, 'json');

Kelebihan dari menggunakan metode AJAX adalah kamu tidak diharuskan untuk membuat fungsi gawai sebagai fungsi yang bersifat global, sehingga akan lebih ramah bagi lingkungan di luar gawai, serta dapat membebaskan fungsi tersebut dari kemungkinan-kemungkinan terjadinya konflik penamaan fungsi seperti yang telah Saya jelaskan sebelumnya pada metode pemuatan data umpan secara tradisional. Nama fungsi juga dapat dikompres dengan alat pengompres JavaScript tanpa memberikan pengaruh apa-apa pada hasil keluarannya:

(function() {
    function recentPosts(json) { … }
    fetch('/feeds/posts/summary?alt=json').then(response => response.json()).then(recentPosts);
})();

// Akan muncul pesan kesalahan “ReferenceError: recentPosts is not defined”
console.log(recentPosts);

Setiap metode tentu memiliki kekurangan dan kelebihannya masing-masing. Beberapa hal yang sudah Saya jabarkan di sini hanyalah sebagian kecilnya saja. Selebihnya mungkin dapat dijelaskan dengan contoh kasus. Jadi, mau pilih yang mana?

Labels: , , ,

Saturday, March 28, 2020

Cara Merilis Paket Node.js Secara Otomatis Bersamaan dengan Rilis pada GitHub

GitHub + NPM
Gambar oleh GitHub.

Dengan membaca artikel ini, Saya menganggap kamu sudah paham mengenai apa dan bagaimana itu NPM dan GitHub.

Pada tanggal 16 Maret 2020 yang lalu, GitHub —yang sebelumnya juga telah berhasil diakuisisi oleh Microsoft— mengumumkan sebuah kabar gembira bahwa NPM memutuskan untuk bergabung dengan GitHub. Dengan mengesampingkan ketidaksukaan Saya terhadap pola-pola modul JavaScript, sejak saat itu Saya mulai menelusuri tentang bagaimana cara melakukan integrasi NPM dengan GitHub. Untuk apa? Untuk membuat aktivitas NPM menjadi serba otomatis menyesuaikan dengan berbagai aktivitas yang Saya lakukan di GitHub.

Karena Saya yang tidak suka dengan NPM namun tidak bisa menghindari kenyataan bahwa beberapa pengguna aplikasi Saya ternyata menginginkan Saya untuk memberikan opsi pemasangan aplikasi melalui NPM, dan karena aktivitas utama koding jarak jauh Saya sekarang hampir seluruhnya berada di GitHub, dan karena dalam lubuk hati Saya yang paling dalam (cie…) sebenarnya Saya tetap saja tidak menyukai konsep pemuatan modul di NPM, pada akhirnya Saya memutuskan untuk keluar dari zona nyaman Saya.

Sebelumnya Saya sudah beberapa kali melakukan rilis paket Node.js secara manual, secara biasa, sesuai dengan prosedur pada situs web dokumentasi NPM, yaitu dengan cara menuliskan perintah npm publish --access public setiap kali Saya sudah siap merilis versi paket yang lebih baru, yang hal tersebut tentu saja memaksa Saya untuk memasang lingkungan Node.js terlebih dahulu di komputer yang sedang Saya pakai, yang kadang hal tersebut menurut Saya agak ribet, karena saat ini Saya masih berada di luar kebutuhan untuk menggunakan Node.js sebagai peladen lokal.

Kemudian Saya mengetahui bahwa NPM sekarang bergabung dengan GitHub. Saya pikir, pasti ada cara tertentu untuk membuat semuanya menjadi serba otomatis. Cara seperti itu pasti ada, dan ternyata memang benar.

Mengenal GitHub Actions

Actions atau Aksi pada GitHub merupakan fitur yang memungkinkan kita untuk mengeksekusi perintah-perintah tertentu secara otomatis setiap kali kita melakukan aktivitas pada GitHub. Cara kerjanya sama dengan kait atau hook pada sistem manajemen konten Mecha dan pendengar acara atau event listener pada JavaScript. Setiap kali kita melakukan aktivitas dorong dan tarik, menulis isu dan komentar misalnya, pada saat itu sebenarnya terdapat kait dengan nama tertentu yang akan dieksekusi oleh GitHub. Dengan memanfaatkan nama kait tersebut, maka kita bisa mengeksekusi perintah yang kita inginkan pada saat kait tersebut dipanggil.

Pada kasus yang sedang kita bahas sekarang, nama kait yang Saya maksud di sini adalah release, dan bentuk aksi yang akan kita lakukan adalah mengeksekusi perintah npm publish pada repositori jarak jauh yang baru saja kita rilis. Namun karena kita tidak memiliki akses kepada peladen Node.js di GitHub, dan karena membuat kait web memerlukan peladen Node.js pribadi untuk menentukan tautan sebagai penerima muatan dari GitHub, maka memanfaatkan fitur Webhooks menjadi tidak mungkin.

Fitur aksi pada GitHub memberikan akses kepada kita untuk memanfaatkan lingkungan peladen yang ada di GitHub dengan cara menuliskan berkas konfigurasi tertentu untuk dijalankan oleh GitHub.

Menu Actions seharusnya sudah ada pada halaman awal repositori masing-masing selama fitur tersebut tidak dinonaktifkan melalui menu Settings. Untuk membuat aksi, klik menu Actions pada repositori yang diinginkan kemudian pilih jenis alur kerja yang akan dipakai, dalam hal ini adalah Node.js:

Memilih alur kerja.
Memilih alur kerja.

Kamu mungkin juga akan melihat opsi Publish Node.js Package di situ yang secara logika seharusnya lebih tepat untuk dipilih. Tapi di sini Saya lebih cenderung ke opsi Node.js karena kedua opsi tersebut pada dasarnya sama. Hanya saja opsi Node.js sifatnya lebih menyeluruh, sedangkan opsi Publish Node.js Package tersedia hanya untuk menangani aktivitas publikasi paket saja. Harapan Saya adalah ketika suatu saat nanti Saya ingin membuat artikel yang sejenis atau terkait dengan implementasi GitHub Actions pada artikel ini, maka Saya hanya tinggal meminta kalian untuk melakukan sedikit perubahan pada pengaturan yang sudah kalian buat di sini.

Setelah mengambil pilihan, kamu akan diminta untuk mengisi formulir yang bertujuan untuk membuat berkas bernama .\.github\workflows\nodejs.yml seperti ini:

Membuat `nodejs.yml`
Membuat berkas konfigurasi.

Hapus semua isinya kemudian ganti dengan ini:

name: Publish

on:
  release:
    types: [published]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions/setup-node@v1
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org/
      - run: yarn install
      - run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}

Klik tombol Start commit untuk memulai pembuatan berkas.

Kalau kamu sudah mahir menggunakan aplikasi Git, kamu sebenarnya bisa kok membuat berkas tersebut secara manual pada repositori lokal melalui terminal. Setelah itu, kamu tinggal menjalankan perintah git push untuk menambahkan berkas tersebut ke repositori jarak jauh. Namun karena pada contoh di atas, yang kamu lakukan adalah membuat berkas baru secara langsung melalui repositori jarak jauh, maka kamu perlu melakukan sinkronisasi kembali dengan repositori lokal, dengan cara menjalankan perintah git pull pada terminal untuk memastikan agar kedua repositori tetap berada dalam kondisi dan status yang sama persis.

Pada data konfigurasi di atas, kita bisa sedikit memahami, dimulai dari data yang ini, yang berfungsi untuk menjalankan jobs pada saat kait release dengan tipe published berhasil dipanggil:

on:
  release:
    types: [published]

Perintah publikasi paket berada pada baris ini:

jobs:
  build:
    steps:
      - …
      - …
      - run: npm publish --access public

Variabel ${{secrets.NPM_TOKEN}} berisi token rahasia yang perlu kita buat secara manual melalui dasbor NPM.

Membuat Token Akses untuk Autentikasi

Agar bisa berkomunikasi dengan NPM, kita perlu membuat token rahasia yang berfungsi untuk memberikan akses kepada paket-paket kita di NPM.

Buka tautan https://www.npmjs.com/settings/nama-pengguna/tokens atau klik pada ikon avatar di pojok kanan atas kemudian pilih menu Auth Tokens. Klik pada tombol Create New Token.

Membuat token akses di NPM.
Membuat token akses baru.

Pilih tingkatan akses ke Read and Publish kemudian klik tombol Create Token.

Segera salin token yang sudah berhasil dibuat!

Sampai di sini, sebenarnya kamu bisa mengganti variabel ${{secrets.NPM_TOKEN}} dengan kode token yang baru saja kamu salin. Tapi karena token ini bersifat rahasia dan berfungsi sebagaimana kata kunci yang kita gunakan untuk log masuk, maka ada baiknya jika kita simpan token tersebut ke dalam variabel secrets.NPM_TOKEN di GitHub, sehingga nilainya dapat diakses melalui properti NPM_TOKEN di variabel secrets, namun tidak akan bisa dilihat secara langsung karena sudah tersimpan di tempat yang lain.

Menyimpan Token NPM di GitHub

Untuk menyimpan token rahasia di GitHub, gunakan fitur GitHub Secrets. Pada setiap repositori, fitur ini dapat diakses melalui menu Settings. Buat variabel baru dengan nama NPM_TOKEN kemudian tempelkan kode token yang sudah kamu salin tadi:

Membuat token akses di NPM.
Menyimpan token akses rahasia ke GitHub.

Klik tombol Add secret. Kode token rahasia sudah berhasil disimpan dan tidak akan pernah bisa dibuka lagi. Kamu tidak perlu melakukan perubahan apa-apa pada berkas nodejs.yml yang telah kamu buat sebelumnya.

Sistem rilis paket Node.js otomatis sudah selesai dibuat!


Cara Merilis Paket Node.js Melalui GitHub

Untuk merilis paket dari GitHub ke NPM secara otomatis, kamu hanya perlu membuat item rilis baru di GitHub untuk memicu kait release pada repositori tersebut. Tapi sebelum itu, pastikan properti version di dalam berkas package.json sudah diperbarui:

{
  "name": "@taufik-nurrohman/query-string-parser",
  "description": "Convert URL’s query string into JavaScript object.",
  "version": "1.0.1",
  "main": "q2o.js",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/taufik-nurrohman/query-string-parser.git"
  },
  "author": "Taufik Nurrohman",
  "license": "MIT",
  …
}

Pada halaman formulir rilis baru, tentukan nama label sesuai dengan nilai properti version pada berkas package.json:

Merilis versi baru.
Merilis versi baru.

Nama label ini, setahu Saya tidak ada kaitannya dengan NPM karena NPM hanya akan membaca berkas package.json pada repositori terkait untuk mengecek apakah nilai properti version sudah berubah atau belum. Tapi ada baiknya untuk tetap menyesuaikan nilainya dengan versi paket untuk menjaga konsistensi antara GitHub dengan NPM. Silakan isi judul dan konten rilis sesuka hati untuk memperjelas maksud dan tujuan rilis pada versi tersebut.

Setelah berhasil melakukan rilis pada GitHub, harusnya salinan repositori GitHub tersebut akan secara otomatis dibuat (atau diperbarui jika sudah ada) sebagai paket Node.js di situs web NPM, seperti ini:

Beberapa detik yang lalu.
Lihat keterangan bahwa paket @taufik-nurrohman/query-string-parser baru saja diperbarui beberapa detik yang lalu.

Labels: ,

Thursday, March 19, 2020

Kepada Blogger, Sebelum Kalian Beralih ke Vlog

Vlogger
Gambar oleh Jakob Owens

Saya bukan pelanggan video. Menonton video bagi Saya sangat membuang-buang waktu karena video mengalihkan begitu banyak perhatian. Tapi tidak bisa dipungkiri bahwa media pertukaran informasi dalam bentuk kombinasi gambar bergerak dan suara ini sudah masuk merambah ke berbagai lingkungan di masyarakat dari segala sisi. Menonton video itu sangat menghibur! Jauh lebih menghibur dibandingkan sekedar membaca teks, melihat gambar dan mendengarkan musik sebagai diri mereka sendiri secara terpisah. Biaya akses internet di Indonesia semakin hari sudah semakin murah saja, bahkan bisa dibilang hampir gratis. Spesifikasi ponsel semakin hari juga semakin tinggi, dengan harga yang semakin terjangkau pula.

Mengakses video setiap hari menjadi seperti tanpa beban. Tapi, sudut pandang kita sebagai penonton telah menutup mata dan telinga kita dari bahasan-bahasan seputar seni dan teknik pembuatan video yang jauh lebih luas. Kita sebagai penikmat video hanya sekadar tahu dari segi hasilnya saja, yang hanya bisa mengambil kesimpulan bahwa video tersebut bagus atau jelek setelah menontonnya, tanpa mau tahu proses pembuatan video tersebut dari awal.

Saya akui bahwa Saya sudah sangat terlambat untuk membahas hal-hal semacam ini karena ketika Saya mengamati video-video yang mereka buat, Saya cek tanggal publikasinya dan kebanyakan dari mereka sudah berada di sana selama satu tahun lebih!

Sempat ada perasaan iri. Ingin rasanya ikut-ikutan beralih ke vlog seperti mereka karena Saya pribadi merasa sangat terhibur dengan hasil-hasil karya yang mereka buat. Tapi melihat dari segi beban kerja penyuntingan, efek grafis dan suara yang mereka lakukan di sana-sini, Saya kok malah jadi merasa minder sendiri ya?

Perasaan minder ini bukan tanpa alasan. Karena, untuk membuat konten video memang Saya akui memerlukan perhatian yang lebih khusus dan waktu pengerjaan yang lebih lama. Mau bagaimana lagi, media dalam bentuk video memang sangat erat kaitannya dengan waktu. Terdapat durasi di dalam video, sesuatu yang tidak akan pernah bisa kalian jumpai pada media berupa tulisan.

Di dalam sebuah video kita bisa menemukan setidaknya tiga buah bentuk media pertukaran informasi sekaligus. Media-media yang Saya maksud di sini adalah media berupa tulisan, gambar dan suara. Bagaimana menggabungkan tulisan, gambar dan suara itulah yang tidak Saya kuasai. Ada semacam unsur seni dan kaidah-kaidah komunikasi visual yang mungkin hanya bisa dipahami oleh mereka-mereka yang mengenyam pendidikan di jurusan Desain Komunikasi Visual secara resmi.

Latar belakang profesi agaknya sangat mempengaruhi kualitas video yang dihasilkan. Sebagaimana kualitas artikel blog para penulis profesional yang akan secara otomatis menjadi bagus karena memang mereka sudah ada pengalaman dalam bidang tersebut. Pada intinya, ilmu dan sumber daya Saya masih belum sampai ke situ.

Punya program kursus atau sekolah jurusan desain komunikasi visual serta bimbingan menulis yang ingin kamu iklankan di sini? Kamu bisa mencoba memasang tautan.

Berikut ini adalah beberapa alasan yang membuat Saya mengurungkan niat untuk berpindah ke vlog karena mau bagaimana lagi untuk membuat vlog itu memang membutuhkan peningkatan ekstra dari berbagai segi. Jadi, untuk sementara ini sepertinya Saya hanya bisa mengambil peran sebagai pengamat saja. Oleh karena itu pendapat-pendapat Saya tentang vlog tentu saja akan terbatas pada sudut pandang Saya sebagai penonton video, bukan sebagai pembuat video.

Dari Segi Kreator

Vlog Butuh Ruang Penyimpanan yang Besar

Hal pertama yang harus menjadi pertimbangan adalah ukuran berkas. Ukuran video itu tidak kecil! Untuk sebuah video seukuran layar ponsel dengan durasi sekitar lima menit saja sudah bisa memakan ruang penyimpanan lebih dari 10 MB. Akan sangat boros ketika kita ingin menyajikan daftar tonton video yang ada melalui situs web yang kita punya. Karena kalau sudah membahas mengenai biaya hosting eksklusif, maka kita tentu akan berurusan dengan kuota ruang penyimpanan dan lebar pita, yang mana itu semua memerlukan biaya sewa yang tidak murah. Bukan hanya itu, jumlah penonton juga akan mempengaruhi besaran biaya sewa. Semakin banyak jumlah penonton yang melihat video kalian, maka akan semakin besar pula beban lebar pita yang ada. Masalah tersebut hanya bisa diatasi dengan meningkatkan kuota, yang mana itu juga akan meningkatkan biaya.

Punya penawaran VPS yang sesuai untuk para vlogger? Coba pasang tautan di sini, atau minta Saya untuk membuatkan sebuah artikel khusus sehingga Saya bisa mengarahkan pembaca ke artikel tersebut melalui tautan di dalam artikel ini.

Masih Tergantung Kepada Platform Tertentu

Karena kendala pada biaya dan beban peladen yang besar, maka sebagai solusinya kita perlu memanfaatkan layanan pihak ke tiga yang memang didedikasikan untuk menyimpan dan memutar media berupa video. YouTube adalah salah satunya. Hanya saja kalian tentu akan terikat dengan kebijakan-kebijakan dari pihak YouTube, sehingga akan sangat tidak sesuai jika kalian termasuk tipe orang yang sensitif dengan faktor privasi. YouTube memang memberikan layanan mereka secara gratis, tapi kamu harus tahu bahwa ada hal-hal di dalam video kamu dan orang-orang yang telah menonton video kamu yang bisa mereka jual untuk menutupi pembiayaan sumber daya dan pajak, salah satu contohnya adalah dengan menjual data statistik kepada para pengiklan.

Sulit Menyunting Video yang Sudah Jadi

Menyunting video yang sudah jadi itu sulit. Masalah-masalah kecil seperti kesalahan eja pada teks-teks yang muncul pada klip-klip tertentu atau efek animasi yang tidak singkron saja bisa memaksa kreator untuk menyunting berkas video mentah yang ada dari awal. Itu membutuhkan waktu yang lama. Kemudian kamu juga harus mengunggah video baru tersebut. Itu juga membutuhkan waktu yang lama.

Sangat berbeda sekali dengan blog yang sebagian besar hanya berisi teks. Menyunting teks itu mudah. Sangat mudah hingga tidak memerlukan banyak waktu untuk melakukannya. Kamu juga tidak perlu menggunakan aplikasi khusus untuk bisa melakukannya. Dalam keadaan yang sangat terbatas, kamu bahkan bisa menggunakan aplikasi catatan bawaan pada ponsel masing-masing. Salah satu contohnya adalah ketika kamu membuat blog dengan sistem manajemen konten Mecha.

Butuh Banyak Senjata

Seminimal-minimalnya kamu harus punya kamera video, sebuah komputer dengan spesifikasi yang cukup untuk melakukan aktivitas penyuntingan video, dan tentu saja beberapa perangkat lunak untuk melakukan penyuntingan video yang telah direkam.

Butuh Kolaborasi

Kamu tidak bisa membuat vlog sendiri. Setidaknya kamu perlu seorang teman untuk memegangi kameramu. Kecuali kalau kamu tidak malu berjalan-jalan sendiri sambil membawa kamera yang mengarah kepada diri sendiri. Ngomong kepada diri sendiri.

Kalau kamu orangnya cantik atau ganteng mungkin masih bisa dimaklumi, tapi kalau kamu orangnya jelek bagaimana? Jelek itu kan tidak bisa dimaklumi…

Butuh Waktu yang Tepat

Dalam banyak kasus, kamu tidak bisa merekam video kegiatan pada saat sedang hujan meteor. Kamu harus benar-benar tahu kapan waktu yang tepat untuk merekam video. Ingin merekam video suasana anak-anak yang sedang belajar di sekolah? Jangan mengambil gambar video di hari kiamat!

Harus Aktif Secara Fisik

Kamu harus aktif secara fisik. Apa saja emosi yang ingin kamu ungkapkan harus kamu tampilkan pada saat itu juga. Hal-hal semacam ini biasanya menjadi sesuatu yang melelahkan karena kondisi kesehatan dan suasana hati akan sangat mempengaruhi kualitas hasil akhirnya nanti.

Harus Sekali Jadi

Misalkan kamu sedang membuat video proses membuka paket dengan bentuk kemasan yang rumit, tapi kemudian kamu sadar bahwa kamu telah salah posisi membuka di awal. Bagaimana cara membatalkannya?

Misalkan kamu sedang membuat video tentang tahap-tahap memasak tapi lupa menambahkan bumbu pada tahap yang ke tiga. Bagaimana cara mengulanginya? Kalau masakanmu gosong, bagaimana cara membatalkannya?

Gagal merobohkan domino secara beruntun? Susun lagi dari awal, rekam lagi!

Mengganggu Masyarakat dan Lingkungan

Jangan asal merekam video. Kamu itu orang awam! Bahkan seorang wartawan yang profesional saja masih tetap perlu meminta izin terlebuh dahulu kepada pihak-pihak yang bersangkutan sebelum merekam lokasi-lokasi tertentu untuk keperluan mereka.

Etika harus tetap dijaga, dan selalu ingat bahwa tujuan kamu merekam video di lingkungan masyarakat adalah untuk mengambil keuntungan dari mereka. Jangan munafik, karena bahkan ketika kamu menyatakan bahwa kamu melakukan semua itu secara sukarela tanpa memperhitungkan keuntungan secara finansial, kamu masih tetap akan mengambil keuntungan berupa trafik dan kesempatan untuk menjadi pusat perhatian.

Coba pikirkan bagaimana caranya supaya masyarakat tidak merasa dimanfaatkan, apalagi dirugikan. Mungkin kamu bisa membayar mereka, atau berdiskusi mengenai keuntungan apa yang dapat kamu berikan kepada mereka melalui video yang kamu buat. Mereka punya sumber daya yang kamu butuhkan untuk video, dan kamu punya penonton untuk menerima pesan-pesan dari mereka. Akan lebih bagus lagi jika kamu menuliskan pesan-pesan pada video yang kamu buat bahwa video tersebut telah disetujui oleh masyarakat. Hal-hal semacam ini dapat meningkatkan kepercayaan para penonton sehingga kualitas video yang kamu buat akan secara otomatis meningkat, bukan dari segi kualitas pengerjaannya tapi dari segi kualitas narasumber di dalamnya.

Akting, Akting, Akting!

Meskipun Saya menyarankan kamu untuk tidak munafik, tapi mau bagaimana lagi untuk bisa membuat video yang menarik, kita memang harus munafik. Dimulai dari pengaturan tata ruang, pencahayaan dan bahkan penampilan fisik menjadi sesuatu yang harus diperhatikan baik-baik. Kamu perlu mandi dan berdandan sebelum merekam video, padahal biasanya kamu jarang mandi. Kamu harus senyum dan semangat di depan kamera padahal biasanya kamu orangnya pesimis dan hobi menulis status-status galau di media sosial.

Tapi hal-hal munafik semacam itu, kalau dapat menjadi kebiasaan sebenarnya akan memberikan dampak yang positif juga pada diri kamu. Jadi saran Saya, kalau kamu sudah bisa dan terbiasa melakukan itu, coba lakukan saja terus-menerus! Itu akan memberikan aura positif kepada orang-orang di sekitar kamu dan mungkin orang-orang akan jadi lebih mudah untuk berinisiatif menyapa kamu karena orang-orang sudah melihat kamu sebagai karakter yang ramah dan optimis melalui video-video yang kamu buat. Respon-respon positif dari orang lain tentu saja akan memberikan efek yang positif juga kepada kamu. Sehingga perlahan-lahan kebiasaan akting kamu akan membentuk pribadi baru yang lebih positif dalam diri kamu, sehingga kelak kamu tidak perlu akting lagi.

Kamu Mungkin Akan Berhenti Menulis

Karena banyaknya sumber daya yang dibutuhkan, waktu pengerjaan yang lama, dan setelah kamu menyadari bahwa menyampaikan gagasan melalui video ternyata jauh lebih menarik, maka hal-hal tersebut mungkin akan membuat kamu perlahan-lahan berhenti menulis.

Dari Segi Penonton

Sulit Meloncat ke Bagian-Bagian yang Penting

Para pengguna YouTube biasanya akan memanfaatkan fitur loncat untuk menandai bagian-bagian yang penting dalam video. Tautan ini bekerja sebagaimana kamu yang memberikan sub-sub judul tambahan di dalam artikel untuk memisahkan antar paragraf yang satu dengan paragraf yang lain. Tapi ini sangat spesifik kepada platform tertentu, karena tidak semua pemutar video daring mampu menyimpan menit-menit tertentu sebagai bookmark.

Tidak Ada Fitur Pencarian

Format berkas video adalah berupa data biner, dan satu-satunya bagian konten di dalam video yang potensial untuk bisa dicari oleh mesin adalah pada bagian suaranya. Namun tanpa mengubahnya menjadi teks, rasanya tetap mustahil untuk melakukan pencarian kata-kata tertentu di dalam video dengan teknologi saat ini. Kecuali jika video kamu memiliki fitur transkrip otomatis, dimana setiap kata di dalam transkrip tersebut memiliki tautan yang akan membawa kamu kepada bagian-bagian tertentu di dalam video.

Membuang-Buang Waktu

Karena sulit untuk meloncat-loncat pada bagian yang penting dan sulit untuk menemukan bagian yang ingin kita cari saja, maka kita perlu menonton video tersebut dari awal sampai pada posisi dimana bagian yang kita cari akhirnya ditemukan. Durasi dalam video akan memakan waktu keseharian kita. Ini berbeda dengan artikel blog yang kebanyakan hanya berupa teks, yang dapat kita pindai ke posisi mana saja yang kita mau tanpa harus membacanya dari awal sampai akhir.

Hasil Tidak Akan Mengkhianati Usaha

Meskipun menyulitkan dari segi pembuatan dan manajemen waktu, tapi hasil yang diperoleh nantinya tentu akan sesuai dengan usaha yang dilakukan. Video sudah bukan lagi menjadi media berdaya besar yang mudah untuk diabaikan karena walau bagaimanapun kita berusaha menolak, tetap saja kita akan membutuhkannya. Video adalah satu-satunya media yang paling mendekati realita dalam kehidupan, sehingga membaurkan video ke dalam kehidupan sehari-hari akan terasa jauh lebih mudah karena bahkan tanpa adanya video di dunia ini, kita sebenarnya telah lama menjadi penonton sejak zaman dahulu kala. Melihat dan mendengar kehidupan menggunakan mata dan telinga, adalah salah satu kegiatan yang paling mendekati dengan aktivitas menonton video, iya kan?

Labels:

Sunday, January 12, 2020

Apakah Tren Vlog akan Mematikan Eksistensi Blog?

Ngeblog dengan MacBook
Foto oleh Arnel Hasanovic

Jawabannya bisa iya, bisa juga tidak. Tapi kali ini Saya lebih cenderung kepada tidak. Sama halnya ketika kamu bertanya kepada Saya apakah bumi itu bulat atau datar.

Secara teknis Saya tidak tahu karena Saya belum pernah melihat fisik bumi secara langsung melalui indera penglihatan Saya tanpa melibatkan iman. Tapi melihat bagaimana bentuk matahari, bulan dan bintang yang begitu bulat sempurna, maka Saya memutuskan untuk menyatakan bahwa bumi kemungkinan besar berbentuk bulat.

Hal ini berlaku juga untuk blog dan vlog. Fenomena blog yang berkembang menjadi vlog sebenarnya tidak berbeda dengan bagaimana fenomena perkembangan media pertukaran informasi yang sebelumnya telah menjadi pendahulu dari blog. Media tersebut bernama buku.

Melihat situasi sekarang dimana proses pertukaran informasi sudah didominasi oleh internet melalui media-media seperti blog dan buku elektronik, nyatanya buku fisik yang terbuat dari kertas masih tetap laku juga untuk dijual. Bahkan beberapa blog malah sengaja dibuat untuk menjual buku fisik. Jadi ya… begitulah.

Kehidupan.

Labels:

Wednesday, January 1, 2020

Unduh CMS Mecha Versi 2.3.0

Mecha CMS Logo

Mecha 2.3.0 tersedia untuk diunduh!

Labels: , ,

Friday, December 20, 2019

Panduan Git untuk Pemula

Git LogoGit adalah sistem manajemen riwayat pengembangan kode perangkat lunak, diciptakan pertama kali oleh Linus Torvalds, orang yang sama yang juga telah menciptakan sistem operasi Linux. Fungsi utama dari sistem manajemen kode ini adalah sebagai perekam riwayat pembaruan atau revisi kode sepanjang waktu. Git sama sekali tidak memiliki keterkaitan dengan GitHub, kecuali bahwa GitHub adalah situs web yang berfungsi untuk menyimpan riwayat pembaruan kode perangkat lunak secara daring melalui sistem kontrol riwayat (versi) berjenis Git. Beberapa jenis sistem manajemen riwayat kode selain Git adalah Subversion dan Mercurial, sedangkan beberapa situs web yang sejenis dengan GitHub adalah GitLab dan Bitbucket.

Ketika kamu telah terbiasa menggunakan Git, maka kamu bisa merasakan bahwa kegiatan revisi kode yang kamu lakukan sehari-hari akan tampak seperti ketika kamu sedang menulis jurnal pribadi atau mengeksekusi daftar rencana harian. Kenapa? Karena setiap kali kamu selesai melakukan sesuatu, dimulai dari membuat, menyunting, sampai dengan menghapus berkas, kamu harus membiasakan diri untuk selalu menuliskan pesan dan deskripsi singkat mengenai apa saja yang telah kamu lakukan. Kegiatan ini, dalam lingkungan Git akan disebut sebagai commit.

Karena awal mula penciptaan Git adalah untuk mengembangkan sistem kernel Linux, maka di sini Saya akan menjelaskan perintah-perintah Git melalui sistem operasi yang sama.

Kalau kamu adalah anak Windows sejak lahir, istilah “terminal” mungkin akan terdengar sangat asing di telinga. Terminal adalah aplikasi penerjemah baris-baris perintah dalam bentuk teks yang dituliskan oleh pengguna menggunakan papan ketik melalui tampilan baris perintah (CLI). Pada Windows, kalian akan mengenalnya sebagai Command Prompt atau MS-DOS. Ada beberapa perbedaan kecil dari segi penamaan perintah-perintah yang terdapat pada aplikasi Terminal dibandingkan dengan perintah-perintah pada aplikasi Command Prompt. Di sini Saya hanya ingin menjelaskan garis-garis besarnya saja, untuk keperluan pengoperasian aplikasi Git saja. Kalau kamu pakai Windows, tidak apa-apa. Kamu tidak berdosa. Konsep-konsep di bawah ini akan tetap berguna untuk dipelajari dan dipahami. Nanti akan Saya jabarkan secara lengkap padanan-padanan perintah untuk Command Prompt pada Windows yang setara dengan perintah-perintah Terminal pada Linux.

Kalau kamu baru pertama kali pakai Linux dan masih ragu untuk membuka aplikasi Terminal, mungkin ini adalah saat yang paling tepat untuk melakukan perbuatan dosa terbesar.

Jadi… bukalah aplikasi Terminal sekarang juga, dan mulailah untuk menjadi orang dewasa yang hina, dengan sejuta aib dan dosa yang tak akan mungkin bisa diampuni!

Membuka Aplikasi Terminal

Beginilah tampilan aplikasi Terminal pada Linux. Masing-masing distro mungkin akan memiliki gaya tampilan yang berbeda, akan tetapi konten pertama yang tampil selalu seperti ini, yaitu terdiri dari nama pengguna dan nama komputer, diikuti dengan lokasi direktori saat ini:

taufik@linux:~$

Tidak tahu di mana letak aplikasinya?

Kamu tukang bohong!

Pada tampilan di atas, taufik adalah nama pengguna dan linux adalah nama komputer yang sedang kamu pakai sekarang. Karakter ~/ yang muncul setelahnya menyatakan lokasi direktori saat ini. Simbol ~ menyatakan bahwa kamu sedang berada pada akar lokasi yang spesifik kepada pengguna yang sedang aktif, yaitu taufik. Tanpa itu, kamu akan berada pada lokasi akar utama untuk semua pengguna.

Perintah-Perintah Dasar Terminal

Mari kita berkenalan dengan perintah-perintah dasar Terminal terlebih dahulu. Dimulai dengan mengetik ls pada bidang perintah:

taufik@linux:~$ ls

Perintah ini berfungsi untuk menampilkan daftar berkas dan folder di dalam direktori saat ini. ls adalah kependekan dari “list”.

Sekarang kita buat folder baru bernama Git dengan menuliskan perintah mkdir nama-folder. mkdir adalah kependekan dari “make directory”:

taufik@linux:~$ mkdir Git

Coba masuk ke folder tersebut dengan menuliskan perintah cd nama-folder. cd adalah kependekan untuk “change directory”:

taufik@linux:~$ cd Git

Untuk berpindah ke folder induk, tuliskan nama folder sebagai ... Kombinasikan dengan karakter / untuk berpindah-pindah lokasi folder beberapa tingkat sekaligus.

Untuk menghapus folder, gunakan perintah rmdir nama-folder. Perintah ini hanya bekerja pada folder-folder yang kosong saja. Untuk menghapus folder beserta isinya, gunakan perintah rm (untuk “remove”) dengan opsi -R (untuk “recursive”) yang aktif:

taufik@linux:~$ rm -R nama-folder

Untuk membuat berkas, gunakan perintah touch nama-berkas. Untuk menghapus berkas, gunakan perintah rm nama-berkas. Nanti akan Saya jelaskan di bawah.

Perintah-Perintah Dasar Git

Kembali ke folder Git. Di sini kita akan mencoba membuat repositori dengan nama yang sama seperti nama repositori yang pernah kamu buat sebelumnya melalui tampilan web GitHub. Coba kamu buat folder bernama blog dengan cara yang sudah Saya jelaskan sebelumnya, kemudian segera masuk ke folder tersebut.

Jadikan folder blog sebagai repositori lokal kita. Jalankan perintah git init pada folder tersebut. Jika muncul pesan kesalahan bahwa perintah git tidak ada, maka itu artinya aplikasi Git masih belum terpasang.

Untuk memasang aplikasi Git pada sistem operasi Linux, tuliskan perintah sudo apt-get install git (lokasi direktori saat ini tidak akan memberikan pengaruh apa-apa kepada perintah tersebut; aplikasi akan tetap terpasang secara global). Di situ kamu akan diminta untuk memasukkan kata kunci pengguna yang utama:

taufik@linux:~$ sudo apt-get install git

Tidak tahu kata kuncinya? Itu adalah kata kunci yang sama yang kamu gunakan untuk log masuk ke komputer.

Masih tetap tidak tahu juga kata kuncinya? Coba tanyakan ke mama kamu. Mama kamu pakai Linux? Mama kamu keren!

Aplikasi Git sudah terpasang? Bagus! Sekarang jalankan perintah git init. Jika berhasil, maka akan muncul pesan seperti ini:

taufik@linux:~/Git/blog$ git init

Kamu mungkin juga akan diminta untuk menentukan nilai konfigurasi user.name dan user.email pada aplikasi Git. Pada bidang user.name, isikan dengan nama asli kamu. Pada bidang user.email, isikan dengan alamat surel yang aktif. Bagian ini sebenarnya tidak begitu penting ketika kamu hendak mengintegrasikan aplikasi Git dengan GitHub, karena GitHub memiliki sistem autentikasi tersendiri.

taufik@linux:~/Git/blog$ git config --global user.name "Taufik Nurrohman"
taufik@linux:~/Git/blog$ git config --global user.email "mail@example.com"

Ketika kamu melihatnya melalui tampilan penjelajah berkas, maka kamu akan melihat sebuah folder bernama .git telah ditambahkan ke dalam folder blog. Jika tidak tampak, coba aktifkan pilihan untuk memperlihatkan folder tersembunyi:

~/Git/blog/.git

Sekarang coba kita buat sebuah berkas baru dengan menuliskan perintah touch nama-file:

taufik@linux:~/Git/blog$ touch layout.css

Sebuah berkas bernama layout.css akan ditambahkan ke dalam folder blog seperti ini:

~/Git/blog/layout.css

Untuk menyunting berkas tersebut, jalankan perintah sudo nama-editor nama-berkas. Editor teks primitif yang biasanya sudah ada secara otomatis pada setiap sistem operasi Linux adalah nano dan vi:

taufik@linux:~/Git/blog$ sudo nano layout.css

Editor vi adalah editor yang paling tua. Saya pribadi lebih nyaman menggunakan nano karena untuk berpindah-pindah kursor kita hanya perlu menggunakan panah atas, bawah, kanan dan kiri pada papan ketik. Tapi kalau kamu ternyata lebih suka tipe yang lebih tua ya silakan. Saya tidak akan menghakimi orientasi seksual kamu.

Tekan Ctrl + S untuk menyimpan perubahan, tekan Ctrl + X untuk keluar dari editor teks dan kembali ke tampilan terminal.

“Memangnya nggak bisa kalau kita langsung menyunting berkas layout.css menggunakan aplikasi GUI yang tersedia seperti jEdit atau Visual Studio Code?”

Bisa kok.

“Terus ngapain kita harus pusing-pusing menuliskan perintah sudo nano layout.css di terminal? Berarti untuk membuat dan menghapus folder atau berkas sebenarnya bisa dilakukan melalui tampilan penjelajah berkas juga kan?!”

HEHEHEHEHEHEHEHE.

Sampai di mana tadi?

Untuk mengecek perubahan yang telah dilakukan, jalankan perintah git status:

taufik@linux:~/Git/blog$ git status

Di situ akan muncul pesan bahwa terdapat berkas yang belum ditambahkan ke dalam daftar rekaman. Jalankan perintah git add nama-berkas untuk menambahkannya ke dalam daftar. Kalau kamu memiliki lebih dari satu berkas dan ingin menambahkan semua berkas yang ada sekaligus, kamu bisa menuliskan semua nama berkas sebagai karakter titik:

taufik@linux:~/Git/blog$ git add .

Kalau kamu ingin menambahkan berkas-berkas tertentu sekaligus, kamu bisa memisahkannya menggunakan karakter spasi:

taufik@linux:~/Git/blog$ git add nama-berkas-1 nama-berkas-2 nama-berkas-3

Jalankan kembali perintah git status, di situ kamu akan melihat bahwa berkas layout.css sudah berhasil masuk ke dalam daftar berkas yang akan direkam perubahannya.

Langkah terakhir yang perlu kamu lakukan adalah menambahkan pesan dan deskripsi singkat mengenai apa yang sudah kamu lakukan pada berkas-berkas yang ada di dalam daftar tersebut dengan menjalankan perintah git commit -m "Pesan Riwayat":

taufik@linux:~/Git/blog$ git commit -m “Pesan Riwayat”

Untuk menuliskan pesan dan deskripsi yang lebih kompleks, misalnya jika kamu ingin membuat pesan sebagai paragraf-paragraf yang panjang, gunakan perintah git commit -a.

Untuk membatalkan perekaman riwayat terakhir, gunakan perintah git reset ..

Melakukan Pembaruan

Sekarang kamu ingin menyunting berkas yang sudah ada. Kamu jalankan kembali perintah sudo nama-editor nama-berkas untuk menyunting berkas yang sudah ada:

taufik@linux:~/Git/blog$ sudo nano layout.css

Untuk melihat perubahan yang ada, jalankan perintah git diff. Kamu akan melihat deskripsi singkat mengenai baris mana yang akan dihapus (diawali dengan simbol -) dan baris mana yang akan ditambahkan ke dalam berkas (diawali dengan simbol +):

taufik@linux:~/Git/blog$ git diff

Jalankan perintah git add . dan git commit -m "Pesan Riwayat Baru" untuk merekam perubahan yang baru:

taufik@linux:~/Git/blog$ git diff

Seperti itu saja cara paling dasar untuk menggunakan aplikasi Git secara lokal.

Integrasi dengan GitHub

Jika merekam perubahan secara lokal dirasa masih belum cukup, kamu bisa memanfaatkan layanan GitHub untuk menyimpan repositori beserta daftar riwayat perubahan yang ada secara daring. Untuk bisa mengunggah repositori lokal kamu ke GitHub, kamu perlu membuat repositori secara manual melalui tampilan web GitHub seperti yang pernah Saya jelaskan sebelumnya. Hanya saja kali ini kamu tidak perlu menambahkan berkas apa-apa ke dalam repositori tersebut.

Tambahkan alamat remote berupa URL yang bisa kamu dapatkan pada repositori terkait:

GitHub Clone or Download Button
Mendapatkan URL remote repositori.

Pilih salah satu. Di sini Saya menggunakan versi HTTPS karena jauh lebih praktis.

Jalankan perintah git remote add origin https://github.com/nama-pengguna/nama-repositori.git. Kamu cukup melakukan perintah tersebut sekali saja. Untuk menghapus pengaturan tersebut, gunakan perintah git remote remove origin. Untuk mulai mengunggah repositori lokal ke GitHub, jalankan perintah git push origin master. Kamu mungkin akan diminta untuk memasukkan nama pengguna dan kata kunci yang kamu punya pada akun GitHub:

taufik@linux:~/Git/blog$ git push origin master

origin adalah nama alias untuk URL remote yang barusan kamu tambahkan. Saya belum pernah mendengar ada nama lain yang bisa digunakan di GitHub selain origin dan upstream. master adalah nama cabang bawaan yang aktif. Kamu bisa menggunakan nama cabang yang lain jika ada. Penjelasan mengenai cara membuat cabang baru pada repositori mungkin akan Saya jelaskan pada artikel yang lain saja.

Melihat Perubahan pada Repositori GitHub

Kalau kamu membuka alamat https://github.com/nama-pengguna/nama-repositori di peramban, kamu akan melihat bahwa berkas layout.css dan daftar riwayat pembaruan telah tersimpan dengan rapi pada repositori tersebut:

GitHub Remote
Data repositori GitHub yang berhasil diperbarui melalui aplikasi Git.

Kenapa Harus Menggunakan Git?

Berikut ini adalah beberapa kelebihan menggunakan aplikasi Git dibandingkan dengan menggunakan tampilan web GitHub untuk merekam riwayat:

  1. Tampilan lebih ringkas. Menyunting repositori serasa sedang menyunting berkas-berkas di komputer, seperti biasanya.
  2. Lebih hemat kuota internet. Ketika menggunakan aplikasi Git, menguggah kode ke GitHub hanya akan dibebani oleh kuota sebesar ukuran berkas yang akan diunggah saja. Ini berbeda dengan ketika kita menggunakan tampilan web GitHub. Karena untuk membuat dan menyunting berkas melalui web GitHub secara langsung, kita perlu mengunduh halaman HTML GitHub berikut dengan semua berkas CSS dan JavaScript yang ada pada situs web tersebut.
  3. Proses mengunggah akan jauh lebih cepat karena ukuran berkas yang diminta dan diberikan telah dikonversi ke dalam ukuran yang paling kecil.
  4. Dapat mengunggah beberapa berkas sekaligus.
  5. Tampilan web GitHub hanya mendukung perintah-perintah dasar saja seperti untuk membuat, menyunting dan menghapus berkas.

Git pada Windows

Menggunakan Git pada Windows tidak jauh berbeda dengan menggunakan Git pada Linux. Perbedaan hanya terdapat pada cara memasang aplikasi Git dan cara mengeksekusi perintah-perintah dasar untuk membuat, menyunting dan menghapus berkas dan folder.

Untuk memasang aplikasi Git pada Windows, kunjungi Git for Windows. Jalankan perintah-perintah Git pada aplikasi Command Prompt:

C:\Users\user>git help

Berikut ini adalah perintah-perintah dasar untuk menangani berkas dan folder melalui tampilan baris perintah pada Windows:

PerintahLinuxWindows
Menampilkan daftar berkas dan folder.lsDIR
Membuat folder.mkdir nama-folderMD nama-folder
MKDIR nama-folder
Menghapus folder yang kosong.rmdir nama-folderRD nama-folder
RMDIR nama-folder
Menghapus folder dan semua konten di dalamnya.rm -R nama-folderRD /S /Q nama-folder
RMDIR /S /Q nama-folder
Membuat berkas baru.touch nama-berkasTYPE NUL >> nama-berkas
ECHO >> nama-berkas
Menghapus berkas.rm nama-berkasDEL nama-berkas
Menyunting berkas.sudo nano nama-berkasNOTEPAD nama-berkas
Berpindah-pindah lokasi direktori.cd nama-folderCD nama-folder
CHDIR nama-folder

Integrasi dengan “X”

Masing-masing situs web penyedia layanan penyimpanan riwayat pembaruan kode memiliki cara tersendiri untuk menghubungkan peladen mereka dengan repositori lokal di komputer kita. Yang paling penting untuk diperhatikan biasanya hanya ada pada perintah git remote add origin alamat-repositori-git. Sebagai contoh, GitLab menggunakan format URL yang sama dengan GitHub yaitu https://gitlab.com/nama-pengguna/nama-repositori.git, sedangkan Bitbucket menggunakan format URL https://nama-pengguna@bitbucket.org/id-workspace/nama-repositori.git.

Labels: