<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aris Ripandi</title>
    <description>The latest articles on DEV Community by Aris Ripandi (@aris).</description>
    <link>https://dev.to/aris</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F85971%2F774fb8bf-6836-4ae9-b8d3-d47b440e2b0b.jpg</url>
      <title>DEV Community: Aris Ripandi</title>
      <link>https://dev.to/aris</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aris"/>
    <language>en</language>
    <item>
      <title>I'm building a macOS app in a week with Tauri and Supabase.</title>
      <dc:creator>Aris Ripandi</dc:creator>
      <pubDate>Fri, 26 Aug 2022 08:50:59 +0000</pubDate>
      <link>https://dev.to/aris/im-building-a-macos-app-in-a-week-with-tauri-and-supabase-4i4n</link>
      <guid>https://dev.to/aris/im-building-a-macos-app-in-a-week-with-tauri-and-supabase-4i4n</guid>
      <description>&lt;p&gt;The app was built only in 5 days within the Supabase &lt;a href="https://supabase.com/blog/launch-week-5-hackathon" rel="noopener noreferrer"&gt;Launch Week 5 Hackathon&lt;/a&gt;. The story begins with my small idea to create an authenticator application that can be synced to any device and any platform (macOS, iOS, Linux, Windows, and Android).&lt;/p&gt;

&lt;p&gt;Authenticator is an application to generate TOTP or HOTP code used for securing online accounts with 2FA (two-factor authentication). Why? Because the combination of username or email with password is never enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Story Begin
&lt;/h2&gt;

&lt;p&gt;Many authenticator apps already exist on Google Play Store and Apple App Store. Most of them have synchronization features but are limited to backup only or sync with the same platform (ie: iOS or Android only). I'm using one of them for years and at this moment I'm feeling bothered when switching to a mobile device every time login into a website or online service. So, I created &lt;a href="https://otentik.app" rel="noopener noreferrer"&gt;Otentik Authenticator&lt;/a&gt;. A &lt;a href="https://support.google.com/accounts/answer/1066447" rel="noopener noreferrer"&gt;Google authenticator&lt;/a&gt; compatible app built within Supabase Hackaton.&lt;/p&gt;

&lt;p&gt;I want to make this app available on many platforms. Currently only support for macOS, other platforms will be released in the future. To realize synchronization capability I choose Supabase. I don't need to create an API for the backend because Supabase has an API, even better they have SDK. Because Supabase uses PostgreSQL for the database engine and is hosted at AWS, I have no worries about the API reliability.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuzqa6whq5xd4u5f4widd.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuzqa6whq5xd4u5f4widd.jpeg" alt="SCR-20220826-l7o.jpeg" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;p&gt;The desktop app of Otentik was built using &lt;a href="https://tauri.app/" rel="noopener noreferrer"&gt;Tauri&lt;/a&gt;. Tauri uses &lt;a href="https://www.rust-lang.org/" rel="noopener noreferrer"&gt;Rust&lt;/a&gt; and can be combined with various frontend libraries like React, Vue, Svelte, etc. In this case, I'm using &lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React.js&lt;/a&gt;. For styling the UI &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt;, &lt;a href="https://tailwindui.com/" rel="noopener noreferrer"&gt;TailwindUI&lt;/a&gt;, and &lt;a href="https://headlessui.com/" rel="noopener noreferrer"&gt;HeadlessUI&lt;/a&gt; are used. Otentik uses AES256 to encrypt sensitive data and uses the user's password for the encryption salt. So, I can't decrypt or see the user's data.&lt;/p&gt;

&lt;p&gt;To maximize Rust, instead of using NPM packages for the encryption library I'm using Rust libraries from the &lt;a href="https://crates.io/" rel="noopener noreferrer"&gt;Crates.io&lt;/a&gt; and creating some abstraction from that packages. This method can reduce the bundle size because "you know &lt;code&gt;node_modules&lt;/code&gt;, huh"? 😄 Also, this can increase the security of the app, reversing engineering compiled binary much harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Result
&lt;/h2&gt;

&lt;p&gt;This is resource usage of Otentik Authenticator.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hvsxdvlshylj5ahd6j3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hvsxdvlshylj5ahd6j3.png" alt="image.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Surprises
&lt;/h2&gt;

&lt;p&gt;Hey man, Otentik Authenticator is a winner for &lt;a href="https://supabase.com/blog/launch-week-5-hackathon-winners" rel="noopener noreferrer"&gt;Supabase Launch Week 5 Hackathon&lt;/a&gt; in the "Most Technically Impressive" category. I'm so glad! 🎉🎉🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80qj2ijyutlsflp7kpg2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80qj2ijyutlsflp7kpg2.png" alt="image.png" width="800" height="950"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You wanna try it? Check out at &lt;a href="https://otentik.app" rel="noopener noreferrer"&gt;otentik.app&lt;/a&gt;. Also, this project is Open Sourced at &lt;a href="https://github.com/riipandi/otentik-authenticator-desktop/tree/develop" rel="noopener noreferrer"&gt;Github&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Deploying Authorizer to Fly.io</title>
      <dc:creator>Aris Ripandi</dc:creator>
      <pubDate>Fri, 01 Jul 2022 20:12:46 +0000</pubDate>
      <link>https://dev.to/aris/deploying-authorizer-to-flyio-2mem</link>
      <guid>https://dev.to/aris/deploying-authorizer-to-flyio-2mem</guid>
      <description>&lt;p&gt;When we create applications, a lot of time will be spent just creating authentication features. If you add more login feature such as OAuth, SAML, etc it will add more effort and cost. Auth0, Okta, OneLogin, AWS Cognito, or other similar services are quick solutions to this problem. But if you are paranoid about privacy, you will definitely prefer to use on-prem services.&lt;/p&gt;

&lt;p&gt;Currently, several authentication application options are available for free, some of them are Open Source. Keycloack, FusionAuth, Gluu, and Ory are some examples. From my experience trying those products, they have complete documentation but the installation and deployment process not as easy as snapping a finger.&lt;/p&gt;

