Skip to content

Instantly share code, notes, and snippets.

@mamaz
mamaz / asynchronous.md
Last active January 11, 2024 02:59
Soal Asynchronous Go

Deskripsi

Buatlah sebuah program commad-line program Web Crawler dengan Go

Input berupa list of URL yang ada dalam sebuah file urls.txt, yang kemudian akan di crawl dan disimpan ke dalam beberapa file html.

File-file html tersebut akan disimpan di sebuah folder result di direktori tempat crawl command di execute.

Contoh

Command

user, _ := GetUserByID(context.Background, ID)
// do the rest of the code
@mamaz
mamaz / checksum.py
Last active March 30, 2020 20:03
sum from List, checksum(0, [2,4,8], 6) -> True, checksum(0, [2,4,8], 15) -> False
from typing import List
def checksum(acc: int, lst: List[int], exist_total: int)-> bool:
sorted_nums = sorted(lst)
return checksum_rec(sorted_nums, exist_total, exist_total)
def checksum_rec(nums: List, exist_total: int, orig_total: int)->int:
if len(nums) == 0 and exist_total > 0:
return False
else:

Swap Linked List

Diberikan LinkedList dengan dengan struktur data setiap Node:

{
  value: int
  next: * Node
}
@mamaz
mamaz / fsm.md
Last active December 9, 2019 03:42
Finite State Machine

Finite State Machine

Desain sebuah Finite State Machine (FSM) sebuah lift.

Beberapa state dalam lift tersebut adalah:

  • Pintu membuka
  • Pintu menutup
  • Pintu tertutup
  • Pintu terbuka

MERGE CONTACTS

Sebuah perusahaan mobile application ingin membuat sebuah API yang menyimpan kontak info dari user. Namun user memiliki beberapa data source untuk kontak, ada yang dari GMail, Yahoo, dan lainnya. Permasalahannya dari beberapa data source tersebut ternyata ada banyak kontak yang sama. Nah karena kontak API ini mesti memudahkan user untuk mencari kontak yang diinginkan, maka kontak-kontak dari beberapa sumber tersebut mesti di-merge.

Contoh struktur dari data sebuah kontak adalah sbb:

Contact {
    id: string
 fullname: string

Resolver

Diberikan sebuah file yml dengan value yang berasal dari environment variables pada sistem seperti berikut:

service.yml

storages:
    database:
        client: ${$SQL_CLIENT}
@mamaz
mamaz / email.task.md
Last active November 20, 2019 09:09
Email Address Task

Di sebuah startup kalimat.ai, dibutuhkan suatu functionality untuk membuat username dan email untuk perusahaan tersebut. Username dan email tersebut berasal dari nama karyawan yang bekerja di perusahaan tersebut.

Format penulisan emailnya adalah

  • Username adalah kata-kata sebelum karakter @ pada email. Misalnya, email [email protected],maka usernamenya adalah anjani.
  • Format email adalah sebagai berikut. <Nama Depan + Nama Belakang @kalimat.ai>, contoh: Yusuke Iseya menjadi [email protected], Stephan Danu Shakalakalaka menjadi [email protected]
  • Jika tidak ada nama belakang, nama depan saja yang dijadikan username. Example: Yunus menjadi [email protected]
  • Jika ada kesamaan email address dengan yang sudah terlebih dulu ada di database, maka nama tersebut akan ditambahkan angka 1 dan seterusnya. Misal: [email protected] sudah ada sebelumnya maka menjadi [email protected], jika sudah ada maka menjadi [email protected], dst. Begitu pula jika nama tun
@mamaz
mamaz / image_main.go
Last active November 11, 2018 13:42
Running Resize Image
package main
import (
resizeParallel "Exercise/ResizeImage/ResizeParallel"
resizeSequential "Exercise/ResizeImage/ResizeSequential"
"Exercise/ResizeImage/lib/types"
"flag"
"fmt"
)
@mamaz
mamaz / resize_sequential.go
Last active November 11, 2018 13:41
Resize Image sequentially
package resizesequential
import (
"Exercise/ResizeImage/lib/resizer"
"Exercise/ResizeImage/lib/types"
"flag"
"fmt"
"os"
"time"
)