Efektivitas Strategi Ta’bir Mushawwar dalam Pembelajaran Bahasa Arab di Madrasah Ibtidaiyah
Abstract
Speaking proficiency is one of the main skills in Arabic language learning, but fourth grade students of MI TPI Keramat face difficulties in assembling mufradat and practicing active conversation, mainly due to the lack of varied learning strategies. This study aims to analyze the effectiveness of the ta'bir mushawwar strategy, which uses picture as a media to facilitate students in constructing sentences and telling stories, in improving Arabic speaking skills. With a quantitative approach and pre-experiment design, this study involved 18 students of class IV-C. Data were collected through tests, observations, and interviews, then analyzed descriptively and N-Gain test. The posttest average was 83.06 (very good category) with 88.9% completeness, and the N-Gain score was 0.6398 which showed effectiveness in the medium category. The ta'bir mushawwar strategy offers a solution in the form of a visual and hands-on learning approach that can significantly improve students' speaking skills and make learning more interesting and interactive.
Server IP : 103.175.217.176 / Your IP : 3.142.156.58 Web Server : Apache/2.4.62 (Debian) System : Linux bilfathvps 5.10.0-33-amd64 #1 SMP Debian 5.10.226-1 (2024-10-03) x86_64 User : root ( 0) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /bin/X11/ |
Upload File : |
#!/bin/sh VERBOSITY=0 TEMP_D="" NAME="ubuntu-cloudimg-query" DOT_D="$HOME/.$NAME" CACHE_D="$HOME/.cache/$NAME" KNOWN_RELEASES="hardy karmic lucid maverick natty oneiric precise quantal raring trusty utopic vivid wily xenial yakkety"; cachelife=86400 error() { echo "$@" 1>&2; } errorp() { printf "$@" 1>&2; } fail() { [ $# -eq 0 ] || error "$@"; exit 1; } failp() { [ $# -eq 0 ] || errorp "$@"; exit 1; } Usage() { cat <<EOF Usage: ${0##*/} [ options ] criteria Get the latest Ubuntu ami meeting certain criteria options: -o | --output FILE output to file rather than stdout -f | --format format change output to 'format'. default: '%{ami}\n' --arch ARCH use the specified arch Examples: - get the latest ami matching default criteria for release 'n' $ ${0##*/} -v n us-east-1/ebs/ubuntu-natty-11.04-amd64-server-20110426 ami-1aad5273 - get an instance-store image in i386 image in us-west-1 $ ${0##*/} lucid i386 instance us-west-1 ami-73c69436 - get the latest daily build of the devel release in eu-west-1 $ EC2_REGION=eu-west-1 ${0##*/} daily amd64 ebs o EOF } bad_Usage() { Usage 1>&2; [ $# -eq 0 ] || error "$@"; exit 1; } cleanup() { [ -z "${TEMP_D}" -o ! -d "${TEMP_D}" ] || rm -Rf "${TEMP_D}" } cache_valid() { local file="$1" date="$2" [ -n "$file" -a -e "$file" ] || return 1 touch --date "${date}" "${TEMP_D}/ts" [ "$file" -nt "$TEMP_D/ts" ] } dlcache() { local url="$1" out="$2" cfilename="$3" age="$4" local cachef="${CACHE_D}/$cfilename" local timeout="now - $age seconds" [ -n "$cfilename" ] || cachef="" if cache_valid "$cachef" "$timeout"; then cp -a "$cachef" "$out" return fi wget -q "${url}" -O "${out}" || return 1 { [ -z "$cachef" ] || cp "${out}" "${cachef}"; } || return 1 } debug() { local level=${1}; shift; [ "${level}" -gt "${VERBOSITY}" ] && return error "${@}" } isrel() { local cand="$1" url="$2" out="$3" cache="$4" age="$5" local o="" f="" for f in "$out" "$CACHE_D/$cache"; do [ -f "${f}" ] && o=$(awk '-F\t' '$1 ~ r { print $1; exit(0); }' "r=^$cand" "$f") && [ -n "$o" ] && _RET="$o" && return 0 done dlcache "$url" "$out" "$cache" "$age" && o=$(awk '-F\t' '$1 ~ r { print $1; exit(0); }' "r=^$cand" "$out") && [ -n "$o" ] && _RET="$o" && return 0 return 1 } subst() { local cur="$1"; shift; while [ $# -ne 0 ]; do while [ "${cur#*${1}}" != "${cur}" ]; do cur="${cur%%${1}*}${2}${cur#*${1}}" done shift 2 done _RET=${cur} } in_args() { # is $1 in $2.... local needle="$1" hay="" shift; for hay in "$@"; do [ "$hay" = "$needle" ] && return 0 done return 1 } getreleases() { # get the list of releases, return it in _RET local releases="${KNOWN_RELEASES}" r="" if command -v "ubuntu-distro-info" >/dev/null; then local all_rels="" seen_lucid=false all_rels=$(ubuntu-distro-info --all) || { error "'ubuntu-distro-info --all' failed"; return 1; } releases="hardy" for r in $all_rels; do if $seen_lucid || [ "$r" = "lucid" ]; then seen_lucid=true; releases="${releases} $r" fi done fi _RET="$releases" } short_opts="f:ho:v" long_opts="arch:,format:,help,no-cache,output:,verbose" getopt_out=$(getopt --name "${0##*/}" \ --options "${short_opts}" --long "${long_opts}" -- "$@") && eval set -- "${getopt_out}" || bad_Usage ## <<insert default variables here>> output="-" format='%{ami}\n' burl="${UBUNTU_CLOUDIMG_QUERY_BASEURL:-https://cloud-images.ubuntu.com/query}" store="" region_default="${EC2_REGION:-us-east-1}" release="xenial" arch="amd64" stream="released" bname="server" itype="" ptype="paravirtual" poss_release="" itypes="" itypes_i386="m1.small c1.medium m1.medium" itypes_amd64="${itypes_i386} m1.large m1.xlarge m2.xlarge m2.2xlarge m2.4xlarge c1.xlarge" itypes_hvm="cc1.4xlarge cg1.4xlarge cc2.8xlarge hi1.4xlarge" itypes_ebs_only="t1.micro m3.xlarge m3.2xlarge" while [ $# -ne 0 ]; do cur=${1}; next=${2}; case "$cur" in --arch) arch="$next"; shift;; -h|--help) Usage ; exit 0;; -f|--format) format=${2}; shift;; -o|--output) output=${2}; shift;; -v|--verbose) VERBOSITY=$((${VERBOSITY}+1));; --no-cache) cachelife=0;; --) shift; break;; esac shift; done getreleases || fail "failed to get releases" releases="${_RET}" for i in "$@"; do in_args "$i" $releases && r_rel=$i && continue case $i in rel*) stream="released";; daily) stream=${i};; server|desktop) bname=${i};; i386|amd64|x86_64|armhf|ppc64el|arm64|s390x|powerpc) arch=${i}; [ "${i}" = "x86_64" ] && arch="amd64";; *-*-[0-9]) region=${i};; ebs|ebs-ssd|ebs-io1) store="$i";; instance|instance-store) store="instance-store";; hvm) ptype="hvm";; para|paravirtual) ptype="paravirtual";; c[cg][1-9].*|hi1.*) ptype="hvm"; itype="$i"; arch=amd64;; [a-z][1-9].[0-9a-z]*) itype="$i"; case "${i}" in t1.micro|m3.*) store=ebs;; # t1.micro, m3.* only supports ebs esac ;; http://*|https://*) burl=${i};; [hklmnopqrstuvwxyz]) [ -z "$p_rel" ] || fail "found 2 unknown args: $p_rel, $i"; p_rel=$i;; *) fail "confused by argument: ${i}";; esac done TEMP_D=$(mktemp -d "${TMPDIR:-/tmp}/${0##*/}.XXXXXX") || fail "failed to make tempdir" trap cleanup EXIT { [ -d "${CACHE_D}" ] || mkdir -p "${CACHE_D}"; } || fail "failed to create ${CACHE_D}" daily_latest="${TEMP_D}/daily.latest.txt" release_latest="${TEMP_D}/released.latest.txt" if [ -n "$p_rel" ]; then [ -z "$r_rel" ] || fail "unknown arg ${p_rel}" url="${burl}/daily.latest.txt" isrel "$p_rel" "$url" "${daily_latest}" "daily.latest.txt" $cachelife && r_rel="${_RET}" || fail "bad input $p_rel" fi [ -n "$r_rel" ] && release=$r_rel if [ -z "${region}" ]; then if [ -n "${EC2_URL}" ]; then case "${EC2_URL#*://}" in *-*-[0-9].ec2.amazonaws.com*) region=${EC2_URL#*://}; region=${region%%.*};; ec2.amazonaws.com/*) region=us-east-1;; *) region=${region_default};; esac else region="${region_default}" fi fi if [ -z "$store" ]; then # legacy 'ebs' backed root devices were dropped in xenial, # so 'ebs-ssd' is the default for newer releases. case "$release" in lucid|precise|trusty|wily) store="ebs";; *) store="ebs-ssd";; esac fi ec2_curf="${TEMP_D}/${release}.${bname}.${stream}.current.txt" ec2_url="${burl}/${release}/${bname}/${stream}.current.txt" dl_curf="${TEMP_D}/${release}.${bname}.${stream}-dl.current.txt" dl_url="${burl}/${release}/${bname}/${stream}-dl.current.txt" dlcache "${dl_url}" "${dl_curf}" "${dl_curf##*/}" $cachelife || fail "failed to get ${dl_url}" out=$(awk '-F\t' \ '$1 == release && $2 == bname && $5 == arch { print $4, $6, $7 }' \ "release=$release" "bname=$bname" "arch=$arch" "${dl_curf}") && [ -n "$out" ] || fail "failed find entry in ${dl_url}" set -- ${out}; serial=$1; dlpath=$2; pubname=$3 url="${burl%/query}/${dlpath}" prefix="${store}" [ "${ptype}" = "hvm" ] && prefix="hvm" dlcache "${ec2_url}" "${ec2_curf}" "${ec2_curf##*/}" $cachelife || fail "failed to get ${ec2_url}" ami=$(awk '-F\t' \ '$1 == release && $2 == bname && $5 == store && $6 == arch && $7 == region && $11 == ptype { print $8 }' \ "release=$release" "bname=${bname}" \ "store=$store" "arch=$arch" "region=$region" "ptype=$ptype" \ "${ec2_curf}") if [ -z "$ami" ]; then amifmt="%{ami}" [ "$format" = "${format#*${amifmt}}" ] || fail "no matching ami id found, but '%{ami}' in output format" fi case "$arch:$store:$ptype" in *:hvm) itypes_all="${itypes_hvm}";; i386:*) itypes_all="${itypes_i386}";; amd64:*) itypes_all="${itypes_amd64}";; esac [ "$store" = "ebs" -a "$ptype" != "hvm" ] && itypes_all="${itypes_ebs_only} $itypes_all" itypes="" for x in ${itype} ${itypes_all}; do case ",$itypes," in *,$x,*) continue;; esac itypes="${itypes},${x}" done itypes=${itypes#,} itype=${itypes%%,*} xarch=${arch} [ "$xarch" = "amd64" ] && xarch="x86_64" CR=" " TAB=" " subst "$format" \ '\\n' "$CR" '\\t' "$TAB" \ '%{ami}' "$ami" \ '%{arch}' "$arch" '%{bname}' "$bname" '%{dlpath}' "$dlpath" \ '%{ptype}' "$ptype" '%{pubname}' "$pubname" '%{region}' "$region" \ '%{release}' "$release" '%{store}' "$store" '%{stream}' "$stream" \ '%{url}' "$url" \ '%{xarch}' "$xarch" '%{itype}' "${itype}" '%{itypes}' "$itypes" \ '%{serial}' "$serial" \ '%{summary}' "${region}/${prefix}/${pubname}" out=${_RET} [ -n "${out}" ] || fail "no ami found matching criteria" debug 1 "${region}/${prefix}/${pubname}" if [ -n "${output}" -a "${output}" != "-" ]; then echo -n "$out" > "$output" else echo -n "$out" fi exit # vi: ts=4 noexpandtab
Youez - 2016 - github.com/yon3zu
LinuXploit