&lt;p&gt;A couple of weeks ago, when I was browsing Product Hunt there was a new product named Authorizer. Then I was curious to try this one. The official documentation provides instructions to install or deploy Authorizer at various services like Heroku, Render, and Railway. I want to try to deploy it to Fly.io, unfortunately, I can't find the documentation, and I still have not found a tutorial about this. So, I do a little experiment, and here's the result.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For more information about Authorizer visit &lt;a href="https://authorizer.dev" rel="noopener noreferrer"&gt;https://authorizer.dev&lt;/a&gt; For more information about Fly.io visit &lt;a href="https://fly.io/docs" rel="noopener noreferrer"&gt;https://fly.io/docs&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A PC or laptop (absolutely)&lt;/li&gt;
&lt;li&gt;Your favorite Terminal&lt;/li&gt;
&lt;li&gt;A cup of coffee or your favorite drink&lt;/li&gt;
&lt;li&gt;A Fly.io account&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;I'm using macOS, you'll need to adapt some commands to the OS you're using.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Step 1 : Installing Fly.io CLI
&lt;/h2&gt;

&lt;h3&gt;
  
  
  macOS
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install flyctl

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Linux
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -L https://fly.io/install.sh | sh

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Windows
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;iwr https://fly.io/install.ps1 -useb | iex

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2 : Login to Fly.io
&lt;/h2&gt;

&lt;p&gt;Make sure you already have a Fly.io account.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flyctl auth login

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 3 : Create Fly.io app for Authorizer
&lt;/h2&gt;

&lt;p&gt;Create a directory for the workspace and move to your created directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flyctl launch --org personal --name authorizer --region lax --no-deploy

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note: in this sample I created an app named &lt;code&gt;authorizer&lt;/code&gt; at &lt;code&gt;lax&lt;/code&gt; region and &lt;code&gt;personal&lt;/code&gt; organization. For more information about Fly.io regions read &lt;a href="https://fly.io/docs/reference/regions/#fly-io-regions" rel="noopener noreferrer"&gt;this documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4 : Configure the &lt;code&gt;fly.toml&lt;/code&gt; file
&lt;/h2&gt;

&lt;p&gt;You will find a new file &lt;code&gt;fly.toml&lt;/code&gt;. This file is the deploy configuration file for Fly.io.&lt;/p&gt;

&lt;p&gt;Add this part to &lt;code&gt;fly.toml&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[build]
image = "lakhansamani/authorizer:latest"

[experimental]
private_network = true
cmd = ["./build/server", "--database_type=postgres"]
allowed_public_ports = []
auto_rollback = true

[env]
  PORT = "8080"
  FLY_REGION = "sin"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then change &lt;code&gt;internal_port&lt;/code&gt; to &lt;code&gt;8080&lt;/code&gt; inside the &lt;code&gt;[[services]]&lt;/code&gt; section just like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[[services]]
  internal_port = 8080
  processes = ["app"]
  protocol = "tcp"
  script_checks = []

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The complete &lt;code&gt;fly.toml&lt;/code&gt; file will become like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app = "authorizer"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []

[build]
image = "lakhansamani/authorizer:latest"

[experimental]
private_network = true
cmd = ["./build/server", "--database_type=postgres"]
auto_rollback = true

[env]
  PORT = "8080"
  FLY_REGION = "sin"

[[services]]
  internal_port = 8080
  processes = ["app"]
  protocol = "tcp"
  script_checks = []

  [services.concurrency]
    type = "connections"
    hard_limit = 25
    soft_limit = 20

  [[services.ports]]
    force_https = true
    handlers = ["http"]
    port = 80

  [[services.ports]]
    handlers = ["tls", "http"]
    port = 443

  [[services.tcp_checks]]
    grace_period = "1s"
    interval = "15s"
    restart_limit = 0
    timeout = "2s"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 5 : Prepare the database
&lt;/h2&gt;

&lt;p&gt;We will use Postgres for the database. Run this command to create a Postgres instance at Fly.io:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flyctl postgres create \
  --organization personal \
  --name authorizer-db \
  --initial-cluster-size 1 \
  --password $(openssl rand -hex 8) \
  --region lax \
  --vm-size shared-cpu-1x \
  --volume-size 3

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To connecting the Postgres database, we need to attach by using this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flyctl postgres attach --postgres-app authorizer-db

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will add an environment variable &lt;code&gt;DATABASE_URL&lt;/code&gt;. You don't need to remove or change the variable name because this variable name is same with the required Authorizer envar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6 : Deploy
&lt;/h2&gt;

&lt;p&gt;Before we deploy the app, we need to change some configuration. Luckily Authorizer makes this easy by using envar. Then, we need to generate a random string for &lt;code&gt;ADMIN_SECRET&lt;/code&gt;. This secret is used for authentication to the admin console.&lt;/p&gt;

&lt;p&gt;You can use &lt;code&gt;openssl&lt;/code&gt;, for example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;openssl rand -base64 500 | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add some environment variables to our Fly.io app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flyctl secrets set \
    ENV="production" \
    ADMIN_SECRET=CHANGE_THIS_BY_WHATEVER_YOU_WANT \
    DATABASE_TYPE="postgres" \
    SENDER_EMAIL=CHANGE_THIS \
    SMTP_HOST=CHANGE_THIS \
    SMTP_PASSWORD=CHANGE_THIS \
    SMTP_PORT=587 \
    SMTP_USERNAME=CHANGE_THIS \
    ORGANIZATION_NAME="Feelantera" \
    URL="https://authorizer.fly.dev"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Find out more about Environment Variables &lt;a href="https://docs.authorizer.dev/core/env" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Finally, deploy the app by execute this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flyctl deploy

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the deployment process has been finish, check the application logs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flyctl logs

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Remember: every time you make a change to the envars, Fly.io will redeploy your app.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Congratulation, you have an authentication service for your application! Open &lt;code&gt;https://authorizer.fly.dev&lt;/code&gt; and use &lt;code&gt;ADMIN_SECRET&lt;/code&gt; for the authentication password.&lt;/p&gt;

</description>
      <category>authentication</category>
      <category>react</category>
      <category>deployment</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Simplify Your Web Development Stack [For Windows Users]</title>
      <dc:creator>Aris Ripandi</dc:creator>
      <pubDate>Sun, 15 Dec 2019 08:54:31 +0000</pubDate>
      <link>https://dev.to/aris/simplify-your-web-development-stack-for-windows-users-abo</link>
      <guid>https://dev.to/aris/simplify-your-web-development-stack-for-windows-users-abo</guid>
      <description>&lt;p&gt;Hi everyone! Maybe you already know about XAMPP, WAMP Server, or even Laragon. They are kits of web servers such as Apache HTTPd, MySQL / MariaDB, and PHP that run on Windows. Some people who use MacOS might use Laravel Valet or MAMP, but for some Laravel developers they prefer using Valet because it's easier to use. &lt;/p&gt;

&lt;p&gt;Today, I want to introduce to you that I created another alternative web development stack, it's called &lt;a href="https://varlet.dev" rel="noopener noreferrer"&gt;Varlet&lt;/a&gt; and runs in a Windows environment. The basic idea is to combine easily replaced PHP versions such as Laragon, and CLI commands like Laravel Valet.&lt;/p&gt;

&lt;p&gt;You can swap PHP versions very easily. Varlet come with two application: graphical user interface used for configure Varlet and managing the services, and commandline app for creating virtualhost like Laravel Valet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Virtualhost
&lt;/h2&gt;

&lt;p&gt;You can create or linking your project in any directory. Yo create virtualhost, in CMD or Terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="kd"&gt;D&lt;/span&gt;:\some\directory\of\your\project

&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;varlet&lt;/span&gt; &lt;span class="kd"&gt;link&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also, you can specify a domain name:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;varlet&lt;/span&gt; &lt;span class="kd"&gt;link&lt;/span&gt; &lt;span class="na"&gt;-d &lt;/span&gt;&lt;span class="kd"&gt;myproject&lt;/span&gt;.test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, you can open your site with or without &lt;code&gt;https&lt;/code&gt;, because Varlet will automatically generate SSL Certificate for your virtualhost.&lt;/p&gt;

&lt;p&gt;To remove a virtualhost:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="kd"&gt;D&lt;/span&gt;:\some\directory\of\your\project

&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;varlet&lt;/span&gt; &lt;span class="kd"&gt;unlink&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This project is Open Source, you can contribute to this project. See this on the Github project page: &lt;a href="https://github.com/riipandi/varlet" rel="noopener noreferrer"&gt;https://github.com/riipandi/varlet&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;For ideas, issues, or feature requests, join us at &lt;a href="https://spectrum.chat/varlet" rel="noopener noreferrer"&gt;https://spectrum.chat/varlet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thank you.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>php</category>
      <category>laravel</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Faktor Penting Branding Bisnis di Era Industri Digital</title>
      <dc:creator>Aris Ripandi</dc:creator>
      <pubDate>Wed, 10 Jul 2019 17:00:00 +0000</pubDate>
      <link>https://dev.to/aris/faktor-penting-branding-bisnis-di-era-industri-digital-43ho</link>
      <guid>https://dev.to/aris/faktor-penting-branding-bisnis-di-era-industri-digital-43ho</guid>
      <description>&lt;p&gt;Trend masa kini sudah bergeser ke era digital. Hampir semua unsur kehidupan kita ditunjang dengan teknologi digital, mulai dari untuk pemakaian pribadi, bidang pendidikan, bidang pertanian, ekonomi, pendidikan, dan masih banyak bidang lain yang sudah dan mulai memanfaatkan teknologi digital. Untuk pribadi misalnya, mulai dari bangun hingga akan tidur lagi kebiasaan kebanyakan orang saat ini adalah mengecek ponsel mereka (termasuk juga saya pribadi). Hal itu dilakukan entah untuk bermedia sosial, chat, atau bahkan saya sering menonton video supaya dapat tertidur (karena saya sering kesulitan untuk terlelap). Di sisi lain yang sedang marak saat ini adalah pemanfaatan teknologi digital untuk bisnis. Mulai dari UMKM hingga perusahaan korporasi besar.&lt;/p&gt;

&lt;p&gt;Teknologi digital menggeser pola perilaku kita, sehingga mau tidak mau akan memaksa kita untuk mengikuti arus perkembangannya. Tengok saja beberapa contoh kasus: Matahari dan Hero misalnya, dua perusahaan ritel tersebut sampai menutup beberapa gerainya dan Matahari membuat marketplace sendiri untuk dapat bersaing dengan platform e-commerce kompetitornya.&lt;/p&gt;

&lt;p&gt;Saat ini tak sedikit pelaku bisnis perorangan dan UMKM yang menggunakan media sosial atau platform e-commerce sebagai lapak digital. Dengan maraknya pelaku bisnis di jagat maya, tentu persaingan akan semakin ketat. Mereka (pelaku bisnis) tentu harus berusaha sebaik mungkin agar bisnis mereka dapat dengan mudah ditemukan oleh konsumen, terutama di mesin pencari semacam Google. Lantas apa yang menjadi faktor utama agar bisnis kita dapat mudah ditemukan di internet? Jawabannya adalah penamaan domain!&lt;/p&gt;

&lt;p&gt;Pentingnya Menentukan Nama Domain Untuk Brand Bisnis Anda&lt;/p&gt;

&lt;p&gt;Menurut Wikipedia:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Nama domain (bahasa Inggris: domain name) adalah nama unik yang diberikan untuk mengidentifikasi nama server komputer seperti web server atau email server di jaringan komputer ataupun internet.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nama domain ibaratkan alamat rumah kita di internet. Alasan kenapa saya menjadikan penamaan domain sebagai faktor utama dalam menggeluti bisnis di ranah digital adalah karena semakin relevan nama domain dengan identitas bisnis kita, maka akan semakin mudah diindeks oleh mesin pencari dan ditemukan oleh konsumen di mesin pencari tersebut. Selain relevansi penamaan domain dengan nama bisnis, aspek lainnya adalah keunikan dari domain tersebut. Semakin unik nama domain, semakin sedikit juga kompetitornya dan semakin mudah lagi ditemukan di mesin pencari. Serta usahakan menamai domain dan brand bisnis Anda agar mudah untuk diingat dan dieja.&lt;/p&gt;

&lt;p&gt;Saya beri contoh dari pengalaman saya pribadi. Saat ini saya sedang merintis sebuah perusahaan yang bernama Ruhay Creative Studio bersama beberapa rekan-rekan saya. Kami merupakan orang-orang yang bisa dibilang sangat bergantung pada teknologi digital. Keseharian kami ada di jagat maya, terutama untuk kegiatan usaha yang kami lakukan. Nah, saat berdiskusi untuk menamai brand perusahaan kami menjadikan keunikan nama sebagai aspek yang paling utama. Berikutnya kemudahaan untuk diucapkan dan diingat, serta keterkaitannya dengan ranah bisnis yang kami lakukan. Setelah kesepakatan terjadi, dipilihlah Ruhay Creative Studio sebagai nama brand kami dan domain ruhaycreative tidak ada satupun yang menggunakannya. Alhasil, setelah website-nya dibuat dan setelah dilakukan optimasi SEO, website-nya muncul di halaman pertama pencarian Google dalam kurun waktu kurang dari satu minggu saja.&lt;/p&gt;

&lt;p&gt;Contoh lainnya, jika kita ingin membuat blog atau website misalnya. Tentu kita akan membutuhkan penyedia layanan untuk mendaftarkan nama domain dan hosting untuk website itu sendiri. Biasanya penyedia layanan hosting yang ada selalu menyediakan layanan pendaftaran domain. Kata kunci yang terpikirkan pertama kali pasti lah web hosting, web hosting indonesia, atau Hosting Indonesia. Di hasil pencarian Google akan muncul beberapa perusahaan, di halaman pertama ketika saya mencari kata kunci web hosting indonesia ada Domain Aja. Kenapa bisa seperti itu? Seperti yang sudah saya jelaskan sebelumnya, karena kata kunci web ada di nama domain tersebut serta brand Domain Aja sangat mudah diingat dan dieja. Tentu hal tersebut juga disukai oleh mesin pencari karena sangat relevan dengan kata kunci pencarian.&lt;/p&gt;

&lt;p&gt;Demikianlah ulasan singkat dari sudut pandang saya mengenai berbisnis di era digital. Semoga dapat bermanfaat bagi Anda yang sedang atau akan merintis usaha di era industri digital saat ini.&lt;/p&gt;

&lt;p&gt;Selamat berbisnis!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Easy Way To Backup Your Data In GNU/Linux</title>
      <dc:creator>Aris Ripandi</dc:creator>
      <pubDate>Thu, 29 Nov 2018 07:26:23 +0000</pubDate>
      <link>https://dev.to/aris/easy-way-to-backup-your-data-in-gnulinux-1gc5</link>
      <guid>https://dev.to/aris/easy-way-to-backup-your-data-in-gnulinux-1gc5</guid>
      <description>&lt;p&gt;Data is one thing that is very important for us. Data loss is a disaster for everyone, including a System Administrator. Therefore, it is necessary to backup your data regularly. In Linux we can easily to backup data automatically and scheduled. The following will explain how.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 01 – setup ssh
&lt;/h2&gt;

&lt;p&gt;This step should be done because we will upload the backup file to a remote server. At this stage we will arrange to login SSH without password.&lt;/p&gt;

&lt;p&gt;Create RSA key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/.ssh  
&lt;span class="nb"&gt;touch&lt;/span&gt; ~/.ssh/authorized_keys  
ssh-keygen &lt;span class="nt"&gt;-t&lt;/span&gt; rsa &lt;span class="nt"&gt;-b&lt;/span&gt; 2048  
&lt;span class="nb"&gt;chmod &lt;/span&gt;go-w ~/  
&lt;span class="nb"&gt;chmod &lt;/span&gt;700 ~/.ssh  
&lt;span class="nb"&gt;chmod &lt;/span&gt;600 ~/.ssh/&lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Upload public key to backup server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh-copy-id &lt;span class="nt"&gt;-i&lt;/span&gt; ~/.ssh/id_rsa.pub &lt;span class="s1"&gt;'-o StrictHostKeyChecking=no REMOTEUSER@REMOETHOST -pREMOTEPORT'&lt;/span&gt;  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create backup directory in local and remote server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; /var/backup&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;chown&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; REMOTEUSER /var/backup  
ssh REMOTEUSER@REMOETHOST &lt;span class="nt"&gt;-pREMOTEPORT&lt;/span&gt; &lt;span class="s1"&gt;'sudo mkdir -p /var/backup; sudo chown -R REMOTEUSER /var/backup'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 02 – install backup2l
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# In RedHat based distros:&lt;/span&gt;
yum update  
yum &lt;span class="nb"&gt;install &lt;/span&gt;backup2l

&lt;span class="c"&gt;# In Debian based distros:&lt;/span&gt;
apt-get update  
apt-get &lt;span class="nb"&gt;install &lt;/span&gt;backup2l 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or you can build it from source. Please read the official documentation for more information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 03 – configure backup2l
&lt;/h2&gt;

&lt;p&gt;Edit &lt;code&gt;/etc/backup2l.conf&lt;/code&gt; and create configuration like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;FOR_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1.5  
&lt;span class="nv"&gt;VOLNAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"all"&lt;/span&gt;  
&lt;span class="nv"&gt;SRCLIST&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;/etc/apache2/sites-available /home&lt;span class="o"&gt;)&lt;/span&gt;  
&lt;span class="nv"&gt;SKIPCOND&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;&lt;span class="nt"&gt;-path&lt;/span&gt; &lt;span class="s2"&gt;"/home/REMOTEUSER"&lt;/span&gt; &lt;span class="s2"&gt;"/etc/apache2/sites-available/default*"&lt;/span&gt; &lt;span class="s2"&gt;"*.nobackup*"&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s2"&gt;"*.o"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;  
&lt;span class="nv"&gt;BACKUP_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/var/backup"&lt;/span&gt;  
&lt;span class="nv"&gt;MAX_LEVEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3  
&lt;span class="nv"&gt;MAX_PER_LEVEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;9  
&lt;span class="nv"&gt;MAX_FULL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;2  
&lt;span class="nv"&gt;GENERATIONS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1  
&lt;span class="nv"&gt;CREATE_CHECK_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1  
&lt;span class="nv"&gt;AUTORUN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0  
&lt;span class="nv"&gt;SIZE_UNITS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"M"&lt;/span&gt;  
&lt;span class="nv"&gt;UNCONFIGURED&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0  
&lt;span class="nv"&gt;CREATE_DRIVER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"DRIVER_TAR_GZ"&lt;/span&gt;  
PRE_BACKUP &lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;  
  &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"  Backup MySQL Databases:"&lt;/span&gt;
  &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"  -----------------------"&lt;/span&gt;
  /usr/bin/mysqldump &lt;span class="nt"&gt;-u&lt;/span&gt; root &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="nt"&gt;--all-databases&lt;/span&gt; &lt;span class="nt"&gt;--skip-lock-tables&lt;/span&gt; | bzip2 &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /home/all_db.sql.bz2
&lt;span class="o"&gt;}&lt;/span&gt;
POST_BACKUP &lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;  
  &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"  Uploading Backup File to Backup Server:"&lt;/span&gt;
  &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"  ---------------------------------------"&lt;/span&gt;
  /usr/bin/scp &lt;span class="nt"&gt;-r&lt;/span&gt; /var/backup/all.&lt;span class="k"&gt;*&lt;/span&gt;.tar.gz REMOTEUSER@REMOTEHOST:/var/backup/.
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create Cron for auto backup, in this example I just create automatic backup every week. You can edit as you want.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /etc/cron.d/autobackup &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="no"&gt;EOF&lt;/span&gt;&lt;span class="sh"&gt;  
@weekly /usr/sbin/backup2l &amp;gt; /dev/null || nice -n 19 ionice -c 3 backup2l -b
&lt;/span&gt;&lt;span class="no"&gt;EOF
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; You can modify the configuration as you want. Remember to change &lt;strong&gt;REMOTEUSER&lt;/strong&gt;, &lt;strong&gt;REMOTEHOST&lt;/strong&gt;, and &lt;strong&gt;REMOTEPORT&lt;/strong&gt; variables.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>sysadmin</category>
    </item>
    <item>
      <title>Membangun Motivasi Itu Penting</title>
      <dc:creator>Aris Ripandi</dc:creator>
      <pubDate>Sat, 15 Jul 2017 17:00:00 +0000</pubDate>
      <link>https://dev.to/aris/membangun-motivasi-itu-penting-3a0</link>
      <guid>https://dev.to/aris/membangun-motivasi-itu-penting-3a0</guid>
      <description>&lt;p&gt;Seorang pemimpin harus bisa memotivasi karena merupakan suatu atribut yang sangat penting. Motivasi intrinsik sangat penting meskipun motivasi ini sulit untuk diciptakan. Mengapa motivasi intrinsik ini penting? karena motivasi ini datangnya dari dalam diri sendiri, dan efeknya merupakan keinginan yang kuat untuk melakukan pekerjaannya. Lalu bagaimana menciptakannya?&lt;/p&gt;

&lt;p&gt;Motivasi intrinsic mengacu pada hubungan karyawan dengan pekerjaannya. Menurut Herzberg (1966), sebuah tugas dapat memotivasi secara intrinsic jika memiliki ciri-ciri kunci antara lain: tanggung jawab, tantangan, achievement, keberagaman dan kesempatan peningkatan, Senada pula, Hackman dan Oldham (1976) berpendapat bahwa karakteristik utama yang meliputi motivasi intrinsic antara lain keberagaman tugas (task variety), signifikansi tugas (task significance), identitas tugas (task identity) dan umpan balik tugas (feedback tugas).&lt;/p&gt;

&lt;p&gt;Intinya, motivasi intrinsic bisa berupa aktivitas apapun yang menghasilkan perbedaan besar pada dirinya sendiri bahkan organisasi. Jika mereka merasa bahwa apa yang mereka lakukan tidak signifikan, maka mereka akan merasa tidak signifikan. Sebaliknya, jika mereka merasa bahwa pekerjaan mereka bernilai, maka mereka akan merasa bernilai pula.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Simple Thanks or Praise
&lt;/h3&gt;

&lt;p&gt;Salah satu cara yang paling sederhana dan mudah dalam melakukan motivasi intrinsik adalah dengan mengucapkan terima kasih. Selain itu, penghargaan kepada karyawan berupa komentar seperti Bagus atau well done dapat menciptakan efek jangka panjang yang lebih besar terhadap motivasi karyawan daripada reward kecil dalam bentuk uang.&lt;/p&gt;

&lt;h3&gt;
  
  
  Menghargai Perkembangan Karyawan
&lt;/h3&gt;

&lt;p&gt;Setiap karyawan tentunya ingin terus berkembang. Pemimpin dapat menciptakan motivasi intrinsik dengan cara terus melatih mereka dengan skill-skill baru yang lebih baik, mempersiapkan mereka untuk tantangan yang lebih besar lagi, serta memberikan kesempatan bagi karyawan untuk mengeksplorasi kreativitasnya.&lt;/p&gt;

&lt;h3&gt;
  
  
  Komunikasi Terbuka
&lt;/h3&gt;

&lt;p&gt;Dengan membangun komunikasi terbuka dengan karyawan, maka pemimpin dapat menjalin ikatan yang baik dengan karyawan. Karyawan akan merasa bahwa mereka didengarkan, dan dihargai pendapatnya. Sehingga, dengan demikian ini akan memunculkan trust dari karyawan kepada pemimpin, serta motivasi intrinsik dalam dirinya untuk terus mengabdi.&lt;/p&gt;

&lt;p&gt;Selain itu, teknik-teknik motivasi intrinsic lainnya yang dapat dimanfaatkan oleh pemimpin antara lain adalah sebagai berikut, seperti yang diungkapkan Herzberg dalam bukunya The Motivation to Work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Job Rotation
&lt;/h3&gt;

&lt;p&gt;Anda sebagai seorang pekerja tentunya sering mengalami kebosanan bukan? Sama halnya dengan orang lain, seringkali rutinitas menjadi suatu hal yang membosankan. Melalui job rotation, maka karyawan akan memperoleh tanggung jawab yang baru, sehingga memperoleh pengetahuan dan kemampuan yang baru pula. Job rotation ini, sehingga dapat memenuhi need of achievement dari seorang karyawan.&lt;/p&gt;

&lt;p&gt;Misalnya, karyawan yang biasanya ditaruh di bagian Sales, kemudian dirotasi ke bagian Marketing. Sehingga, selain menguasai selling skill, ia juga bisa belajar untuk menguasai marketing skill, yang mungkin merupakan hal baru baginya.&lt;/p&gt;

&lt;h3&gt;
  
  
  Job Enlargement
&lt;/h3&gt;

&lt;p&gt;Motivasi melalui job enlargement adalah memberikan tugas dan tanggung jawab lebih besar pada karyawan, dalam bentuk kuantitas. Namun perlu diwaspadai, job enlargement hanya cocok untuk mereka yang haus akan tantangan, bukan mereka yang pekerjaannya sudah overload dan sering lembur tiap harinya.&lt;/p&gt;

&lt;h3&gt;
  
  
  Job Enrichment
&lt;/h3&gt;

&lt;p&gt;Job Enrichment hampir sama dengan job enlargement. Hanya bedanya, jika job enlargement menambah dalam kuantitas, maka job enrichment menambah pekerjaan dalam hal kualitas, atau kompleksitasnya. Misalnya, seorang teknisi yang biasanya menangani mesin, kemudian ditugaskan untuk menangani mesin baru yang lebih kompleks.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Linux Tak Lagi Kebal Malware</title>
      <dc:creator>Aris Ripandi</dc:creator>
      <pubDate>Wed, 09 Dec 2015 23:34:00 +0000</pubDate>
      <link>https://dev.to/aris/linux-tak-lagi-kebal-malware-533</link>
      <guid>https://dev.to/aris/linux-tak-lagi-kebal-malware-533</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzyo8b59kji8e4iyc81yl.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzyo8b59kji8e4iyc81yl.jpeg" width="800" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apa yang terlintas di pikiran Anda ketika mendengar kata virus? Bukan virus bilogis tapi ya, melainkan komputer. Kemungkinan yang akan terbayangkan oleh Anda adalah sebuah program komputer yang menginfeksi file di sistem operasi Windows. Jika ditanya sistem operasi apa yang kebal virus, kemungkinan mayoritas akan menjawab Linux.&lt;/p&gt;

&lt;p&gt;Ya, Linux memang kebal terhadap malware. Tapi itu dulu sebelum negara api menyerang (eh ko malah jadi ngelantur). Dulu memang Linux lebih tahan terhadap malware bila dibandingkan dengan sistem operasi Windows. Tapi saat ini keadaanya sudah berubah. Tidak percaya? Lihat saja server-server yang menggunakan sistem operasi Linux, saat ini sudah dapat dipastikan memasang antivirus. Bukti lain adalah banyaknya malware yang mulai bertebaran di Android yang notabene dia adalah sistem operasi berbasis Linux.&lt;/p&gt;

&lt;p&gt;Silahkan lihat di Playstore, begitu banyaknya program anti malware yang ditawarkan. Atau cari data tentang statistik malware di situs penyedia perangkat lunak antivirus semacam Kaspersky, Avira, dan lainnya.&lt;/p&gt;

&lt;p&gt;Terlepas dari itu semua, apapun sistem operasi yang Anda gunakan selalu berhati-hatilah saat menggunakan perangkat komputasi, terlebih saat Anda sedang berselancar di internet. Jangan sembarangan mengunduh aplikasi gratisan dan gunakan antivirus atau anti malware untuk berjaga-jaga.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>DBMS Dan Keuntungannya</title>
      <dc:creator>Aris Ripandi</dc:creator>
      <pubDate>Sat, 27 Jul 2013 17:00:00 +0000</pubDate>
      <link>https://dev.to/aris/dbms-dan-keuntungannya-1ja0</link>
      <guid>https://dev.to/aris/dbms-dan-keuntungannya-1ja0</guid>
      <description>&lt;p&gt;Secara umum DBMS (Database Management System) diartikan sebagai suatu program komputer yang digunakan untuk memasukan, mengubah, menghapus, memanipulasi, dan memperoleh data atau informasi dengan praktis dan efisien.&lt;/p&gt;

&lt;p&gt;Suatu Database Management System (DBMS) berisi satu koleksi data dan satu set program untuk mengkases data tersebut, jadi DBMS terdiri dari database dan set program untuk menambah data, manghapus data, mengambil dan membaca data. Set program pengelola merupakan suatu paket program yang dibuat agar memudahkan dan mengefisienkan pemasukan atau perekam informasi dan pengambilan atau pembacaan informasi kedalam basis data. Jadi lingkungan SMBD terdiri dari:&lt;/p&gt;

&lt;p&gt;Komponen perangkat lunak yang membentuk sistem manajemen basis data Perangkat lunak sistem yang berinteraksi dengan sistem manajemen basis data Utilitas, baik loading dan backup, reorganisasi file, report generation, maupun performance monitoring. Keunggulan DBMS: Kepraktisan Kecepatan Kekinian Komponen Utama DBMS Perangkat keras Data, Data dalam basis data mempunyai sifat terpadu (integrated) dan berbagi (shared) Perangkat Lunak, dan Pengguna. Model Basis Data Model Hirarki / Model Pohon Model Jaringan Model Relasional&lt;/p&gt;

&lt;p&gt;Model Relasional merupakan model yang paling sederhana sehingga mudah digunakan dan dipahami oleh pengguna, serta merupakan model yang paling populer saat ini. Model ini menggunakan sekumpulan tabel berdimensi dua ( yang disebut relasi atau tabel ), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut. DBMS yang bermodelkan relasional biasa disebut RDBMS (Relational Data Base Management System).&lt;/p&gt;

&lt;p&gt;Ada Beberapa Sifat yang melekat pada suatu relasi :&lt;/p&gt;

&lt;p&gt;Tak ada tupel (baris) yang kembar) Urutan baris tidaklah penting Setiap atribut memiliki nama yang unik Letak atribut bebas ( urutan atribut tidak penting) Setiap atribut memiliki nilai tunggal dan jenisnya sama untuk semua tupel.&lt;/p&gt;

&lt;p&gt;Pada model relasional, jumlah tupel suatu relasi disebut kardinalitas dan jumlah atribut suatu relasi disebut derajat (degree) atau terkadang disebut arity. Relasi yang berderajat saru (hanya memiliki satu atribut) disebut unary. Relasi yang berderajat dua disebut binary dan relasi yang berderajat tiga disebut ternary. Relasi yang berderajat n disebut n-ary. Istilah lainnya yang terdapat pada model relasional adalah domain. Domain adalah himpunan nilai yang berlaku bagi suatu atribut.&lt;/p&gt;

&lt;p&gt;Contoh produk DBMS terkenal yang menggunakan model relasional antara lain adalah:&lt;/p&gt;

&lt;p&gt;DB2 (IBM) Rdb/VMS (Digital Equipment Corporation) Oracle (Oracle Corporation) MySQL (Oracle Corporation) Informix (Informix Corporation) Ingres (ASK Group Inc) Sybase (Sybase Inc) Data Definition Language (DDL)&lt;/p&gt;

&lt;p&gt;DDL adalah perintah-perintah yang biasa digunakan oleh administrator basis data (DBA) utnuk mendefinisikan skema ke DBMS. Skema adalah deskripsi lengkap tentang struktur medan, rekaman, dan hubungan data pada basis data.&lt;/p&gt;

&lt;p&gt;Data Manipulation language (DML)&lt;/p&gt;

&lt;p&gt;DML adalah perintah-perintah yang digunakan untuk mengubah , memanipulasi dan mengambil data pada basis data. Tindakan seperti menghapus, mengubah, dan mengambil data menjadi bagian dari DML. DML pada dasarnya dibagi menjadi dua :&lt;/p&gt;

&lt;p&gt;Prosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan dan bagaimana cara mendapatkannya. Nonprosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan, tetapi tidak perlu menyebutkan cara mendapatkannya.&lt;/p&gt;

&lt;p&gt;Terdapat dua tipe DML yaitu prosedural dan non prosedural. Prosedural DML membutuhkan pemakai untuk mensfesifikasikan data apa yang dibutuhkan dan bagaimana cara mendapatkannya, sedang non prosedural DML membutuhkan pemakai untuk mensfesifikasikan data apa yang dibutuhkan tanpa tahu bagaimana cara mendapatkannya. Contoh paket bahasa prosedural adalah dBase III, FoxBase, sedangkan non prosedural adalah SQL (Structured Query Language) atau Query By Example (QBE)&lt;/p&gt;

&lt;p&gt;Data Query Language (DQL)&lt;/p&gt;

&lt;p&gt;Query sesungguhnya berarti pertanyaan atau permintaan. Istilah ini tetap dipertahankan dalam bentuk asli, karena telah populer di kalangan pengguna DBMS di Indonesia.&lt;/p&gt;

&lt;p&gt;Bahasa Query&lt;/p&gt;

&lt;p&gt;Bahasa query (query language) adalah bahasa khusus yang digunakan untuk melakukan query pada basis data. Contoh penggunaan bahasa query adalah: SELECT ALL WHERE kota=Sukabumi AND umur&amp;lt;40. Query tersebut meminta semua record dari basis data yang sedang digunakan (misalkan basisdata konsumen) yang bertempat tinggal di Yogyakarta dan berumur lebih dari 40 tahun (kota dan umur adalah nama field yang telah didefinisikan). Standar bahasa query yang banyak digunakan adalah SQL (structured query language). Metode ini paling rumit tetapi paling fleksibel dibandingkan metode query yang lain, query dengan parameter yang telah tersedia dan query by example.&lt;/p&gt;

&lt;p&gt;DBMS&lt;/p&gt;

&lt;p&gt;DBMS (database management system) adalah sekumpulan program yang digunakan untuk menyimpan, memodifikasi, dan mengekstrak informasi dari sebuah basisdata. Terdapat berbagai DBMS, mulai dari yang dapat dijalankan pada PC sampai yang harus dijalankan pada mainframe. Untuk mendapatkan informasi dari basisdata, digunakan bahasa khusus dalam bentuk query. Setiap DBMS mendukung bahasa query yang berbeda-beda.&lt;/p&gt;

&lt;p&gt;Field&lt;/p&gt;

&lt;p&gt;Field adalah item tertentu dari informasi. Data mahasiswa, misalnya, mempunyai beberapa field yang diantaranya adalah nama, nomor mahasiswa, tanggal lahir, dan alamat. Setiap field mempunyai nama dan tipe (numerik atau teks). Dalam sistem manajemen basisdata, terdapat tiga macam field: harus diisi (required), dapat diabaikan (optional), dan merupakan penghitungan dari field lainnya (calculated). Pengguna tidak dapat memasukan data pada jenis field yang terakhir (calculated). Kumpulan field disebut record.&lt;/p&gt;

&lt;p&gt;Query&lt;/p&gt;

&lt;p&gt;Query adalah pertanyaan atau permintaan informasi tertentu dari sebuah basisdata yang ditulis dalam format tertentu. Terdapat tiga metode utama untuk membuat query:&lt;/p&gt;

&lt;p&gt;Dengan memilih parameter yang telah disediakan pada menu. Metode ini paling mudah digunakan namun paling tidak fleksibel karena pengguna hanya dapat menggunakan pilihan parameter yang terbatas. Query by example (QBE) adalah metode query yang disediakan sistem dalam bentuk record kosong dan pengguna dapat menentukan field dan nilai tertentu yang akan digunakan dalam query. Bahasa query (query language) adalah bahasa khusus yang digunakan untuk melakukan query pada sebuah basisdata. Metode ini paling rumit tetapi paling fleksibel. SQL&lt;/p&gt;

&lt;p&gt;SQL structured query language adalah bahasa query yang di standarisasi untuk meminta informasi dari sebuah basisdata. versi awal SQL adalah SQUEL Structured English Query Language yang di rancang oleg IBM pada tahun 1974 dan 1975. SQL pertama kali di perkenalkan sebagai system basisdata komersial pada tahun 1979 oleh oracle corporation. awalnya, SQL merupakan bahasa query untuk sistem manajemen bnasisdata yang berjalan pada minikomputer dan mainframe. namun sekarang, SQL juga dapat di gunakan pada sistem manajemen basisdata pada PC karena mendukung basisdata tersebar distributed database hal ini memungkinkan beberapa pengguna pada local area network (LAN) mengakses basisdata yang sama secara simultan.&lt;/p&gt;

&lt;p&gt;Basis data (bahasa Inggris: database), atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi.&lt;/p&gt;

&lt;p&gt;Istilah basis data berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai basis data komputer. Catatan yang mirip dengan basis data sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kwitansi dan kumpulan data yang berhubungan dengan bisnis.&lt;/p&gt;

&lt;p&gt;Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel.&lt;/p&gt;

&lt;p&gt;Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data (database management system/DBMS). Jika konteksnya sudah jelas, banyak administrator dan programer menggunakan istilah basis data untuk kedua arti tersebut.&lt;/p&gt;

&lt;p&gt;Semoga bermanfaat!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Pentingnya Melakukan Backup Data</title>
      <dc:creator>Aris Ripandi</dc:creator>
      <pubDate>Wed, 29 Aug 2012 17:00:00 +0000</pubDate>
      <link>https://dev.to/aris/pentingnya-melakukan-backup-data-59pc</link>
      <guid>https://dev.to/aris/pentingnya-melakukan-backup-data-59pc</guid>
      <description>&lt;p&gt;Media apakah yang Anda gunakan untuk memback up data-data penting Anda? Apakah media optik (CD, DVD, Blue Ray), removable storage (hardisk eksternal, USB flashdisk), atau media lainnya? Disadari atau tidak, mem-back up data adalah sesuatu hal yang wajib dilakukan, terlebih bila data tersebut adalah data yang sangat penting. Kita semua tentu tidak ingin mengalami hal yang tidak menyenangkan pada data-data kita, seperti rusak ataupun hilang. Pada saat ini banyak tersedia media untuk menyimpan cadangan data-data, baik itu media optik, removable storage atau bahkan media Cloud Storage.&lt;/p&gt;

&lt;p&gt;Apa itu Cloud Storage? Cloud Storage adalah salah satu media penyimpanan data yang menggunakan jalur internet sebagai sarana penghubungnya. Contohnya adalah Rapidshare, 4Shared dan Ziddu. Ketiga provider ini adalah contoh dari cloud storage, tetapi layanan yang mereka berikan adalah bukan untuk backup data melainkan untuk dibagikan kembali kepada orang-orang yang diberikan URL untuk mendownloadnya. Berbeda dengan layanan backup online yang memang dikhususkan untuk menyimpan cadangan data-data saja tanpa dibagikan kembali kepada orang lain. Beberapa provider yang menyediakan layanan untuk backup data antara lain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DropBox. Salah satu layanan Cloud Storage yang sederhana dan mudah digunakan. Tersedia free space 5GB yang dapat diupgrade hingga maksimal 16GB dengan cara menyarankan orang lain untuk menggunakan layanan ini. Platform yang didukung antara lain: Linux, Windows, Mac, iPhone dan Android.&lt;/li&gt;
&lt;li&gt;Google Drive. Siapa yang tak kenal Google, raksasa internet yang sangat bonafit. Kali ini mereka menyediakan layanan Cloud Storage yang bisa digunakan secara cuma-cuma sebesar 5GB.&lt;/li&gt;
&lt;li&gt;IDrive. Provider ini merupakan salah satu provider yang cukup bonafit dan dapat diandalkan. Meskipun kapasitas yang diberikan hanya 2GB untuk versi gratisnya (Basic), tetapi kita dapat memperoleh kapasitas 10 GB gratis dengan cara menyarankan teman atau kenalan kita yang ada di Address Book akun email kita. Selain itu mereka juga menggunakan jalur SSL (https), sehingga transaksi yang kita lakukan dalam hal ini proses download dan upload data) menjadi aman karena terenkripsi. Kita dapat menggunakan software yang mereka diberikan untuk melakukan proses upload dan download data yang akan kita backup. Oiya, Idrive menyediakan layanan backup data hanya untuk platform Windows dan Mac saja.&lt;/li&gt;
&lt;li&gt;ADrive. Namanya hampir mirip dengan IDrive, namun kapasitas yang diberikan lebih besar, yaitu sebesar 50 GB untuk versi gratisnya (Basic). Kekurangannya untuk versi Basic adalah tidak menggunakan jalur SSL dan tidak diberikan software khusus untuk proses backup data.&lt;/li&gt;
&lt;li&gt;DriveHQ. Situs ini menyediakan beberapa layanan penyimpanan data yang berbeda, yaitu Online Storage &amp;amp; Sharing, Online Backup Files &amp;amp; Emails, FTP Server Hosting &amp;amp; Software dan SMTP/POP3 Email Server Hosting. Kita dapat memilih layanan yang kita butuhkan diantara layanan yang tersedia itu. Layanan ini juga tersedia untuk platform Windows, Linux dan Mac. Adapun kapasitas yang diberikan untuk versi gratisnya tidak diketahui, namun pada saat kita mengupload data, pada saat kapasitas melebihi 50 MB proses dihentikan.&lt;/li&gt;
&lt;li&gt;Carbonite, iBackup, FilesAnywhere, XDrive dan Mozy adalah penyedia layanan backup online lainnya, namun mereka tidak memberikan layanan versi gratis dan hanya tersedia versi trialnya saja untuk mencoba.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Diantara penyedia layanan backup online diatas, IDrive dan DriveHQ menyediakan program afiliasi untuk mendapatkan tambahan kapasitas yang lebih besar ataupun dalam bentuk uang, namun IDrive hanya menyediakan program afiliasi untuk perusahaan saja (reseler). Saat ini saya sendiri menggunakan layanan DropBox untuk membackup data-data saya karena kesederhanannya. Selain dari daftar diatas masih banyak layanan Cloud Storage lain yang bisa digunakan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Referensi:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CloudIndonesiAPerbandingan Beberapa Cloud Storage&lt;/li&gt;
&lt;li&gt;CloudIndonesiAPerbandingan Google Drive, SkyDrive, dan DropBox&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
